]> git.proxmox.com Git - pve-docs.git/blame - api-viewer/apidata.js
update static/schema information
[pve-docs.git] / api-viewer / apidata.js
CommitLineData
0695fdaf 1const apiSchema = [
56122987 2 {
56122987 3 "children" : [
5d9c884c
DM
4 {
5 "children" : [
6 {
7 "info" : {
8 "DELETE" : {
e9cd3bd4 9 "allowtoken" : 1,
5d9c884c
DM
10 "description" : "Mark replication job for removal.",
11 "method" : "DELETE",
12 "name" : "delete",
13 "parameters" : {
14 "additionalProperties" : 0,
15 "properties" : {
16 "force" : {
17 "default" : 0,
18 "description" : "Will remove the jobconfig entry, but will not cleanup.",
19 "optional" : 1,
20 "type" : "boolean",
21 "typetext" : "<boolean>"
22 },
23 "id" : {
24 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
25 "format" : "pve-replication-job-id",
26 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
27 "type" : "string"
28 },
29 "keep" : {
30 "default" : 0,
31 "description" : "Keep replicated data at target (do not remove).",
32 "optional" : 1,
33 "type" : "boolean",
34 "typetext" : "<boolean>"
35 }
36 }
37 },
38 "permissions" : {
39 "check" : [
40 "perm",
41 "/storage",
42 [
43 "Datastore.Allocate"
44 ]
45 ]
46 },
47 "protected" : 1,
48 "returns" : {
49 "type" : "null"
50 }
51 },
52 "GET" : {
e9cd3bd4 53 "allowtoken" : 1,
5d9c884c
DM
54 "description" : "Read replication job configuration.",
55 "method" : "GET",
56 "name" : "read",
57 "parameters" : {
58 "additionalProperties" : 0,
59 "properties" : {
60 "id" : {
61 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
62 "format" : "pve-replication-job-id",
63 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
64 "type" : "string"
65 }
66 }
67 },
68 "permissions" : {
69 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
70 "user" : "all"
71 },
72 "returns" : {
73 "type" : "object"
74 }
75 },
76 "PUT" : {
e9cd3bd4 77 "allowtoken" : 1,
5d9c884c
DM
78 "description" : "Update replication job configuration.",
79 "method" : "PUT",
80 "name" : "update",
81 "parameters" : {
82 "additionalProperties" : 0,
83 "properties" : {
84 "comment" : {
85 "description" : "Description.",
86 "maxLength" : 4096,
87 "optional" : 1,
88 "type" : "string",
89 "typetext" : "<string>"
90 },
91 "delete" : {
92 "description" : "A list of settings you want to delete.",
93 "format" : "pve-configid-list",
94 "maxLength" : 4096,
95 "optional" : 1,
96 "type" : "string",
97 "typetext" : "<string>"
98 },
99 "digest" : {
100 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
101 "maxLength" : 40,
102 "optional" : 1,
103 "type" : "string",
104 "typetext" : "<string>"
105 },
106 "disable" : {
107 "description" : "Flag to disable/deactivate the entry.",
108 "optional" : 1,
109 "type" : "boolean",
110 "typetext" : "<boolean>"
111 },
112 "id" : {
113 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
114 "format" : "pve-replication-job-id",
115 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
116 "type" : "string"
117 },
118 "rate" : {
119 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
120 "minimum" : 1,
121 "optional" : 1,
122 "type" : "number",
123 "typetext" : "<number> (1 - N)"
124 },
125 "remove_job" : {
126 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
127 "enum" : [
128 "local",
129 "full"
130 ],
131 "optional" : 1,
132 "type" : "string"
133 },
134 "schedule" : {
135 "default" : "*/15",
c5aa7e14 136 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
5d9c884c
DM
137 "format" : "pve-calendar-event",
138 "maxLength" : 128,
139 "optional" : 1,
140 "type" : "string",
141 "typetext" : "<string>"
a9a8e3d1
DM
142 },
143 "source" : {
d2656385 144 "description" : "For internal use, to detect if the guest was stolen.",
a9a8e3d1
DM
145 "format" : "pve-node",
146 "optional" : 1,
147 "type" : "string",
148 "typetext" : "<string>"
5d9c884c
DM
149 }
150 },
151 "type" : "object"
152 },
153 "permissions" : {
154 "check" : [
155 "perm",
156 "/storage",
157 [
158 "Datastore.Allocate"
159 ]
160 ]
161 },
162 "protected" : 1,
163 "returns" : {
164 "type" : "null"
165 }
166 }
167 },
168 "leaf" : 1,
169 "path" : "/cluster/replication/{id}",
170 "text" : "{id}"
171 }
172 ],
173 "info" : {
174 "GET" : {
e9cd3bd4 175 "allowtoken" : 1,
5d9c884c
DM
176 "description" : "List replication jobs.",
177 "method" : "GET",
178 "name" : "index",
179 "parameters" : {
180 "additionalProperties" : 0
181 },
182 "permissions" : {
183 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
184 "user" : "all"
185 },
186 "returns" : {
187 "items" : {
188 "properties" : {},
189 "type" : "object"
190 },
191 "links" : [
192 {
193 "href" : "{id}",
194 "rel" : "child"
195 }
196 ],
197 "type" : "array"
198 }
199 },
200 "POST" : {
e9cd3bd4 201 "allowtoken" : 1,
5d9c884c
DM
202 "description" : "Create a new replication job",
203 "method" : "POST",
204 "name" : "create",
205 "parameters" : {
206 "additionalProperties" : 0,
207 "properties" : {
208 "comment" : {
209 "description" : "Description.",
210 "maxLength" : 4096,
211 "optional" : 1,
212 "type" : "string",
213 "typetext" : "<string>"
214 },
215 "disable" : {
216 "description" : "Flag to disable/deactivate the entry.",
217 "optional" : 1,
218 "type" : "boolean",
219 "typetext" : "<boolean>"
220 },
221 "id" : {
222 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
223 "format" : "pve-replication-job-id",
224 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
225 "type" : "string"
226 },
227 "rate" : {
228 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
229 "minimum" : 1,
230 "optional" : 1,
231 "type" : "number",
232 "typetext" : "<number> (1 - N)"
233 },
234 "remove_job" : {
235 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
236 "enum" : [
237 "local",
238 "full"
239 ],
240 "optional" : 1,
241 "type" : "string"
242 },
243 "schedule" : {
244 "default" : "*/15",
c5aa7e14 245 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
5d9c884c
DM
246 "format" : "pve-calendar-event",
247 "maxLength" : 128,
248 "optional" : 1,
249 "type" : "string",
250 "typetext" : "<string>"
251 },
a9a8e3d1 252 "source" : {
d2656385 253 "description" : "For internal use, to detect if the guest was stolen.",
a9a8e3d1
DM
254 "format" : "pve-node",
255 "optional" : 1,
256 "type" : "string",
257 "typetext" : "<string>"
258 },
5d9c884c
DM
259 "target" : {
260 "description" : "Target node.",
261 "format" : "pve-node",
262 "optional" : 0,
263 "type" : "string",
264 "typetext" : "<string>"
265 },
266 "type" : {
267 "description" : "Section type.",
268 "enum" : [
269 "local"
270 ],
271 "type" : "string"
272 }
273 },
274 "type" : "object"
275 },
276 "permissions" : {
277 "check" : [
278 "perm",
279 "/storage",
280 [
281 "Datastore.Allocate"
282 ]
283 ]
284 },
285 "protected" : 1,
286 "returns" : {
287 "type" : "null"
288 }
289 }
290 },
291 "leaf" : 0,
292 "path" : "/cluster/replication",
293 "text" : "replication"
294 },
4772952b
TL
295 {
296 "children" : [
297 {
298 "children" : [
299 {
300 "info" : {
301 "DELETE" : {
302 "allowtoken" : 1,
303 "description" : "Remove Metric server.",
304 "method" : "DELETE",
305 "name" : "delete",
306 "parameters" : {
307 "additionalProperties" : 0,
308 "properties" : {
309 "id" : {
310 "format" : "pve-configid",
311 "type" : "string",
312 "typetext" : "<string>"
313 }
314 }
315 },
316 "permissions" : {
317 "check" : [
318 "perm",
319 "/",
320 [
321 "Sys.Modify"
322 ]
323 ]
324 },
325 "protected" : 1,
326 "returns" : {
327 "type" : "null"
328 }
329 },
330 "GET" : {
331 "allowtoken" : 1,
332 "description" : "Read metric server configuration.",
333 "method" : "GET",
334 "name" : "read",
335 "parameters" : {
336 "additionalProperties" : 0,
337 "properties" : {
338 "id" : {
339 "format" : "pve-configid",
340 "type" : "string",
341 "typetext" : "<string>"
342 }
343 }
344 },
345 "permissions" : {
346 "check" : [
347 "perm",
348 "/",
349 [
350 "Sys.Audit"
351 ]
352 ]
353 },
354 "returns" : {
355 "type" : "object"
356 }
357 },
358 "POST" : {
359 "allowtoken" : 1,
360 "description" : "Create a new external metric server config",
361 "method" : "POST",
362 "name" : "create",
363 "parameters" : {
364 "additionalProperties" : 0,
365 "properties" : {
d2656385
TL
366 "api-path-prefix" : {
367 "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
368 "optional" : 1,
369 "type" : "string",
370 "typetext" : "<string>"
371 },
372 "bucket" : {
373 "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
374 "optional" : 1,
375 "type" : "string",
376 "typetext" : "<string>"
377 },
4772952b
TL
378 "disable" : {
379 "description" : "Flag to disable the plugin.",
380 "optional" : 1,
381 "type" : "boolean",
382 "typetext" : "<boolean>"
383 },
384 "id" : {
385 "description" : "The ID of the entry.",
386 "format" : "pve-configid",
387 "type" : "string",
388 "typetext" : "<string>"
389 },
d2656385
TL
390 "influxdbproto" : {
391 "default" : "udp",
392 "enum" : [
393 "udp",
394 "http",
395 "https"
396 ],
397 "optional" : 1,
398 "type" : "string"
399 },
400 "max-body-size" : {
401 "default" : 25000000,
402 "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
403 "minimum" : 1,
404 "optional" : 1,
405 "type" : "integer",
406 "typetext" : "<integer> (1 - N)"
407 },
4772952b
TL
408 "mtu" : {
409 "default" : 1500,
410 "description" : "MTU for metrics transmission over UDP",
411 "maximum" : 65536,
412 "minimum" : 512,
413 "optional" : 1,
414 "type" : "integer",
415 "typetext" : "<integer> (512 - 65536)"
416 },
d2656385
TL
417 "organization" : {
418 "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
419 "optional" : 1,
420 "type" : "string",
421 "typetext" : "<string>"
422 },
4772952b
TL
423 "path" : {
424 "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
425 "format" : "graphite-path",
426 "optional" : 1,
427 "type" : "string",
428 "typetext" : "<string>"
429 },
430 "port" : {
431 "description" : "server network port",
d2656385
TL
432 "maximum" : 65536,
433 "minimum" : 1,
4772952b 434 "type" : "integer",
d2656385 435 "typetext" : "<integer> (1 - 65536)"
4772952b
TL
436 },
437 "proto" : {
438 "description" : "Protocol to send graphite data. TCP or UDP (default)",
439 "enum" : [
440 "udp",
441 "tcp"
442 ],
443 "optional" : 1,
444 "type" : "string"
445 },
446 "server" : {
447 "description" : "server dns name or IP address",
448 "format" : "address",
449 "type" : "string",
450 "typetext" : "<string>"
451 },
452 "timeout" : {
453 "default" : 1,
454 "description" : "graphite TCP socket timeout (default=1)",
455 "minimum" : 0,
456 "optional" : 1,
457 "type" : "integer",
458 "typetext" : "<integer> (0 - N)"
459 },
d2656385
TL
460 "token" : {
461 "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
462 "optional" : 1,
463 "type" : "string",
464 "typetext" : "<string>"
465 },
4772952b
TL
466 "type" : {
467 "description" : "Plugin type.",
468 "enum" : [
469 "graphite",
470 "influxdb"
471 ],
472 "format" : "pve-configid",
473 "type" : "string"
5370fa8c
TL
474 },
475 "verify-certificate" : {
476 "default" : 1,
477 "description" : "Set to 0 to disable certificate verification for https endpoints.",
478 "optional" : 1,
479 "type" : "boolean",
480 "typetext" : "<boolean>"
4772952b
TL
481 }
482 },
483 "type" : "object"
484 },
485 "permissions" : {
486 "check" : [
487 "perm",
488 "/",
489 [
490 "Sys.Modify"
491 ]
492 ]
493 },
494 "protected" : 1,
495 "returns" : {
496 "type" : "null"
497 }
498 },
499 "PUT" : {
500 "allowtoken" : 1,
501 "description" : "Update metric server configuration.",
502 "method" : "PUT",
503 "name" : "update",
504 "parameters" : {
505 "additionalProperties" : 0,
506 "properties" : {
d2656385
TL
507 "api-path-prefix" : {
508 "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
509 "optional" : 1,
510 "type" : "string",
511 "typetext" : "<string>"
512 },
513 "bucket" : {
514 "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
515 "optional" : 1,
516 "type" : "string",
517 "typetext" : "<string>"
518 },
4772952b
TL
519 "delete" : {
520 "description" : "A list of settings you want to delete.",
521 "format" : "pve-configid-list",
522 "maxLength" : 4096,
523 "optional" : 1,
524 "type" : "string",
525 "typetext" : "<string>"
526 },
527 "digest" : {
528 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
529 "maxLength" : 40,
530 "optional" : 1,
531 "type" : "string",
532 "typetext" : "<string>"
533 },
534 "disable" : {
535 "description" : "Flag to disable the plugin.",
536 "optional" : 1,
537 "type" : "boolean",
538 "typetext" : "<boolean>"
539 },
540 "id" : {
541 "description" : "The ID of the entry.",
542 "format" : "pve-configid",
543 "type" : "string",
544 "typetext" : "<string>"
545 },
d2656385
TL
546 "influxdbproto" : {
547 "default" : "udp",
548 "enum" : [
549 "udp",
550 "http",
551 "https"
552 ],
553 "optional" : 1,
554 "type" : "string"
555 },
556 "max-body-size" : {
557 "default" : 25000000,
558 "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
559 "minimum" : 1,
560 "optional" : 1,
561 "type" : "integer",
562 "typetext" : "<integer> (1 - N)"
563 },
4772952b
TL
564 "mtu" : {
565 "default" : 1500,
566 "description" : "MTU for metrics transmission over UDP",
567 "maximum" : 65536,
568 "minimum" : 512,
569 "optional" : 1,
570 "type" : "integer",
571 "typetext" : "<integer> (512 - 65536)"
572 },
d2656385
TL
573 "organization" : {
574 "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
575 "optional" : 1,
576 "type" : "string",
577 "typetext" : "<string>"
578 },
4772952b
TL
579 "path" : {
580 "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
581 "format" : "graphite-path",
582 "optional" : 1,
583 "type" : "string",
584 "typetext" : "<string>"
585 },
586 "port" : {
587 "description" : "server network port",
d2656385
TL
588 "maximum" : 65536,
589 "minimum" : 1,
4772952b 590 "type" : "integer",
d2656385 591 "typetext" : "<integer> (1 - 65536)"
4772952b
TL
592 },
593 "proto" : {
594 "description" : "Protocol to send graphite data. TCP or UDP (default)",
595 "enum" : [
596 "udp",
597 "tcp"
598 ],
599 "optional" : 1,
600 "type" : "string"
601 },
602 "server" : {
603 "description" : "server dns name or IP address",
604 "format" : "address",
605 "type" : "string",
606 "typetext" : "<string>"
607 },
608 "timeout" : {
609 "default" : 1,
610 "description" : "graphite TCP socket timeout (default=1)",
611 "minimum" : 0,
612 "optional" : 1,
613 "type" : "integer",
614 "typetext" : "<integer> (0 - N)"
d2656385
TL
615 },
616 "token" : {
617 "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
618 "optional" : 1,
619 "type" : "string",
620 "typetext" : "<string>"
5370fa8c
TL
621 },
622 "verify-certificate" : {
623 "default" : 1,
624 "description" : "Set to 0 to disable certificate verification for https endpoints.",
625 "optional" : 1,
626 "type" : "boolean",
627 "typetext" : "<boolean>"
4772952b
TL
628 }
629 },
630 "type" : "object"
631 },
632 "permissions" : {
633 "check" : [
634 "perm",
635 "/",
636 [
637 "Sys.Modify"
638 ]
639 ]
640 },
641 "protected" : 1,
642 "returns" : {
643 "type" : "null"
644 }
645 }
646 },
647 "leaf" : 1,
648 "path" : "/cluster/metrics/server/{id}",
649 "text" : "{id}"
650 }
651 ],
652 "info" : {
653 "GET" : {
654 "allowtoken" : 1,
655 "description" : "List configured metric servers.",
656 "method" : "GET",
657 "name" : "server_index",
658 "parameters" : {
659 "additionalProperties" : 0
660 },
661 "permissions" : {
662 "check" : [
663 "perm",
664 "/",
665 [
666 "Sys.Audit"
667 ]
668 ]
669 },
670 "returns" : {
671 "items" : {
672 "properties" : {
673 "disable" : {
674 "description" : "Flag to disable the plugin.",
675 "type" : "boolean"
676 },
677 "id" : {
678 "description" : "The ID of the entry.",
679 "type" : "string"
680 },
681 "port" : {
682 "description" : "Server network port",
683 "type" : "integer"
684 },
685 "server" : {
686 "description" : "Server dns name or IP address",
687 "type" : "string"
688 },
689 "type" : {
690 "description" : "Plugin type.",
691 "type" : "string"
692 }
693 },
694 "type" : "object"
695 },
696 "links" : [
697 {
698 "href" : "{id}",
699 "rel" : "child"
700 }
701 ],
702 "type" : "array"
703 }
704 }
705 },
706 "leaf" : 0,
707 "path" : "/cluster/metrics/server",
708 "text" : "server"
709 }
710 ],
711 "info" : {
712 "GET" : {
713 "allowtoken" : 1,
714 "description" : "Metrics index.",
715 "method" : "GET",
716 "name" : "index",
717 "parameters" : {
718 "additionalProperties" : 0
719 },
720 "permissions" : {
721 "user" : "all"
722 },
723 "returns" : {
724 "items" : {
725 "properties" : {},
726 "type" : "object"
727 },
728 "links" : [
729 {
730 "href" : "{name}",
731 "rel" : "child"
732 }
733 ],
734 "type" : "array"
735 }
736 }
737 },
738 "leaf" : 0,
739 "path" : "/cluster/metrics",
740 "text" : "metrics"
741 },
32d876b5
DM
742 {
743 "children" : [
c5aa7e14
TL
744 {
745 "info" : {
746 "GET" : {
747 "allowtoken" : 1,
748 "description" : "Return the version of the cluster join API available on this node.",
749 "method" : "GET",
750 "name" : "join_api_version",
751 "parameters" : {
752 "additionalProperties" : 0
753 },
754 "permissions" : {
755 "check" : [
756 "perm",
757 "/",
758 [
759 "Sys.Audit"
760 ]
761 ]
762 },
763 "returns" : {
764 "description" : "Cluster Join API version, currently 1",
765 "minimum" : 0,
766 "type" : "integer"
767 }
768 }
769 },
770 "leaf" : 1,
771 "path" : "/cluster/config/apiversion",
772 "text" : "apiversion"
773 },
32d876b5 774 {
27a7acb2
DM
775 "children" : [
776 {
777 "info" : {
778 "DELETE" : {
e9cd3bd4 779 "allowtoken" : 1,
27a7acb2
DM
780 "description" : "Removes a node from the cluster configuration.",
781 "method" : "DELETE",
782 "name" : "delnode",
783 "parameters" : {
784 "additionalProperties" : 0,
785 "properties" : {
786 "node" : {
787 "description" : "The cluster node name.",
788 "format" : "pve-node",
789 "type" : "string",
790 "typetext" : "<string>"
791 }
792 }
793 },
794 "protected" : 1,
795 "returns" : {
796 "type" : "null"
797 }
798 },
799 "POST" : {
e9cd3bd4 800 "allowtoken" : 1,
e2d681b3 801 "description" : "Adds a node to the cluster configuration. This call is for internal use.",
27a7acb2
DM
802 "method" : "POST",
803 "name" : "addnode",
804 "parameters" : {
805 "additionalProperties" : 0,
806 "properties" : {
c5aa7e14
TL
807 "apiversion" : {
808 "description" : "The JOIN_API_VERSION of the new node.",
809 "optional" : 1,
810 "type" : "integer",
811 "typetext" : "<integer>"
812 },
27a7acb2
DM
813 "force" : {
814 "description" : "Do not throw error if node already exists.",
815 "optional" : 1,
816 "type" : "boolean",
817 "typetext" : "<boolean>"
818 },
1e3f8156 819 "link[n]" : {
c5aa7e14 820 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
821 "format" : {
822 "address" : {
823 "default_key" : 1,
824 "description" : "Hostname (or IP) of this corosync link address.",
825 "format" : "address",
826 "format_description" : "IP",
827 "type" : "string"
828 },
829 "priority" : {
830 "default" : 0,
c5aa7e14 831 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
832 "maximum" : 255,
833 "minimum" : 0,
834 "optional" : 1,
835 "type" : "integer"
836 }
837 },
838 "optional" : 1,
839 "type" : "string",
840 "typetext" : "[address=]<IP> [,priority=<integer>]"
841 },
c5aa7e14
TL
842 "new_node_ip" : {
843 "description" : "IP Address of node to add. Used as fallback if no links are given.",
844 "format" : "ip",
845 "optional" : 1,
846 "type" : "string",
847 "typetext" : "<string>"
848 },
27a7acb2
DM
849 "node" : {
850 "description" : "The cluster node name.",
851 "format" : "pve-node",
852 "type" : "string",
853 "typetext" : "<string>"
854 },
855 "nodeid" : {
856 "description" : "Node id for this node.",
857 "minimum" : 1,
858 "optional" : 1,
859 "type" : "integer",
860 "typetext" : "<integer> (1 - N)"
861 },
27a7acb2
DM
862 "votes" : {
863 "description" : "Number of votes for this node",
864 "minimum" : 0,
865 "optional" : 1,
866 "type" : "integer",
867 "typetext" : "<integer> (0 - N)"
868 }
869 }
870 },
871 "protected" : 1,
872 "returns" : {
873 "properties" : {
874 "corosync_authkey" : {
875 "type" : "string"
876 },
877 "corosync_conf" : {
878 "type" : "string"
c5aa7e14
TL
879 },
880 "warnings" : {
881 "items" : {
882 "type" : "string"
883 },
884 "type" : "array"
27a7acb2
DM
885 }
886 },
887 "type" : "object"
888 }
889 }
890 },
891 "leaf" : 1,
892 "path" : "/cluster/config/nodes/{node}",
893 "text" : "{node}"
894 }
895 ],
32d876b5
DM
896 "info" : {
897 "GET" : {
e9cd3bd4 898 "allowtoken" : 1,
32d876b5
DM
899 "description" : "Corosync node list.",
900 "method" : "GET",
901 "name" : "nodes",
902 "parameters" : {
903 "additionalProperties" : 0
904 },
5d9c884c
DM
905 "permissions" : {
906 "check" : [
907 "perm",
908 "/",
909 [
910 "Sys.Audit"
911 ]
912 ]
913 },
32d876b5
DM
914 "returns" : {
915 "items" : {
916 "properties" : {
917 "node" : {
918 "type" : "string"
919 }
920 },
921 "type" : "object"
922 },
923 "links" : [
924 {
925 "href" : "{node}",
926 "rel" : "child"
927 }
928 ],
929 "type" : "array"
930 }
931 }
932 },
27a7acb2 933 "leaf" : 0,
32d876b5
DM
934 "path" : "/cluster/config/nodes",
935 "text" : "nodes"
936 },
27a7acb2
DM
937 {
938 "info" : {
939 "GET" : {
e9cd3bd4 940 "allowtoken" : 1,
27a7acb2
DM
941 "description" : "Get information needed to join this cluster over the connected node.",
942 "method" : "GET",
943 "name" : "join_info",
944 "parameters" : {
945 "additionalProperties" : 0,
946 "properties" : {
947 "node" : {
948 "default" : "current connected node",
949 "description" : "The node for which the joinee gets the nodeinfo. ",
950 "format" : "pve-node",
951 "optional" : 1,
952 "type" : "string",
953 "typetext" : "<string>"
954 }
955 }
956 },
a9a8e3d1
DM
957 "permissions" : {
958 "check" : [
959 "perm",
960 "/",
961 [
962 "Sys.Audit"
963 ]
964 ]
965 },
27a7acb2
DM
966 "returns" : {
967 "additionalProperties" : 0,
968 "properties" : {
969 "config_digest" : {
970 "type" : "string"
971 },
972 "nodelist" : {
973 "items" : {
974 "additionalProperties" : 1,
975 "properties" : {
976 "name" : {
977 "description" : "The cluster node name.",
978 "format" : "pve-node",
979 "type" : "string"
980 },
981 "nodeid" : {
982 "description" : "Node id for this node.",
983 "minimum" : 1,
984 "optional" : 1,
985 "type" : "integer"
986 },
987 "pve_addr" : {
988 "format" : "ip",
989 "type" : "string"
990 },
991 "pve_fp" : {
992 "description" : "Certificate SHA 256 fingerprint.",
993 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
994 "type" : "string"
995 },
996 "quorum_votes" : {
997 "minimum" : 0,
998 "type" : "integer"
999 },
1000 "ring0_addr" : {
c5aa7e14 1001 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1002 "format" : {
1003 "address" : {
1004 "default_key" : 1,
1005 "description" : "Hostname (or IP) of this corosync link address.",
1006 "format" : "address",
1007 "format_description" : "IP",
1008 "type" : "string"
1009 },
1010 "priority" : {
1011 "default" : 0,
c5aa7e14 1012 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1013 "maximum" : 255,
1014 "minimum" : 0,
1015 "optional" : 1,
1016 "type" : "integer"
1017 }
1018 },
27a7acb2
DM
1019 "optional" : 1,
1020 "type" : "string"
1021 }
1022 },
1023 "type" : "object"
1024 },
1025 "type" : "array"
1026 },
1027 "preferred_node" : {
1028 "description" : "The cluster node name.",
1029 "format" : "pve-node",
1030 "type" : "string"
1031 },
1032 "totem" : {
1033 "type" : "object"
1034 }
1035 },
1036 "type" : "object"
1037 }
1038 },
1039 "POST" : {
e9cd3bd4 1040 "allowtoken" : 1,
c5aa7e14 1041 "description" : "Joins this node into an existing cluster. If no links are given, default to IP resolved by node's hostname on single link (fallback fails for clusters with multiple links).",
27a7acb2
DM
1042 "method" : "POST",
1043 "name" : "join",
1044 "parameters" : {
1045 "additionalProperties" : 0,
1046 "properties" : {
1047 "fingerprint" : {
1048 "description" : "Certificate SHA 256 fingerprint.",
1049 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
1050 "type" : "string"
1051 },
1052 "force" : {
1053 "description" : "Do not throw error if node already exists.",
1054 "optional" : 1,
1055 "type" : "boolean",
1056 "typetext" : "<boolean>"
1057 },
1058 "hostname" : {
1059 "description" : "Hostname (or IP) of an existing cluster member.",
1060 "type" : "string",
1061 "typetext" : "<string>"
1062 },
1e3f8156 1063 "link[n]" : {
c5aa7e14 1064 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1065 "format" : {
1066 "address" : {
1067 "default_key" : 1,
1068 "description" : "Hostname (or IP) of this corosync link address.",
1069 "format" : "address",
1070 "format_description" : "IP",
1071 "type" : "string"
1072 },
1073 "priority" : {
1074 "default" : 0,
c5aa7e14 1075 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1076 "maximum" : 255,
1077 "minimum" : 0,
1078 "optional" : 1,
1079 "type" : "integer"
1080 }
1081 },
1082 "optional" : 1,
1083 "type" : "string",
1084 "typetext" : "[address=]<IP> [,priority=<integer>]"
1085 },
27a7acb2
DM
1086 "nodeid" : {
1087 "description" : "Node id for this node.",
1088 "minimum" : 1,
1089 "optional" : 1,
1090 "type" : "integer",
1091 "typetext" : "<integer> (1 - N)"
1092 },
1093 "password" : {
1094 "description" : "Superuser (root) password of peer node.",
1095 "maxLength" : 128,
1096 "type" : "string",
1097 "typetext" : "<string>"
1098 },
27a7acb2
DM
1099 "votes" : {
1100 "description" : "Number of votes for this node",
1101 "minimum" : 0,
1102 "optional" : 1,
1103 "type" : "integer",
1104 "typetext" : "<integer> (0 - N)"
1105 }
1106 }
1107 },
1108 "protected" : 1,
1109 "returns" : {
1110 "type" : "string"
1111 }
1112 }
1113 },
1114 "leaf" : 1,
1115 "path" : "/cluster/config/join",
1116 "text" : "join"
1117 },
32d876b5
DM
1118 {
1119 "info" : {
1120 "GET" : {
e9cd3bd4 1121 "allowtoken" : 1,
32d876b5
DM
1122 "description" : "Get corosync totem protocol settings.",
1123 "method" : "GET",
1124 "name" : "totem",
1125 "parameters" : {
1126 "additionalProperties" : 0
1127 },
5d9c884c
DM
1128 "permissions" : {
1129 "check" : [
1130 "perm",
1131 "/",
1132 [
1133 "Sys.Audit"
1134 ]
1135 ]
1136 },
32d876b5 1137 "returns" : {
32d876b5
DM
1138 "type" : "object"
1139 }
1140 }
1141 },
1142 "leaf" : 1,
1143 "path" : "/cluster/config/totem",
1144 "text" : "totem"
9226ccbc
TL
1145 },
1146 {
1147 "info" : {
1148 "GET" : {
e9cd3bd4 1149 "allowtoken" : 1,
9226ccbc
TL
1150 "description" : "Get QDevice status",
1151 "method" : "GET",
1152 "name" : "status",
1153 "parameters" : {
1154 "additionalProperties" : 0
1155 },
1156 "permissions" : {
1157 "check" : [
1158 "perm",
1159 "/",
1160 [
1161 "Sys.Audit"
1162 ]
1163 ]
1164 },
de786b48 1165 "protected" : 1,
9226ccbc
TL
1166 "returns" : {
1167 "type" : "object"
1168 }
1169 }
1170 },
1171 "leaf" : 1,
1172 "path" : "/cluster/config/qdevice",
1173 "text" : "qdevice"
32d876b5
DM
1174 }
1175 ],
1176 "info" : {
1177 "GET" : {
e9cd3bd4 1178 "allowtoken" : 1,
32d876b5
DM
1179 "description" : "Directory index.",
1180 "method" : "GET",
1181 "name" : "index",
1182 "parameters" : {
1183 "additionalProperties" : 0
1184 },
5d9c884c
DM
1185 "permissions" : {
1186 "check" : [
1187 "perm",
1188 "/",
1189 [
1190 "Sys.Audit"
1191 ]
1192 ]
1193 },
32d876b5
DM
1194 "returns" : {
1195 "items" : {
1196 "properties" : {},
1197 "type" : "object"
1198 },
1199 "links" : [
1200 {
1201 "href" : "{name}",
1202 "rel" : "child"
1203 }
1204 ],
1205 "type" : "array"
1206 }
27a7acb2
DM
1207 },
1208 "POST" : {
e9cd3bd4 1209 "allowtoken" : 1,
c5aa7e14 1210 "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
27a7acb2
DM
1211 "method" : "POST",
1212 "name" : "create",
1213 "parameters" : {
1214 "additionalProperties" : 0,
1215 "properties" : {
27a7acb2
DM
1216 "clustername" : {
1217 "description" : "The name of the cluster.",
1218 "format" : "pve-node",
1219 "maxLength" : 15,
1220 "type" : "string",
1221 "typetext" : "<string>"
1222 },
1e3f8156 1223 "link[n]" : {
c5aa7e14 1224 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1225 "format" : {
1226 "address" : {
1227 "default_key" : 1,
1228 "description" : "Hostname (or IP) of this corosync link address.",
1229 "format" : "address",
1230 "format_description" : "IP",
1231 "type" : "string"
1232 },
1233 "priority" : {
1234 "default" : 0,
c5aa7e14 1235 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1236 "maximum" : 255,
1237 "minimum" : 0,
1238 "optional" : 1,
1239 "type" : "integer"
1240 }
1241 },
1242 "optional" : 1,
1243 "type" : "string",
1244 "typetext" : "[address=]<IP> [,priority=<integer>]"
1245 },
27a7acb2
DM
1246 "nodeid" : {
1247 "description" : "Node id for this node.",
1248 "minimum" : 1,
1249 "optional" : 1,
1250 "type" : "integer",
1251 "typetext" : "<integer> (1 - N)"
1252 },
27a7acb2
DM
1253 "votes" : {
1254 "description" : "Number of votes for this node.",
1255 "minimum" : 1,
1256 "optional" : 1,
1257 "type" : "integer",
1258 "typetext" : "<integer> (1 - N)"
1259 }
1260 }
1261 },
1262 "protected" : 1,
1263 "returns" : {
1264 "type" : "string"
1265 }
32d876b5
DM
1266 }
1267 },
1268 "leaf" : 0,
1269 "path" : "/cluster/config",
1270 "text" : "config"
1271 },
56122987 1272 {
56122987
DM
1273 "children" : [
1274 {
56122987
DM
1275 "children" : [
1276 {
44660702
DM
1277 "children" : [
1278 {
1279 "info" : {
1280 "DELETE" : {
e9cd3bd4 1281 "allowtoken" : 1,
44660702
DM
1282 "description" : "Delete rule.",
1283 "method" : "DELETE",
1284 "name" : "delete_rule",
1285 "parameters" : {
1286 "additionalProperties" : 0,
1287 "properties" : {
1288 "digest" : {
1289 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1290 "maxLength" : 40,
1291 "optional" : 1,
013dc89f
DM
1292 "type" : "string",
1293 "typetext" : "<string>"
44660702
DM
1294 },
1295 "group" : {
1296 "description" : "Security Group name.",
4bd7df8b 1297 "maxLength" : 18,
44660702
DM
1298 "minLength" : 2,
1299 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1300 "type" : "string"
1301 },
1302 "pos" : {
1303 "description" : "Update rule at position <pos>.",
1304 "minimum" : 0,
1305 "optional" : 1,
4bd7df8b 1306 "type" : "integer",
013dc89f 1307 "typetext" : "<integer> (0 - N)"
44660702
DM
1308 }
1309 }
1310 },
1311 "permissions" : {
1312 "check" : [
1313 "perm",
1314 "/",
1315 [
1316 "Sys.Modify"
1317 ]
1318 ]
1319 },
1320 "protected" : 1,
1321 "proxyto" : null,
1322 "returns" : {
1323 "type" : "null"
7aacca6f
DM
1324 }
1325 },
44660702 1326 "GET" : {
e9cd3bd4 1327 "allowtoken" : 1,
44660702
DM
1328 "description" : "Get single rule data.",
1329 "method" : "GET",
1330 "name" : "get_rule",
1331 "parameters" : {
1332 "additionalProperties" : 0,
1333 "properties" : {
1334 "group" : {
1335 "description" : "Security Group name.",
4bd7df8b 1336 "maxLength" : 18,
44660702
DM
1337 "minLength" : 2,
1338 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1339 "type" : "string"
1340 },
1341 "pos" : {
1342 "description" : "Update rule at position <pos>.",
1343 "minimum" : 0,
1344 "optional" : 1,
4bd7df8b 1345 "type" : "integer",
013dc89f 1346 "typetext" : "<integer> (0 - N)"
44660702 1347 }
7aacca6f 1348 }
56122987 1349 },
44660702
DM
1350 "permissions" : {
1351 "check" : [
1352 "perm",
1353 "/",
1354 [
1355 "Sys.Audit"
1356 ]
1357 ]
1358 },
1359 "proxyto" : null,
1360 "returns" : {
1361 "properties" : {
e2d681b3
TL
1362 "action" : {
1363 "type" : "string"
1364 },
1365 "comment" : {
1366 "optional" : 1,
1367 "type" : "string"
1368 },
1369 "dest" : {
1370 "optional" : 1,
1371 "type" : "string"
1372 },
1373 "dport" : {
1374 "optional" : 1,
1375 "type" : "string"
1376 },
1377 "enable" : {
1378 "optional" : 1,
1379 "type" : "integer"
1380 },
4772952b
TL
1381 "icmp-type" : {
1382 "optional" : 1,
1383 "type" : "string"
1384 },
e2d681b3
TL
1385 "iface" : {
1386 "optional" : 1,
1387 "type" : "string"
1388 },
1389 "ipversion" : {
1390 "optional" : 1,
1391 "type" : "integer"
1392 },
95895385
TL
1393 "log" : {
1394 "description" : "Log level for firewall rule",
1395 "enum" : [
1396 "emerg",
1397 "alert",
1398 "crit",
1399 "err",
1400 "warning",
1401 "notice",
1402 "info",
1403 "debug",
1404 "nolog"
1405 ],
1406 "optional" : 1,
1407 "type" : "string"
1408 },
e2d681b3
TL
1409 "macro" : {
1410 "optional" : 1,
5f26e15b 1411 "type" : "string"
e2d681b3 1412 },
44660702
DM
1413 "pos" : {
1414 "type" : "integer"
e2d681b3
TL
1415 },
1416 "proto" : {
1417 "optional" : 1,
1418 "type" : "string"
1419 },
1420 "source" : {
1421 "optional" : 1,
1422 "type" : "string"
1423 },
1424 "sport" : {
1425 "optional" : 1,
1426 "type" : "string"
1427 },
1428 "type" : {
1429 "type" : "string"
44660702
DM
1430 }
1431 },
1432 "type" : "object"
56122987 1433 }
44660702 1434 },
7aacca6f 1435 "PUT" : {
e9cd3bd4 1436 "allowtoken" : 1,
44660702
DM
1437 "description" : "Modify rule data.",
1438 "method" : "PUT",
1439 "name" : "update_rule",
7aacca6f
DM
1440 "parameters" : {
1441 "additionalProperties" : 0,
1442 "properties" : {
44660702
DM
1443 "action" : {
1444 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
7aacca6f 1445 "maxLength" : 20,
44660702 1446 "minLength" : 2,
7aacca6f 1447 "optional" : 1,
44660702 1448 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
1449 "type" : "string"
1450 },
44660702 1451 "comment" : {
e94f0d56 1452 "description" : "Descriptive comment.",
7aacca6f 1453 "optional" : 1,
013dc89f
DM
1454 "type" : "string",
1455 "typetext" : "<string>"
7aacca6f 1456 },
44660702
DM
1457 "delete" : {
1458 "description" : "A list of settings you want to delete.",
1459 "format" : "pve-configid-list",
7aacca6f 1460 "optional" : 1,
013dc89f
DM
1461 "type" : "string",
1462 "typetext" : "<string>"
7aacca6f 1463 },
44660702
DM
1464 "dest" : {
1465 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1466 "format" : "pve-fw-addr-spec",
0695fdaf 1467 "maxLength" : 512,
7aacca6f 1468 "optional" : 1,
013dc89f
DM
1469 "type" : "string",
1470 "typetext" : "<string>"
7aacca6f
DM
1471 },
1472 "digest" : {
1473 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 1474 "maxLength" : 40,
7aacca6f 1475 "optional" : 1,
013dc89f
DM
1476 "type" : "string",
1477 "typetext" : "<string>"
7aacca6f 1478 },
44660702
DM
1479 "dport" : {
1480 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1481 "format" : "pve-fw-dport-spec",
7aacca6f 1482 "optional" : 1,
013dc89f
DM
1483 "type" : "string",
1484 "typetext" : "<string>"
7aacca6f 1485 },
44660702 1486 "enable" : {
e94f0d56 1487 "description" : "Flag to enable/disable a rule.",
44660702 1488 "minimum" : 0,
7aacca6f 1489 "optional" : 1,
4bd7df8b 1490 "type" : "integer",
013dc89f 1491 "typetext" : "<integer> (0 - N)"
7aacca6f 1492 },
44660702
DM
1493 "group" : {
1494 "description" : "Security Group name.",
4bd7df8b 1495 "maxLength" : 18,
44660702
DM
1496 "minLength" : 2,
1497 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1498 "type" : "string"
1499 },
4772952b 1500 "icmp-type" : {
287a95cf 1501 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
1502 "format" : "pve-fw-icmp-type-spec",
1503 "optional" : 1,
1504 "type" : "string",
1505 "typetext" : "<string>"
1506 },
44660702
DM
1507 "iface" : {
1508 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
1509 "format" : "pve-iface",
1510 "maxLength" : 20,
1511 "minLength" : 2,
7aacca6f 1512 "optional" : 1,
013dc89f
DM
1513 "type" : "string",
1514 "typetext" : "<string>"
7aacca6f 1515 },
95895385
TL
1516 "log" : {
1517 "description" : "Log level for firewall rule.",
1518 "enum" : [
1519 "emerg",
1520 "alert",
1521 "crit",
1522 "err",
1523 "warning",
1524 "notice",
1525 "info",
1526 "debug",
1527 "nolog"
1528 ],
1529 "optional" : 1,
1530 "type" : "string"
1531 },
44660702 1532 "macro" : {
e94f0d56 1533 "description" : "Use predefined standard macro.",
44660702
DM
1534 "maxLength" : 128,
1535 "optional" : 1,
013dc89f
DM
1536 "type" : "string",
1537 "typetext" : "<string>"
7aacca6f
DM
1538 },
1539 "moveto" : {
1540 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44660702 1541 "minimum" : 0,
7aacca6f 1542 "optional" : 1,
4bd7df8b 1543 "type" : "integer",
013dc89f 1544 "typetext" : "<integer> (0 - N)"
7aacca6f 1545 },
44660702
DM
1546 "pos" : {
1547 "description" : "Update rule at position <pos>.",
1548 "minimum" : 0,
1549 "optional" : 1,
4bd7df8b 1550 "type" : "integer",
013dc89f 1551 "typetext" : "<integer> (0 - N)"
7aacca6f 1552 },
44660702
DM
1553 "proto" : {
1554 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
1555 "format" : "pve-fw-protocol-spec",
7aacca6f 1556 "optional" : 1,
013dc89f
DM
1557 "type" : "string",
1558 "typetext" : "<string>"
44660702
DM
1559 },
1560 "source" : {
1561 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1562 "format" : "pve-fw-addr-spec",
0695fdaf 1563 "maxLength" : 512,
44660702 1564 "optional" : 1,
013dc89f
DM
1565 "type" : "string",
1566 "typetext" : "<string>"
44660702
DM
1567 },
1568 "sport" : {
1569 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1570 "format" : "pve-fw-sport-spec",
1571 "optional" : 1,
013dc89f
DM
1572 "type" : "string",
1573 "typetext" : "<string>"
7aacca6f
DM
1574 },
1575 "type" : {
e94f0d56 1576 "description" : "Rule type.",
7aacca6f
DM
1577 "enum" : [
1578 "in",
1579 "out",
1580 "group"
1581 ],
1582 "optional" : 1,
1583 "type" : "string"
1584 }
1585 }
1586 },
7aacca6f
DM
1587 "permissions" : {
1588 "check" : [
1589 "perm",
1590 "/",
1591 [
1592 "Sys.Modify"
1593 ]
1594 ]
1595 },
44660702 1596 "protected" : 1,
7aacca6f
DM
1597 "proxyto" : null,
1598 "returns" : {
1599 "type" : "null"
1600 }
7aacca6f
DM
1601 }
1602 },
44660702 1603 "leaf" : 1,
7aacca6f 1604 "path" : "/cluster/firewall/groups/{group}/{pos}",
44660702 1605 "text" : "{pos}"
7aacca6f
DM
1606 }
1607 ],
44660702
DM
1608 "info" : {
1609 "DELETE" : {
e9cd3bd4 1610 "allowtoken" : 1,
44660702
DM
1611 "description" : "Delete security group.",
1612 "method" : "DELETE",
1613 "name" : "delete_security_group",
1614 "parameters" : {
1615 "additionalProperties" : 0,
1616 "properties" : {
1617 "group" : {
1618 "description" : "Security Group name.",
4bd7df8b 1619 "maxLength" : 18,
44660702
DM
1620 "minLength" : 2,
1621 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1622 "type" : "string"
1623 }
56122987 1624 }
7aacca6f 1625 },
44660702
DM
1626 "permissions" : {
1627 "check" : [
1628 "perm",
1629 "/",
1630 [
1631 "Sys.Modify"
1632 ]
7aacca6f 1633 ]
56122987 1634 },
44660702
DM
1635 "protected" : 1,
1636 "returns" : {
1637 "type" : "null"
56122987 1638 }
7aacca6f 1639 },
7aacca6f 1640 "GET" : {
e9cd3bd4 1641 "allowtoken" : 1,
44660702 1642 "description" : "List rules.",
7aacca6f 1643 "method" : "GET",
44660702
DM
1644 "name" : "get_rules",
1645 "parameters" : {
1646 "additionalProperties" : 0,
7aacca6f 1647 "properties" : {
44660702
DM
1648 "group" : {
1649 "description" : "Security Group name.",
4bd7df8b 1650 "maxLength" : 18,
44660702
DM
1651 "minLength" : 2,
1652 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1653 "type" : "string"
7aacca6f 1654 }
44660702 1655 }
7aacca6f
DM
1656 },
1657 "permissions" : {
1658 "check" : [
1659 "perm",
1660 "/",
1661 [
1662 "Sys.Audit"
1663 ]
1664 ]
1665 },
44660702
DM
1666 "proxyto" : null,
1667 "returns" : {
1668 "items" : {
1669 "properties" : {
1670 "pos" : {
1671 "type" : "integer"
1672 }
1673 },
1674 "type" : "object"
1675 },
1676 "links" : [
1677 {
1678 "href" : "{pos}",
1679 "rel" : "child"
1680 }
1681 ],
1682 "type" : "array"
1683 }
1684 },
1685 "POST" : {
e9cd3bd4 1686 "allowtoken" : 1,
44660702
DM
1687 "description" : "Create new rule.",
1688 "method" : "POST",
1689 "name" : "create_rule",
7aacca6f
DM
1690 "parameters" : {
1691 "additionalProperties" : 0,
1692 "properties" : {
44660702
DM
1693 "action" : {
1694 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
1695 "maxLength" : 20,
56122987 1696 "minLength" : 2,
44660702
DM
1697 "optional" : 0,
1698 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 1699 "type" : "string"
56122987 1700 },
44660702 1701 "comment" : {
e94f0d56 1702 "description" : "Descriptive comment.",
56122987 1703 "optional" : 1,
013dc89f
DM
1704 "type" : "string",
1705 "typetext" : "<string>"
56122987 1706 },
44660702
DM
1707 "dest" : {
1708 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
56122987 1709 "format" : "pve-fw-addr-spec",
0695fdaf 1710 "maxLength" : 512,
56122987 1711 "optional" : 1,
013dc89f
DM
1712 "type" : "string",
1713 "typetext" : "<string>"
56122987 1714 },
44660702
DM
1715 "digest" : {
1716 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1717 "maxLength" : 40,
7aacca6f 1718 "optional" : 1,
013dc89f
DM
1719 "type" : "string",
1720 "typetext" : "<string>"
56122987 1721 },
44660702
DM
1722 "dport" : {
1723 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1724 "format" : "pve-fw-dport-spec",
56122987 1725 "optional" : 1,
013dc89f
DM
1726 "type" : "string",
1727 "typetext" : "<string>"
56122987 1728 },
7aacca6f 1729 "enable" : {
e94f0d56 1730 "description" : "Flag to enable/disable a rule.",
44660702 1731 "minimum" : 0,
7aacca6f 1732 "optional" : 1,
4bd7df8b 1733 "type" : "integer",
013dc89f 1734 "typetext" : "<integer> (0 - N)"
56122987 1735 },
44660702
DM
1736 "group" : {
1737 "description" : "Security Group name.",
4bd7df8b 1738 "maxLength" : 18,
44660702 1739 "minLength" : 2,
7aacca6f 1740 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
1741 "type" : "string"
1742 },
4772952b 1743 "icmp-type" : {
287a95cf 1744 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
1745 "format" : "pve-fw-icmp-type-spec",
1746 "optional" : 1,
1747 "type" : "string",
1748 "typetext" : "<string>"
1749 },
44660702
DM
1750 "iface" : {
1751 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
1752 "format" : "pve-iface",
1753 "maxLength" : 20,
7aacca6f 1754 "minLength" : 2,
44660702 1755 "optional" : 1,
013dc89f
DM
1756 "type" : "string",
1757 "typetext" : "<string>"
56122987 1758 },
95895385
TL
1759 "log" : {
1760 "description" : "Log level for firewall rule.",
1761 "enum" : [
1762 "emerg",
1763 "alert",
1764 "crit",
1765 "err",
1766 "warning",
1767 "notice",
1768 "info",
1769 "debug",
1770 "nolog"
1771 ],
1772 "optional" : 1,
1773 "type" : "string"
1774 },
7aacca6f 1775 "macro" : {
e94f0d56 1776 "description" : "Use predefined standard macro.",
44660702 1777 "maxLength" : 128,
7aacca6f 1778 "optional" : 1,
013dc89f
DM
1779 "type" : "string",
1780 "typetext" : "<string>"
7aacca6f
DM
1781 },
1782 "pos" : {
1783 "description" : "Update rule at position <pos>.",
44660702 1784 "minimum" : 0,
56122987 1785 "optional" : 1,
4bd7df8b 1786 "type" : "integer",
013dc89f 1787 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
1788 },
1789 "proto" : {
1790 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44660702 1791 "format" : "pve-fw-protocol-spec",
7aacca6f 1792 "optional" : 1,
013dc89f
DM
1793 "type" : "string",
1794 "typetext" : "<string>"
44660702
DM
1795 },
1796 "source" : {
1797 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1798 "format" : "pve-fw-addr-spec",
0695fdaf 1799 "maxLength" : 512,
44660702 1800 "optional" : 1,
013dc89f
DM
1801 "type" : "string",
1802 "typetext" : "<string>"
44660702
DM
1803 },
1804 "sport" : {
1805 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1806 "format" : "pve-fw-sport-spec",
1807 "optional" : 1,
013dc89f
DM
1808 "type" : "string",
1809 "typetext" : "<string>"
44660702
DM
1810 },
1811 "type" : {
e94f0d56 1812 "description" : "Rule type.",
44660702
DM
1813 "enum" : [
1814 "in",
1815 "out",
1816 "group"
1817 ],
1818 "optional" : 0,
1819 "type" : "string"
56122987 1820 }
44660702 1821 }
56122987 1822 },
56122987
DM
1823 "permissions" : {
1824 "check" : [
1825 "perm",
1826 "/",
1827 [
1828 "Sys.Modify"
1829 ]
1830 ]
1831 },
44660702
DM
1832 "protected" : 1,
1833 "proxyto" : null,
56122987
DM
1834 "returns" : {
1835 "type" : "null"
7aacca6f 1836 }
44660702
DM
1837 }
1838 },
1839 "leaf" : 0,
1840 "path" : "/cluster/firewall/groups/{group}",
1841 "text" : "{group}"
1842 }
1843 ],
1844 "info" : {
1845 "GET" : {
e9cd3bd4 1846 "allowtoken" : 1,
44660702
DM
1847 "description" : "List security groups.",
1848 "method" : "GET",
1849 "name" : "list_security_groups",
1850 "parameters" : {
1851 "additionalProperties" : 0
1852 },
1853 "permissions" : {
1854 "user" : "all"
1855 },
1856 "returns" : {
1857 "items" : {
1858 "properties" : {
1859 "comment" : {
1860 "optional" : 1,
1861 "type" : "string"
1862 },
1863 "digest" : {
1864 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1865 "maxLength" : 40,
1866 "optional" : 0,
1867 "type" : "string"
1868 },
1869 "group" : {
1870 "description" : "Security Group name.",
4bd7df8b 1871 "maxLength" : 18,
44660702
DM
1872 "minLength" : 2,
1873 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1874 "type" : "string"
1875 }
1876 },
1877 "type" : "object"
56122987 1878 },
44660702
DM
1879 "links" : [
1880 {
1881 "href" : "{group}",
1882 "rel" : "child"
1883 }
1884 ],
1885 "type" : "array"
1886 }
1887 },
1888 "POST" : {
e9cd3bd4 1889 "allowtoken" : 1,
44660702
DM
1890 "description" : "Create new security group.",
1891 "method" : "POST",
1892 "name" : "create_security_group",
1893 "parameters" : {
1894 "additionalProperties" : 0,
1895 "properties" : {
1896 "comment" : {
1897 "optional" : 1,
013dc89f
DM
1898 "type" : "string",
1899 "typetext" : "<string>"
44660702
DM
1900 },
1901 "digest" : {
1902 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1903 "maxLength" : 40,
1904 "optional" : 1,
013dc89f
DM
1905 "type" : "string",
1906 "typetext" : "<string>"
44660702
DM
1907 },
1908 "group" : {
1909 "description" : "Security Group name.",
4bd7df8b 1910 "maxLength" : 18,
44660702
DM
1911 "minLength" : 2,
1912 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1913 "type" : "string"
1914 },
1915 "rename" : {
1916 "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
4bd7df8b 1917 "maxLength" : 18,
44660702
DM
1918 "minLength" : 2,
1919 "optional" : 1,
1920 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1921 "type" : "string"
1922 }
1923 }
1924 },
1925 "permissions" : {
1926 "check" : [
1927 "perm",
1928 "/",
1929 [
1930 "Sys.Modify"
1931 ]
1932 ]
1933 },
1934 "protected" : 1,
1935 "returns" : {
1936 "type" : "null"
1937 }
1938 }
1939 },
1940 "leaf" : 0,
1941 "path" : "/cluster/firewall/groups",
1942 "text" : "groups"
1943 },
1944 {
1945 "children" : [
1946 {
1947 "info" : {
7aacca6f 1948 "DELETE" : {
e9cd3bd4 1949 "allowtoken" : 1,
44660702
DM
1950 "description" : "Delete rule.",
1951 "method" : "DELETE",
1952 "name" : "delete_rule",
1953 "parameters" : {
1954 "additionalProperties" : 0,
1955 "properties" : {
1956 "digest" : {
1957 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1958 "maxLength" : 40,
1959 "optional" : 1,
013dc89f
DM
1960 "type" : "string",
1961 "typetext" : "<string>"
44660702
DM
1962 },
1963 "pos" : {
1964 "description" : "Update rule at position <pos>.",
1965 "minimum" : 0,
1966 "optional" : 1,
4bd7df8b 1967 "type" : "integer",
013dc89f 1968 "typetext" : "<integer> (0 - N)"
44660702
DM
1969 }
1970 }
1971 },
56122987
DM
1972 "permissions" : {
1973 "check" : [
1974 "perm",
1975 "/",
1976 [
7aacca6f 1977 "Sys.Modify"
56122987
DM
1978 ]
1979 ]
1980 },
44660702 1981 "protected" : 1,
56122987
DM
1982 "proxyto" : null,
1983 "returns" : {
7aacca6f 1984 "type" : "null"
44660702
DM
1985 }
1986 },
1987 "GET" : {
e9cd3bd4 1988 "allowtoken" : 1,
44660702
DM
1989 "description" : "Get single rule data.",
1990 "method" : "GET",
1991 "name" : "get_rule",
56122987
DM
1992 "parameters" : {
1993 "additionalProperties" : 0,
1994 "properties" : {
1995 "pos" : {
7aacca6f 1996 "description" : "Update rule at position <pos>.",
44660702 1997 "minimum" : 0,
56122987 1998 "optional" : 1,
4bd7df8b 1999 "type" : "integer",
013dc89f 2000 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
2001 }
2002 }
2003 },
7aacca6f
DM
2004 "permissions" : {
2005 "check" : [
2006 "perm",
2007 "/",
2008 [
2009 "Sys.Audit"
2010 ]
2011 ]
56122987 2012 },
44660702
DM
2013 "proxyto" : null,
2014 "returns" : {
7aacca6f 2015 "properties" : {
e2d681b3
TL
2016 "action" : {
2017 "type" : "string"
2018 },
2019 "comment" : {
2020 "optional" : 1,
2021 "type" : "string"
2022 },
2023 "dest" : {
2024 "optional" : 1,
2025 "type" : "string"
2026 },
2027 "dport" : {
2028 "optional" : 1,
2029 "type" : "string"
2030 },
2031 "enable" : {
2032 "optional" : 1,
2033 "type" : "integer"
2034 },
4772952b
TL
2035 "icmp-type" : {
2036 "optional" : 1,
2037 "type" : "string"
2038 },
e2d681b3
TL
2039 "iface" : {
2040 "optional" : 1,
2041 "type" : "string"
2042 },
2043 "ipversion" : {
2044 "optional" : 1,
2045 "type" : "integer"
2046 },
95895385
TL
2047 "log" : {
2048 "description" : "Log level for firewall rule",
2049 "enum" : [
2050 "emerg",
2051 "alert",
2052 "crit",
2053 "err",
2054 "warning",
2055 "notice",
2056 "info",
2057 "debug",
2058 "nolog"
2059 ],
2060 "optional" : 1,
2061 "type" : "string"
2062 },
e2d681b3
TL
2063 "macro" : {
2064 "optional" : 1,
5f26e15b 2065 "type" : "string"
e2d681b3 2066 },
44660702
DM
2067 "pos" : {
2068 "type" : "integer"
e2d681b3
TL
2069 },
2070 "proto" : {
2071 "optional" : 1,
2072 "type" : "string"
2073 },
2074 "source" : {
2075 "optional" : 1,
2076 "type" : "string"
2077 },
2078 "sport" : {
2079 "optional" : 1,
2080 "type" : "string"
2081 },
2082 "type" : {
2083 "type" : "string"
7aacca6f 2084 }
44660702
DM
2085 },
2086 "type" : "object"
2087 }
56122987 2088 },
44660702 2089 "PUT" : {
e9cd3bd4 2090 "allowtoken" : 1,
44660702
DM
2091 "description" : "Modify rule data.",
2092 "method" : "PUT",
2093 "name" : "update_rule",
7aacca6f
DM
2094 "parameters" : {
2095 "additionalProperties" : 0,
2096 "properties" : {
44660702
DM
2097 "action" : {
2098 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2099 "maxLength" : 20,
2100 "minLength" : 2,
2101 "optional" : 1,
2102 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2103 "type" : "string"
7aacca6f 2104 },
44660702 2105 "comment" : {
e94f0d56 2106 "description" : "Descriptive comment.",
44660702 2107 "optional" : 1,
013dc89f
DM
2108 "type" : "string",
2109 "typetext" : "<string>"
7aacca6f 2110 },
44660702
DM
2111 "delete" : {
2112 "description" : "A list of settings you want to delete.",
2113 "format" : "pve-configid-list",
2114 "optional" : 1,
013dc89f
DM
2115 "type" : "string",
2116 "typetext" : "<string>"
44660702
DM
2117 },
2118 "dest" : {
2119 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2120 "format" : "pve-fw-addr-spec",
0695fdaf 2121 "maxLength" : 512,
44660702 2122 "optional" : 1,
013dc89f
DM
2123 "type" : "string",
2124 "typetext" : "<string>"
44660702
DM
2125 },
2126 "digest" : {
2127 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2128 "maxLength" : 40,
2129 "optional" : 1,
013dc89f
DM
2130 "type" : "string",
2131 "typetext" : "<string>"
44660702
DM
2132 },
2133 "dport" : {
2134 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2135 "format" : "pve-fw-dport-spec",
2136 "optional" : 1,
013dc89f
DM
2137 "type" : "string",
2138 "typetext" : "<string>"
44660702
DM
2139 },
2140 "enable" : {
e94f0d56 2141 "description" : "Flag to enable/disable a rule.",
44660702
DM
2142 "minimum" : 0,
2143 "optional" : 1,
4bd7df8b 2144 "type" : "integer",
013dc89f 2145 "typetext" : "<integer> (0 - N)"
44660702 2146 },
4772952b 2147 "icmp-type" : {
287a95cf 2148 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
2149 "format" : "pve-fw-icmp-type-spec",
2150 "optional" : 1,
2151 "type" : "string",
2152 "typetext" : "<string>"
2153 },
44660702
DM
2154 "iface" : {
2155 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
2156 "format" : "pve-iface",
2157 "maxLength" : 20,
7aacca6f 2158 "minLength" : 2,
44660702 2159 "optional" : 1,
013dc89f
DM
2160 "type" : "string",
2161 "typetext" : "<string>"
7aacca6f 2162 },
95895385
TL
2163 "log" : {
2164 "description" : "Log level for firewall rule.",
2165 "enum" : [
2166 "emerg",
2167 "alert",
2168 "crit",
2169 "err",
2170 "warning",
2171 "notice",
2172 "info",
2173 "debug",
2174 "nolog"
2175 ],
2176 "optional" : 1,
2177 "type" : "string"
2178 },
44660702 2179 "macro" : {
e94f0d56 2180 "description" : "Use predefined standard macro.",
44660702
DM
2181 "maxLength" : 128,
2182 "optional" : 1,
013dc89f
DM
2183 "type" : "string",
2184 "typetext" : "<string>"
44660702
DM
2185 },
2186 "moveto" : {
2187 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
2188 "minimum" : 0,
2189 "optional" : 1,
4bd7df8b 2190 "type" : "integer",
013dc89f 2191 "typetext" : "<integer> (0 - N)"
44660702
DM
2192 },
2193 "pos" : {
2194 "description" : "Update rule at position <pos>.",
2195 "minimum" : 0,
2196 "optional" : 1,
4bd7df8b 2197 "type" : "integer",
013dc89f 2198 "typetext" : "<integer> (0 - N)"
44660702
DM
2199 },
2200 "proto" : {
2201 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2202 "format" : "pve-fw-protocol-spec",
2203 "optional" : 1,
013dc89f
DM
2204 "type" : "string",
2205 "typetext" : "<string>"
44660702
DM
2206 },
2207 "source" : {
2208 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2209 "format" : "pve-fw-addr-spec",
0695fdaf 2210 "maxLength" : 512,
44660702 2211 "optional" : 1,
013dc89f
DM
2212 "type" : "string",
2213 "typetext" : "<string>"
44660702
DM
2214 },
2215 "sport" : {
2216 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2217 "format" : "pve-fw-sport-spec",
2218 "optional" : 1,
013dc89f
DM
2219 "type" : "string",
2220 "typetext" : "<string>"
44660702
DM
2221 },
2222 "type" : {
e94f0d56 2223 "description" : "Rule type.",
44660702
DM
2224 "enum" : [
2225 "in",
2226 "out",
2227 "group"
2228 ],
2229 "optional" : 1,
2230 "type" : "string"
7aacca6f 2231 }
56122987
DM
2232 }
2233 },
7aacca6f
DM
2234 "permissions" : {
2235 "check" : [
2236 "perm",
2237 "/",
2238 [
2239 "Sys.Modify"
2240 ]
2241 ]
2242 },
44660702
DM
2243 "protected" : 1,
2244 "proxyto" : null,
2245 "returns" : {
2246 "type" : "null"
2247 }
7aacca6f 2248 }
56122987 2249 },
44660702
DM
2250 "leaf" : 1,
2251 "path" : "/cluster/firewall/rules/{pos}",
2252 "text" : "{pos}"
7aacca6f
DM
2253 }
2254 ],
7aacca6f 2255 "info" : {
44660702 2256 "GET" : {
e9cd3bd4 2257 "allowtoken" : 1,
44660702
DM
2258 "description" : "List rules.",
2259 "method" : "GET",
2260 "name" : "get_rules",
7aacca6f 2261 "parameters" : {
44660702 2262 "additionalProperties" : 0
7aacca6f
DM
2263 },
2264 "permissions" : {
2265 "check" : [
2266 "perm",
2267 "/",
2268 [
44660702 2269 "Sys.Audit"
7aacca6f
DM
2270 ]
2271 ]
2272 },
44660702 2273 "proxyto" : null,
7aacca6f 2274 "returns" : {
7aacca6f
DM
2275 "items" : {
2276 "properties" : {
44660702
DM
2277 "pos" : {
2278 "type" : "integer"
7aacca6f
DM
2279 }
2280 },
2281 "type" : "object"
56122987 2282 },
7aacca6f
DM
2283 "links" : [
2284 {
44660702 2285 "href" : "{pos}",
7aacca6f
DM
2286 "rel" : "child"
2287 }
44660702
DM
2288 ],
2289 "type" : "array"
7aacca6f 2290 }
44660702 2291 },
7aacca6f 2292 "POST" : {
e9cd3bd4 2293 "allowtoken" : 1,
44660702 2294 "description" : "Create new rule.",
7aacca6f 2295 "method" : "POST",
44660702 2296 "name" : "create_rule",
7aacca6f
DM
2297 "parameters" : {
2298 "additionalProperties" : 0,
2299 "properties" : {
44660702
DM
2300 "action" : {
2301 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2302 "maxLength" : 20,
7aacca6f 2303 "minLength" : 2,
44660702
DM
2304 "optional" : 0,
2305 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2306 "type" : "string"
7aacca6f
DM
2307 },
2308 "comment" : {
e94f0d56 2309 "description" : "Descriptive comment.",
7aacca6f 2310 "optional" : 1,
013dc89f
DM
2311 "type" : "string",
2312 "typetext" : "<string>"
44660702
DM
2313 },
2314 "dest" : {
2315 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2316 "format" : "pve-fw-addr-spec",
0695fdaf 2317 "maxLength" : 512,
44660702 2318 "optional" : 1,
013dc89f
DM
2319 "type" : "string",
2320 "typetext" : "<string>"
44660702
DM
2321 },
2322 "digest" : {
2323 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2324 "maxLength" : 40,
2325 "optional" : 1,
013dc89f
DM
2326 "type" : "string",
2327 "typetext" : "<string>"
44660702
DM
2328 },
2329 "dport" : {
2330 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2331 "format" : "pve-fw-dport-spec",
2332 "optional" : 1,
013dc89f
DM
2333 "type" : "string",
2334 "typetext" : "<string>"
44660702
DM
2335 },
2336 "enable" : {
e94f0d56 2337 "description" : "Flag to enable/disable a rule.",
44660702
DM
2338 "minimum" : 0,
2339 "optional" : 1,
4bd7df8b 2340 "type" : "integer",
013dc89f 2341 "typetext" : "<integer> (0 - N)"
44660702 2342 },
4772952b 2343 "icmp-type" : {
287a95cf 2344 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
2345 "format" : "pve-fw-icmp-type-spec",
2346 "optional" : 1,
2347 "type" : "string",
2348 "typetext" : "<string>"
2349 },
44660702
DM
2350 "iface" : {
2351 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
2352 "format" : "pve-iface",
2353 "maxLength" : 20,
2354 "minLength" : 2,
2355 "optional" : 1,
013dc89f
DM
2356 "type" : "string",
2357 "typetext" : "<string>"
44660702 2358 },
95895385
TL
2359 "log" : {
2360 "description" : "Log level for firewall rule.",
2361 "enum" : [
2362 "emerg",
2363 "alert",
2364 "crit",
2365 "err",
2366 "warning",
2367 "notice",
2368 "info",
2369 "debug",
2370 "nolog"
2371 ],
2372 "optional" : 1,
2373 "type" : "string"
2374 },
44660702 2375 "macro" : {
e94f0d56 2376 "description" : "Use predefined standard macro.",
44660702
DM
2377 "maxLength" : 128,
2378 "optional" : 1,
013dc89f
DM
2379 "type" : "string",
2380 "typetext" : "<string>"
44660702
DM
2381 },
2382 "pos" : {
2383 "description" : "Update rule at position <pos>.",
2384 "minimum" : 0,
2385 "optional" : 1,
4bd7df8b 2386 "type" : "integer",
013dc89f 2387 "typetext" : "<integer> (0 - N)"
44660702
DM
2388 },
2389 "proto" : {
2390 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2391 "format" : "pve-fw-protocol-spec",
2392 "optional" : 1,
013dc89f
DM
2393 "type" : "string",
2394 "typetext" : "<string>"
44660702
DM
2395 },
2396 "source" : {
2397 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2398 "format" : "pve-fw-addr-spec",
0695fdaf 2399 "maxLength" : 512,
44660702 2400 "optional" : 1,
013dc89f
DM
2401 "type" : "string",
2402 "typetext" : "<string>"
44660702
DM
2403 },
2404 "sport" : {
2405 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2406 "format" : "pve-fw-sport-spec",
2407 "optional" : 1,
013dc89f
DM
2408 "type" : "string",
2409 "typetext" : "<string>"
44660702
DM
2410 },
2411 "type" : {
e94f0d56 2412 "description" : "Rule type.",
44660702
DM
2413 "enum" : [
2414 "in",
2415 "out",
2416 "group"
2417 ],
2418 "optional" : 0,
2419 "type" : "string"
7aacca6f
DM
2420 }
2421 }
2422 },
2423 "permissions" : {
2424 "check" : [
2425 "perm",
2426 "/",
2427 [
2428 "Sys.Modify"
2429 ]
2430 ]
2431 },
44660702
DM
2432 "protected" : 1,
2433 "proxyto" : null,
7aacca6f 2434 "returns" : {
44660702
DM
2435 "type" : "null"
2436 }
2437 }
2438 },
2439 "leaf" : 0,
2440 "path" : "/cluster/firewall/rules",
2441 "text" : "rules"
2442 },
2443 {
2444 "children" : [
2445 {
2446 "children" : [
2447 {
2448 "info" : {
2449 "DELETE" : {
e9cd3bd4 2450 "allowtoken" : 1,
44660702
DM
2451 "description" : "Remove IP or Network from IPSet.",
2452 "method" : "DELETE",
2453 "name" : "remove_ip",
2454 "parameters" : {
2455 "additionalProperties" : 0,
2456 "properties" : {
2457 "cidr" : {
2458 "description" : "Network/IP specification in CIDR format.",
2459 "format" : "IPorCIDRorAlias",
013dc89f
DM
2460 "type" : "string",
2461 "typetext" : "<string>"
44660702
DM
2462 },
2463 "digest" : {
2464 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2465 "maxLength" : 40,
2466 "optional" : 1,
013dc89f
DM
2467 "type" : "string",
2468 "typetext" : "<string>"
44660702
DM
2469 },
2470 "name" : {
2471 "description" : "IP set name.",
2472 "maxLength" : 64,
2473 "minLength" : 2,
2474 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2475 "type" : "string"
2476 }
2477 }
2478 },
2479 "permissions" : {
2480 "check" : [
2481 "perm",
2482 "/",
2483 [
2484 "Sys.Modify"
2485 ]
2486 ]
2487 },
2488 "protected" : 1,
2489 "returns" : {
2490 "type" : "null"
2491 }
7aacca6f 2492 },
44660702 2493 "GET" : {
e9cd3bd4 2494 "allowtoken" : 1,
44660702
DM
2495 "description" : "Read IP or Network settings from IPSet.",
2496 "method" : "GET",
2497 "name" : "read_ip",
2498 "parameters" : {
2499 "additionalProperties" : 0,
2500 "properties" : {
2501 "cidr" : {
2502 "description" : "Network/IP specification in CIDR format.",
2503 "format" : "IPorCIDRorAlias",
013dc89f
DM
2504 "type" : "string",
2505 "typetext" : "<string>"
44660702
DM
2506 },
2507 "name" : {
2508 "description" : "IP set name.",
2509 "maxLength" : 64,
2510 "minLength" : 2,
2511 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2512 "type" : "string"
2513 }
2514 }
2515 },
2516 "permissions" : {
2517 "check" : [
2518 "perm",
2519 "/",
2520 [
2521 "Sys.Audit"
2522 ]
2523 ]
2524 },
2525 "protected" : 1,
2526 "returns" : {
2527 "type" : "object"
2528 }
7aacca6f 2529 },
44660702 2530 "PUT" : {
e9cd3bd4 2531 "allowtoken" : 1,
44660702
DM
2532 "description" : "Update IP or Network settings",
2533 "method" : "PUT",
2534 "name" : "update_ip",
2535 "parameters" : {
2536 "additionalProperties" : 0,
2537 "properties" : {
2538 "cidr" : {
2539 "description" : "Network/IP specification in CIDR format.",
2540 "format" : "IPorCIDRorAlias",
013dc89f
DM
2541 "type" : "string",
2542 "typetext" : "<string>"
44660702
DM
2543 },
2544 "comment" : {
2545 "optional" : 1,
013dc89f
DM
2546 "type" : "string",
2547 "typetext" : "<string>"
44660702
DM
2548 },
2549 "digest" : {
2550 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2551 "maxLength" : 40,
2552 "optional" : 1,
013dc89f
DM
2553 "type" : "string",
2554 "typetext" : "<string>"
44660702
DM
2555 },
2556 "name" : {
2557 "description" : "IP set name.",
2558 "maxLength" : 64,
2559 "minLength" : 2,
2560 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2561 "type" : "string"
2562 },
2563 "nomatch" : {
2564 "optional" : 1,
013dc89f
DM
2565 "type" : "boolean",
2566 "typetext" : "<boolean>"
44660702
DM
2567 }
2568 }
2569 },
2570 "permissions" : {
2571 "check" : [
2572 "perm",
2573 "/",
2574 [
2575 "Sys.Modify"
2576 ]
2577 ]
2578 },
2579 "protected" : 1,
2580 "returns" : {
2581 "type" : "null"
2582 }
7aacca6f
DM
2583 }
2584 },
44660702
DM
2585 "leaf" : 1,
2586 "path" : "/cluster/firewall/ipset/{name}/{cidr}",
2587 "text" : "{cidr}"
7aacca6f 2588 }
44660702 2589 ],
7aacca6f
DM
2590 "info" : {
2591 "DELETE" : {
e9cd3bd4 2592 "allowtoken" : 1,
44660702
DM
2593 "description" : "Delete IPSet",
2594 "method" : "DELETE",
2595 "name" : "delete_ipset",
56122987 2596 "parameters" : {
44660702 2597 "additionalProperties" : 0,
56122987 2598 "properties" : {
81a3384d
TL
2599 "force" : {
2600 "description" : "Delete all members of the IPSet, if there are any.",
2601 "optional" : 1,
2602 "type" : "boolean",
2603 "typetext" : "<boolean>"
2604 },
56122987 2605 "name" : {
44660702 2606 "description" : "IP set name.",
56122987 2607 "maxLength" : 64,
44660702 2608 "minLength" : 2,
56122987 2609 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 2610 "type" : "string"
56122987 2611 }
44660702 2612 }
7aacca6f 2613 },
56122987
DM
2614 "permissions" : {
2615 "check" : [
2616 "perm",
2617 "/",
2618 [
2619 "Sys.Modify"
2620 ]
2621 ]
2622 },
7aacca6f
DM
2623 "protected" : 1,
2624 "returns" : {
2625 "type" : "null"
44660702 2626 }
7aacca6f 2627 },
44660702 2628 "GET" : {
e9cd3bd4 2629 "allowtoken" : 1,
44660702
DM
2630 "description" : "List IPSet content",
2631 "method" : "GET",
2632 "name" : "get_ipset",
56122987
DM
2633 "parameters" : {
2634 "additionalProperties" : 0,
2635 "properties" : {
7aacca6f 2636 "name" : {
44660702 2637 "description" : "IP set name.",
7aacca6f 2638 "maxLength" : 64,
7aacca6f 2639 "minLength" : 2,
44660702 2640 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 2641 "type" : "string"
56122987 2642 }
7aacca6f 2643 }
56122987 2644 },
56122987
DM
2645 "permissions" : {
2646 "check" : [
2647 "perm",
2648 "/",
2649 [
44660702 2650 "Sys.Audit"
56122987
DM
2651 ]
2652 ]
44660702
DM
2653 },
2654 "returns" : {
2655 "items" : {
2656 "properties" : {
2657 "cidr" : {
2658 "type" : "string"
2659 },
2660 "comment" : {
2661 "optional" : 1,
2662 "type" : "string"
2663 },
2664 "digest" : {
2665 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2666 "maxLength" : 40,
2667 "optional" : 0,
2668 "type" : "string"
2669 },
2670 "nomatch" : {
2671 "optional" : 1,
2672 "type" : "boolean"
2673 }
2674 },
2675 "type" : "object"
2676 },
2677 "links" : [
2678 {
2679 "href" : "{cidr}",
2680 "rel" : "child"
2681 }
2682 ],
2683 "type" : "array"
7aacca6f
DM
2684 }
2685 },
44660702 2686 "POST" : {
e9cd3bd4 2687 "allowtoken" : 1,
44660702
DM
2688 "description" : "Add IP or Network to IPSet.",
2689 "method" : "POST",
2690 "name" : "create_ip",
56122987
DM
2691 "parameters" : {
2692 "additionalProperties" : 0,
2693 "properties" : {
44660702
DM
2694 "cidr" : {
2695 "description" : "Network/IP specification in CIDR format.",
2696 "format" : "IPorCIDRorAlias",
013dc89f
DM
2697 "type" : "string",
2698 "typetext" : "<string>"
44660702
DM
2699 },
2700 "comment" : {
2701 "optional" : 1,
013dc89f
DM
2702 "type" : "string",
2703 "typetext" : "<string>"
44660702
DM
2704 },
2705 "name" : {
2706 "description" : "IP set name.",
2707 "maxLength" : 64,
2708 "minLength" : 2,
2709 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2710 "type" : "string"
2711 },
2712 "nomatch" : {
2713 "optional" : 1,
013dc89f
DM
2714 "type" : "boolean",
2715 "typetext" : "<boolean>"
56122987
DM
2716 }
2717 }
2718 },
56122987
DM
2719 "permissions" : {
2720 "check" : [
2721 "perm",
2722 "/",
2723 [
44660702 2724 "Sys.Modify"
56122987
DM
2725 ]
2726 ]
2727 },
44660702 2728 "protected" : 1,
56122987 2729 "returns" : {
44660702
DM
2730 "type" : "null"
2731 }
56122987
DM
2732 }
2733 },
44660702
DM
2734 "leaf" : 0,
2735 "path" : "/cluster/firewall/ipset/{name}",
2736 "text" : "{name}"
56122987
DM
2737 }
2738 ],
56122987 2739 "info" : {
44660702 2740 "GET" : {
e9cd3bd4 2741 "allowtoken" : 1,
44660702
DM
2742 "description" : "List IPSets",
2743 "method" : "GET",
2744 "name" : "ipset_index",
56122987 2745 "parameters" : {
7aacca6f 2746 "additionalProperties" : 0
56122987 2747 },
56122987
DM
2748 "permissions" : {
2749 "check" : [
2750 "perm",
2751 "/",
2752 [
7aacca6f 2753 "Sys.Audit"
56122987
DM
2754 ]
2755 ]
2756 },
56122987
DM
2757 "returns" : {
2758 "items" : {
2759 "properties" : {
44660702
DM
2760 "comment" : {
2761 "optional" : 1,
2762 "type" : "string"
56122987 2763 },
44660702
DM
2764 "digest" : {
2765 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2766 "maxLength" : 40,
2767 "optional" : 0,
2768 "type" : "string"
2769 },
2770 "name" : {
2771 "description" : "IP set name.",
2772 "maxLength" : 64,
2773 "minLength" : 2,
2774 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 2775 "type" : "string"
56122987
DM
2776 }
2777 },
2778 "type" : "object"
44660702
DM
2779 },
2780 "links" : [
2781 {
2782 "href" : "{name}",
2783 "rel" : "child"
2784 }
2785 ],
2786 "type" : "array"
56122987 2787 }
44660702
DM
2788 },
2789 "POST" : {
e9cd3bd4 2790 "allowtoken" : 1,
44660702
DM
2791 "description" : "Create new IPSet",
2792 "method" : "POST",
2793 "name" : "create_ipset",
7aacca6f
DM
2794 "parameters" : {
2795 "additionalProperties" : 0,
2796 "properties" : {
44660702
DM
2797 "comment" : {
2798 "optional" : 1,
013dc89f
DM
2799 "type" : "string",
2800 "typetext" : "<string>"
44660702
DM
2801 },
2802 "digest" : {
2803 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2804 "maxLength" : 40,
2805 "optional" : 1,
013dc89f
DM
2806 "type" : "string",
2807 "typetext" : "<string>"
44660702
DM
2808 },
2809 "name" : {
2810 "description" : "IP set name.",
2811 "maxLength" : 64,
2812 "minLength" : 2,
2813 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2814 "type" : "string"
2815 },
2816 "rename" : {
2817 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
2818 "maxLength" : 64,
2819 "minLength" : 2,
2820 "optional" : 1,
2821 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2822 "type" : "string"
7aacca6f
DM
2823 }
2824 }
2825 },
56122987
DM
2826 "permissions" : {
2827 "check" : [
2828 "perm",
2829 "/",
2830 [
44660702 2831 "Sys.Modify"
56122987
DM
2832 ]
2833 ]
2834 },
44660702 2835 "protected" : 1,
56122987 2836 "returns" : {
44660702
DM
2837 "type" : "null"
2838 }
56122987 2839 }
7aacca6f 2840 },
44660702
DM
2841 "leaf" : 0,
2842 "path" : "/cluster/firewall/ipset",
2843 "text" : "ipset"
2844 },
56122987 2845 {
44660702
DM
2846 "children" : [
2847 {
2848 "info" : {
2849 "DELETE" : {
e9cd3bd4 2850 "allowtoken" : 1,
44660702
DM
2851 "description" : "Remove IP or Network alias.",
2852 "method" : "DELETE",
2853 "name" : "remove_alias",
2854 "parameters" : {
2855 "additionalProperties" : 0,
2856 "properties" : {
2857 "digest" : {
2858 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2859 "maxLength" : 40,
2860 "optional" : 1,
013dc89f
DM
2861 "type" : "string",
2862 "typetext" : "<string>"
44660702
DM
2863 },
2864 "name" : {
2865 "description" : "Alias name.",
2866 "maxLength" : 64,
2867 "minLength" : 2,
2868 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2869 "type" : "string"
2870 }
2871 }
2872 },
2873 "permissions" : {
2874 "check" : [
2875 "perm",
2876 "/",
2877 [
2878 "Sys.Modify"
2879 ]
2880 ]
2881 },
2882 "protected" : 1,
2883 "returns" : {
2884 "type" : "null"
2885 }
2886 },
2887 "GET" : {
e9cd3bd4 2888 "allowtoken" : 1,
44660702
DM
2889 "description" : "Read alias.",
2890 "method" : "GET",
2891 "name" : "read_alias",
2892 "parameters" : {
2893 "additionalProperties" : 0,
2894 "properties" : {
2895 "name" : {
2896 "description" : "Alias name.",
2897 "maxLength" : 64,
2898 "minLength" : 2,
2899 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2900 "type" : "string"
2901 }
2902 }
2903 },
2904 "permissions" : {
2905 "check" : [
2906 "perm",
2907 "/",
2908 [
2909 "Sys.Audit"
2910 ]
2911 ]
2912 },
2913 "returns" : {
2914 "type" : "object"
2915 }
2916 },
2917 "PUT" : {
e9cd3bd4 2918 "allowtoken" : 1,
44660702
DM
2919 "description" : "Update IP or Network alias.",
2920 "method" : "PUT",
2921 "name" : "update_alias",
2922 "parameters" : {
2923 "additionalProperties" : 0,
2924 "properties" : {
2925 "cidr" : {
2926 "description" : "Network/IP specification in CIDR format.",
2927 "format" : "IPorCIDR",
013dc89f
DM
2928 "type" : "string",
2929 "typetext" : "<string>"
44660702
DM
2930 },
2931 "comment" : {
2932 "optional" : 1,
013dc89f
DM
2933 "type" : "string",
2934 "typetext" : "<string>"
44660702
DM
2935 },
2936 "digest" : {
2937 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2938 "maxLength" : 40,
2939 "optional" : 1,
013dc89f
DM
2940 "type" : "string",
2941 "typetext" : "<string>"
44660702
DM
2942 },
2943 "name" : {
2944 "description" : "Alias name.",
2945 "maxLength" : 64,
2946 "minLength" : 2,
2947 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2948 "type" : "string"
2949 },
2950 "rename" : {
2951 "description" : "Rename an existing alias.",
2952 "maxLength" : 64,
2953 "minLength" : 2,
2954 "optional" : 1,
2955 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2956 "type" : "string"
2957 }
2958 }
2959 },
2960 "permissions" : {
2961 "check" : [
2962 "perm",
2963 "/",
2964 [
2965 "Sys.Modify"
2966 ]
2967 ]
2968 },
2969 "protected" : 1,
2970 "returns" : {
2971 "type" : "null"
2972 }
2973 }
2974 },
2975 "leaf" : 1,
2976 "path" : "/cluster/firewall/aliases/{name}",
2977 "text" : "{name}"
2978 }
2979 ],
2980 "info" : {
2981 "GET" : {
e9cd3bd4 2982 "allowtoken" : 1,
44660702
DM
2983 "description" : "List aliases",
2984 "method" : "GET",
2985 "name" : "get_aliases",
2986 "parameters" : {
2987 "additionalProperties" : 0
2988 },
2989 "permissions" : {
2990 "check" : [
2991 "perm",
2992 "/",
2993 [
2994 "Sys.Audit"
2995 ]
2996 ]
2997 },
2998 "returns" : {
2999 "items" : {
3000 "properties" : {
3001 "cidr" : {
3002 "type" : "string"
3003 },
3004 "comment" : {
3005 "optional" : 1,
3006 "type" : "string"
3007 },
3008 "digest" : {
3009 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3010 "maxLength" : 40,
3011 "optional" : 0,
3012 "type" : "string"
3013 },
3014 "name" : {
3015 "type" : "string"
3016 }
3017 },
3018 "type" : "object"
3019 },
3020 "links" : [
3021 {
3022 "href" : "{name}",
3023 "rel" : "child"
3024 }
3025 ],
3026 "type" : "array"
3027 }
3028 },
3029 "POST" : {
e9cd3bd4 3030 "allowtoken" : 1,
44660702
DM
3031 "description" : "Create IP or Network Alias.",
3032 "method" : "POST",
3033 "name" : "create_alias",
56122987
DM
3034 "parameters" : {
3035 "additionalProperties" : 0,
3036 "properties" : {
44660702
DM
3037 "cidr" : {
3038 "description" : "Network/IP specification in CIDR format.",
3039 "format" : "IPorCIDR",
013dc89f
DM
3040 "type" : "string",
3041 "typetext" : "<string>"
44660702
DM
3042 },
3043 "comment" : {
3044 "optional" : 1,
013dc89f
DM
3045 "type" : "string",
3046 "typetext" : "<string>"
44660702
DM
3047 },
3048 "name" : {
3049 "description" : "Alias name.",
3050 "maxLength" : 64,
3051 "minLength" : 2,
3052 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3053 "type" : "string"
56122987
DM
3054 }
3055 }
3056 },
56122987
DM
3057 "permissions" : {
3058 "check" : [
3059 "perm",
3060 "/",
3061 [
3062 "Sys.Modify"
3063 ]
3064 ]
3065 },
44660702 3066 "protected" : 1,
56122987
DM
3067 "returns" : {
3068 "type" : "null"
3069 }
44660702
DM
3070 }
3071 },
3072 "leaf" : 0,
3073 "path" : "/cluster/firewall/aliases",
3074 "text" : "aliases"
3075 },
3076 {
3077 "info" : {
3078 "GET" : {
e9cd3bd4 3079 "allowtoken" : 1,
44660702
DM
3080 "description" : "Get Firewall options.",
3081 "method" : "GET",
3082 "name" : "get_options",
3083 "parameters" : {
3084 "additionalProperties" : 0
7aacca6f 3085 },
56122987
DM
3086 "permissions" : {
3087 "check" : [
3088 "perm",
3089 "/",
3090 [
44660702 3091 "Sys.Audit"
56122987
DM
3092 ]
3093 ]
3094 },
44660702 3095 "returns" : {
56122987 3096 "properties" : {
5da3d723
TL
3097 "ebtables" : {
3098 "default" : 1,
3099 "description" : "Enable ebtables rules cluster wide.",
3100 "optional" : 1,
3101 "type" : "boolean"
3102 },
44660702
DM
3103 "enable" : {
3104 "description" : "Enable or disable the firewall cluster wide.",
3105 "minimum" : 0,
56122987 3106 "optional" : 1,
7aacca6f 3107 "type" : "integer"
56122987 3108 },
95895385
TL
3109 "log_ratelimit" : {
3110 "description" : "Log ratelimiting settings",
3111 "format" : {
3112 "burst" : {
3113 "default" : 5,
4772952b 3114 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3115 "minimum" : 0,
3116 "optional" : 1,
3117 "type" : "integer"
3118 },
3119 "enable" : {
3120 "default" : "1",
3121 "default_key" : 1,
3122 "description" : "Enable or disable log rate limiting",
3123 "type" : "boolean"
3124 },
3125 "rate" : {
3126 "default" : "1/second",
3127 "description" : "Frequency with which the burst bucket gets refilled",
3128 "format_description" : "rate",
3129 "optional" : 1,
3130 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3131 "type" : "string"
3132 }
3133 },
3134 "optional" : 1,
3135 "type" : "string"
3136 },
44660702
DM
3137 "policy_in" : {
3138 "description" : "Input policy.",
3139 "enum" : [
3140 "ACCEPT",
3141 "REJECT",
3142 "DROP"
3143 ],
56122987 3144 "optional" : 1,
44660702 3145 "type" : "string"
7aacca6f 3146 },
44660702
DM
3147 "policy_out" : {
3148 "description" : "Output policy.",
3149 "enum" : [
3150 "ACCEPT",
3151 "REJECT",
3152 "DROP"
3153 ],
7aacca6f 3154 "optional" : 1,
44660702
DM
3155 "type" : "string"
3156 }
3157 },
3158 "type" : "object"
3159 }
3160 },
3161 "PUT" : {
e9cd3bd4 3162 "allowtoken" : 1,
44660702
DM
3163 "description" : "Set Firewall options.",
3164 "method" : "PUT",
3165 "name" : "set_options",
3166 "parameters" : {
3167 "additionalProperties" : 0,
3168 "properties" : {
3169 "delete" : {
3170 "description" : "A list of settings you want to delete.",
3171 "format" : "pve-configid-list",
56122987 3172 "optional" : 1,
013dc89f
DM
3173 "type" : "string",
3174 "typetext" : "<string>"
56122987 3175 },
44660702
DM
3176 "digest" : {
3177 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3178 "maxLength" : 40,
56122987 3179 "optional" : 1,
013dc89f
DM
3180 "type" : "string",
3181 "typetext" : "<string>"
56122987 3182 },
5da3d723
TL
3183 "ebtables" : {
3184 "default" : 1,
3185 "description" : "Enable ebtables rules cluster wide.",
3186 "optional" : 1,
3187 "type" : "boolean",
3188 "typetext" : "<boolean>"
3189 },
44660702
DM
3190 "enable" : {
3191 "description" : "Enable or disable the firewall cluster wide.",
7aacca6f 3192 "minimum" : 0,
56122987 3193 "optional" : 1,
4bd7df8b 3194 "type" : "integer",
013dc89f 3195 "typetext" : "<integer> (0 - N)"
56122987 3196 },
95895385
TL
3197 "log_ratelimit" : {
3198 "description" : "Log ratelimiting settings",
3199 "format" : {
3200 "burst" : {
3201 "default" : 5,
4772952b 3202 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3203 "minimum" : 0,
3204 "optional" : 1,
3205 "type" : "integer"
3206 },
3207 "enable" : {
3208 "default" : "1",
3209 "default_key" : 1,
3210 "description" : "Enable or disable log rate limiting",
3211 "type" : "boolean"
3212 },
3213 "rate" : {
3214 "default" : "1/second",
3215 "description" : "Frequency with which the burst bucket gets refilled",
3216 "format_description" : "rate",
3217 "optional" : 1,
3218 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3219 "type" : "string"
3220 }
3221 },
3222 "optional" : 1,
3223 "type" : "string",
3224 "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
3225 },
44660702
DM
3226 "policy_in" : {
3227 "description" : "Input policy.",
56122987 3228 "enum" : [
44660702
DM
3229 "ACCEPT",
3230 "REJECT",
3231 "DROP"
56122987 3232 ],
56122987 3233 "optional" : 1,
44660702 3234 "type" : "string"
56122987 3235 },
44660702
DM
3236 "policy_out" : {
3237 "description" : "Output policy.",
56122987 3238 "enum" : [
44660702
DM
3239 "ACCEPT",
3240 "REJECT",
3241 "DROP"
56122987 3242 ],
7aacca6f 3243 "optional" : 1,
44660702 3244 "type" : "string"
56122987 3245 }
44660702
DM
3246 }
3247 },
3248 "permissions" : {
3249 "check" : [
3250 "perm",
3251 "/",
3252 [
3253 "Sys.Modify"
3254 ]
3255 ]
7aacca6f
DM
3256 },
3257 "protected" : 1,
44660702
DM
3258 "returns" : {
3259 "type" : "null"
3260 }
3261 }
3262 },
3263 "leaf" : 1,
3264 "path" : "/cluster/firewall/options",
3265 "text" : "options"
3266 },
3267 {
3268 "info" : {
7aacca6f 3269 "GET" : {
e9cd3bd4 3270 "allowtoken" : 1,
44660702 3271 "description" : "List available macros",
7aacca6f 3272 "method" : "GET",
44660702
DM
3273 "name" : "get_macros",
3274 "parameters" : {
3275 "additionalProperties" : 0
7aacca6f 3276 },
44660702
DM
3277 "permissions" : {
3278 "user" : "all"
3279 },
3280 "returns" : {
3281 "items" : {
3282 "properties" : {
3283 "descr" : {
3284 "description" : "More verbose description (if available).",
3285 "type" : "string"
3286 },
3287 "macro" : {
3288 "description" : "Macro name.",
3289 "type" : "string"
3290 }
3291 },
3292 "type" : "object"
3293 },
3294 "type" : "array"
3295 }
3296 }
3297 },
3298 "leaf" : 1,
3299 "path" : "/cluster/firewall/macros",
3300 "text" : "macros"
3301 },
3302 {
3303 "info" : {
3304 "GET" : {
e9cd3bd4 3305 "allowtoken" : 1,
44660702
DM
3306 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
3307 "method" : "GET",
3308 "name" : "refs",
7aacca6f 3309 "parameters" : {
44660702 3310 "additionalProperties" : 0,
7aacca6f 3311 "properties" : {
44660702
DM
3312 "type" : {
3313 "description" : "Only list references of specified type.",
3314 "enum" : [
3315 "alias",
3316 "ipset"
3317 ],
3318 "optional" : 1,
3319 "type" : "string"
7aacca6f 3320 }
44660702 3321 }
7aacca6f
DM
3322 },
3323 "permissions" : {
3324 "check" : [
3325 "perm",
3326 "/",
3327 [
3328 "Sys.Audit"
3329 ]
3330 ]
3331 },
44660702
DM
3332 "returns" : {
3333 "items" : {
3334 "properties" : {
3335 "comment" : {
3336 "optional" : 1,
3337 "type" : "string"
3338 },
3339 "name" : {
3340 "type" : "string"
3341 },
3342 "ref" : {
3343 "type" : "string"
3344 },
3345 "type" : {
3346 "enum" : [
3347 "alias",
3348 "ipset"
3349 ],
3350 "type" : "string"
3351 }
3352 },
3353 "type" : "object"
3354 },
3355 "type" : "array"
3356 }
56122987
DM
3357 }
3358 },
7aacca6f 3359 "leaf" : 1,
44660702
DM
3360 "path" : "/cluster/firewall/refs",
3361 "text" : "refs"
56122987
DM
3362 }
3363 ],
56122987 3364 "info" : {
44660702 3365 "GET" : {
e9cd3bd4 3366 "allowtoken" : 1,
44660702
DM
3367 "description" : "Directory index.",
3368 "method" : "GET",
3369 "name" : "index",
56122987 3370 "parameters" : {
56122987
DM
3371 "additionalProperties" : 0
3372 },
44660702
DM
3373 "permissions" : {
3374 "user" : "all"
3375 },
56122987 3376 "returns" : {
44660702
DM
3377 "items" : {
3378 "properties" : {},
3379 "type" : "object"
3380 },
7aacca6f
DM
3381 "links" : [
3382 {
44660702
DM
3383 "href" : "{name}",
3384 "rel" : "child"
7aacca6f
DM
3385 }
3386 ],
7aacca6f 3387 "type" : "array"
7aacca6f 3388 }
56122987
DM
3389 }
3390 },
44660702
DM
3391 "leaf" : 0,
3392 "path" : "/cluster/firewall",
3393 "text" : "firewall"
7aacca6f
DM
3394 },
3395 {
56122987
DM
3396 "children" : [
3397 {
04d22a9f
TL
3398 "children" : [
3399 {
3400 "info" : {
3401 "GET" : {
3402 "allowtoken" : 1,
3403 "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
3404 "method" : "GET",
3405 "name" : "get_volume_backup_included",
3406 "parameters" : {
3407 "additionalProperties" : 0,
3408 "properties" : {
3409 "id" : {
3410 "description" : "The job ID.",
3411 "maxLength" : 50,
3412 "type" : "string",
3413 "typetext" : "<string>"
3414 }
3415 }
3416 },
3417 "permissions" : {
3418 "check" : [
3419 "perm",
3420 "/",
3421 [
3422 "Sys.Audit"
3423 ]
3424 ]
3425 },
3426 "protected" : 1,
3427 "returns" : {
3428 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
3429 "properties" : {
3430 "children" : {
3431 "items" : {
3432 "properties" : {
3433 "children" : {
3434 "description" : "The volumes of the guest with the information if they will be included in backups.",
3435 "items" : {
3436 "properties" : {
3437 "id" : {
3438 "description" : "Configuration key of the volume.",
3439 "type" : "string"
3440 },
3441 "included" : {
3442 "description" : "Whether the volume is included in the backup or not.",
3443 "type" : "boolean"
3444 },
3445 "name" : {
3446 "description" : "Name of the volume.",
3447 "type" : "string"
3448 },
3449 "reason" : {
3450 "description" : "The reason why the volume is included (or excluded).",
3451 "type" : "string"
3452 }
3453 },
3454 "type" : "object"
3455 },
3456 "optional" : 1,
3457 "type" : "array"
3458 },
3459 "id" : {
3460 "description" : "VMID of the guest.",
3461 "type" : "integer"
3462 },
3463 "name" : {
3464 "description" : "Name of the guest",
3465 "optional" : 1,
3466 "type" : "string"
3467 },
3468 "type" : {
3469 "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
3470 "enum" : [
3471 "qemu",
3472 "lxc",
3473 "unknown"
3474 ],
3475 "type" : "string"
3476 }
3477 },
3478 "type" : "object"
3479 },
3480 "type" : "array"
3481 }
3482 },
3483 "type" : "object"
3484 }
3485 }
3486 },
3487 "leaf" : 1,
3488 "path" : "/cluster/backup/{id}/included_volumes",
3489 "text" : "included_volumes"
3490 }
3491 ],
56122987 3492 "info" : {
44660702 3493 "DELETE" : {
e9cd3bd4 3494 "allowtoken" : 1,
44660702
DM
3495 "description" : "Delete vzdump backup job definition.",
3496 "method" : "DELETE",
3497 "name" : "delete_job",
3498 "parameters" : {
3499 "additionalProperties" : 0,
3500 "properties" : {
3501 "id" : {
3502 "description" : "The job ID.",
3503 "maxLength" : 50,
013dc89f
DM
3504 "type" : "string",
3505 "typetext" : "<string>"
44660702
DM
3506 }
3507 }
3508 },
3509 "permissions" : {
3510 "check" : [
3511 "perm",
3512 "/",
3513 [
3514 "Sys.Modify"
3515 ]
3516 ]
3517 },
3518 "protected" : 1,
56122987
DM
3519 "returns" : {
3520 "type" : "null"
44660702
DM
3521 }
3522 },
3523 "GET" : {
e9cd3bd4 3524 "allowtoken" : 1,
44660702
DM
3525 "description" : "Read vzdump backup job definition.",
3526 "method" : "GET",
3527 "name" : "read_job",
3528 "parameters" : {
3529 "additionalProperties" : 0,
3530 "properties" : {
3531 "id" : {
3532 "description" : "The job ID.",
3533 "maxLength" : 50,
013dc89f
DM
3534 "type" : "string",
3535 "typetext" : "<string>"
44660702
DM
3536 }
3537 }
56122987 3538 },
7aacca6f
DM
3539 "permissions" : {
3540 "check" : [
3541 "perm",
3542 "/",
3543 [
44660702 3544 "Sys.Audit"
7aacca6f
DM
3545 ]
3546 ]
3547 },
44660702
DM
3548 "returns" : {
3549 "type" : "object"
3550 }
3551 },
3552 "PUT" : {
e9cd3bd4 3553 "allowtoken" : 1,
44660702
DM
3554 "description" : "Update vzdump backup job definition.",
3555 "method" : "PUT",
3556 "name" : "update_job",
56122987 3557 "parameters" : {
44660702 3558 "additionalProperties" : 0,
56122987 3559 "properties" : {
44660702
DM
3560 "all" : {
3561 "default" : 0,
3562 "description" : "Backup all known guest systems on this host.",
7aacca6f 3563 "optional" : 1,
013dc89f
DM
3564 "type" : "boolean",
3565 "typetext" : "<boolean>"
7aacca6f 3566 },
44660702
DM
3567 "bwlimit" : {
3568 "default" : 0,
4a407cfd 3569 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
3570 "minimum" : 0,
3571 "optional" : 1,
4bd7df8b 3572 "type" : "integer",
013dc89f 3573 "typetext" : "<integer> (0 - N)"
44660702 3574 },
5370fa8c
TL
3575 "comment" : {
3576 "description" : "Description for the Job.",
3577 "maxLength" : 512,
3578 "optional" : 1,
3579 "type" : "string",
3580 "typetext" : "<string>"
3581 },
44660702
DM
3582 "compress" : {
3583 "default" : "0",
3584 "description" : "Compress dump file.",
7aacca6f 3585 "enum" : [
44660702
DM
3586 "0",
3587 "1",
3588 "gzip",
c5aa7e14
TL
3589 "lzo",
3590 "zstd"
7aacca6f 3591 ],
44660702
DM
3592 "optional" : 1,
3593 "type" : "string"
7aacca6f 3594 },
44660702
DM
3595 "delete" : {
3596 "description" : "A list of settings you want to delete.",
3597 "format" : "pve-configid-list",
7aacca6f 3598 "optional" : 1,
013dc89f
DM
3599 "type" : "string",
3600 "typetext" : "<string>"
56122987 3601 },
44660702
DM
3602 "dow" : {
3603 "description" : "Day of week selection.",
3604 "format" : "pve-day-of-week-list",
7aacca6f 3605 "optional" : 1,
5370fa8c 3606 "requires" : "starttime",
013dc89f
DM
3607 "type" : "string",
3608 "typetext" : "<string>"
56122987 3609 },
44660702
DM
3610 "dumpdir" : {
3611 "description" : "Store resulting files to specified directory.",
56122987 3612 "optional" : 1,
013dc89f
DM
3613 "type" : "string",
3614 "typetext" : "<string>"
56122987 3615 },
44660702
DM
3616 "enabled" : {
3617 "default" : "1",
3618 "description" : "Enable or disable the job.",
3619 "optional" : 1,
013dc89f
DM
3620 "type" : "boolean",
3621 "typetext" : "<boolean>"
44660702
DM
3622 },
3623 "exclude" : {
3624 "description" : "Exclude specified guest systems (assumes --all)",
3625 "format" : "pve-vmid-list",
3626 "optional" : 1,
013dc89f
DM
3627 "type" : "string",
3628 "typetext" : "<string>"
44660702
DM
3629 },
3630 "exclude-path" : {
d2656385 3631 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
3632 "items" : {
3633 "type" : "string"
3634 },
44660702 3635 "optional" : 1,
4a407cfd
TL
3636 "type" : "array",
3637 "typetext" : "<array>"
44660702
DM
3638 },
3639 "id" : {
3640 "description" : "The job ID.",
3641 "maxLength" : 50,
013dc89f
DM
3642 "type" : "string",
3643 "typetext" : "<string>"
44660702
DM
3644 },
3645 "ionice" : {
3646 "default" : 7,
159464a9 3647 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
44660702
DM
3648 "maximum" : 8,
3649 "minimum" : 0,
3650 "optional" : 1,
4bd7df8b 3651 "type" : "integer",
013dc89f 3652 "typetext" : "<integer> (0 - 8)"
44660702
DM
3653 },
3654 "lockwait" : {
3655 "default" : 180,
3656 "description" : "Maximal time to wait for the global lock (minutes).",
3657 "minimum" : 0,
3658 "optional" : 1,
4bd7df8b 3659 "type" : "integer",
013dc89f 3660 "typetext" : "<integer> (0 - N)"
44660702
DM
3661 },
3662 "mailnotification" : {
3663 "default" : "always",
3664 "description" : "Specify when to send an email",
56122987 3665 "enum" : [
44660702
DM
3666 "always",
3667 "failure"
56122987 3668 ],
44660702
DM
3669 "optional" : 1,
3670 "type" : "string"
3671 },
3672 "mailto" : {
d2656385
TL
3673 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
3674 "format" : "email-or-username-list",
44660702 3675 "optional" : 1,
013dc89f
DM
3676 "type" : "string",
3677 "typetext" : "<string>"
44660702
DM
3678 },
3679 "maxfiles" : {
0695fdaf 3680 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
3681 "minimum" : 1,
3682 "optional" : 1,
4bd7df8b 3683 "type" : "integer",
013dc89f 3684 "typetext" : "<integer> (1 - N)"
44660702
DM
3685 },
3686 "mode" : {
3687 "default" : "snapshot",
3688 "description" : "Backup mode.",
3689 "enum" : [
3690 "snapshot",
3691 "suspend",
3692 "stop"
3693 ],
3694 "optional" : 1,
3695 "type" : "string"
3696 },
3697 "node" : {
3698 "description" : "Only run if executed on this node.",
3699 "format" : "pve-node",
3700 "optional" : 1,
013dc89f
DM
3701 "type" : "string",
3702 "typetext" : "<string>"
44660702 3703 },
7af2edf9 3704 "notes-template" : {
4e7f60c2
TL
3705 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
3706 "maxLength" : 1024,
7af2edf9
TL
3707 "optional" : 1,
3708 "requires" : "storage",
3709 "type" : "string",
3710 "typetext" : "<string>"
3711 },
4e7f60c2
TL
3712 "performance" : {
3713 "description" : "Other performance-related settings.",
3714 "format" : "backup-performance",
3715 "optional" : 1,
3716 "type" : "string",
3717 "typetext" : "[max-workers=<integer>]"
3718 },
44660702
DM
3719 "pigz" : {
3720 "default" : 0,
3721 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
3722 "optional" : 1,
013dc89f
DM
3723 "type" : "integer",
3724 "typetext" : "<integer>"
44660702 3725 },
9226ccbc
TL
3726 "pool" : {
3727 "description" : "Backup all known guest systems included in the specified pool.",
3728 "optional" : 1,
3729 "type" : "string",
3730 "typetext" : "<string>"
3731 },
7af2edf9
TL
3732 "protected" : {
3733 "description" : "If true, mark backup(s) as protected.",
3734 "optional" : 1,
3735 "requires" : "storage",
3736 "type" : "boolean",
3737 "typetext" : "<boolean>"
3738 },
739d4d64 3739 "prune-backups" : {
0695fdaf 3740 "default" : "keep-all=1",
739d4d64
TL
3741 "description" : "Use these retention options instead of those from the storage configuration.",
3742 "format" : "prune-backups",
3743 "optional" : 1,
3744 "type" : "string",
4772952b 3745 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 3746 },
44660702
DM
3747 "quiet" : {
3748 "default" : 0,
3749 "description" : "Be quiet.",
3750 "optional" : 1,
013dc89f
DM
3751 "type" : "boolean",
3752 "typetext" : "<boolean>"
44660702
DM
3753 },
3754 "remove" : {
3755 "default" : 1,
0695fdaf 3756 "description" : "Prune older backups according to 'prune-backups'.",
44660702 3757 "optional" : 1,
013dc89f
DM
3758 "type" : "boolean",
3759 "typetext" : "<boolean>"
44660702 3760 },
de786b48
TL
3761 "repeat-missed" : {
3762 "default" : 0,
3763 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
3764 "optional" : 1,
3765 "type" : "boolean",
3766 "typetext" : "<boolean>"
3767 },
5370fa8c
TL
3768 "schedule" : {
3769 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
3770 "format" : "pve-calendar-event",
3771 "maxLength" : 128,
3772 "optional" : 1,
3773 "type" : "string",
3774 "typetext" : "<string>"
3775 },
44660702
DM
3776 "script" : {
3777 "description" : "Use specified hook script.",
3778 "optional" : 1,
013dc89f
DM
3779 "type" : "string",
3780 "typetext" : "<string>"
44660702 3781 },
44660702
DM
3782 "starttime" : {
3783 "description" : "Job Start time.",
5370fa8c 3784 "optional" : 1,
44660702 3785 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 3786 "type" : "string",
44660702 3787 "typetext" : "HH:MM"
7aacca6f 3788 },
44660702
DM
3789 "stdexcludes" : {
3790 "default" : 1,
3791 "description" : "Exclude temporary files and logs.",
3792 "optional" : 1,
013dc89f
DM
3793 "type" : "boolean",
3794 "typetext" : "<boolean>"
44660702
DM
3795 },
3796 "stop" : {
3797 "default" : 0,
1e3f8156 3798 "description" : "Stop running backup jobs on this host.",
44660702 3799 "optional" : 1,
013dc89f
DM
3800 "type" : "boolean",
3801 "typetext" : "<boolean>"
44660702
DM
3802 },
3803 "stopwait" : {
3804 "default" : 10,
3805 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
3806 "minimum" : 0,
3807 "optional" : 1,
4bd7df8b 3808 "type" : "integer",
013dc89f 3809 "typetext" : "<integer> (0 - N)"
44660702
DM
3810 },
3811 "storage" : {
3812 "description" : "Store resulting file to this storage.",
3813 "format" : "pve-storage-id",
3814 "optional" : 1,
013dc89f
DM
3815 "type" : "string",
3816 "typetext" : "<string>"
56122987 3817 },
44660702
DM
3818 "tmpdir" : {
3819 "description" : "Store temporary files to specified directory.",
3820 "optional" : 1,
013dc89f
DM
3821 "type" : "string",
3822 "typetext" : "<string>"
44660702
DM
3823 },
3824 "vmid" : {
3825 "description" : "The ID of the guest system you want to backup.",
3826 "format" : "pve-vmid-list",
3827 "optional" : 1,
013dc89f
DM
3828 "type" : "string",
3829 "typetext" : "<string>"
c5aa7e14
TL
3830 },
3831 "zstd" : {
3832 "default" : 1,
3833 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
3834 "optional" : 1,
3835 "type" : "integer",
3836 "typetext" : "<integer>"
56122987 3837 }
44660702 3838 }
56122987
DM
3839 },
3840 "permissions" : {
3841 "check" : [
3842 "perm",
3843 "/",
3844 [
44660702 3845 "Sys.Modify"
56122987 3846 ]
04d22a9f
TL
3847 ],
3848 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 3849 },
44660702
DM
3850 "protected" : 1,
3851 "returns" : {
3852 "type" : "null"
7aacca6f 3853 }
56122987
DM
3854 }
3855 },
04d22a9f 3856 "leaf" : 0,
44660702
DM
3857 "path" : "/cluster/backup/{id}",
3858 "text" : "{id}"
3859 }
3860 ],
3861 "info" : {
3862 "GET" : {
e9cd3bd4 3863 "allowtoken" : 1,
44660702
DM
3864 "description" : "List vzdump backup schedule.",
3865 "method" : "GET",
3866 "name" : "index",
3867 "parameters" : {
3868 "additionalProperties" : 0
3869 },
3870 "permissions" : {
3871 "check" : [
3872 "perm",
3873 "/",
3874 [
3875 "Sys.Audit"
3876 ]
3877 ]
3878 },
3879 "returns" : {
3880 "items" : {
3881 "properties" : {
3882 "id" : {
1c532546
TL
3883 "description" : "The job ID.",
3884 "maxLength" : 50,
44660702
DM
3885 "type" : "string"
3886 }
3887 },
3888 "type" : "object"
3889 },
3890 "links" : [
3891 {
3892 "href" : "{id}",
3893 "rel" : "child"
3894 }
3895 ],
3896 "type" : "array"
3897 }
3898 },
3899 "POST" : {
e9cd3bd4 3900 "allowtoken" : 1,
44660702
DM
3901 "description" : "Create new vzdump backup job.",
3902 "method" : "POST",
3903 "name" : "create_job",
3904 "parameters" : {
3905 "additionalProperties" : 0,
3906 "properties" : {
3907 "all" : {
3908 "default" : 0,
3909 "description" : "Backup all known guest systems on this host.",
3910 "optional" : 1,
013dc89f
DM
3911 "type" : "boolean",
3912 "typetext" : "<boolean>"
44660702
DM
3913 },
3914 "bwlimit" : {
3915 "default" : 0,
4a407cfd 3916 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
3917 "minimum" : 0,
3918 "optional" : 1,
4bd7df8b 3919 "type" : "integer",
013dc89f 3920 "typetext" : "<integer> (0 - N)"
44660702 3921 },
5370fa8c
TL
3922 "comment" : {
3923 "description" : "Description for the Job.",
3924 "maxLength" : 512,
3925 "optional" : 1,
3926 "type" : "string",
3927 "typetext" : "<string>"
3928 },
44660702
DM
3929 "compress" : {
3930 "default" : "0",
3931 "description" : "Compress dump file.",
3932 "enum" : [
3933 "0",
3934 "1",
3935 "gzip",
c5aa7e14
TL
3936 "lzo",
3937 "zstd"
44660702
DM
3938 ],
3939 "optional" : 1,
3940 "type" : "string"
3941 },
3942 "dow" : {
3943 "default" : "mon,tue,wed,thu,fri,sat,sun",
3944 "description" : "Day of week selection.",
3945 "format" : "pve-day-of-week-list",
3946 "optional" : 1,
5370fa8c 3947 "requires" : "starttime",
013dc89f
DM
3948 "type" : "string",
3949 "typetext" : "<string>"
44660702
DM
3950 },
3951 "dumpdir" : {
3952 "description" : "Store resulting files to specified directory.",
3953 "optional" : 1,
013dc89f
DM
3954 "type" : "string",
3955 "typetext" : "<string>"
44660702
DM
3956 },
3957 "enabled" : {
3958 "default" : "1",
3959 "description" : "Enable or disable the job.",
3960 "optional" : 1,
013dc89f
DM
3961 "type" : "boolean",
3962 "typetext" : "<boolean>"
44660702
DM
3963 },
3964 "exclude" : {
3965 "description" : "Exclude specified guest systems (assumes --all)",
3966 "format" : "pve-vmid-list",
3967 "optional" : 1,
013dc89f
DM
3968 "type" : "string",
3969 "typetext" : "<string>"
44660702
DM
3970 },
3971 "exclude-path" : {
d2656385 3972 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
3973 "items" : {
3974 "type" : "string"
3975 },
44660702 3976 "optional" : 1,
4a407cfd
TL
3977 "type" : "array",
3978 "typetext" : "<array>"
44660702 3979 },
5370fa8c
TL
3980 "id" : {
3981 "description" : "Job ID (will be autogenerated).",
3982 "format" : "pve-configid",
3983 "optional" : 1,
3984 "type" : "string",
3985 "typetext" : "<string>"
3986 },
44660702
DM
3987 "ionice" : {
3988 "default" : 7,
159464a9 3989 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
44660702
DM
3990 "maximum" : 8,
3991 "minimum" : 0,
3992 "optional" : 1,
4bd7df8b 3993 "type" : "integer",
013dc89f 3994 "typetext" : "<integer> (0 - 8)"
44660702
DM
3995 },
3996 "lockwait" : {
3997 "default" : 180,
3998 "description" : "Maximal time to wait for the global lock (minutes).",
3999 "minimum" : 0,
4000 "optional" : 1,
4bd7df8b 4001 "type" : "integer",
013dc89f 4002 "typetext" : "<integer> (0 - N)"
44660702
DM
4003 },
4004 "mailnotification" : {
4005 "default" : "always",
4006 "description" : "Specify when to send an email",
4007 "enum" : [
4008 "always",
4009 "failure"
4010 ],
4011 "optional" : 1,
4012 "type" : "string"
4013 },
4014 "mailto" : {
d2656385
TL
4015 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
4016 "format" : "email-or-username-list",
44660702 4017 "optional" : 1,
013dc89f
DM
4018 "type" : "string",
4019 "typetext" : "<string>"
44660702
DM
4020 },
4021 "maxfiles" : {
0695fdaf 4022 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
4023 "minimum" : 1,
4024 "optional" : 1,
4bd7df8b 4025 "type" : "integer",
013dc89f 4026 "typetext" : "<integer> (1 - N)"
44660702
DM
4027 },
4028 "mode" : {
4029 "default" : "snapshot",
4030 "description" : "Backup mode.",
4031 "enum" : [
4032 "snapshot",
4033 "suspend",
4034 "stop"
4035 ],
4036 "optional" : 1,
4037 "type" : "string"
4038 },
4039 "node" : {
4040 "description" : "Only run if executed on this node.",
4041 "format" : "pve-node",
4042 "optional" : 1,
013dc89f
DM
4043 "type" : "string",
4044 "typetext" : "<string>"
44660702 4045 },
7af2edf9 4046 "notes-template" : {
4e7f60c2
TL
4047 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
4048 "maxLength" : 1024,
7af2edf9
TL
4049 "optional" : 1,
4050 "requires" : "storage",
4051 "type" : "string",
4052 "typetext" : "<string>"
4053 },
4e7f60c2
TL
4054 "performance" : {
4055 "description" : "Other performance-related settings.",
4056 "format" : "backup-performance",
4057 "optional" : 1,
4058 "type" : "string",
4059 "typetext" : "[max-workers=<integer>]"
4060 },
44660702
DM
4061 "pigz" : {
4062 "default" : 0,
4063 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
4064 "optional" : 1,
013dc89f
DM
4065 "type" : "integer",
4066 "typetext" : "<integer>"
44660702 4067 },
9226ccbc
TL
4068 "pool" : {
4069 "description" : "Backup all known guest systems included in the specified pool.",
4070 "optional" : 1,
4071 "type" : "string",
4072 "typetext" : "<string>"
4073 },
7af2edf9
TL
4074 "protected" : {
4075 "description" : "If true, mark backup(s) as protected.",
4076 "optional" : 1,
4077 "requires" : "storage",
4078 "type" : "boolean",
4079 "typetext" : "<boolean>"
4080 },
739d4d64 4081 "prune-backups" : {
0695fdaf 4082 "default" : "keep-all=1",
739d4d64
TL
4083 "description" : "Use these retention options instead of those from the storage configuration.",
4084 "format" : "prune-backups",
4085 "optional" : 1,
4086 "type" : "string",
4772952b 4087 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 4088 },
44660702
DM
4089 "quiet" : {
4090 "default" : 0,
4091 "description" : "Be quiet.",
4092 "optional" : 1,
013dc89f
DM
4093 "type" : "boolean",
4094 "typetext" : "<boolean>"
44660702
DM
4095 },
4096 "remove" : {
4097 "default" : 1,
0695fdaf 4098 "description" : "Prune older backups according to 'prune-backups'.",
44660702 4099 "optional" : 1,
013dc89f
DM
4100 "type" : "boolean",
4101 "typetext" : "<boolean>"
44660702 4102 },
de786b48
TL
4103 "repeat-missed" : {
4104 "default" : 0,
4105 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
4106 "optional" : 1,
4107 "type" : "boolean",
4108 "typetext" : "<boolean>"
4109 },
5370fa8c
TL
4110 "schedule" : {
4111 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
4112 "format" : "pve-calendar-event",
4113 "maxLength" : 128,
4114 "optional" : 1,
4115 "type" : "string",
4116 "typetext" : "<string>"
4117 },
44660702
DM
4118 "script" : {
4119 "description" : "Use specified hook script.",
4120 "optional" : 1,
013dc89f
DM
4121 "type" : "string",
4122 "typetext" : "<string>"
44660702 4123 },
44660702
DM
4124 "starttime" : {
4125 "description" : "Job Start time.",
5370fa8c 4126 "optional" : 1,
44660702
DM
4127 "pattern" : "\\d{1,2}:\\d{1,2}",
4128 "type" : "string",
4129 "typetext" : "HH:MM"
4130 },
4131 "stdexcludes" : {
4132 "default" : 1,
4133 "description" : "Exclude temporary files and logs.",
4134 "optional" : 1,
013dc89f
DM
4135 "type" : "boolean",
4136 "typetext" : "<boolean>"
44660702
DM
4137 },
4138 "stop" : {
4139 "default" : 0,
1e3f8156 4140 "description" : "Stop running backup jobs on this host.",
44660702 4141 "optional" : 1,
013dc89f
DM
4142 "type" : "boolean",
4143 "typetext" : "<boolean>"
44660702
DM
4144 },
4145 "stopwait" : {
4146 "default" : 10,
4147 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
4148 "minimum" : 0,
4149 "optional" : 1,
4bd7df8b 4150 "type" : "integer",
013dc89f 4151 "typetext" : "<integer> (0 - N)"
44660702
DM
4152 },
4153 "storage" : {
4154 "description" : "Store resulting file to this storage.",
4155 "format" : "pve-storage-id",
4156 "optional" : 1,
013dc89f
DM
4157 "type" : "string",
4158 "typetext" : "<string>"
44660702
DM
4159 },
4160 "tmpdir" : {
4161 "description" : "Store temporary files to specified directory.",
4162 "optional" : 1,
013dc89f
DM
4163 "type" : "string",
4164 "typetext" : "<string>"
44660702
DM
4165 },
4166 "vmid" : {
4167 "description" : "The ID of the guest system you want to backup.",
4168 "format" : "pve-vmid-list",
4169 "optional" : 1,
013dc89f
DM
4170 "type" : "string",
4171 "typetext" : "<string>"
c5aa7e14
TL
4172 },
4173 "zstd" : {
4174 "default" : 1,
4175 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
4176 "optional" : 1,
4177 "type" : "integer",
4178 "typetext" : "<integer>"
44660702
DM
4179 }
4180 }
4181 },
4182 "permissions" : {
4183 "check" : [
4184 "perm",
4185 "/",
4186 [
4187 "Sys.Modify"
4188 ]
de0983cb
DM
4189 ],
4190 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
4191 },
4192 "protected" : 1,
4193 "returns" : {
4194 "type" : "null"
4195 }
4196 }
4197 },
4198 "leaf" : 0,
4199 "path" : "/cluster/backup",
4200 "text" : "backup"
4201 },
04d22a9f
TL
4202 {
4203 "children" : [
4204 {
4205 "info" : {
4206 "GET" : {
4207 "allowtoken" : 1,
4208 "description" : "Shows all guests which are not covered by any backup job.",
4209 "method" : "GET",
4210 "name" : "get_guests_not_in_backup",
4211 "parameters" : {
4212 "additionalProperties" : 0
4213 },
4214 "permissions" : {
4215 "check" : [
4216 "perm",
4217 "/",
4218 [
4219 "Sys.Audit"
4220 ]
4221 ]
4222 },
4223 "protected" : 1,
4224 "returns" : {
4225 "description" : "Contains the guest objects.",
4226 "items" : {
4227 "properties" : {
4228 "name" : {
4229 "description" : "Name of the guest",
4230 "optional" : 1,
4231 "type" : "string"
4232 },
4233 "type" : {
4234 "description" : "Type of the guest.",
4235 "enum" : [
4236 "qemu",
4237 "lxc"
4238 ],
4239 "type" : "string"
4240 },
4241 "vmid" : {
4242 "description" : "VMID of the guest.",
4243 "type" : "integer"
4244 }
4245 },
4246 "type" : "object"
4247 },
4248 "type" : "array"
4249 }
4250 }
4251 },
4252 "leaf" : 1,
34f3e481
TL
4253 "path" : "/cluster/backup-info/not-backed-up",
4254 "text" : "not-backed-up"
04d22a9f
TL
4255 }
4256 ],
4257 "info" : {
4258 "GET" : {
4259 "allowtoken" : 1,
34f3e481 4260 "description" : "Index for backup info related endpoints",
04d22a9f 4261 "method" : "GET",
34f3e481 4262 "name" : "index",
04d22a9f
TL
4263 "parameters" : {
4264 "additionalProperties" : 0
4265 },
04d22a9f 4266 "returns" : {
34f3e481
TL
4267 "description" : "Directory index.",
4268 "items" : {
4269 "properties" : {
4270 "subdir" : {
4271 "description" : "API sub-directory endpoint",
4272 "type" : "string"
4273 }
4274 },
4275 "type" : "object"
4276 },
4277 "links" : [
4278 {
4279 "href" : "{subdir}",
4280 "rel" : "child"
4281 }
4282 ],
4283 "type" : "array"
04d22a9f
TL
4284 }
4285 }
4286 },
4287 "leaf" : 0,
34f3e481
TL
4288 "path" : "/cluster/backup-info",
4289 "text" : "backup-info"
04d22a9f 4290 },
44660702
DM
4291 {
4292 "children" : [
4293 {
4294 "children" : [
4295 {
4296 "children" : [
56122987 4297 {
56122987
DM
4298 "info" : {
4299 "POST" : {
e9cd3bd4 4300 "allowtoken" : 1,
44660702
DM
4301 "description" : "Request resource migration (online) to another node.",
4302 "method" : "POST",
4303 "name" : "migrate",
56122987 4304 "parameters" : {
7aacca6f 4305 "additionalProperties" : 0,
56122987
DM
4306 "properties" : {
4307 "node" : {
95895385 4308 "description" : "Target node.",
44660702 4309 "format" : "pve-node",
013dc89f
DM
4310 "type" : "string",
4311 "typetext" : "<string>"
56122987
DM
4312 },
4313 "sid" : {
44660702 4314 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
56122987 4315 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4316 "type" : "string",
44660702 4317 "typetext" : "<type>:<name>"
56122987 4318 }
7aacca6f 4319 }
56122987 4320 },
56122987
DM
4321 "permissions" : {
4322 "check" : [
4323 "perm",
4324 "/",
4325 [
4326 "Sys.Console"
4327 ]
4328 ]
4329 },
7aacca6f 4330 "protected" : 1,
7aacca6f
DM
4331 "returns" : {
4332 "type" : "null"
44660702 4333 }
56122987 4334 }
44660702
DM
4335 },
4336 "leaf" : 1,
4337 "path" : "/cluster/ha/resources/{sid}/migrate",
4338 "text" : "migrate"
4339 },
4340 {
4341 "info" : {
4342 "POST" : {
e9cd3bd4 4343 "allowtoken" : 1,
44660702
DM
4344 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
4345 "method" : "POST",
4346 "name" : "relocate",
4347 "parameters" : {
4348 "additionalProperties" : 0,
4349 "properties" : {
4350 "node" : {
95895385 4351 "description" : "Target node.",
44660702 4352 "format" : "pve-node",
013dc89f
DM
4353 "type" : "string",
4354 "typetext" : "<string>"
44660702
DM
4355 },
4356 "sid" : {
4357 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4358 "format" : "pve-ha-resource-or-vm-id",
4359 "type" : "string",
4360 "typetext" : "<type>:<name>"
4361 }
4362 }
4363 },
4364 "permissions" : {
4365 "check" : [
4366 "perm",
4367 "/",
4368 [
4369 "Sys.Console"
4370 ]
4371 ]
4372 },
4373 "protected" : 1,
4374 "returns" : {
4375 "type" : "null"
4376 }
4377 }
4378 },
4379 "leaf" : 1,
4380 "path" : "/cluster/ha/resources/{sid}/relocate",
4381 "text" : "relocate"
4382 }
4383 ],
4384 "info" : {
4385 "DELETE" : {
e9cd3bd4 4386 "allowtoken" : 1,
44660702
DM
4387 "description" : "Delete resource configuration.",
4388 "method" : "DELETE",
4389 "name" : "delete",
7aacca6f 4390 "parameters" : {
44660702 4391 "additionalProperties" : 0,
7aacca6f
DM
4392 "properties" : {
4393 "sid" : {
4394 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
44660702 4395 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4396 "type" : "string",
44660702
DM
4397 "typetext" : "<type>:<name>"
4398 }
4399 }
4400 },
4401 "permissions" : {
4402 "check" : [
4403 "perm",
4404 "/",
4405 [
4406 "Sys.Console"
4407 ]
4408 ]
4409 },
4410 "protected" : 1,
4411 "returns" : {
4412 "type" : "null"
4413 }
4414 },
4415 "GET" : {
e9cd3bd4 4416 "allowtoken" : 1,
44660702
DM
4417 "description" : "Read resource configuration.",
4418 "method" : "GET",
4419 "name" : "read",
4420 "parameters" : {
4421 "additionalProperties" : 0,
4422 "properties" : {
4423 "sid" : {
4424 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
7aacca6f 4425 "format" : "pve-ha-resource-or-vm-id",
44660702 4426 "type" : "string",
7aacca6f
DM
4427 "typetext" : "<type>:<name>"
4428 }
44660702 4429 }
7aacca6f
DM
4430 },
4431 "permissions" : {
4432 "check" : [
4433 "perm",
4434 "/",
4435 [
4436 "Sys.Audit"
4437 ]
4438 ]
4439 },
5f26e15b
TL
4440 "returns" : {
4441 "properties" : {
4442 "comment" : {
4443 "description" : "Description.",
4444 "optional" : 1,
4445 "type" : "string"
4446 },
4447 "digest" : {
4448 "description" : "Can be used to prevent concurrent modifications.",
4449 "type" : "string"
4450 },
4451 "group" : {
4452 "description" : "The HA group identifier.",
4453 "format" : "pve-configid",
4454 "optional" : 1,
4455 "type" : "string"
4456 },
4457 "max_relocate" : {
4458 "description" : "Maximal number of service relocate tries when a service failes to start.",
4459 "optional" : 1,
4460 "type" : "integer"
4461 },
4462 "max_restart" : {
4463 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4464 "optional" : 1,
4465 "type" : "integer"
4466 },
4467 "sid" : {
4468 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4469 "format" : "pve-ha-resource-or-vm-id",
4470 "type" : "string",
4471 "typetext" : "<type>:<name>"
4472 },
4473 "state" : {
4474 "description" : "Requested resource state.",
4475 "enum" : [
4476 "started",
4477 "stopped",
4478 "enabled",
4479 "disabled",
4480 "ignored"
4481 ],
4482 "optional" : 1,
4483 "type" : "string"
4484 },
4485 "type" : {
4486 "description" : "The type of the resources.",
4487 "type" : "string"
4488 }
4489 },
4490 "type" : "object"
4491 }
7aacca6f 4492 },
56122987 4493 "PUT" : {
e9cd3bd4 4494 "allowtoken" : 1,
44660702 4495 "description" : "Update resource configuration.",
7aacca6f 4496 "method" : "PUT",
44660702 4497 "name" : "update",
56122987
DM
4498 "parameters" : {
4499 "additionalProperties" : 0,
4500 "properties" : {
44660702
DM
4501 "comment" : {
4502 "description" : "Description.",
4503 "maxLength" : 4096,
56122987 4504 "optional" : 1,
013dc89f
DM
4505 "type" : "string",
4506 "typetext" : "<string>"
56122987 4507 },
7aacca6f
DM
4508 "delete" : {
4509 "description" : "A list of settings you want to delete.",
7aacca6f 4510 "format" : "pve-configid-list",
44660702
DM
4511 "maxLength" : 4096,
4512 "optional" : 1,
013dc89f
DM
4513 "type" : "string",
4514 "typetext" : "<string>"
56122987 4515 },
44660702
DM
4516 "digest" : {
4517 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4518 "maxLength" : 40,
4519 "optional" : 1,
013dc89f
DM
4520 "type" : "string",
4521 "typetext" : "<string>"
56122987 4522 },
44660702
DM
4523 "group" : {
4524 "description" : "The HA group identifier.",
4525 "format" : "pve-configid",
7aacca6f 4526 "optional" : 1,
013dc89f
DM
4527 "type" : "string",
4528 "typetext" : "<string>"
56122987
DM
4529 },
4530 "max_relocate" : {
7aacca6f 4531 "default" : 1,
56122987 4532 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
4533 "minimum" : 0,
4534 "optional" : 1,
4bd7df8b 4535 "type" : "integer",
013dc89f 4536 "typetext" : "<integer> (0 - N)"
7aacca6f 4537 },
44660702
DM
4538 "max_restart" : {
4539 "default" : 1,
4540 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4541 "minimum" : 0,
7aacca6f 4542 "optional" : 1,
4bd7df8b 4543 "type" : "integer",
013dc89f 4544 "typetext" : "<integer> (0 - N)"
44660702
DM
4545 },
4546 "sid" : {
4547 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4548 "format" : "pve-ha-resource-or-vm-id",
4549 "type" : "string",
4550 "typetext" : "<type>:<name>"
7aacca6f
DM
4551 },
4552 "state" : {
f13c1238
DM
4553 "default" : "started",
4554 "description" : "Requested resource state.",
7aacca6f 4555 "enum" : [
f13c1238
DM
4556 "started",
4557 "stopped",
7aacca6f 4558 "enabled",
2489d6df
WB
4559 "disabled",
4560 "ignored"
7aacca6f 4561 ],
7aacca6f 4562 "optional" : 1,
f13c1238 4563 "type" : "string",
2489d6df 4564 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
56122987 4565 }
44660702
DM
4566 },
4567 "type" : "object"
56122987 4568 },
56122987
DM
4569 "permissions" : {
4570 "check" : [
4571 "perm",
4572 "/",
4573 [
4574 "Sys.Console"
4575 ]
4576 ]
4577 },
7aacca6f 4578 "protected" : 1,
56122987
DM
4579 "returns" : {
4580 "type" : "null"
4581 }
4582 }
4583 },
44660702 4584 "leaf" : 0,
7aacca6f 4585 "path" : "/cluster/ha/resources/{sid}",
44660702 4586 "text" : "{sid}"
56122987
DM
4587 }
4588 ],
7aacca6f
DM
4589 "info" : {
4590 "GET" : {
e9cd3bd4 4591 "allowtoken" : 1,
44660702
DM
4592 "description" : "List HA resources.",
4593 "method" : "GET",
4594 "name" : "index",
7aacca6f 4595 "parameters" : {
44660702
DM
4596 "additionalProperties" : 0,
4597 "properties" : {
4598 "type" : {
4599 "description" : "Only list resources of specific type",
4600 "enum" : [
4601 "ct",
4602 "vm"
4603 ],
4604 "optional" : 1,
4605 "type" : "string"
4606 }
4607 }
7aacca6f 4608 },
7aacca6f
DM
4609 "permissions" : {
4610 "check" : [
4611 "perm",
4612 "/",
4613 [
4614 "Sys.Audit"
4615 ]
4616 ]
4617 },
7aacca6f 4618 "returns" : {
7aacca6f 4619 "items" : {
7aacca6f 4620 "properties" : {
44660702 4621 "sid" : {
7aacca6f
DM
4622 "type" : "string"
4623 }
44660702
DM
4624 },
4625 "type" : "object"
7aacca6f
DM
4626 },
4627 "links" : [
4628 {
44660702 4629 "href" : "{sid}",
7aacca6f
DM
4630 "rel" : "child"
4631 }
44660702
DM
4632 ],
4633 "type" : "array"
7aacca6f
DM
4634 }
4635 },
4636 "POST" : {
e9cd3bd4 4637 "allowtoken" : 1,
44660702 4638 "description" : "Create a new HA resource.",
7aacca6f 4639 "method" : "POST",
44660702 4640 "name" : "create",
7aacca6f 4641 "parameters" : {
44660702 4642 "additionalProperties" : 0,
7aacca6f
DM
4643 "properties" : {
4644 "comment" : {
7aacca6f 4645 "description" : "Description.",
44660702 4646 "maxLength" : 4096,
7aacca6f 4647 "optional" : 1,
013dc89f
DM
4648 "type" : "string",
4649 "typetext" : "<string>"
7aacca6f 4650 },
44660702
DM
4651 "group" : {
4652 "description" : "The HA group identifier.",
4653 "format" : "pve-configid",
7aacca6f 4654 "optional" : 1,
013dc89f
DM
4655 "type" : "string",
4656 "typetext" : "<string>"
7aacca6f 4657 },
44660702
DM
4658 "max_relocate" : {
4659 "default" : 1,
4660 "description" : "Maximal number of service relocate tries when a service failes to start.",
4661 "minimum" : 0,
7aacca6f 4662 "optional" : 1,
4bd7df8b 4663 "type" : "integer",
013dc89f 4664 "typetext" : "<integer> (0 - N)"
7aacca6f 4665 },
44660702
DM
4666 "max_restart" : {
4667 "default" : 1,
4668 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4669 "minimum" : 0,
4670 "optional" : 1,
4bd7df8b 4671 "type" : "integer",
013dc89f 4672 "typetext" : "<integer> (0 - N)"
44660702
DM
4673 },
4674 "sid" : {
4675 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4676 "format" : "pve-ha-resource-or-vm-id",
4677 "type" : "string",
4678 "typetext" : "<type>:<name>"
4679 },
4680 "state" : {
f13c1238
DM
4681 "default" : "started",
4682 "description" : "Requested resource state.",
7aacca6f 4683 "enum" : [
f13c1238
DM
4684 "started",
4685 "stopped",
44660702 4686 "enabled",
2489d6df
WB
4687 "disabled",
4688 "ignored"
7aacca6f 4689 ],
7aacca6f 4690 "optional" : 1,
f13c1238 4691 "type" : "string",
2489d6df 4692 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
7aacca6f 4693 },
44660702
DM
4694 "type" : {
4695 "description" : "Resource type.",
4696 "enum" : [
4697 "ct",
4698 "vm"
4699 ],
4700 "optional" : 1,
4701 "type" : "string"
4702 }
7aacca6f 4703 },
44660702 4704 "type" : "object"
7aacca6f
DM
4705 },
4706 "permissions" : {
4707 "check" : [
4708 "perm",
4709 "/",
4710 [
4711 "Sys.Console"
4712 ]
4713 ]
4714 },
44660702
DM
4715 "protected" : 1,
4716 "returns" : {
4717 "type" : "null"
4718 }
7aacca6f
DM
4719 }
4720 },
44660702
DM
4721 "leaf" : 0,
4722 "path" : "/cluster/ha/resources",
4723 "text" : "resources"
4724 },
4725 {
56122987
DM
4726 "children" : [
4727 {
56122987 4728 "info" : {
44660702 4729 "DELETE" : {
e9cd3bd4 4730 "allowtoken" : 1,
44660702
DM
4731 "description" : "Delete ha group configuration.",
4732 "method" : "DELETE",
4733 "name" : "delete",
56122987 4734 "parameters" : {
7aacca6f 4735 "additionalProperties" : 0,
56122987 4736 "properties" : {
7aacca6f
DM
4737 "group" : {
4738 "description" : "The HA group identifier.",
44660702 4739 "format" : "pve-configid",
013dc89f
DM
4740 "type" : "string",
4741 "typetext" : "<string>"
56122987 4742 }
7aacca6f 4743 }
56122987 4744 },
56122987
DM
4745 "permissions" : {
4746 "check" : [
4747 "perm",
4748 "/",
4749 [
7aacca6f 4750 "Sys.Console"
56122987
DM
4751 ]
4752 ]
4753 },
44660702 4754 "protected" : 1,
7aacca6f
DM
4755 "returns" : {
4756 "type" : "null"
56122987
DM
4757 }
4758 },
44660702 4759 "GET" : {
e9cd3bd4 4760 "allowtoken" : 1,
44660702
DM
4761 "description" : "Read ha group configuration.",
4762 "method" : "GET",
4763 "name" : "read",
56122987 4764 "parameters" : {
44660702 4765 "additionalProperties" : 0,
56122987
DM
4766 "properties" : {
4767 "group" : {
4768 "description" : "The HA group identifier.",
44660702 4769 "format" : "pve-configid",
013dc89f
DM
4770 "type" : "string",
4771 "typetext" : "<string>"
56122987 4772 }
44660702 4773 }
56122987 4774 },
56122987
DM
4775 "permissions" : {
4776 "check" : [
4777 "perm",
4778 "/",
4779 [
44660702 4780 "Sys.Audit"
56122987
DM
4781 ]
4782 ]
4783 },
44660702 4784 "returns" : {}
7aacca6f 4785 },
44660702 4786 "PUT" : {
e9cd3bd4 4787 "allowtoken" : 1,
44660702
DM
4788 "description" : "Update ha group configuration.",
4789 "method" : "PUT",
4790 "name" : "update",
7aacca6f 4791 "parameters" : {
44660702 4792 "additionalProperties" : 0,
7aacca6f 4793 "properties" : {
44660702
DM
4794 "comment" : {
4795 "description" : "Description.",
4796 "maxLength" : 4096,
4797 "optional" : 1,
013dc89f
DM
4798 "type" : "string",
4799 "typetext" : "<string>"
44660702
DM
4800 },
4801 "delete" : {
4802 "description" : "A list of settings you want to delete.",
4803 "format" : "pve-configid-list",
4804 "maxLength" : 4096,
4805 "optional" : 1,
013dc89f
DM
4806 "type" : "string",
4807 "typetext" : "<string>"
44660702
DM
4808 },
4809 "digest" : {
4810 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4811 "maxLength" : 40,
4812 "optional" : 1,
013dc89f
DM
4813 "type" : "string",
4814 "typetext" : "<string>"
44660702 4815 },
7aacca6f
DM
4816 "group" : {
4817 "description" : "The HA group identifier.",
44660702 4818 "format" : "pve-configid",
013dc89f
DM
4819 "type" : "string",
4820 "typetext" : "<string>"
44660702
DM
4821 },
4822 "nodes" : {
f13c1238 4823 "description" : "List of cluster node names with optional priority.",
44660702
DM
4824 "format" : "pve-ha-group-node-list",
4825 "optional" : 1,
7aacca6f 4826 "type" : "string",
f13c1238
DM
4827 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4828 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
44660702
DM
4829 },
4830 "nofailback" : {
4831 "default" : 0,
4832 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
4833 "optional" : 1,
013dc89f
DM
4834 "type" : "boolean",
4835 "typetext" : "<boolean>"
44660702
DM
4836 },
4837 "restricted" : {
4838 "default" : 0,
c4808e75 4839 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4840 "optional" : 1,
013dc89f 4841 "type" : "boolean",
c4808e75
DM
4842 "typetext" : "<boolean>",
4843 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
7aacca6f
DM
4844 }
4845 },
44660702 4846 "type" : "object"
7aacca6f 4847 },
7aacca6f
DM
4848 "permissions" : {
4849 "check" : [
4850 "perm",
4851 "/",
4852 [
44660702 4853 "Sys.Console"
7aacca6f
DM
4854 ]
4855 ]
4856 },
44660702
DM
4857 "protected" : 1,
4858 "returns" : {
4859 "type" : "null"
4860 }
56122987
DM
4861 }
4862 },
4863 "leaf" : 1,
44660702
DM
4864 "path" : "/cluster/ha/groups/{group}",
4865 "text" : "{group}"
56122987 4866 }
44660702
DM
4867 ],
4868 "info" : {
4869 "GET" : {
e9cd3bd4 4870 "allowtoken" : 1,
44660702
DM
4871 "description" : "Get HA groups.",
4872 "method" : "GET",
4873 "name" : "index",
4874 "parameters" : {
4875 "additionalProperties" : 0
4876 },
4877 "permissions" : {
4878 "check" : [
4879 "perm",
4880 "/",
4881 [
4882 "Sys.Audit"
4883 ]
4884 ]
4885 },
4886 "returns" : {
4887 "items" : {
4888 "properties" : {
4889 "group" : {
4890 "type" : "string"
4891 }
4892 },
4893 "type" : "object"
4894 },
4895 "links" : [
4896 {
4897 "href" : "{group}",
4898 "rel" : "child"
4899 }
4900 ],
4901 "type" : "array"
4902 }
4903 },
4904 "POST" : {
e9cd3bd4 4905 "allowtoken" : 1,
44660702
DM
4906 "description" : "Create a new HA group.",
4907 "method" : "POST",
4908 "name" : "create",
4909 "parameters" : {
4910 "additionalProperties" : 0,
4911 "properties" : {
4912 "comment" : {
4913 "description" : "Description.",
4914 "maxLength" : 4096,
4915 "optional" : 1,
013dc89f
DM
4916 "type" : "string",
4917 "typetext" : "<string>"
44660702
DM
4918 },
4919 "group" : {
4920 "description" : "The HA group identifier.",
4921 "format" : "pve-configid",
013dc89f
DM
4922 "type" : "string",
4923 "typetext" : "<string>"
44660702
DM
4924 },
4925 "nodes" : {
f13c1238 4926 "description" : "List of cluster node names with optional priority.",
44660702
DM
4927 "format" : "pve-ha-group-node-list",
4928 "optional" : 0,
4929 "type" : "string",
f13c1238
DM
4930 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4931 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
44660702
DM
4932 },
4933 "nofailback" : {
4934 "default" : 0,
4935 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
4936 "optional" : 1,
013dc89f
DM
4937 "type" : "boolean",
4938 "typetext" : "<boolean>"
44660702
DM
4939 },
4940 "restricted" : {
4941 "default" : 0,
c4808e75 4942 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4943 "optional" : 1,
013dc89f 4944 "type" : "boolean",
c4808e75
DM
4945 "typetext" : "<boolean>",
4946 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
44660702
DM
4947 },
4948 "type" : {
4949 "description" : "Group type.",
4950 "enum" : [
4951 "group"
4952 ],
4953 "optional" : 1,
4954 "type" : "string"
4955 }
4956 },
4957 "type" : "object"
4958 },
4959 "permissions" : {
4960 "check" : [
4961 "perm",
4962 "/",
4963 [
4964 "Sys.Console"
4965 ]
4966 ]
4967 },
4968 "protected" : 1,
4969 "returns" : {
4970 "type" : "null"
4971 }
4972 }
4973 },
4974 "leaf" : 0,
4975 "path" : "/cluster/ha/groups",
4976 "text" : "groups"
7aacca6f
DM
4977 },
4978 {
7aacca6f
DM
4979 "children" : [
4980 {
4981 "info" : {
4982 "GET" : {
e9cd3bd4 4983 "allowtoken" : 1,
56122987 4984 "description" : "Get HA manger status.",
44660702 4985 "method" : "GET",
7aacca6f 4986 "name" : "status",
44660702
DM
4987 "parameters" : {
4988 "additionalProperties" : 0
4989 },
56122987
DM
4990 "permissions" : {
4991 "check" : [
4992 "perm",
4993 "/",
4994 [
4995 "Sys.Audit"
4996 ]
4997 ]
7aacca6f 4998 },
44660702 4999 "returns" : {
159464a9
TL
5000 "items" : {
5001 "properties" : {
5002 "crm_state" : {
5003 "description" : "For type 'service'. Service state as seen by the CRM.",
5004 "optional" : 1,
5005 "type" : "string"
5006 },
5007 "id" : {
5008 "description" : "Status entry ID (quorum, master, lrm:<node>, service:<sid>).",
5009 "type" : "string"
5010 },
5011 "max_relocate" : {
5012 "description" : "For type 'service'.",
5013 "optional" : 1,
5014 "type" : "integer"
5015 },
5016 "max_restart" : {
5017 "description" : "For type 'service'.",
5018 "optional" : 1,
5019 "type" : "integer"
5020 },
5021 "node" : {
5022 "description" : "Node associated to status entry.",
5023 "type" : "string"
5024 },
5025 "quorate" : {
5026 "description" : "For type 'quorum'. Whether the cluster is quorate or not.",
5027 "optional" : 1,
5028 "type" : "boolean"
5029 },
5030 "request_state" : {
5031 "description" : "For type 'service'. Requested service state.",
5032 "optional" : 1,
5033 "type" : "string"
5034 },
5035 "sid" : {
5036 "description" : "For type 'service'. Service ID.",
5037 "optional" : 1,
5038 "type" : "string"
5039 },
5040 "state" : {
5041 "description" : "For type 'service'. Verbose service state.",
5042 "optional" : 1,
5043 "type" : "string"
5044 },
5045 "status" : {
5046 "description" : "Status of the entry (value depends on type).",
5047 "type" : "string"
5048 },
5049 "timestamp" : {
5050 "description" : "For type 'lrm','master'. Timestamp of the status information.",
5051 "optional" : 1,
5052 "type" : "integer"
5053 },
5054 "type" : {
5055 "description" : "Type of status entry.",
5056 "enum" : [
5057 "quorum",
5058 "master",
5059 "lrm",
5060 "service"
5061 ]
5062 }
5063 },
5064 "type" : "object"
5065 },
44660702 5066 "type" : "array"
56122987
DM
5067 }
5068 }
7aacca6f 5069 },
7aacca6f 5070 "leaf" : 1,
44660702
DM
5071 "path" : "/cluster/ha/status/current",
5072 "text" : "current"
56122987
DM
5073 },
5074 {
5075 "info" : {
5076 "GET" : {
e9cd3bd4 5077 "allowtoken" : 1,
7aacca6f 5078 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
5079 "method" : "GET",
5080 "name" : "manager_status",
7aacca6f
DM
5081 "parameters" : {
5082 "additionalProperties" : 0
5083 },
56122987
DM
5084 "permissions" : {
5085 "check" : [
5086 "perm",
5087 "/",
5088 [
5089 "Sys.Audit"
5090 ]
5091 ]
44660702
DM
5092 },
5093 "returns" : {
5094 "type" : "object"
7aacca6f 5095 }
56122987
DM
5096 }
5097 },
56122987 5098 "leaf" : 1,
44660702
DM
5099 "path" : "/cluster/ha/status/manager_status",
5100 "text" : "manager_status"
56122987
DM
5101 }
5102 ],
56122987
DM
5103 "info" : {
5104 "GET" : {
e9cd3bd4 5105 "allowtoken" : 1,
44660702 5106 "description" : "Directory index.",
7aacca6f 5107 "method" : "GET",
44660702
DM
5108 "name" : "index",
5109 "parameters" : {
5110 "additionalProperties" : 0
5111 },
5112 "permissions" : {
5113 "user" : "all"
5114 },
56122987 5115 "returns" : {
56122987
DM
5116 "items" : {
5117 "properties" : {},
5118 "type" : "object"
5119 },
5120 "links" : [
5121 {
44660702
DM
5122 "href" : "{name}",
5123 "rel" : "child"
56122987 5124 }
7aacca6f
DM
5125 ],
5126 "type" : "array"
44660702 5127 }
56122987 5128 }
7aacca6f 5129 },
44660702 5130 "leaf" : 0,
7aacca6f 5131 "path" : "/cluster/ha/status",
44660702 5132 "text" : "status"
56122987
DM
5133 }
5134 ],
56122987
DM
5135 "info" : {
5136 "GET" : {
e9cd3bd4 5137 "allowtoken" : 1,
7aacca6f 5138 "description" : "Directory index.",
44660702
DM
5139 "method" : "GET",
5140 "name" : "index",
5141 "parameters" : {
5142 "additionalProperties" : 0
5143 },
7aacca6f
DM
5144 "permissions" : {
5145 "check" : [
5146 "perm",
5147 "/",
5148 [
5149 "Sys.Audit"
5150 ]
5151 ]
5152 },
56122987 5153 "returns" : {
56122987 5154 "items" : {
7aacca6f
DM
5155 "properties" : {
5156 "id" : {
5157 "type" : "string"
5158 }
44660702
DM
5159 },
5160 "type" : "object"
7aacca6f
DM
5161 },
5162 "links" : [
5163 {
5164 "href" : "{id}",
5165 "rel" : "child"
5166 }
44660702
DM
5167 ],
5168 "type" : "array"
7aacca6f
DM
5169 }
5170 }
44660702
DM
5171 },
5172 "leaf" : 0,
5173 "path" : "/cluster/ha",
5174 "text" : "ha"
7aacca6f 5175 },
a9a8e3d1
DM
5176 {
5177 "children" : [
c5aa7e14
TL
5178 {
5179 "children" : [
5180 {
5181 "info" : {
5182 "DELETE" : {
5183 "allowtoken" : 1,
5184 "description" : "Delete ACME plugin configuration.",
5185 "method" : "DELETE",
5186 "name" : "delete_plugin",
5187 "parameters" : {
5188 "additionalProperties" : 0,
5189 "properties" : {
5190 "id" : {
5191 "description" : "Unique identifier for ACME plugin instance.",
5192 "format" : "pve-configid",
5193 "type" : "string",
5194 "typetext" : "<string>"
5195 }
5196 }
5197 },
5198 "permissions" : {
5199 "check" : [
5200 "perm",
5201 "/",
5202 [
5203 "Sys.Modify"
5204 ]
5205 ]
5206 },
5207 "protected" : 1,
5208 "returns" : {
5209 "type" : "null"
5210 }
5211 },
5212 "GET" : {
5213 "allowtoken" : 1,
5214 "description" : "Get ACME plugin configuration.",
5215 "method" : "GET",
5216 "name" : "get_plugin_config",
5217 "parameters" : {
5218 "additionalProperties" : 0,
5219 "properties" : {
5220 "id" : {
5221 "description" : "Unique identifier for ACME plugin instance.",
5222 "format" : "pve-configid",
5223 "type" : "string",
5224 "typetext" : "<string>"
5225 }
5226 }
5227 },
5228 "permissions" : {
5229 "check" : [
5230 "perm",
5231 "/",
5232 [
5233 "Sys.Modify"
5234 ]
5235 ]
5236 },
5237 "protected" : 1,
5238 "returns" : {
5239 "type" : "object"
5240 }
5241 },
5242 "PUT" : {
5243 "allowtoken" : 1,
5244 "description" : "Update ACME plugin configuration.",
5245 "method" : "PUT",
5246 "name" : "update_plugin",
5247 "parameters" : {
5248 "additionalProperties" : 0,
5249 "properties" : {
5250 "api" : {
5251 "description" : "API plugin name",
5252 "enum" : [
d2656385 5253 "1984hosting",
c5aa7e14
TL
5254 "acmedns",
5255 "acmeproxy",
5256 "active24",
5257 "ad",
5258 "ali",
d2656385
TL
5259 "anx",
5260 "arvan",
e7084ef7 5261 "aurora",
c5aa7e14
TL
5262 "autodns",
5263 "aws",
5370fa8c 5264 "azion",
c5aa7e14 5265 "azure",
9d2e98ed 5266 "bunny",
c5aa7e14
TL
5267 "cf",
5268 "clouddns",
5269 "cloudns",
5270 "cn",
5271 "conoha",
5272 "constellix",
9d2e98ed
TL
5273 "cpanel",
5274 "curanet",
c5aa7e14
TL
5275 "cyon",
5276 "da",
5277 "ddnss",
5278 "desec",
ac70d7d1 5279 "df",
c5aa7e14 5280 "dgon",
9d2e98ed 5281 "dnshome",
c5aa7e14 5282 "dnsimple",
9d2e98ed 5283 "dnsservices",
c5aa7e14
TL
5284 "do",
5285 "doapi",
5286 "domeneshop",
5287 "dp",
5288 "dpi",
5289 "dreamhost",
5290 "duckdns",
5291 "durabledns",
5292 "dyn",
5293 "dynu",
5294 "dynv6",
5295 "easydns",
d2656385 5296 "edgedns",
c5aa7e14
TL
5297 "euserv",
5298 "exoscale",
9d2e98ed 5299 "fornex",
c5aa7e14
TL
5300 "freedns",
5301 "gandi_livedns",
5302 "gcloud",
8dd66e12 5303 "gcore",
c5aa7e14 5304 "gd",
9d2e98ed 5305 "geoscaling",
8dd66e12 5306 "googledomains",
c5aa7e14 5307 "he",
d2656385 5308 "hetzner",
c5aa7e14
TL
5309 "hexonet",
5310 "hostingde",
d2656385 5311 "huaweicloud",
c5aa7e14 5312 "infoblox",
d2656385 5313 "infomaniak",
c5aa7e14
TL
5314 "internetbs",
5315 "inwx",
d2656385 5316 "ionos",
8dd66e12 5317 "ipv64",
c5aa7e14
TL
5318 "ispconfig",
5319 "jd",
d2656385
TL
5320 "joker",
5321 "kappernet",
c5aa7e14
TL
5322 "kas",
5323 "kinghost",
5324 "knot",
9d2e98ed 5325 "la",
c5aa7e14
TL
5326 "leaseweb",
5327 "lexicon",
5328 "linode",
5329 "linode_v4",
5330 "loopia",
5331 "lua",
5332 "maradns",
5333 "me",
5334 "miab",
5335 "misaka",
5336 "myapi",
5337 "mydevil",
5338 "mydnsjp",
9d2e98ed 5339 "mythic_beasts",
c5aa7e14
TL
5340 "namecheap",
5341 "namecom",
5342 "namesilo",
8dd66e12 5343 "nanelo",
c5aa7e14
TL
5344 "nederhost",
5345 "neodigit",
5346 "netcup",
d2656385 5347 "netlify",
c5aa7e14 5348 "nic",
d2656385
TL
5349 "njalla",
5350 "nm",
c5aa7e14
TL
5351 "nsd",
5352 "nsone",
5353 "nsupdate",
5354 "nw",
5370fa8c 5355 "oci",
c5aa7e14
TL
5356 "one",
5357 "online",
5358 "openprovider",
d2656385 5359 "openstack",
c5aa7e14
TL
5360 "opnsense",
5361 "ovh",
5362 "pdns",
5363 "pleskxml",
5364 "pointhq",
e7084ef7 5365 "porkbun",
d2656385 5366 "rackcorp",
c5aa7e14 5367 "rackspace",
9d2e98ed 5368 "rage4",
c5aa7e14
TL
5369 "rcode0",
5370 "regru",
d2656385 5371 "scaleway",
c5aa7e14
TL
5372 "schlundtech",
5373 "selectel",
9d2e98ed 5374 "selfhost",
c5aa7e14 5375 "servercow",
d2656385 5376 "simply",
c5aa7e14 5377 "tele3",
d2656385 5378 "transip",
9d2e98ed 5379 "udr",
c5aa7e14
TL
5380 "ultra",
5381 "unoeuro",
5382 "variomedia",
5370fa8c 5383 "veesp",
9d2e98ed 5384 "vercel",
c5aa7e14
TL
5385 "vscale",
5386 "vultr",
e7084ef7 5387 "websupport",
d2656385 5388 "world4you",
c5aa7e14 5389 "yandex",
9d2e98ed 5390 "yc",
c5aa7e14
TL
5391 "zilore",
5392 "zone",
5393 "zonomi"
5394 ],
5395 "optional" : 1,
5396 "type" : "string"
5397 },
5398 "data" : {
5399 "description" : "DNS plugin data. (base64 encoded)",
5400 "optional" : 1,
5401 "type" : "string",
5402 "typetext" : "<string>"
5403 },
5404 "delete" : {
5405 "description" : "A list of settings you want to delete.",
5406 "format" : "pve-configid-list",
5407 "maxLength" : 4096,
5408 "optional" : 1,
5409 "type" : "string",
5410 "typetext" : "<string>"
5411 },
5412 "digest" : {
5413 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
5414 "maxLength" : 40,
5415 "optional" : 1,
5416 "type" : "string",
5417 "typetext" : "<string>"
5418 },
5419 "disable" : {
5420 "description" : "Flag to disable the config.",
5421 "optional" : 1,
5422 "type" : "boolean",
5423 "typetext" : "<boolean>"
5424 },
5425 "id" : {
5426 "description" : "ACME Plugin ID name",
5427 "format" : "pve-configid",
5428 "type" : "string",
5429 "typetext" : "<string>"
5430 },
5431 "nodes" : {
5432 "description" : "List of cluster node names.",
5433 "format" : "pve-node-list",
5434 "optional" : 1,
5435 "type" : "string",
5436 "typetext" : "<string>"
5437 },
5438 "validation-delay" : {
5439 "default" : 30,
5440 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5441 "maximum" : 172800,
5442 "minimum" : 0,
5443 "optional" : 1,
5444 "type" : "integer",
5445 "typetext" : "<integer> (0 - 172800)"
5446 }
5447 },
5448 "type" : "object"
5449 },
5450 "permissions" : {
5451 "check" : [
5452 "perm",
5453 "/",
5454 [
5455 "Sys.Modify"
5456 ]
5457 ]
5458 },
5459 "protected" : 1,
5460 "returns" : {
5461 "type" : "null"
5462 }
5463 }
5464 },
5465 "leaf" : 1,
5466 "path" : "/cluster/acme/plugins/{id}",
5467 "text" : "{id}"
5468 }
5469 ],
5470 "info" : {
5471 "GET" : {
5472 "allowtoken" : 1,
5473 "description" : "ACME plugin index.",
5474 "method" : "GET",
5475 "name" : "index",
5476 "parameters" : {
5477 "additionalProperties" : 0,
5478 "properties" : {
5479 "type" : {
5480 "description" : "Only list ACME plugins of a specific type",
5481 "enum" : [
5482 "dns",
5483 "standalone"
5484 ],
5485 "optional" : 1,
5486 "type" : "string"
5487 }
5488 }
5489 },
5490 "permissions" : {
5491 "check" : [
5492 "perm",
5493 "/",
5494 [
5495 "Sys.Modify"
5496 ]
5497 ]
5498 },
5499 "protected" : 1,
5500 "returns" : {
5501 "items" : {
5502 "properties" : {
5503 "plugin" : {
5504 "description" : "Unique identifier for ACME plugin instance.",
5505 "format" : "pve-configid",
5506 "type" : "string"
5507 }
5508 },
5509 "type" : "object"
5510 },
5511 "links" : [
5512 {
5513 "href" : "{plugin}",
5514 "rel" : "child"
5515 }
5516 ],
5517 "type" : "array"
5518 }
5519 },
5520 "POST" : {
5521 "allowtoken" : 1,
5522 "description" : "Add ACME plugin configuration.",
5523 "method" : "POST",
5524 "name" : "add_plugin",
5525 "parameters" : {
5526 "additionalProperties" : 0,
5527 "properties" : {
5528 "api" : {
5529 "description" : "API plugin name",
5530 "enum" : [
d2656385 5531 "1984hosting",
c5aa7e14
TL
5532 "acmedns",
5533 "acmeproxy",
5534 "active24",
5535 "ad",
5536 "ali",
d2656385
TL
5537 "anx",
5538 "arvan",
e7084ef7 5539 "aurora",
c5aa7e14
TL
5540 "autodns",
5541 "aws",
5370fa8c 5542 "azion",
c5aa7e14 5543 "azure",
9d2e98ed 5544 "bunny",
c5aa7e14
TL
5545 "cf",
5546 "clouddns",
5547 "cloudns",
5548 "cn",
5549 "conoha",
5550 "constellix",
9d2e98ed
TL
5551 "cpanel",
5552 "curanet",
c5aa7e14
TL
5553 "cyon",
5554 "da",
5555 "ddnss",
5556 "desec",
ac70d7d1 5557 "df",
c5aa7e14 5558 "dgon",
9d2e98ed 5559 "dnshome",
c5aa7e14 5560 "dnsimple",
9d2e98ed 5561 "dnsservices",
c5aa7e14
TL
5562 "do",
5563 "doapi",
5564 "domeneshop",
5565 "dp",
5566 "dpi",
5567 "dreamhost",
5568 "duckdns",
5569 "durabledns",
5570 "dyn",
5571 "dynu",
5572 "dynv6",
5573 "easydns",
d2656385 5574 "edgedns",
c5aa7e14
TL
5575 "euserv",
5576 "exoscale",
9d2e98ed 5577 "fornex",
c5aa7e14
TL
5578 "freedns",
5579 "gandi_livedns",
5580 "gcloud",
8dd66e12 5581 "gcore",
c5aa7e14 5582 "gd",
9d2e98ed 5583 "geoscaling",
8dd66e12 5584 "googledomains",
c5aa7e14 5585 "he",
d2656385 5586 "hetzner",
c5aa7e14
TL
5587 "hexonet",
5588 "hostingde",
d2656385 5589 "huaweicloud",
c5aa7e14 5590 "infoblox",
d2656385 5591 "infomaniak",
c5aa7e14
TL
5592 "internetbs",
5593 "inwx",
d2656385 5594 "ionos",
8dd66e12 5595 "ipv64",
c5aa7e14
TL
5596 "ispconfig",
5597 "jd",
d2656385
TL
5598 "joker",
5599 "kappernet",
c5aa7e14
TL
5600 "kas",
5601 "kinghost",
5602 "knot",
9d2e98ed 5603 "la",
c5aa7e14
TL
5604 "leaseweb",
5605 "lexicon",
5606 "linode",
5607 "linode_v4",
5608 "loopia",
5609 "lua",
5610 "maradns",
5611 "me",
5612 "miab",
5613 "misaka",
5614 "myapi",
5615 "mydevil",
5616 "mydnsjp",
9d2e98ed 5617 "mythic_beasts",
c5aa7e14
TL
5618 "namecheap",
5619 "namecom",
5620 "namesilo",
8dd66e12 5621 "nanelo",
c5aa7e14
TL
5622 "nederhost",
5623 "neodigit",
5624 "netcup",
d2656385 5625 "netlify",
c5aa7e14 5626 "nic",
d2656385
TL
5627 "njalla",
5628 "nm",
c5aa7e14
TL
5629 "nsd",
5630 "nsone",
5631 "nsupdate",
5632 "nw",
5370fa8c 5633 "oci",
c5aa7e14
TL
5634 "one",
5635 "online",
5636 "openprovider",
d2656385 5637 "openstack",
c5aa7e14
TL
5638 "opnsense",
5639 "ovh",
5640 "pdns",
5641 "pleskxml",
5642 "pointhq",
e7084ef7 5643 "porkbun",
d2656385 5644 "rackcorp",
c5aa7e14 5645 "rackspace",
9d2e98ed 5646 "rage4",
c5aa7e14
TL
5647 "rcode0",
5648 "regru",
d2656385 5649 "scaleway",
c5aa7e14
TL
5650 "schlundtech",
5651 "selectel",
9d2e98ed 5652 "selfhost",
c5aa7e14 5653 "servercow",
d2656385 5654 "simply",
c5aa7e14 5655 "tele3",
d2656385 5656 "transip",
9d2e98ed 5657 "udr",
c5aa7e14
TL
5658 "ultra",
5659 "unoeuro",
5660 "variomedia",
5370fa8c 5661 "veesp",
9d2e98ed 5662 "vercel",
c5aa7e14
TL
5663 "vscale",
5664 "vultr",
e7084ef7 5665 "websupport",
d2656385 5666 "world4you",
c5aa7e14 5667 "yandex",
9d2e98ed 5668 "yc",
c5aa7e14
TL
5669 "zilore",
5670 "zone",
5671 "zonomi"
5672 ],
5673 "optional" : 1,
5674 "type" : "string"
5675 },
5676 "data" : {
5677 "description" : "DNS plugin data. (base64 encoded)",
5678 "optional" : 1,
5679 "type" : "string",
5680 "typetext" : "<string>"
5681 },
5682 "disable" : {
5683 "description" : "Flag to disable the config.",
5684 "optional" : 1,
5685 "type" : "boolean",
5686 "typetext" : "<boolean>"
5687 },
5688 "id" : {
5689 "description" : "ACME Plugin ID name",
5690 "format" : "pve-configid",
5691 "type" : "string",
5692 "typetext" : "<string>"
5693 },
5694 "nodes" : {
5695 "description" : "List of cluster node names.",
5696 "format" : "pve-node-list",
5697 "optional" : 1,
5698 "type" : "string",
5699 "typetext" : "<string>"
5700 },
5701 "type" : {
5702 "description" : "ACME challenge type.",
5703 "enum" : [
5704 "dns",
5705 "standalone"
5706 ],
5707 "type" : "string"
5708 },
5709 "validation-delay" : {
5710 "default" : 30,
5711 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5712 "maximum" : 172800,
5713 "minimum" : 0,
5714 "optional" : 1,
5715 "type" : "integer",
5716 "typetext" : "<integer> (0 - 172800)"
5717 }
5718 },
5719 "type" : "object"
5720 },
5721 "permissions" : {
5722 "check" : [
5723 "perm",
5724 "/",
5725 [
5726 "Sys.Modify"
5727 ]
5728 ]
5729 },
5730 "protected" : 1,
5731 "returns" : {
5732 "type" : "null"
5733 }
5734 }
5735 },
5736 "leaf" : 0,
5737 "path" : "/cluster/acme/plugins",
5738 "text" : "plugins"
5739 },
a9a8e3d1
DM
5740 {
5741 "children" : [
5742 {
5743 "info" : {
5744 "DELETE" : {
e9cd3bd4 5745 "allowtoken" : 1,
a9a8e3d1
DM
5746 "description" : "Deactivate existing ACME account at CA.",
5747 "method" : "DELETE",
5748 "name" : "deactivate_account",
5749 "parameters" : {
5750 "additionalProperties" : 0,
5751 "properties" : {
5752 "name" : {
5753 "default" : "default",
5754 "description" : "ACME account config file name.",
5755 "format" : "pve-configid",
5756 "format_description" : "name",
5757 "optional" : 1,
5758 "type" : "string",
5759 "typetext" : "<name>"
5760 }
5761 }
5762 },
5763 "protected" : 1,
5764 "returns" : {
5765 "type" : "string"
5766 }
5767 },
5768 "GET" : {
e9cd3bd4 5769 "allowtoken" : 1,
a9a8e3d1
DM
5770 "description" : "Return existing ACME account information.",
5771 "method" : "GET",
5772 "name" : "get_account",
5773 "parameters" : {
5774 "additionalProperties" : 0,
5775 "properties" : {
5776 "name" : {
5777 "default" : "default",
5778 "description" : "ACME account config file name.",
5779 "format" : "pve-configid",
5780 "format_description" : "name",
5781 "optional" : 1,
5782 "type" : "string",
5783 "typetext" : "<name>"
5784 }
5785 }
5786 },
5787 "protected" : 1,
5788 "returns" : {
5789 "additionalProperties" : 0,
5790 "properties" : {
5791 "account" : {
5792 "optional" : 1,
4d47f125 5793 "renderer" : "yaml",
a9a8e3d1
DM
5794 "type" : "object"
5795 },
5796 "directory" : {
5797 "description" : "URL of ACME CA directory endpoint.",
5798 "optional" : 1,
5799 "pattern" : "^https?://.*",
5800 "type" : "string"
5801 },
5802 "location" : {
5803 "optional" : 1,
5804 "type" : "string"
5805 },
5806 "tos" : {
5807 "optional" : 1,
5808 "type" : "string"
5809 }
5810 },
5811 "type" : "object"
5812 }
5813 },
5814 "PUT" : {
e9cd3bd4 5815 "allowtoken" : 1,
a9a8e3d1
DM
5816 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
5817 "method" : "PUT",
5818 "name" : "update_account",
5819 "parameters" : {
5820 "additionalProperties" : 0,
5821 "properties" : {
5822 "contact" : {
5823 "description" : "Contact email addresses.",
5824 "format" : "email-list",
5825 "optional" : 1,
5826 "type" : "string",
5827 "typetext" : "<string>"
5828 },
5829 "name" : {
5830 "default" : "default",
5831 "description" : "ACME account config file name.",
5832 "format" : "pve-configid",
5833 "format_description" : "name",
5834 "optional" : 1,
5835 "type" : "string",
5836 "typetext" : "<name>"
5837 }
5838 }
5839 },
5840 "protected" : 1,
5841 "returns" : {
5842 "type" : "string"
5843 }
5844 }
5845 },
5846 "leaf" : 1,
5847 "path" : "/cluster/acme/account/{name}",
5848 "text" : "{name}"
5849 }
5850 ],
5851 "info" : {
5852 "GET" : {
e9cd3bd4 5853 "allowtoken" : 1,
a9a8e3d1
DM
5854 "description" : "ACMEAccount index.",
5855 "method" : "GET",
5856 "name" : "account_index",
5857 "parameters" : {
5858 "additionalProperties" : 0
5859 },
5860 "permissions" : {
5861 "user" : "all"
5862 },
5863 "protected" : 1,
5864 "returns" : {
5865 "items" : {
5866 "properties" : {},
5867 "type" : "object"
5868 },
5869 "links" : [
5870 {
5871 "href" : "{name}",
5872 "rel" : "child"
5873 }
5874 ],
5875 "type" : "array"
5876 }
5877 },
5878 "POST" : {
e9cd3bd4 5879 "allowtoken" : 1,
a9a8e3d1
DM
5880 "description" : "Register a new ACME account with CA.",
5881 "method" : "POST",
5882 "name" : "register_account",
5883 "parameters" : {
5884 "additionalProperties" : 0,
5885 "properties" : {
5886 "contact" : {
5887 "description" : "Contact email addresses.",
5888 "format" : "email-list",
5889 "type" : "string",
5890 "typetext" : "<string>"
5891 },
5892 "directory" : {
5893 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5894 "description" : "URL of ACME CA directory endpoint.",
5895 "optional" : 1,
5896 "pattern" : "^https?://.*",
5897 "type" : "string"
5898 },
5899 "name" : {
5900 "default" : "default",
5901 "description" : "ACME account config file name.",
5902 "format" : "pve-configid",
5903 "format_description" : "name",
5904 "optional" : 1,
5905 "type" : "string",
5906 "typetext" : "<name>"
5907 },
5908 "tos_url" : {
5909 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
5910 "optional" : 1,
5911 "type" : "string",
5912 "typetext" : "<string>"
5913 }
5914 }
5915 },
5916 "protected" : 1,
5917 "returns" : {
5918 "type" : "string"
5919 }
5920 }
5921 },
5922 "leaf" : 0,
5923 "path" : "/cluster/acme/account",
5924 "text" : "account"
5925 },
5926 {
5927 "info" : {
5928 "GET" : {
e9cd3bd4 5929 "allowtoken" : 1,
a9a8e3d1
DM
5930 "description" : "Retrieve ACME TermsOfService URL from CA.",
5931 "method" : "GET",
5932 "name" : "get_tos",
5933 "parameters" : {
5934 "additionalProperties" : 0,
5935 "properties" : {
5936 "directory" : {
5937 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5938 "description" : "URL of ACME CA directory endpoint.",
5939 "optional" : 1,
5940 "pattern" : "^https?://.*",
5941 "type" : "string"
5942 }
5943 }
5944 },
5da3d723
TL
5945 "permissions" : {
5946 "user" : "all"
5947 },
a9a8e3d1
DM
5948 "returns" : {
5949 "description" : "ACME TermsOfService URL.",
5c1699e5 5950 "optional" : 1,
a9a8e3d1
DM
5951 "type" : "string"
5952 }
5953 }
5954 },
5955 "leaf" : 1,
5956 "path" : "/cluster/acme/tos",
5957 "text" : "tos"
5958 },
5959 {
5960 "info" : {
5961 "GET" : {
e9cd3bd4 5962 "allowtoken" : 1,
a9a8e3d1
DM
5963 "description" : "Get named known ACME directory endpoints.",
5964 "method" : "GET",
5965 "name" : "get_directories",
5966 "parameters" : {
5967 "additionalProperties" : 0
5968 },
5da3d723
TL
5969 "permissions" : {
5970 "user" : "all"
5971 },
a9a8e3d1
DM
5972 "returns" : {
5973 "items" : {
5974 "additionalProperties" : 0,
5975 "properties" : {
5976 "name" : {
5977 "type" : "string"
5978 },
5979 "url" : {
5980 "description" : "URL of ACME CA directory endpoint.",
5981 "pattern" : "^https?://.*",
5982 "type" : "string"
5983 }
5984 },
5985 "type" : "object"
5986 },
5987 "type" : "array"
5988 }
5989 }
5990 },
5991 "leaf" : 1,
5992 "path" : "/cluster/acme/directories",
5993 "text" : "directories"
ac70d7d1
TL
5994 },
5995 {
5996 "info" : {
5997 "GET" : {
5998 "allowtoken" : 1,
5999 "description" : "Get schema of ACME challenge types.",
6000 "method" : "GET",
6001 "name" : "challengeschema",
6002 "parameters" : {
6003 "additionalProperties" : 0
6004 },
6005 "permissions" : {
6006 "user" : "all"
6007 },
6008 "returns" : {
6009 "items" : {
6010 "additionalProperties" : 0,
6011 "properties" : {
6012 "id" : {
6013 "type" : "string"
6014 },
6015 "name" : {
6016 "description" : "Human readable name, falls back to id",
6017 "type" : "string"
6018 },
6019 "schema" : {
6020 "type" : "object"
6021 },
6022 "type" : {
6023 "type" : "string"
6024 }
6025 },
6026 "type" : "object"
6027 },
6028 "type" : "array"
6029 }
6030 }
6031 },
6032 "leaf" : 1,
6033 "path" : "/cluster/acme/challenge-schema",
6034 "text" : "challenge-schema"
a9a8e3d1
DM
6035 }
6036 ],
6037 "info" : {
6038 "GET" : {
e9cd3bd4 6039 "allowtoken" : 1,
a9a8e3d1
DM
6040 "description" : "ACMEAccount index.",
6041 "method" : "GET",
6042 "name" : "index",
6043 "parameters" : {
6044 "additionalProperties" : 0
6045 },
6046 "permissions" : {
6047 "user" : "all"
6048 },
6049 "returns" : {
6050 "items" : {
6051 "properties" : {},
6052 "type" : "object"
6053 },
6054 "links" : [
6055 {
6056 "href" : "{name}",
6057 "rel" : "child"
6058 }
6059 ],
6060 "type" : "array"
6061 }
6062 }
6063 },
6064 "leaf" : 0,
6065 "path" : "/cluster/acme",
6066 "text" : "acme"
6067 },
1c532546
TL
6068 {
6069 "children" : [
6070 {
6071 "info" : {
6072 "GET" : {
e9cd3bd4 6073 "allowtoken" : 1,
1c532546
TL
6074 "description" : "Get ceph metadata.",
6075 "method" : "GET",
6076 "name" : "metadata",
6077 "parameters" : {
c5aa7e14
TL
6078 "additionalProperties" : 0,
6079 "properties" : {
6080 "scope" : {
6081 "default" : "all",
6082 "enum" : [
6083 "all",
6084 "versions"
6085 ],
6086 "optional" : 1,
6087 "type" : "string"
6088 }
6089 }
1c532546
TL
6090 },
6091 "permissions" : {
6092 "check" : [
6093 "perm",
6094 "/",
6095 [
6096 "Sys.Audit",
6097 "Datastore.Audit"
6098 ],
6099 "any",
6100 1
6101 ]
6102 },
6103 "protected" : 1,
6104 "returns" : {
9d2e98ed
TL
6105 "description" : "Items for each type of service containing objects for each instance.",
6106 "properties" : {
6107 "mds" : {
6108 "description" : "Metadata servers configured in the cluster and their properties.",
6109 "properties" : {
6110 "{id}" : {
6111 "description" : "Useful properties are listed, but not the full list.",
6112 "properties" : {
6113 "addr" : {
6114 "description" : "Bind addresses and ports.",
6115 "type" : "string"
6116 },
6117 "ceph_release" : {
6118 "description" : "Ceph release codename currently used.",
6119 "type" : "string"
6120 },
6121 "ceph_version" : {
6122 "description" : "Version info currently used by the service.",
6123 "type" : "string"
6124 },
6125 "ceph_version_short" : {
6126 "description" : "Short version (numerical) info currently used by the service.",
6127 "type" : "string"
6128 },
6129 "hostname" : {
6130 "description" : "Hostname on which the service is running.",
6131 "type" : "string"
6132 },
6133 "mem_swap_kb" : {
6134 "description" : "Memory of the service currently in swap.",
6135 "type" : "integer"
6136 },
6137 "mem_total_kb" : {
6138 "description" : "Memory consumption of the service.",
6139 "type" : "integer"
6140 },
6141 "name" : {
6142 "description" : "Name of the service instance.",
6143 "type" : "string"
6144 }
6145 },
6146 "type" : "object"
6147 }
6148 },
6149 "type" : "object"
6150 },
6151 "mgr" : {
6152 "description" : "Managers configured in the cluster and their properties.",
6153 "properties" : {
6154 "{id}" : {
6155 "description" : "Useful properties are listed, but not the full list.",
6156 "properties" : {
6157 "addr" : {
6158 "description" : "Bind address",
6159 "type" : "string"
6160 },
6161 "ceph_release" : {
6162 "description" : "Ceph release codename currently used.",
6163 "type" : "string"
6164 },
6165 "ceph_version" : {
6166 "description" : "Version info currently used by the service.",
6167 "type" : "string"
6168 },
6169 "ceph_version_short" : {
6170 "description" : "Short version (numerical) info currently used by the service.",
6171 "type" : "string"
6172 },
6173 "hostname" : {
6174 "description" : "Hostname on which the service is running.",
6175 "type" : "string"
6176 },
6177 "mem_swap_kb" : {
6178 "description" : "Memory of the service currently in swap.",
6179 "type" : "integer"
6180 },
6181 "mem_total_kb" : {
6182 "description" : "Memory consumption of the service.",
6183 "type" : "integer"
6184 },
6185 "name" : {
6186 "description" : "Name of the service instance.",
6187 "type" : "string"
6188 }
6189 },
6190 "type" : "object"
6191 }
6192 },
6193 "type" : "object"
6194 },
6195 "mon" : {
6196 "description" : "Monitors configured in the cluster and their properties.",
6197 "properties" : {
6198 "{id}" : {
6199 "description" : "Useful properties are listed, but not the full list.",
6200 "properties" : {
6201 "addrs" : {
6202 "description" : "Bind addresses and ports.",
6203 "type" : "string"
6204 },
6205 "ceph_release" : {
6206 "description" : "Ceph release codename currently used.",
6207 "type" : "string"
6208 },
6209 "ceph_version" : {
6210 "description" : "Version info currently used by the service.",
6211 "type" : "string"
6212 },
6213 "ceph_version_short" : {
6214 "description" : "Short version (numerical) info currently used by the service.",
6215 "type" : "string"
6216 },
6217 "hostname" : {
6218 "description" : "Hostname on which the service is running.",
6219 "type" : "string"
6220 },
6221 "mem_swap_kb" : {
6222 "description" : "Memory of the service currently in swap.",
6223 "type" : "integer"
6224 },
6225 "mem_total_kb" : {
6226 "description" : "Memory consumption of the service.",
6227 "type" : "integer"
6228 },
6229 "name" : {
6230 "description" : "Name of the service instance.",
6231 "type" : "string"
6232 }
6233 },
6234 "type" : "object"
6235 }
6236 },
6237 "type" : "object"
6238 },
6239 "node" : {
6240 "description" : "Ceph version installed on the nodes.",
6241 "properties" : {
6242 "{node}" : {
6243 "properties" : {
6244 "buildcommit" : {
6245 "description" : "GIT commit used for the build.",
6246 "type" : "string"
6247 },
6248 "version" : {
6249 "description" : "Version info.",
6250 "properties" : {
6251 "parts" : {
6252 "description" : "major, minor & patch",
6253 "type" : "array"
6254 },
6255 "str" : {
6256 "description" : "Version as single string.",
6257 "type" : "string"
6258 }
6259 },
6260 "type" : "object"
6261 }
6262 },
6263 "type" : "object"
6264 }
6265 },
6266 "type" : "object"
6267 },
6268 "osd" : {
6269 "description" : "OSDs configured in the cluster and their properties.",
6270 "properties" : {
6271 "{id}" : {
6272 "description" : "Useful properties are listed, but not the full list.",
6273 "properties" : {
6274 "back_addr" : {
6275 "description" : "Bind addresses and ports for backend inter OSD traffic.",
6276 "type" : "string"
6277 },
6278 "ceph_release" : {
6279 "description" : "Ceph release codename currently used.",
6280 "type" : "string"
6281 },
6282 "ceph_version" : {
6283 "description" : "Version info currently used by the service.",
6284 "type" : "string"
6285 },
6286 "ceph_version_short" : {
6287 "description" : "Short version (numerical) info currently used by the service.",
6288 "type" : "string"
6289 },
6290 "device_id" : {
6291 "description" : "Devices used by the OSD.",
6292 "type" : "string"
6293 },
6294 "front_addr" : {
6295 "description" : "Bind addresses and ports for frontend traffic to OSDs.",
6296 "type" : "string"
6297 },
6298 "hostname" : {
6299 "description" : "Hostname on which the service is running.",
6300 "type" : "string"
6301 },
6302 "id" : {
6303 "description" : "OSD ID.",
6304 "type" : "integer"
6305 },
6306 "mem_swap_kb" : {
6307 "description" : "Memory of the service currently in swap.",
6308 "type" : "integer"
6309 },
6310 "mem_total_kb" : {
6311 "description" : "Memory consumption of the service.",
6312 "type" : "integer"
6313 },
6314 "osd_data" : {
6315 "description" : "Path to the OSD data directory.",
6316 "type" : "string"
6317 },
6318 "osd_objectstore" : {
6319 "description" : "OSD objectstore type.",
6320 "type" : "string"
6321 }
6322 },
6323 "type" : "object"
6324 }
6325 },
6326 "type" : "array"
6327 }
6328 },
1c532546
TL
6329 "type" : "object"
6330 }
6331 }
6332 },
6333 "leaf" : 1,
6334 "path" : "/cluster/ceph/metadata",
6335 "text" : "metadata"
6336 },
6337 {
6338 "info" : {
6339 "GET" : {
e9cd3bd4 6340 "allowtoken" : 1,
1c532546
TL
6341 "description" : "Get ceph status.",
6342 "method" : "GET",
6343 "name" : "status",
6344 "parameters" : {
6345 "additionalProperties" : 0
6346 },
6347 "permissions" : {
6348 "check" : [
6349 "perm",
6350 "/",
6351 [
6352 "Sys.Audit",
6353 "Datastore.Audit"
6354 ],
6355 "any",
6356 1
6357 ]
6358 },
6359 "protected" : 1,
6360 "returns" : {
6361 "type" : "object"
6362 }
6363 }
6364 },
6365 "leaf" : 1,
6366 "path" : "/cluster/ceph/status",
6367 "text" : "status"
6368 },
6369 {
6370 "children" : [
6371 {
6372 "info" : {
6373 "GET" : {
e9cd3bd4 6374 "allowtoken" : 1,
1c532546
TL
6375 "description" : "Get the status of a specific ceph flag.",
6376 "method" : "GET",
6377 "name" : "get_flag",
6378 "parameters" : {
6379 "additionalProperties" : 0,
6380 "properties" : {
6381 "flag" : {
6382 "description" : "The name of the flag name to get.",
6383 "enum" : [
6384 "nobackfill",
6385 "nodeep-scrub",
6386 "nodown",
6387 "noin",
6388 "noout",
6389 "norebalance",
6390 "norecover",
6391 "noscrub",
6392 "notieragent",
6393 "noup",
6394 "pause"
6395 ],
6396 "type" : "string"
6397 }
6398 }
6399 },
6400 "permissions" : {
6401 "check" : [
6402 "perm",
6403 "/",
6404 [
6405 "Sys.Audit"
6406 ]
6407 ]
6408 },
6409 "protected" : 1,
6410 "returns" : {
6411 "type" : "boolean"
6412 }
6413 },
6414 "PUT" : {
e9cd3bd4 6415 "allowtoken" : 1,
1c532546
TL
6416 "description" : "Set or clear (unset) a specific ceph flag",
6417 "method" : "PUT",
6418 "name" : "update_flag",
6419 "parameters" : {
6420 "additionalProperties" : 0,
6421 "properties" : {
6422 "flag" : {
6423 "description" : "The ceph flag to update",
6424 "enum" : [
6425 "nobackfill",
6426 "nodeep-scrub",
6427 "nodown",
6428 "noin",
6429 "noout",
6430 "norebalance",
6431 "norecover",
6432 "noscrub",
6433 "notieragent",
6434 "noup",
6435 "pause"
6436 ],
6437 "type" : "string"
6438 },
6439 "value" : {
6440 "description" : "The new value of the flag",
6441 "type" : "boolean",
6442 "typetext" : "<boolean>"
6443 }
6444 }
6445 },
6446 "permissions" : {
6447 "check" : [
6448 "perm",
6449 "/",
6450 [
6451 "Sys.Modify"
6452 ]
6453 ]
6454 },
6455 "protected" : 1,
6456 "returns" : {
6457 "type" : "null"
6458 }
6459 }
6460 },
6461 "leaf" : 1,
6462 "path" : "/cluster/ceph/flags/{flag}",
6463 "text" : "{flag}"
6464 }
6465 ],
6466 "info" : {
6467 "GET" : {
e9cd3bd4 6468 "allowtoken" : 1,
1c532546
TL
6469 "description" : "get the status of all ceph flags",
6470 "method" : "GET",
6471 "name" : "get_all_flags",
6472 "parameters" : {
6473 "additionalProperties" : 0
6474 },
6475 "permissions" : {
6476 "check" : [
6477 "perm",
6478 "/",
6479 [
6480 "Sys.Audit"
6481 ]
6482 ]
6483 },
6484 "protected" : 1,
6485 "returns" : {
6486 "items" : {
6487 "additionalProperties" : 1,
6488 "properties" : {
9d2e98ed
TL
6489 "description" : {
6490 "description" : "Flag description.",
6491 "type" : "string"
6492 },
1c532546
TL
6493 "name" : {
6494 "description" : "Flag name.",
6495 "enum" : [
6496 "nobackfill",
6497 "nodeep-scrub",
6498 "nodown",
6499 "noin",
6500 "noout",
6501 "norebalance",
6502 "norecover",
6503 "noscrub",
6504 "notieragent",
6505 "noup",
6506 "pause"
6507 ],
6508 "type" : "string"
9d2e98ed
TL
6509 },
6510 "value" : {
6511 "description" : "Flag value.",
6512 "type" : "boolean"
1c532546
TL
6513 }
6514 },
6515 "type" : "object"
6516 },
6517 "links" : [
6518 {
6519 "href" : "{name}",
6520 "rel" : "child"
6521 }
6522 ],
6523 "type" : "array"
6524 }
6525 },
6526 "PUT" : {
e9cd3bd4 6527 "allowtoken" : 1,
1c532546
TL
6528 "description" : "Set/Unset multiple ceph flags at once.",
6529 "method" : "PUT",
6530 "name" : "set_flags",
6531 "parameters" : {
6532 "additionalProperties" : 0,
6533 "properties" : {
6534 "nobackfill" : {
6535 "description" : "Backfilling of PGs is suspended.",
6536 "optional" : 1,
6537 "type" : "boolean",
6538 "typetext" : "<boolean>"
6539 },
6540 "nodeep-scrub" : {
6541 "description" : "Deep Scrubbing is disabled.",
6542 "optional" : 1,
6543 "type" : "boolean",
6544 "typetext" : "<boolean>"
6545 },
6546 "nodown" : {
6547 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
6548 "optional" : 1,
6549 "type" : "boolean",
6550 "typetext" : "<boolean>"
6551 },
6552 "noin" : {
6553 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
6554 "optional" : 1,
6555 "type" : "boolean",
6556 "typetext" : "<boolean>"
6557 },
6558 "noout" : {
6559 "description" : "OSDs will not automatically be marked out after the configured interval.",
6560 "optional" : 1,
6561 "type" : "boolean",
6562 "typetext" : "<boolean>"
6563 },
6564 "norebalance" : {
6565 "description" : "Rebalancing of PGs is suspended.",
6566 "optional" : 1,
6567 "type" : "boolean",
6568 "typetext" : "<boolean>"
6569 },
6570 "norecover" : {
6571 "description" : "Recovery of PGs is suspended.",
6572 "optional" : 1,
6573 "type" : "boolean",
6574 "typetext" : "<boolean>"
6575 },
6576 "noscrub" : {
6577 "description" : "Scrubbing is disabled.",
6578 "optional" : 1,
6579 "type" : "boolean",
6580 "typetext" : "<boolean>"
6581 },
6582 "notieragent" : {
6583 "description" : "Cache tiering activity is suspended.",
6584 "optional" : 1,
6585 "type" : "boolean",
6586 "typetext" : "<boolean>"
6587 },
6588 "noup" : {
6589 "description" : "OSDs are not allowed to start.",
6590 "optional" : 1,
6591 "type" : "boolean",
6592 "typetext" : "<boolean>"
6593 },
6594 "pause" : {
6595 "description" : "Pauses read and writes.",
6596 "optional" : 1,
6597 "type" : "boolean",
6598 "typetext" : "<boolean>"
6599 }
6600 }
6601 },
6602 "permissions" : {
6603 "check" : [
6604 "perm",
6605 "/",
6606 [
6607 "Sys.Modify"
6608 ]
6609 ]
6610 },
6611 "protected" : 1,
6612 "returns" : {
6613 "type" : "string"
6614 }
6615 }
6616 },
6617 "leaf" : 0,
6618 "path" : "/cluster/ceph/flags",
6619 "text" : "flags"
6620 }
6621 ],
6622 "info" : {
6623 "GET" : {
e9cd3bd4 6624 "allowtoken" : 1,
1c532546
TL
6625 "description" : "Cluster ceph index.",
6626 "method" : "GET",
6627 "name" : "cephindex",
6628 "parameters" : {
6629 "additionalProperties" : 0
6630 },
6631 "permissions" : {
6632 "user" : "all"
6633 },
6634 "returns" : {
6635 "items" : {
6636 "properties" : {},
6637 "type" : "object"
6638 },
6639 "links" : [
6640 {
6641 "href" : "{name}",
6642 "rel" : "child"
6643 }
6644 ],
6645 "type" : "array"
6646 }
6647 }
6648 },
6649 "leaf" : 0,
6650 "path" : "/cluster/ceph",
6651 "text" : "ceph"
6652 },
5370fa8c
TL
6653 {
6654 "children" : [
159464a9
TL
6655 {
6656 "children" : [
6657 {
6658 "info" : {
6659 "DELETE" : {
6660 "allowtoken" : 1,
6661 "description" : "Delete realm-sync job definition.",
6662 "method" : "DELETE",
6663 "name" : "delete_job",
6664 "parameters" : {
6665 "additionalProperties" : 0,
6666 "properties" : {
6667 "id" : {
6668 "format" : "pve-configid",
6669 "type" : "string",
6670 "typetext" : "<string>"
6671 }
6672 }
6673 },
6674 "permissions" : {
6675 "check" : [
6676 "perm",
6677 "/",
6678 [
6679 "Sys.Modify"
6680 ]
6681 ]
6682 },
6683 "protected" : 1,
6684 "returns" : {
6685 "type" : "null"
6686 }
6687 },
6688 "GET" : {
6689 "allowtoken" : 1,
6690 "description" : "Read realm-sync job definition.",
6691 "method" : "GET",
6692 "name" : "read_job",
6693 "parameters" : {
6694 "additionalProperties" : 0,
6695 "properties" : {
6696 "id" : {
6697 "format" : "pve-configid",
6698 "type" : "string",
6699 "typetext" : "<string>"
6700 }
6701 }
6702 },
6703 "permissions" : {
6704 "check" : [
6705 "perm",
6706 "/",
6707 [
6708 "Sys.Audit"
6709 ]
6710 ]
6711 },
6712 "returns" : {
6713 "type" : "object"
6714 }
6715 },
6716 "POST" : {
6717 "allowtoken" : 1,
6718 "description" : "Create new realm-sync job.",
6719 "method" : "POST",
6720 "name" : "create_job",
6721 "parameters" : {
6722 "additionalProperties" : 0,
6723 "properties" : {
6724 "comment" : {
6725 "description" : "Description for the Job.",
6726 "maxLength" : 512,
6727 "optional" : 1,
6728 "type" : "string",
6729 "typetext" : "<string>"
6730 },
6731 "enable-new" : {
6732 "default" : "1",
6733 "description" : "Enable newly synced users immediately.",
6734 "optional" : 1,
6735 "type" : "boolean",
6736 "typetext" : "<boolean>"
6737 },
6738 "enabled" : {
6739 "default" : 1,
6740 "description" : "Determines if the job is enabled.",
6741 "optional" : 1,
6742 "type" : "boolean",
6743 "typetext" : "<boolean>"
6744 },
6745 "id" : {
6746 "description" : "The ID of the job.",
6747 "format" : "pve-configid",
6748 "maxLength" : 64,
6749 "type" : "string",
6750 "typetext" : "<string>"
6751 },
6752 "realm" : {
6753 "description" : "Authentication domain ID",
6754 "format" : "pve-realm",
6755 "maxLength" : 32,
6756 "optional" : 1,
6757 "type" : "string",
6758 "typetext" : "<string>"
6759 },
6760 "remove-vanished" : {
6761 "default" : "none",
6762 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6763 "optional" : 1,
6764 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6765 "type" : "string",
6766 "typetext" : "([acl];[properties];[entry])|none"
6767 },
6768 "schedule" : {
6769 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
6770 "format" : "pve-calendar-event",
6771 "maxLength" : 128,
6772 "type" : "string",
6773 "typetext" : "<string>"
6774 },
6775 "scope" : {
6776 "description" : "Select what to sync.",
6777 "enum" : [
6778 "users",
6779 "groups",
6780 "both"
6781 ],
6782 "optional" : 1,
6783 "type" : "string"
6784 }
6785 },
6786 "type" : "object"
6787 },
6788 "permissions" : {
6789 "check" : [
6790 "and",
6791 [
6792 "perm",
6793 "/access/realm/{realm}",
6794 [
6795 "Realm.AllocateUser"
6796 ]
6797 ],
6798 [
6799 "perm",
6800 "/access/groups",
6801 [
6802 "User.Modify"
6803 ]
6804 ]
6805 ],
6806 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
6807 },
6808 "protected" : 1,
6809 "returns" : {
6810 "type" : "null"
6811 }
6812 },
6813 "PUT" : {
6814 "allowtoken" : 1,
6815 "description" : "Update realm-sync job definition.",
6816 "method" : "PUT",
6817 "name" : "update_job",
6818 "parameters" : {
6819 "additionalProperties" : 0,
6820 "properties" : {
6821 "comment" : {
6822 "description" : "Description for the Job.",
6823 "maxLength" : 512,
6824 "optional" : 1,
6825 "type" : "string",
6826 "typetext" : "<string>"
6827 },
6828 "delete" : {
6829 "description" : "A list of settings you want to delete.",
6830 "format" : "pve-configid-list",
6831 "maxLength" : 4096,
6832 "optional" : 1,
6833 "type" : "string",
6834 "typetext" : "<string>"
6835 },
6836 "enable-new" : {
6837 "default" : "1",
6838 "description" : "Enable newly synced users immediately.",
6839 "optional" : 1,
6840 "type" : "boolean",
6841 "typetext" : "<boolean>"
6842 },
6843 "enabled" : {
6844 "default" : 1,
6845 "description" : "Determines if the job is enabled.",
6846 "optional" : 1,
6847 "type" : "boolean",
6848 "typetext" : "<boolean>"
6849 },
6850 "id" : {
6851 "description" : "The ID of the job.",
6852 "format" : "pve-configid",
6853 "maxLength" : 64,
6854 "type" : "string",
6855 "typetext" : "<string>"
6856 },
6857 "remove-vanished" : {
6858 "default" : "none",
6859 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6860 "optional" : 1,
6861 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6862 "type" : "string",
6863 "typetext" : "([acl];[properties];[entry])|none"
6864 },
6865 "schedule" : {
6866 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
6867 "format" : "pve-calendar-event",
6868 "maxLength" : 128,
6869 "type" : "string",
6870 "typetext" : "<string>"
6871 },
6872 "scope" : {
6873 "description" : "Select what to sync.",
6874 "enum" : [
6875 "users",
6876 "groups",
6877 "both"
6878 ],
6879 "optional" : 1,
6880 "type" : "string"
6881 }
6882 },
6883 "type" : "object"
6884 },
6885 "permissions" : {
6886 "check" : [
6887 "and",
6888 [
6889 "perm",
6890 "/access/realm/{realm}",
6891 [
6892 "Realm.AllocateUser"
6893 ]
6894 ],
6895 [
6896 "perm",
6897 "/access/groups",
6898 [
6899 "User.Modify"
6900 ]
6901 ]
6902 ],
6903 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
6904 },
6905 "protected" : 1,
6906 "returns" : {
6907 "type" : "null"
6908 }
6909 }
6910 },
6911 "leaf" : 1,
6912 "path" : "/cluster/jobs/realm-sync/{id}",
6913 "text" : "{id}"
6914 }
6915 ],
6916 "info" : {
6917 "GET" : {
6918 "allowtoken" : 1,
6919 "description" : "List configured realm-sync-jobs.",
6920 "method" : "GET",
6921 "name" : "syncjob_index",
6922 "parameters" : {
6923 "additionalProperties" : 0
6924 },
6925 "permissions" : {
6926 "check" : [
6927 "perm",
6928 "/",
6929 [
6930 "Sys.Audit"
6931 ]
6932 ]
6933 },
6934 "returns" : {
6935 "items" : {
6936 "properties" : {
6937 "comment" : {
6938 "description" : "A comment for the job.",
6939 "optional" : 1,
6940 "type" : "string"
6941 },
6942 "enabled" : {
6943 "description" : "If the job is enabled or not.",
6944 "type" : "boolean"
6945 },
6946 "id" : {
6947 "description" : "The ID of the entry.",
6948 "type" : "string"
6949 },
6950 "last-run" : {
6951 "description" : "Last execution time of the job in seconds since the beginning of the UNIX epoch",
6952 "optional" : 1,
6953 "type" : "integer"
6954 },
6955 "next-run" : {
6956 "description" : "Next planned execution time of the job in seconds since the beginning of the UNIX epoch.",
6957 "optional" : 1,
6958 "type" : "integer"
6959 },
6960 "realm" : {
6961 "description" : "Authentication domain ID",
6962 "format" : "pve-realm",
6963 "maxLength" : 32,
6964 "type" : "string"
6965 },
6966 "remove-vanished" : {
6967 "default" : "none",
6968 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6969 "optional" : "1",
6970 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6971 "type" : "string",
6972 "typetext" : "([acl];[properties];[entry])|none"
6973 },
6974 "schedule" : {
6975 "description" : "The configured sync schedule.",
6976 "type" : "string"
6977 },
6978 "scope" : {
6979 "description" : "Select what to sync.",
6980 "enum" : [
6981 "users",
6982 "groups",
6983 "both"
6984 ],
6985 "optional" : "1",
6986 "type" : "string"
6987 }
6988 },
6989 "type" : "object"
6990 },
6991 "links" : [
6992 {
6993 "href" : "{id}",
6994 "rel" : "child"
6995 }
6996 ],
6997 "type" : "array"
6998 }
6999 }
7000 },
7001 "leaf" : 0,
7002 "path" : "/cluster/jobs/realm-sync",
7003 "text" : "realm-sync"
7004 },
5370fa8c
TL
7005 {
7006 "info" : {
7007 "GET" : {
7008 "allowtoken" : 1,
7009 "description" : "Returns a list of future schedule runtimes.",
7010 "method" : "GET",
7011 "name" : "schedule-analyze",
7012 "parameters" : {
7013 "additionalProperties" : 0,
7014 "properties" : {
7015 "iterations" : {
7016 "default" : 10,
7017 "description" : "Number of event-iteration to simulate and return.",
7018 "maximum" : 100,
7019 "minimum" : 1,
7020 "optional" : 1,
7021 "type" : "integer",
7022 "typetext" : "<integer> (1 - 100)"
7023 },
7024 "schedule" : {
7025 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
7026 "format" : "pve-calendar-event",
7027 "maxLength" : 128,
7028 "type" : "string",
7029 "typetext" : "<string>"
7030 },
7031 "starttime" : {
7032 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
7033 "optional" : 1,
7034 "type" : "integer",
7035 "typetext" : "<integer>"
7036 }
7037 }
7038 },
7039 "permissions" : {
7040 "user" : "all"
7041 },
7042 "returns" : {
7043 "description" : "An array of the next <iterations> events since <starttime>.",
7044 "items" : {
7045 "properties" : {
7046 "timestamp" : {
7047 "description" : "UNIX timestamp for the run.",
7048 "type" : "integer"
7049 },
7050 "utc" : {
7051 "description" : "UTC timestamp for the run.",
7052 "type" : "string"
7053 }
7054 },
7055 "type" : "object"
7056 },
7057 "type" : "array"
7058 }
7059 }
7060 },
7061 "leaf" : 1,
7062 "path" : "/cluster/jobs/schedule-analyze",
7063 "text" : "schedule-analyze"
7064 }
7065 ],
7066 "info" : {
7067 "GET" : {
7068 "allowtoken" : 1,
7069 "description" : "Index for jobs related endpoints.",
7070 "method" : "GET",
7071 "name" : "index",
7072 "parameters" : {
7073 "additionalProperties" : 0
7074 },
7075 "permissions" : {
7076 "user" : "all"
7077 },
7078 "returns" : {
7079 "description" : "Directory index.",
7080 "items" : {
7081 "properties" : {
7082 "subdir" : {
7083 "description" : "API sub-directory endpoint",
7084 "type" : "string"
7085 }
7086 },
7087 "type" : "object"
7088 },
7089 "links" : [
7090 {
7091 "href" : "{subdir}",
7092 "rel" : "child"
7093 }
7094 ],
7095 "type" : "array"
7096 }
7097 }
7098 },
7099 "leaf" : 0,
7100 "path" : "/cluster/jobs",
7101 "text" : "jobs"
7102 },
499c9b7f
TL
7103 {
7104 "children" : [
7105 {
7106 "children" : [
7107 {
7108 "info" : {
7109 "DELETE" : {
7110 "allowtoken" : 1,
7111 "description" : "Remove Hardware Mapping.",
7112 "method" : "DELETE",
7113 "name" : "delete",
7114 "parameters" : {
7115 "additionalProperties" : 0,
7116 "properties" : {
7117 "id" : {
7118 "format" : "pve-configid",
7119 "type" : "string",
7120 "typetext" : "<string>"
7121 }
7122 }
7123 },
7124 "permissions" : {
7125 "check" : [
7126 "perm",
7127 "/mapping/pci",
7128 [
7129 "Mapping.Modify"
7130 ]
7131 ]
7132 },
7133 "protected" : 1,
7134 "returns" : {
7135 "type" : "null"
7136 }
7137 },
7138 "GET" : {
7139 "allowtoken" : 1,
7140 "description" : "Get PCI Mapping.",
7141 "method" : "GET",
7142 "name" : "get",
7143 "parameters" : {
7144 "additionalProperties" : 0,
7145 "properties" : {
7146 "id" : {
7147 "format" : "pve-configid",
7148 "type" : "string",
7149 "typetext" : "<string>"
7150 }
7151 }
7152 },
7153 "permissions" : {
7154 "check" : [
7155 "or",
7156 [
7157 "perm",
7158 "/mapping/pci/{id}",
7159 [
7160 "Mapping.Use"
7161 ]
7162 ],
7163 [
7164 "perm",
7165 "/mapping/pci/{id}",
7166 [
7167 "Mapping.Modify"
7168 ]
7169 ],
7170 [
7171 "perm",
7172 "/mapping/pci/{id}",
7173 [
7174 "Mapping.Audit"
7175 ]
7176 ]
7177 ]
7178 },
7179 "protected" : 1,
7180 "returns" : {
7181 "type" : "object"
7182 }
7183 },
7184 "PUT" : {
7185 "allowtoken" : 1,
7186 "description" : "Update a hardware mapping.",
7187 "method" : "PUT",
7188 "name" : "update",
7189 "parameters" : {
7190 "additionalProperties" : 0,
7191 "properties" : {
7192 "delete" : {
7193 "description" : "A list of settings you want to delete.",
7194 "format" : "pve-configid-list",
7195 "maxLength" : 4096,
7196 "optional" : 1,
7197 "type" : "string",
7198 "typetext" : "<string>"
7199 },
7200 "description" : {
7201 "description" : "Description of the logical PCI device.",
7202 "maxLength" : 4096,
7203 "optional" : 1,
7204 "type" : "string",
7205 "typetext" : "<string>"
7206 },
7207 "digest" : {
7208 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7209 "maxLength" : 40,
7210 "optional" : 1,
7211 "type" : "string",
7212 "typetext" : "<string>"
7213 },
7214 "id" : {
7215 "description" : "The ID of the logical PCI mapping.",
7216 "format" : "pve-configid",
7217 "type" : "string",
7218 "typetext" : "<string>"
7219 },
7220 "map" : {
7221 "description" : "A list of maps for the cluster nodes.",
7222 "items" : {
7223 "format" : {
7224 "description" : {
7225 "description" : "Description of the node specific device.",
7226 "maxLength" : 4096,
7227 "optional" : 1,
7228 "type" : "string"
7229 },
7230 "id" : {
7231 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
7232 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7233 "type" : "string"
7234 },
7235 "iommugroup" : {
7236 "description" : "The IOMMU group in which the device is to be expected in.Used for detecting hardware changes.",
7237 "optional" : 1,
7238 "type" : "integer"
7239 },
7240 "node" : {
7241 "description" : "The cluster node name.",
7242 "format" : "pve-node",
7243 "type" : "string"
7244 },
7245 "path" : {
7246 "description" : "The path to the device. If the function is omitted, the whole device is mapped. In that case use the attributes of the first device. You can give multiple paths as a semicolon seperated list, the first available will then be chosen on guest start.",
7247 "pattern" : "(?:[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?;)*[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?",
7248 "type" : "string"
7249 },
7250 "subsystem-id" : {
7251 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
7252 "optional" : 1,
7253 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7254 "type" : "string"
7255 }
7256 },
7257 "type" : "string"
7258 },
7259 "optional" : 1,
7260 "type" : "array",
7261 "typetext" : "<array>"
7262 },
7263 "mdev" : {
7264 "optional" : 1,
7265 "type" : "boolean",
7266 "typetext" : "<boolean>"
7267 }
7268 },
7269 "type" : "object"
7270 },
7271 "permissions" : {
7272 "check" : [
7273 "perm",
7274 "/mapping/pci/{id}",
7275 [
7276 "Mapping.Modify"
7277 ]
7278 ]
7279 },
7280 "protected" : 1,
7281 "returns" : {
7282 "type" : "null"
7283 }
7284 }
7285 },
7286 "leaf" : 1,
7287 "path" : "/cluster/mapping/pci/{id}",
7288 "text" : "{id}"
7289 }
7290 ],
7291 "info" : {
7292 "GET" : {
7293 "allowtoken" : 1,
7294 "description" : "List PCI Hardware Mapping",
7295 "method" : "GET",
7296 "name" : "index",
7297 "parameters" : {
7298 "additionalProperties" : 0,
7299 "properties" : {
7300 "check-node" : {
7301 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant diagnostics for the devices to the response.",
7302 "format" : "pve-node",
7303 "optional" : 1,
7304 "type" : "string",
7305 "typetext" : "<string>"
7306 }
7307 }
7308 },
7309 "permissions" : {
7310 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/pci/<id>'.",
7311 "user" : "all"
7312 },
7313 "returns" : {
7314 "items" : {
7315 "properties" : {
7316 "checks" : {
7317 "description" : "A list of checks, only present if 'check_node' is set.",
7318 "items" : {
7319 "properties" : {
7320 "message" : {
7321 "description" : "The message of the error",
7322 "type" : "string"
7323 },
7324 "severity" : {
7325 "description" : "The severity of the error",
7326 "enum" : [
7327 "warning",
7328 "error"
7329 ],
7330 "type" : "string"
7331 }
7332 },
7333 "type" : "object"
7334 },
7335 "optional" : 1,
7336 "type" : "array"
7337 },
7338 "description" : {
7339 "description" : "A description of the logical mapping.",
7340 "type" : "string"
7341 },
7342 "id" : {
7343 "description" : "The logical ID of the mapping.",
7344 "type" : "string"
7345 },
7346 "map" : {
7347 "description" : "The entries of the mapping.",
7348 "items" : {
7349 "description" : "A mapping for a node.",
7350 "type" : "string"
7351 },
7352 "type" : "array"
7353 }
7354 },
7355 "type" : "object"
7356 },
7357 "links" : [
7358 {
7359 "href" : "{id}",
7360 "rel" : "child"
7361 }
7362 ],
7363 "type" : "array"
7364 }
7365 },
7366 "POST" : {
7367 "allowtoken" : 1,
7368 "description" : "Create a new hardware mapping.",
7369 "method" : "POST",
7370 "name" : "create",
7371 "parameters" : {
7372 "additionalProperties" : 0,
7373 "properties" : {
7374 "description" : {
7375 "description" : "Description of the logical PCI device.",
7376 "maxLength" : 4096,
7377 "optional" : 1,
7378 "type" : "string",
7379 "typetext" : "<string>"
7380 },
7381 "id" : {
7382 "description" : "The ID of the logical PCI mapping.",
7383 "format" : "pve-configid",
7384 "type" : "string",
7385 "typetext" : "<string>"
7386 },
7387 "map" : {
7388 "description" : "A list of maps for the cluster nodes.",
7389 "items" : {
7390 "format" : {
7391 "description" : {
7392 "description" : "Description of the node specific device.",
7393 "maxLength" : 4096,
7394 "optional" : 1,
7395 "type" : "string"
7396 },
7397 "id" : {
7398 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
7399 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7400 "type" : "string"
7401 },
7402 "iommugroup" : {
7403 "description" : "The IOMMU group in which the device is to be expected in.Used for detecting hardware changes.",
7404 "optional" : 1,
7405 "type" : "integer"
7406 },
7407 "node" : {
7408 "description" : "The cluster node name.",
7409 "format" : "pve-node",
7410 "type" : "string"
7411 },
7412 "path" : {
7413 "description" : "The path to the device. If the function is omitted, the whole device is mapped. In that case use the attributes of the first device. You can give multiple paths as a semicolon seperated list, the first available will then be chosen on guest start.",
7414 "pattern" : "(?:[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?;)*[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?",
7415 "type" : "string"
7416 },
7417 "subsystem-id" : {
7418 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
7419 "optional" : 1,
7420 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7421 "type" : "string"
7422 }
7423 },
7424 "type" : "string"
7425 },
7426 "optional" : 0,
7427 "type" : "array",
7428 "typetext" : "<array>"
7429 },
7430 "mdev" : {
7431 "optional" : 1,
7432 "type" : "boolean",
7433 "typetext" : "<boolean>"
7434 }
7435 },
7436 "type" : "object"
7437 },
7438 "permissions" : {
7439 "check" : [
7440 "perm",
7441 "/mapping/pci",
7442 [
7443 "Mapping.Modify"
7444 ]
7445 ]
7446 },
7447 "protected" : 1,
7448 "returns" : {
7449 "type" : "null"
7450 }
7451 }
7452 },
7453 "leaf" : 0,
7454 "path" : "/cluster/mapping/pci",
7455 "text" : "pci"
7456 },
7457 {
7458 "children" : [
7459 {
7460 "info" : {
7461 "DELETE" : {
7462 "allowtoken" : 1,
7463 "description" : "Remove Hardware Mapping.",
7464 "method" : "DELETE",
7465 "name" : "delete",
7466 "parameters" : {
7467 "additionalProperties" : 0,
7468 "properties" : {
7469 "id" : {
7470 "format" : "pve-configid",
7471 "type" : "string",
7472 "typetext" : "<string>"
7473 }
7474 }
7475 },
7476 "permissions" : {
7477 "check" : [
7478 "perm",
7479 "/mapping/usb",
7480 [
7481 "Mapping.Modify"
7482 ]
7483 ]
7484 },
7485 "protected" : 1,
7486 "returns" : {
7487 "type" : "null"
7488 }
7489 },
7490 "GET" : {
7491 "allowtoken" : 1,
7492 "description" : "Get USB Mapping.",
7493 "method" : "GET",
7494 "name" : "get",
7495 "parameters" : {
7496 "additionalProperties" : 0,
7497 "properties" : {
7498 "id" : {
7499 "format" : "pve-configid",
7500 "type" : "string",
7501 "typetext" : "<string>"
7502 }
7503 }
7504 },
7505 "permissions" : {
7506 "check" : [
7507 "or",
7508 [
7509 "perm",
7510 "/mapping/usb/{id}",
7511 [
7512 "Mapping.Audit"
7513 ]
7514 ],
7515 [
7516 "perm",
7517 "/mapping/usb/{id}",
7518 [
7519 "Mapping.Use"
7520 ]
7521 ],
7522 [
7523 "perm",
7524 "/mapping/usb/{id}",
7525 [
7526 "Mapping.Modify"
7527 ]
7528 ]
7529 ]
7530 },
7531 "protected" : 1,
7532 "returns" : {
7533 "type" : "object"
7534 }
7535 },
7536 "PUT" : {
7537 "allowtoken" : 1,
7538 "description" : "Update a hardware mapping.",
7539 "method" : "PUT",
7540 "name" : "update",
7541 "parameters" : {
7542 "additionalProperties" : 0,
7543 "properties" : {
7544 "delete" : {
7545 "description" : "A list of settings you want to delete.",
7546 "format" : "pve-configid-list",
7547 "maxLength" : 4096,
7548 "optional" : 1,
7549 "type" : "string",
7550 "typetext" : "<string>"
7551 },
7552 "description" : {
7553 "description" : "Description of the logical PCI device.",
7554 "maxLength" : 4096,
7555 "optional" : 1,
7556 "type" : "string",
7557 "typetext" : "<string>"
7558 },
7559 "digest" : {
7560 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7561 "maxLength" : 40,
7562 "optional" : 1,
7563 "type" : "string",
7564 "typetext" : "<string>"
7565 },
7566 "id" : {
7567 "description" : "The ID of the logical PCI mapping.",
7568 "format" : "pve-configid",
7569 "type" : "string",
7570 "typetext" : "<string>"
7571 },
7572 "map" : {
7573 "description" : "A list of maps for the cluster nodes.",
7574 "items" : {
7575 "format" : {
7576 "description" : {
7577 "description" : "Description of the node specific device.",
7578 "maxLength" : 4096,
7579 "optional" : 1,
7580 "type" : "string"
7581 },
7582 "id" : {
7583 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
7584 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7585 "type" : "string"
7586 },
7587 "node" : {
7588 "description" : "The cluster node name.",
7589 "format" : "pve-node",
7590 "type" : "string"
7591 },
7592 "path" : {
7593 "description" : "The path to the usb device.",
7594 "optional" : 1,
7595 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
7596 "type" : "string"
7597 }
7598 },
7599 "type" : "string"
7600 },
7601 "type" : "array",
7602 "typetext" : "<array>"
7603 }
7604 },
7605 "type" : "object"
7606 },
7607 "permissions" : {
7608 "check" : [
7609 "perm",
7610 "/mapping/usb/{id}",
7611 [
7612 "Mapping.Modify"
7613 ]
7614 ]
7615 },
7616 "protected" : 1,
7617 "returns" : {
7618 "type" : "null"
7619 }
7620 }
7621 },
7622 "leaf" : 1,
7623 "path" : "/cluster/mapping/usb/{id}",
7624 "text" : "{id}"
7625 }
7626 ],
7627 "info" : {
7628 "GET" : {
7629 "allowtoken" : 1,
7630 "description" : "List USB Hardware Mappings",
7631 "method" : "GET",
7632 "name" : "index",
7633 "parameters" : {
7634 "additionalProperties" : 0,
7635 "properties" : {
7636 "check-node" : {
7637 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant errors to the devices.",
7638 "format" : "pve-node",
7639 "optional" : 1,
7640 "type" : "string",
7641 "typetext" : "<string>"
7642 }
7643 }
7644 },
7645 "permissions" : {
7646 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/usb/<id>'.",
7647 "user" : "all"
7648 },
7649 "returns" : {
7650 "items" : {
7651 "properties" : {
7652 "description" : {
7653 "description" : "A description of the logical mapping.",
7654 "type" : "string"
7655 },
7656 "error" : {
7657 "description" : "A list of errors when 'check_node' is given.",
7658 "items" : {
7659 "properties" : {
7660 "message" : {
7661 "description" : "The message of the error",
7662 "type" : "string"
7663 },
7664 "severity" : {
7665 "description" : "The severity of the error",
7666 "type" : "string"
7667 }
7668 },
7669 "type" : "object"
7670 }
7671 },
7672 "id" : {
7673 "description" : "The logical ID of the mapping.",
7674 "type" : "string"
7675 },
7676 "map" : {
7677 "description" : "The entries of the mapping.",
7678 "items" : {
7679 "description" : "A mapping for a node.",
7680 "type" : "string"
7681 },
7682 "type" : "array"
7683 }
7684 },
7685 "type" : "object"
7686 },
7687 "links" : [
7688 {
7689 "href" : "{id}",
7690 "rel" : "child"
7691 }
7692 ],
7693 "type" : "array"
7694 }
7695 },
7696 "POST" : {
7697 "allowtoken" : 1,
7698 "description" : "Create a new hardware mapping.",
7699 "method" : "POST",
7700 "name" : "create",
7701 "parameters" : {
7702 "additionalProperties" : 0,
7703 "properties" : {
7704 "description" : {
7705 "description" : "Description of the logical PCI device.",
7706 "maxLength" : 4096,
7707 "optional" : 1,
7708 "type" : "string",
7709 "typetext" : "<string>"
7710 },
7711 "id" : {
7712 "description" : "The ID of the logical PCI mapping.",
7713 "format" : "pve-configid",
7714 "type" : "string",
7715 "typetext" : "<string>"
7716 },
7717 "map" : {
7718 "description" : "A list of maps for the cluster nodes.",
7719 "items" : {
7720 "format" : {
7721 "description" : {
7722 "description" : "Description of the node specific device.",
7723 "maxLength" : 4096,
7724 "optional" : 1,
7725 "type" : "string"
7726 },
7727 "id" : {
7728 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
7729 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7730 "type" : "string"
7731 },
7732 "node" : {
7733 "description" : "The cluster node name.",
7734 "format" : "pve-node",
7735 "type" : "string"
7736 },
7737 "path" : {
7738 "description" : "The path to the usb device.",
7739 "optional" : 1,
7740 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
7741 "type" : "string"
7742 }
7743 },
7744 "type" : "string"
7745 },
7746 "type" : "array",
7747 "typetext" : "<array>"
7748 }
7749 },
7750 "type" : "object"
7751 },
7752 "permissions" : {
7753 "check" : [
7754 "perm",
7755 "/mapping/usb",
7756 [
7757 "Mapping.Modify"
7758 ]
7759 ]
7760 },
7761 "protected" : 1,
7762 "returns" : {
7763 "type" : "null"
7764 }
7765 }
7766 },
7767 "leaf" : 0,
7768 "path" : "/cluster/mapping/usb",
7769 "text" : "usb"
7770 }
7771 ],
7772 "info" : {
7773 "GET" : {
7774 "allowtoken" : 1,
7775 "description" : "List resource types.",
7776 "method" : "GET",
7777 "name" : "index",
7778 "parameters" : {
7779 "additionalProperties" : 0
7780 },
7781 "permissions" : {
7782 "user" : "all"
7783 },
7784 "returns" : {
7785 "items" : {
7786 "type" : "object"
7787 },
7788 "links" : [
7789 {
7790 "href" : "{name}",
7791 "rel" : "child"
7792 }
7793 ],
7794 "type" : "array"
7795 }
7796 }
7797 },
7798 "leaf" : 0,
7799 "path" : "/cluster/mapping",
7800 "text" : "mapping"
7801 },
c5aa7e14
TL
7802 {
7803 "children" : [
7804 {
7805 "children" : [
7806 {
d2656385
TL
7807 "children" : [
7808 {
7809 "children" : [
7810 {
7811 "info" : {
7812 "DELETE" : {
7813 "allowtoken" : 1,
7814 "description" : "Delete sdn subnet object configuration.",
7815 "method" : "DELETE",
7816 "name" : "delete",
7817 "parameters" : {
7818 "additionalProperties" : 0,
7819 "properties" : {
7820 "subnet" : {
7821 "description" : "The SDN subnet object identifier.",
7822 "format" : "pve-sdn-subnet-id",
7823 "type" : "string",
7824 "typetext" : "<string>"
7825 },
7826 "vnet" : {
7827 "description" : "The SDN vnet object identifier.",
7828 "format" : "pve-sdn-vnet-id",
7829 "type" : "string",
7830 "typetext" : "<string>"
7831 }
7832 }
7833 },
7834 "permissions" : {
7835 "check" : [
7836 "perm",
7837 "/sdn/vnets/{vnet}/subnets",
7838 [
7839 "SDN.Allocate"
7840 ]
7841 ]
7842 },
7843 "protected" : 1,
7844 "returns" : {
7845 "type" : "null"
7846 }
7847 },
7848 "GET" : {
7849 "allowtoken" : 1,
7850 "description" : "Read sdn subnet configuration.",
7851 "method" : "GET",
7852 "name" : "read",
7853 "parameters" : {
7854 "additionalProperties" : 0,
7855 "properties" : {
7856 "pending" : {
7857 "description" : "Display pending config.",
7858 "optional" : 1,
7859 "type" : "boolean",
7860 "typetext" : "<boolean>"
7861 },
7862 "running" : {
7863 "description" : "Display running config.",
7864 "optional" : 1,
7865 "type" : "boolean",
7866 "typetext" : "<boolean>"
7867 },
7868 "subnet" : {
7869 "description" : "The SDN subnet object identifier.",
7870 "format" : "pve-sdn-subnet-id",
7871 "type" : "string",
7872 "typetext" : "<string>"
7873 },
7874 "vnet" : {
7875 "description" : "The SDN vnet object identifier.",
7876 "format" : "pve-sdn-vnet-id",
7877 "type" : "string",
7878 "typetext" : "<string>"
7879 }
7880 }
7881 },
7882 "permissions" : {
7883 "check" : [
7884 "perm",
7885 "/sdn/vnets/{vnet}/subnets/{subnet}",
7886 [
7887 "SDN.Allocate"
7888 ]
7889 ]
7890 },
7891 "returns" : {
7892 "type" : "object"
7893 }
7894 },
7895 "PUT" : {
7896 "allowtoken" : 1,
7897 "description" : "Update sdn subnet object configuration.",
7898 "method" : "PUT",
7899 "name" : "update",
7900 "parameters" : {
7901 "additionalProperties" : 0,
7902 "properties" : {
7903 "delete" : {
7904 "description" : "A list of settings you want to delete.",
7905 "format" : "pve-configid-list",
7906 "maxLength" : 4096,
7907 "optional" : 1,
7908 "type" : "string",
7909 "typetext" : "<string>"
7910 },
7911 "digest" : {
7912 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7913 "maxLength" : 40,
7914 "optional" : 1,
7915 "type" : "string",
7916 "typetext" : "<string>"
7917 },
7918 "dnszoneprefix" : {
7919 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
7920 "format" : "dns-name",
7921 "optional" : 1,
7922 "type" : "string",
7923 "typetext" : "<string>"
7924 },
7925 "gateway" : {
7926 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
7927 "format" : "ip",
7928 "optional" : 1,
7929 "type" : "string",
7930 "typetext" : "<string>"
7931 },
7932 "snat" : {
7933 "description" : "enable masquerade for this subnet if pve-firewall",
7934 "optional" : 1,
7935 "type" : "boolean",
7936 "typetext" : "<boolean>"
7937 },
7938 "subnet" : {
7939 "description" : "The SDN subnet object identifier.",
7940 "format" : "pve-sdn-subnet-id",
7941 "type" : "string",
7942 "typetext" : "<string>"
7943 },
7944 "vnet" : {
7945 "description" : "associated vnet",
7946 "optional" : 1,
7947 "type" : "string",
7948 "typetext" : "<string>"
7949 }
7950 },
7951 "type" : "object"
7952 },
7953 "permissions" : {
7954 "check" : [
7955 "perm",
7956 "/sdn/vnets/{vnet}/subnets",
7957 [
7958 "SDN.Allocate"
7959 ]
7960 ]
7961 },
7962 "protected" : 1,
7963 "returns" : {
7964 "type" : "null"
7965 }
7966 }
7967 },
7968 "leaf" : 1,
7969 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
7970 "text" : "{subnet}"
7971 }
7972 ],
7973 "info" : {
7974 "GET" : {
7975 "allowtoken" : 1,
7976 "description" : "SDN subnets index.",
7977 "method" : "GET",
7978 "name" : "index",
7979 "parameters" : {
7980 "additionalProperties" : 0,
7981 "properties" : {
7982 "pending" : {
7983 "description" : "Display pending config.",
7984 "optional" : 1,
7985 "type" : "boolean",
7986 "typetext" : "<boolean>"
7987 },
7988 "running" : {
7989 "description" : "Display running config.",
7990 "optional" : 1,
7991 "type" : "boolean",
7992 "typetext" : "<boolean>"
7993 },
7994 "vnet" : {
7995 "description" : "The SDN vnet object identifier.",
7996 "format" : "pve-sdn-vnet-id",
7997 "type" : "string",
7998 "typetext" : "<string>"
7999 }
8000 }
8001 },
8002 "permissions" : {
8003 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
8004 "user" : "all"
8005 },
8006 "returns" : {
8007 "items" : {
8008 "properties" : {},
8009 "type" : "object"
8010 },
8011 "links" : [
8012 {
8013 "href" : "{subnet}",
8014 "rel" : "child"
8015 }
8016 ],
8017 "type" : "array"
8018 }
8019 },
8020 "POST" : {
8021 "allowtoken" : 1,
8022 "description" : "Create a new sdn subnet object.",
8023 "method" : "POST",
8024 "name" : "create",
8025 "parameters" : {
8026 "additionalProperties" : 0,
8027 "properties" : {
8028 "dnszoneprefix" : {
8029 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
8030 "format" : "dns-name",
8031 "optional" : 1,
8032 "type" : "string",
8033 "typetext" : "<string>"
8034 },
8035 "gateway" : {
8036 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
8037 "format" : "ip",
8038 "optional" : 1,
8039 "type" : "string",
8040 "typetext" : "<string>"
8041 },
8042 "snat" : {
8043 "description" : "enable masquerade for this subnet if pve-firewall",
8044 "optional" : 1,
8045 "type" : "boolean",
8046 "typetext" : "<boolean>"
8047 },
8048 "subnet" : {
8049 "description" : "The SDN subnet object identifier.",
8050 "format" : "pve-sdn-subnet-id",
8051 "type" : "string",
8052 "typetext" : "<string>"
8053 },
8054 "type" : {
8055 "enum" : [
8056 "subnet"
8057 ],
8058 "type" : "string"
8059 },
8060 "vnet" : {
8061 "description" : "associated vnet",
8062 "optional" : 0,
8063 "type" : "string",
8064 "typetext" : "<string>"
8065 }
8066 },
8067 "type" : "object"
8068 },
8069 "permissions" : {
8070 "check" : [
8071 "perm",
8072 "/sdn/vnets/{vnet}/subnets",
8073 [
8074 "SDN.Allocate"
8075 ]
8076 ]
8077 },
8078 "protected" : 1,
8079 "returns" : {
8080 "type" : "null"
8081 }
8082 }
8083 },
8084 "leaf" : 0,
8085 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
8086 "text" : "subnets"
8087 }
8088 ],
c5aa7e14
TL
8089 "info" : {
8090 "DELETE" : {
8091 "allowtoken" : 1,
8092 "description" : "Delete sdn vnet object configuration.",
8093 "method" : "DELETE",
8094 "name" : "delete",
8095 "parameters" : {
8096 "additionalProperties" : 0,
8097 "properties" : {
8098 "vnet" : {
8099 "description" : "The SDN vnet object identifier.",
8100 "format" : "pve-sdn-vnet-id",
8101 "type" : "string",
8102 "typetext" : "<string>"
8103 }
8104 }
8105 },
8106 "permissions" : {
8107 "check" : [
8108 "perm",
8109 "/sdn/vnets",
8110 [
8111 "SDN.Allocate"
8112 ]
8113 ]
8114 },
8115 "protected" : 1,
8116 "returns" : {
8117 "type" : "null"
8118 }
8119 },
8120 "GET" : {
8121 "allowtoken" : 1,
8122 "description" : "Read sdn vnet configuration.",
8123 "method" : "GET",
8124 "name" : "read",
8125 "parameters" : {
8126 "additionalProperties" : 0,
8127 "properties" : {
d2656385
TL
8128 "pending" : {
8129 "description" : "Display pending config.",
8130 "optional" : 1,
8131 "type" : "boolean",
8132 "typetext" : "<boolean>"
8133 },
8134 "running" : {
8135 "description" : "Display running config.",
8136 "optional" : 1,
8137 "type" : "boolean",
8138 "typetext" : "<boolean>"
8139 },
c5aa7e14
TL
8140 "vnet" : {
8141 "description" : "The SDN vnet object identifier.",
8142 "format" : "pve-sdn-vnet-id",
8143 "type" : "string",
8144 "typetext" : "<string>"
8145 }
8146 }
8147 },
8148 "permissions" : {
8149 "check" : [
8150 "perm",
8151 "/sdn/vnets/{vnet}",
8152 [
8153 "SDN.Allocate"
8154 ]
8155 ]
8156 },
8157 "returns" : {
8158 "type" : "object"
8159 }
8160 },
8161 "PUT" : {
8162 "allowtoken" : 1,
8163 "description" : "Update sdn vnet object configuration.",
8164 "method" : "PUT",
8165 "name" : "update",
8166 "parameters" : {
8167 "additionalProperties" : 0,
8168 "properties" : {
8169 "alias" : {
8170 "description" : "alias name of the vnet",
5370fa8c 8171 "maxLength" : 256,
c5aa7e14 8172 "optional" : 1,
5370fa8c
TL
8173 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
8174 "type" : "string"
c5aa7e14
TL
8175 },
8176 "delete" : {
8177 "description" : "A list of settings you want to delete.",
8178 "format" : "pve-configid-list",
8179 "maxLength" : 4096,
8180 "optional" : 1,
8181 "type" : "string",
8182 "typetext" : "<string>"
8183 },
8184 "digest" : {
8185 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8186 "maxLength" : 40,
8187 "optional" : 1,
8188 "type" : "string",
8189 "typetext" : "<string>"
8190 },
c5aa7e14
TL
8191 "tag" : {
8192 "description" : "vlan or vxlan id",
8193 "optional" : 1,
8194 "type" : "integer",
8195 "typetext" : "<integer>"
8196 },
ac70d7d1
TL
8197 "vlanaware" : {
8198 "description" : "Allow vm VLANs to pass through this vnet.",
8199 "optional" : 1,
8200 "type" : "boolean",
8201 "typetext" : "<boolean>"
8202 },
c5aa7e14
TL
8203 "vnet" : {
8204 "description" : "The SDN vnet object identifier.",
8205 "format" : "pve-sdn-vnet-id",
8206 "type" : "string",
8207 "typetext" : "<string>"
8208 },
8209 "zone" : {
8210 "description" : "zone id",
8211 "optional" : 1,
8212 "type" : "string",
8213 "typetext" : "<string>"
8214 }
8215 },
8216 "type" : "object"
8217 },
8218 "permissions" : {
8219 "check" : [
8220 "perm",
8221 "/sdn/vnets",
8222 [
8223 "SDN.Allocate"
8224 ]
8225 ]
8226 },
8227 "protected" : 1,
8228 "returns" : {
8229 "type" : "null"
8230 }
8231 }
8232 },
d2656385 8233 "leaf" : 0,
c5aa7e14
TL
8234 "path" : "/cluster/sdn/vnets/{vnet}",
8235 "text" : "{vnet}"
8236 }
8237 ],
8238 "info" : {
8239 "GET" : {
8240 "allowtoken" : 1,
8241 "description" : "SDN vnets index.",
8242 "method" : "GET",
8243 "name" : "index",
8244 "parameters" : {
d2656385
TL
8245 "additionalProperties" : 0,
8246 "properties" : {
8247 "pending" : {
8248 "description" : "Display pending config.",
8249 "optional" : 1,
8250 "type" : "boolean",
8251 "typetext" : "<boolean>"
8252 },
8253 "running" : {
8254 "description" : "Display running config.",
8255 "optional" : 1,
8256 "type" : "boolean",
8257 "typetext" : "<boolean>"
8258 }
8259 }
c5aa7e14
TL
8260 },
8261 "permissions" : {
8262 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
8263 "user" : "all"
8264 },
8265 "returns" : {
8266 "items" : {
8267 "properties" : {},
8268 "type" : "object"
8269 },
8270 "links" : [
8271 {
8272 "href" : "{vnet}",
8273 "rel" : "child"
8274 }
8275 ],
8276 "type" : "array"
8277 }
8278 },
8279 "POST" : {
8280 "allowtoken" : 1,
8281 "description" : "Create a new sdn vnet object.",
8282 "method" : "POST",
8283 "name" : "create",
8284 "parameters" : {
8285 "additionalProperties" : 0,
8286 "properties" : {
8287 "alias" : {
8288 "description" : "alias name of the vnet",
5370fa8c 8289 "maxLength" : 256,
c5aa7e14 8290 "optional" : 1,
5370fa8c
TL
8291 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
8292 "type" : "string"
c5aa7e14 8293 },
c5aa7e14
TL
8294 "tag" : {
8295 "description" : "vlan or vxlan id",
ac70d7d1 8296 "optional" : 1,
c5aa7e14
TL
8297 "type" : "integer",
8298 "typetext" : "<integer>"
8299 },
8300 "type" : {
8301 "description" : "Type",
8302 "enum" : [
8303 "vnet"
8304 ],
8305 "optional" : 1,
8306 "type" : "string"
8307 },
ac70d7d1
TL
8308 "vlanaware" : {
8309 "description" : "Allow vm VLANs to pass through this vnet.",
8310 "optional" : 1,
8311 "type" : "boolean",
8312 "typetext" : "<boolean>"
8313 },
c5aa7e14
TL
8314 "vnet" : {
8315 "description" : "The SDN vnet object identifier.",
8316 "format" : "pve-sdn-vnet-id",
8317 "type" : "string",
8318 "typetext" : "<string>"
8319 },
8320 "zone" : {
8321 "description" : "zone id",
8322 "optional" : 0,
8323 "type" : "string",
8324 "typetext" : "<string>"
8325 }
8326 },
8327 "type" : "object"
8328 },
8329 "permissions" : {
8330 "check" : [
8331 "perm",
8332 "/sdn/vnets",
8333 [
8334 "SDN.Allocate"
8335 ]
8336 ]
8337 },
8338 "protected" : 1,
8339 "returns" : {
8340 "type" : "null"
8341 }
8342 }
8343 },
8344 "leaf" : 0,
8345 "path" : "/cluster/sdn/vnets",
8346 "text" : "vnets"
8347 },
8348 {
8349 "children" : [
8350 {
8351 "info" : {
8352 "DELETE" : {
8353 "allowtoken" : 1,
8354 "description" : "Delete sdn zone object configuration.",
8355 "method" : "DELETE",
8356 "name" : "delete",
8357 "parameters" : {
8358 "additionalProperties" : 0,
8359 "properties" : {
8360 "zone" : {
8361 "description" : "The SDN zone object identifier.",
8362 "format" : "pve-sdn-zone-id",
8363 "type" : "string",
8364 "typetext" : "<string>"
8365 }
8366 }
8367 },
8368 "permissions" : {
8369 "check" : [
8370 "perm",
8371 "/sdn/zones",
8372 [
8373 "SDN.Allocate"
8374 ]
8375 ]
8376 },
8377 "protected" : 1,
8378 "returns" : {
8379 "type" : "null"
8380 }
8381 },
8382 "GET" : {
8383 "allowtoken" : 1,
8384 "description" : "Read sdn zone configuration.",
8385 "method" : "GET",
8386 "name" : "read",
8387 "parameters" : {
8388 "additionalProperties" : 0,
8389 "properties" : {
d2656385
TL
8390 "pending" : {
8391 "description" : "Display pending config.",
8392 "optional" : 1,
8393 "type" : "boolean",
8394 "typetext" : "<boolean>"
8395 },
8396 "running" : {
8397 "description" : "Display running config.",
8398 "optional" : 1,
8399 "type" : "boolean",
8400 "typetext" : "<boolean>"
8401 },
c5aa7e14
TL
8402 "zone" : {
8403 "description" : "The SDN zone object identifier.",
8404 "format" : "pve-sdn-zone-id",
8405 "type" : "string",
8406 "typetext" : "<string>"
8407 }
8408 }
8409 },
8410 "permissions" : {
8411 "check" : [
8412 "perm",
8413 "/sdn/zones/{zone}",
8414 [
8415 "SDN.Allocate"
8416 ]
8417 ]
8418 },
8419 "returns" : {
8420 "type" : "object"
8421 }
8422 },
8423 "PUT" : {
8424 "allowtoken" : 1,
8425 "description" : "Update sdn zone object configuration.",
8426 "method" : "PUT",
8427 "name" : "update",
8428 "parameters" : {
8429 "additionalProperties" : 0,
8430 "properties" : {
5370fa8c
TL
8431 "advertise-subnets" : {
8432 "description" : "Advertise evpn subnets if you have silent hosts",
8433 "optional" : 1,
8434 "type" : "boolean",
8435 "typetext" : "<boolean>"
8436 },
c5aa7e14
TL
8437 "bridge" : {
8438 "optional" : 1,
8439 "type" : "string",
8440 "typetext" : "<string>"
8441 },
7af2edf9
TL
8442 "bridge-disable-mac-learning" : {
8443 "description" : "Disable auto mac learning.",
8444 "optional" : 1,
8445 "type" : "boolean",
8446 "typetext" : "<boolean>"
8447 },
c5aa7e14
TL
8448 "controller" : {
8449 "description" : "Frr router name",
8450 "optional" : 1,
8451 "type" : "string",
8452 "typetext" : "<string>"
8453 },
8454 "delete" : {
8455 "description" : "A list of settings you want to delete.",
8456 "format" : "pve-configid-list",
8457 "maxLength" : 4096,
8458 "optional" : 1,
8459 "type" : "string",
8460 "typetext" : "<string>"
8461 },
8462 "digest" : {
8463 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8464 "maxLength" : 40,
8465 "optional" : 1,
8466 "type" : "string",
8467 "typetext" : "<string>"
8468 },
5370fa8c
TL
8469 "disable-arp-nd-suppression" : {
8470 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
8471 "optional" : 1,
8472 "type" : "boolean",
8473 "typetext" : "<boolean>"
8474 },
d2656385
TL
8475 "dns" : {
8476 "description" : "dns api server",
8477 "optional" : 1,
8478 "type" : "string",
8479 "typetext" : "<string>"
8480 },
8481 "dnszone" : {
8482 "description" : "dns domain zone ex: mydomain.com",
8483 "format" : "dns-name",
8484 "optional" : 1,
8485 "type" : "string",
8486 "typetext" : "<string>"
8487 },
c5aa7e14
TL
8488 "dp-id" : {
8489 "description" : "Faucet dataplane id",
8490 "optional" : 1,
8491 "type" : "integer",
8492 "typetext" : "<integer>"
8493 },
d2656385
TL
8494 "exitnodes" : {
8495 "description" : "List of cluster node names.",
8496 "format" : "pve-node-list",
8497 "optional" : 1,
8498 "type" : "string",
8499 "typetext" : "<string>"
8500 },
5370fa8c
TL
8501 "exitnodes-local-routing" : {
8502 "description" : "Allow exitnodes to connect to evpn guests",
8503 "optional" : 1,
8504 "type" : "boolean",
8505 "typetext" : "<boolean>"
8506 },
c30bb419
TL
8507 "exitnodes-primary" : {
8508 "description" : "Force traffic to this exitnode first.",
8509 "format" : "pve-node",
8510 "optional" : 1,
8511 "type" : "string",
8512 "typetext" : "<string>"
8513 },
d2656385
TL
8514 "ipam" : {
8515 "description" : "use a specific ipam",
e7084ef7 8516 "optional" : 1,
d2656385
TL
8517 "type" : "string",
8518 "typetext" : "<string>"
8519 },
8520 "mac" : {
8521 "description" : "Anycast logical router mac address",
8522 "format" : "mac-addr",
8523 "optional" : 1,
8524 "type" : "string",
8525 "typetext" : "<string>"
8526 },
c5aa7e14 8527 "mtu" : {
ac70d7d1 8528 "description" : "MTU",
c5aa7e14
TL
8529 "optional" : 1,
8530 "type" : "integer",
8531 "typetext" : "<integer>"
8532 },
8533 "nodes" : {
8534 "description" : "List of cluster node names.",
8535 "format" : "pve-node-list",
8536 "optional" : 1,
8537 "type" : "string",
8538 "typetext" : "<string>"
8539 },
8540 "peers" : {
8541 "description" : "peers address list.",
8542 "format" : "ip-list",
8543 "optional" : 1,
8544 "type" : "string",
8545 "typetext" : "<string>"
8546 },
d2656385
TL
8547 "reversedns" : {
8548 "description" : "reverse dns api server",
8549 "optional" : 1,
8550 "type" : "string",
8551 "typetext" : "<string>"
8552 },
c30bb419
TL
8553 "rt-import" : {
8554 "description" : "Route-Target import",
8555 "format" : "pve-sdn-bgp-rt-list",
8556 "optional" : 1,
8557 "type" : "string",
8558 "typetext" : "<string>"
8559 },
c5aa7e14 8560 "tag" : {
ac70d7d1
TL
8561 "description" : "Service-VLAN Tag",
8562 "minimum" : 0,
c5aa7e14
TL
8563 "optional" : 1,
8564 "type" : "integer",
ac70d7d1
TL
8565 "typetext" : "<integer> (0 - N)"
8566 },
8567 "vlan-protocol" : {
8568 "default" : "802.1q",
8569 "enum" : [
8570 "802.1q",
8571 "802.1ad"
8572 ],
8573 "optional" : 1,
8574 "type" : "string"
c5aa7e14
TL
8575 },
8576 "vrf-vxlan" : {
8577 "description" : "l3vni.",
8578 "optional" : 1,
8579 "type" : "integer",
8580 "typetext" : "<integer>"
8581 },
4a407cfd
TL
8582 "vxlan-port" : {
8583 "description" : "Vxlan tunnel udp port (default 4789).",
8584 "maximum" : 65536,
8585 "minimum" : 1,
8586 "optional" : 1,
8587 "type" : "integer",
8588 "typetext" : "<integer> (1 - 65536)"
8589 },
c5aa7e14
TL
8590 "zone" : {
8591 "description" : "The SDN zone object identifier.",
8592 "format" : "pve-sdn-zone-id",
8593 "type" : "string",
8594 "typetext" : "<string>"
8595 }
8596 },
8597 "type" : "object"
8598 },
8599 "permissions" : {
8600 "check" : [
8601 "perm",
8602 "/sdn/zones",
8603 [
8604 "SDN.Allocate"
8605 ]
8606 ]
8607 },
8608 "protected" : 1,
8609 "returns" : {
8610 "type" : "null"
8611 }
8612 }
8613 },
8614 "leaf" : 1,
8615 "path" : "/cluster/sdn/zones/{zone}",
8616 "text" : "{zone}"
8617 }
8618 ],
8619 "info" : {
8620 "GET" : {
8621 "allowtoken" : 1,
8622 "description" : "SDN zones index.",
8623 "method" : "GET",
8624 "name" : "index",
8625 "parameters" : {
8626 "additionalProperties" : 0,
8627 "properties" : {
d2656385
TL
8628 "pending" : {
8629 "description" : "Display pending config.",
8630 "optional" : 1,
8631 "type" : "boolean",
8632 "typetext" : "<boolean>"
8633 },
8634 "running" : {
8635 "description" : "Display running config.",
8636 "optional" : 1,
8637 "type" : "boolean",
8638 "typetext" : "<boolean>"
8639 },
c5aa7e14 8640 "type" : {
e7084ef7 8641 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
8642 "enum" : [
8643 "evpn",
8644 "faucet",
8645 "qinq",
ac70d7d1 8646 "simple",
c5aa7e14
TL
8647 "vlan",
8648 "vxlan"
8649 ],
8650 "optional" : 1,
8651 "type" : "string"
8652 }
8653 }
8654 },
8655 "permissions" : {
8656 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
8657 "user" : "all"
8658 },
8659 "returns" : {
8660 "items" : {
8661 "properties" : {
d2656385
TL
8662 "dns" : {
8663 "optional" : 1,
8664 "type" : "string"
8665 },
8666 "dnszone" : {
8667 "optional" : 1,
8668 "type" : "string"
8669 },
8670 "ipam" : {
8671 "optional" : 1,
8672 "type" : "string"
8673 },
8674 "mtu" : {
8675 "optional" : 1,
8676 "type" : "integer"
8677 },
8678 "nodes" : {
8679 "optional" : 1,
8680 "type" : "string"
8681 },
8682 "pending" : {
8683 "optional" : 1
8684 },
8685 "reversedns" : {
8686 "optional" : 1,
8687 "type" : "string"
8688 },
8689 "state" : {
8690 "optional" : 1,
8691 "type" : "string"
8692 },
c5aa7e14
TL
8693 "type" : {
8694 "type" : "string"
8695 },
8696 "zone" : {
8697 "type" : "string"
8698 }
8699 },
8700 "type" : "object"
8701 },
8702 "links" : [
8703 {
8704 "href" : "{zone}",
8705 "rel" : "child"
8706 }
8707 ],
8708 "type" : "array"
8709 }
8710 },
8711 "POST" : {
8712 "allowtoken" : 1,
8713 "description" : "Create a new sdn zone object.",
8714 "method" : "POST",
8715 "name" : "create",
8716 "parameters" : {
8717 "additionalProperties" : 0,
8718 "properties" : {
5370fa8c
TL
8719 "advertise-subnets" : {
8720 "description" : "Advertise evpn subnets if you have silent hosts",
8721 "optional" : 1,
8722 "type" : "boolean",
8723 "typetext" : "<boolean>"
8724 },
c5aa7e14
TL
8725 "bridge" : {
8726 "optional" : 1,
8727 "type" : "string",
8728 "typetext" : "<string>"
8729 },
7af2edf9
TL
8730 "bridge-disable-mac-learning" : {
8731 "description" : "Disable auto mac learning.",
8732 "optional" : 1,
8733 "type" : "boolean",
8734 "typetext" : "<boolean>"
8735 },
c5aa7e14
TL
8736 "controller" : {
8737 "description" : "Frr router name",
8738 "optional" : 1,
8739 "type" : "string",
8740 "typetext" : "<string>"
8741 },
5370fa8c
TL
8742 "disable-arp-nd-suppression" : {
8743 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
8744 "optional" : 1,
8745 "type" : "boolean",
8746 "typetext" : "<boolean>"
8747 },
d2656385
TL
8748 "dns" : {
8749 "description" : "dns api server",
8750 "optional" : 1,
8751 "type" : "string",
8752 "typetext" : "<string>"
8753 },
8754 "dnszone" : {
8755 "description" : "dns domain zone ex: mydomain.com",
8756 "format" : "dns-name",
8757 "optional" : 1,
8758 "type" : "string",
8759 "typetext" : "<string>"
8760 },
c5aa7e14
TL
8761 "dp-id" : {
8762 "description" : "Faucet dataplane id",
8763 "optional" : 1,
8764 "type" : "integer",
8765 "typetext" : "<integer>"
8766 },
d2656385
TL
8767 "exitnodes" : {
8768 "description" : "List of cluster node names.",
8769 "format" : "pve-node-list",
8770 "optional" : 1,
8771 "type" : "string",
8772 "typetext" : "<string>"
8773 },
5370fa8c
TL
8774 "exitnodes-local-routing" : {
8775 "description" : "Allow exitnodes to connect to evpn guests",
8776 "optional" : 1,
8777 "type" : "boolean",
8778 "typetext" : "<boolean>"
8779 },
c30bb419
TL
8780 "exitnodes-primary" : {
8781 "description" : "Force traffic to this exitnode first.",
8782 "format" : "pve-node",
8783 "optional" : 1,
8784 "type" : "string",
8785 "typetext" : "<string>"
8786 },
d2656385
TL
8787 "ipam" : {
8788 "description" : "use a specific ipam",
e7084ef7 8789 "optional" : 1,
d2656385
TL
8790 "type" : "string",
8791 "typetext" : "<string>"
8792 },
8793 "mac" : {
8794 "description" : "Anycast logical router mac address",
8795 "format" : "mac-addr",
8796 "optional" : 1,
8797 "type" : "string",
8798 "typetext" : "<string>"
8799 },
c5aa7e14 8800 "mtu" : {
ac70d7d1 8801 "description" : "MTU",
c5aa7e14
TL
8802 "optional" : 1,
8803 "type" : "integer",
8804 "typetext" : "<integer>"
8805 },
8806 "nodes" : {
8807 "description" : "List of cluster node names.",
8808 "format" : "pve-node-list",
8809 "optional" : 1,
8810 "type" : "string",
8811 "typetext" : "<string>"
8812 },
8813 "peers" : {
8814 "description" : "peers address list.",
8815 "format" : "ip-list",
8816 "optional" : 1,
8817 "type" : "string",
8818 "typetext" : "<string>"
8819 },
d2656385
TL
8820 "reversedns" : {
8821 "description" : "reverse dns api server",
8822 "optional" : 1,
8823 "type" : "string",
8824 "typetext" : "<string>"
8825 },
c30bb419
TL
8826 "rt-import" : {
8827 "description" : "Route-Target import",
8828 "format" : "pve-sdn-bgp-rt-list",
8829 "optional" : 1,
8830 "type" : "string",
8831 "typetext" : "<string>"
8832 },
c5aa7e14 8833 "tag" : {
ac70d7d1
TL
8834 "description" : "Service-VLAN Tag",
8835 "minimum" : 0,
c5aa7e14
TL
8836 "optional" : 1,
8837 "type" : "integer",
ac70d7d1 8838 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
8839 },
8840 "type" : {
8841 "description" : "Plugin type.",
8842 "enum" : [
8843 "evpn",
8844 "faucet",
8845 "qinq",
ac70d7d1 8846 "simple",
c5aa7e14
TL
8847 "vlan",
8848 "vxlan"
8849 ],
8850 "format" : "pve-configid",
8851 "type" : "string"
8852 },
ac70d7d1
TL
8853 "vlan-protocol" : {
8854 "default" : "802.1q",
8855 "enum" : [
8856 "802.1q",
8857 "802.1ad"
8858 ],
8859 "optional" : 1,
8860 "type" : "string"
8861 },
c5aa7e14
TL
8862 "vrf-vxlan" : {
8863 "description" : "l3vni.",
8864 "optional" : 1,
8865 "type" : "integer",
8866 "typetext" : "<integer>"
8867 },
4a407cfd
TL
8868 "vxlan-port" : {
8869 "description" : "Vxlan tunnel udp port (default 4789).",
8870 "maximum" : 65536,
8871 "minimum" : 1,
8872 "optional" : 1,
8873 "type" : "integer",
8874 "typetext" : "<integer> (1 - 65536)"
8875 },
c5aa7e14
TL
8876 "zone" : {
8877 "description" : "The SDN zone object identifier.",
8878 "format" : "pve-sdn-zone-id",
8879 "type" : "string",
8880 "typetext" : "<string>"
8881 }
8882 },
8883 "type" : "object"
8884 },
8885 "permissions" : {
8886 "check" : [
8887 "perm",
8888 "/sdn/zones",
8889 [
8890 "SDN.Allocate"
8891 ]
8892 ]
8893 },
8894 "protected" : 1,
8895 "returns" : {
8896 "type" : "null"
8897 }
8898 }
8899 },
8900 "leaf" : 0,
8901 "path" : "/cluster/sdn/zones",
8902 "text" : "zones"
8903 },
8904 {
8905 "children" : [
8906 {
8907 "info" : {
8908 "DELETE" : {
8909 "allowtoken" : 1,
8910 "description" : "Delete sdn controller object configuration.",
8911 "method" : "DELETE",
8912 "name" : "delete",
8913 "parameters" : {
8914 "additionalProperties" : 0,
8915 "properties" : {
8916 "controller" : {
8917 "description" : "The SDN controller object identifier.",
8918 "format" : "pve-sdn-controller-id",
8919 "type" : "string",
8920 "typetext" : "<string>"
8921 }
8922 }
8923 },
8924 "permissions" : {
8925 "check" : [
8926 "perm",
8927 "/sdn/controllers",
8928 [
8929 "SDN.Allocate"
8930 ]
8931 ]
8932 },
8933 "protected" : 1,
8934 "returns" : {
8935 "type" : "null"
8936 }
8937 },
8938 "GET" : {
8939 "allowtoken" : 1,
8940 "description" : "Read sdn controller configuration.",
8941 "method" : "GET",
8942 "name" : "read",
8943 "parameters" : {
8944 "additionalProperties" : 0,
8945 "properties" : {
8946 "controller" : {
8947 "description" : "The SDN controller object identifier.",
8948 "format" : "pve-sdn-controller-id",
8949 "type" : "string",
8950 "typetext" : "<string>"
d2656385
TL
8951 },
8952 "pending" : {
8953 "description" : "Display pending config.",
8954 "optional" : 1,
8955 "type" : "boolean",
8956 "typetext" : "<boolean>"
8957 },
8958 "running" : {
8959 "description" : "Display running config.",
8960 "optional" : 1,
8961 "type" : "boolean",
8962 "typetext" : "<boolean>"
c5aa7e14
TL
8963 }
8964 }
8965 },
8966 "permissions" : {
8967 "check" : [
8968 "perm",
8969 "/sdn/controllers/{controller}",
8970 [
8971 "SDN.Allocate"
8972 ]
8973 ]
8974 },
8975 "returns" : {
8976 "type" : "object"
8977 }
8978 },
8979 "PUT" : {
8980 "allowtoken" : 1,
8981 "description" : "Update sdn controller object configuration.",
8982 "method" : "PUT",
8983 "name" : "update",
8984 "parameters" : {
8985 "additionalProperties" : 0,
8986 "properties" : {
8987 "asn" : {
8988 "description" : "autonomous system number",
c30bb419
TL
8989 "maximum" : 4294967296,
8990 "minimum" : 0,
c5aa7e14
TL
8991 "optional" : 1,
8992 "type" : "integer",
c30bb419
TL
8993 "typetext" : "<integer> (0 - 4294967296)"
8994 },
8995 "bgp-multipath-as-path-relax" : {
8996 "optional" : 1,
8997 "type" : "boolean",
8998 "typetext" : "<boolean>"
c5aa7e14
TL
8999 },
9000 "controller" : {
9001 "description" : "The SDN controller object identifier.",
9002 "format" : "pve-sdn-controller-id",
9003 "type" : "string",
9004 "typetext" : "<string>"
9005 },
9006 "delete" : {
9007 "description" : "A list of settings you want to delete.",
9008 "format" : "pve-configid-list",
9009 "maxLength" : 4096,
9010 "optional" : 1,
9011 "type" : "string",
9012 "typetext" : "<string>"
9013 },
9014 "digest" : {
9015 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9016 "maxLength" : 40,
9017 "optional" : 1,
9018 "type" : "string",
9019 "typetext" : "<string>"
9020 },
d2656385
TL
9021 "ebgp" : {
9022 "description" : "Enable ebgp. (remote-as external)",
9023 "optional" : 1,
9024 "type" : "boolean",
9025 "typetext" : "<boolean>"
9026 },
9027 "ebgp-multihop" : {
9028 "optional" : 1,
9029 "type" : "integer",
9030 "typetext" : "<integer>"
9031 },
9032 "loopback" : {
9033 "description" : "source loopback interface.",
c5aa7e14
TL
9034 "optional" : 1,
9035 "type" : "string",
9036 "typetext" : "<string>"
9037 },
d2656385
TL
9038 "node" : {
9039 "description" : "The cluster node name.",
9040 "format" : "pve-node",
c5aa7e14
TL
9041 "optional" : 1,
9042 "type" : "string",
9043 "typetext" : "<string>"
9044 },
9045 "peers" : {
9046 "description" : "peers address list.",
9047 "format" : "ip-list",
9048 "optional" : 1,
9049 "type" : "string",
9050 "typetext" : "<string>"
9051 }
9052 },
9053 "type" : "object"
9054 },
9055 "permissions" : {
9056 "check" : [
9057 "perm",
9058 "/sdn/controllers",
9059 [
9060 "SDN.Allocate"
9061 ]
9062 ]
9063 },
9064 "protected" : 1,
9065 "returns" : {
9066 "type" : "null"
9067 }
9068 }
9069 },
9070 "leaf" : 1,
9071 "path" : "/cluster/sdn/controllers/{controller}",
9072 "text" : "{controller}"
9073 }
9074 ],
9075 "info" : {
9076 "GET" : {
9077 "allowtoken" : 1,
9078 "description" : "SDN controllers index.",
9079 "method" : "GET",
9080 "name" : "index",
9081 "parameters" : {
9082 "additionalProperties" : 0,
9083 "properties" : {
d2656385
TL
9084 "pending" : {
9085 "description" : "Display pending config.",
9086 "optional" : 1,
9087 "type" : "boolean",
9088 "typetext" : "<boolean>"
9089 },
9090 "running" : {
9091 "description" : "Display running config.",
9092 "optional" : 1,
9093 "type" : "boolean",
9094 "typetext" : "<boolean>"
9095 },
c5aa7e14
TL
9096 "type" : {
9097 "description" : "Only list sdn controllers of specific type",
9098 "enum" : [
d2656385 9099 "bgp",
c5aa7e14
TL
9100 "evpn",
9101 "faucet"
9102 ],
9103 "optional" : 1,
9104 "type" : "string"
9105 }
9106 }
9107 },
9108 "permissions" : {
9109 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
9110 "user" : "all"
9111 },
9112 "returns" : {
9113 "items" : {
9114 "properties" : {
9115 "controller" : {
9116 "type" : "string"
9117 },
d2656385
TL
9118 "pending" : {
9119 "optional" : 1
9120 },
9121 "state" : {
9122 "optional" : 1,
9123 "type" : "string"
9124 },
c5aa7e14
TL
9125 "type" : {
9126 "type" : "string"
9127 }
9128 },
9129 "type" : "object"
9130 },
9131 "links" : [
9132 {
9133 "href" : "{controller}",
9134 "rel" : "child"
9135 }
9136 ],
9137 "type" : "array"
9138 }
9139 },
9140 "POST" : {
9141 "allowtoken" : 1,
9142 "description" : "Create a new sdn controller object.",
9143 "method" : "POST",
9144 "name" : "create",
9145 "parameters" : {
9146 "additionalProperties" : 0,
9147 "properties" : {
9148 "asn" : {
9149 "description" : "autonomous system number",
c30bb419
TL
9150 "maximum" : 4294967296,
9151 "minimum" : 0,
c5aa7e14
TL
9152 "optional" : 1,
9153 "type" : "integer",
c30bb419
TL
9154 "typetext" : "<integer> (0 - 4294967296)"
9155 },
9156 "bgp-multipath-as-path-relax" : {
9157 "optional" : 1,
9158 "type" : "boolean",
9159 "typetext" : "<boolean>"
c5aa7e14
TL
9160 },
9161 "controller" : {
9162 "description" : "The SDN controller object identifier.",
9163 "format" : "pve-sdn-controller-id",
9164 "type" : "string",
9165 "typetext" : "<string>"
9166 },
d2656385
TL
9167 "ebgp" : {
9168 "description" : "Enable ebgp. (remote-as external)",
9169 "optional" : 1,
9170 "type" : "boolean",
9171 "typetext" : "<boolean>"
9172 },
9173 "ebgp-multihop" : {
9174 "optional" : 1,
9175 "type" : "integer",
9176 "typetext" : "<integer>"
9177 },
9178 "loopback" : {
9179 "description" : "source loopback interface.",
c5aa7e14
TL
9180 "optional" : 1,
9181 "type" : "string",
9182 "typetext" : "<string>"
9183 },
d2656385
TL
9184 "node" : {
9185 "description" : "The cluster node name.",
9186 "format" : "pve-node",
c5aa7e14
TL
9187 "optional" : 1,
9188 "type" : "string",
9189 "typetext" : "<string>"
9190 },
9191 "peers" : {
9192 "description" : "peers address list.",
9193 "format" : "ip-list",
9194 "optional" : 1,
9195 "type" : "string",
9196 "typetext" : "<string>"
9197 },
9198 "type" : {
9199 "description" : "Plugin type.",
9200 "enum" : [
d2656385 9201 "bgp",
c5aa7e14
TL
9202 "evpn",
9203 "faucet"
9204 ],
9205 "format" : "pve-configid",
9206 "type" : "string"
9207 }
9208 },
9209 "type" : "object"
9210 },
9211 "permissions" : {
9212 "check" : [
9213 "perm",
9214 "/sdn/controllers",
9215 [
9216 "SDN.Allocate"
9217 ]
9218 ]
9219 },
9220 "protected" : 1,
9221 "returns" : {
9222 "type" : "null"
9223 }
9224 }
9225 },
9226 "leaf" : 0,
9227 "path" : "/cluster/sdn/controllers",
9228 "text" : "controllers"
d2656385
TL
9229 },
9230 {
9231 "children" : [
9232 {
9233 "info" : {
9234 "DELETE" : {
9235 "allowtoken" : 1,
9236 "description" : "Delete sdn ipam object configuration.",
9237 "method" : "DELETE",
9238 "name" : "delete",
9239 "parameters" : {
9240 "additionalProperties" : 0,
9241 "properties" : {
9242 "ipam" : {
9243 "description" : "The SDN ipam object identifier.",
9244 "format" : "pve-sdn-ipam-id",
9245 "type" : "string",
9246 "typetext" : "<string>"
9247 }
9248 }
9249 },
9250 "permissions" : {
9251 "check" : [
9252 "perm",
9253 "/sdn/ipams",
9254 [
9255 "SDN.Allocate"
9256 ]
9257 ]
9258 },
9259 "protected" : 1,
9260 "returns" : {
9261 "type" : "null"
9262 }
9263 },
9264 "GET" : {
9265 "allowtoken" : 1,
9266 "description" : "Read sdn ipam configuration.",
9267 "method" : "GET",
9268 "name" : "read",
9269 "parameters" : {
9270 "additionalProperties" : 0,
9271 "properties" : {
9272 "ipam" : {
9273 "description" : "The SDN ipam object identifier.",
9274 "format" : "pve-sdn-ipam-id",
9275 "type" : "string",
9276 "typetext" : "<string>"
9277 }
9278 }
9279 },
9280 "permissions" : {
9281 "check" : [
9282 "perm",
9283 "/sdn/ipams/{ipam}",
9284 [
9285 "SDN.Allocate"
9286 ]
9287 ]
9288 },
9289 "returns" : {
9290 "type" : "object"
9291 }
9292 },
9293 "PUT" : {
9294 "allowtoken" : 1,
9295 "description" : "Update sdn ipam object configuration.",
9296 "method" : "PUT",
9297 "name" : "update",
9298 "parameters" : {
9299 "additionalProperties" : 0,
9300 "properties" : {
9301 "delete" : {
9302 "description" : "A list of settings you want to delete.",
9303 "format" : "pve-configid-list",
9304 "maxLength" : 4096,
9305 "optional" : 1,
9306 "type" : "string",
9307 "typetext" : "<string>"
9308 },
9309 "digest" : {
9310 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9311 "maxLength" : 40,
9312 "optional" : 1,
9313 "type" : "string",
9314 "typetext" : "<string>"
9315 },
9316 "ipam" : {
9317 "description" : "The SDN ipam object identifier.",
9318 "format" : "pve-sdn-ipam-id",
9319 "type" : "string",
9320 "typetext" : "<string>"
9321 },
9322 "section" : {
9323 "optional" : 1,
9324 "type" : "integer",
9325 "typetext" : "<integer>"
9326 },
9327 "token" : {
9328 "optional" : 1,
9329 "type" : "string",
9330 "typetext" : "<string>"
9331 },
9332 "url" : {
9333 "optional" : 1,
9334 "type" : "string",
9335 "typetext" : "<string>"
9336 }
9337 },
9338 "type" : "object"
9339 },
9340 "permissions" : {
9341 "check" : [
9342 "perm",
9343 "/sdn/ipams",
9344 [
9345 "SDN.Allocate"
9346 ]
9347 ]
9348 },
9349 "protected" : 1,
9350 "returns" : {
9351 "type" : "null"
9352 }
c5aa7e14
TL
9353 }
9354 },
d2656385
TL
9355 "leaf" : 1,
9356 "path" : "/cluster/sdn/ipams/{ipam}",
9357 "text" : "{ipam}"
7aacca6f 9358 }
d2656385
TL
9359 ],
9360 "info" : {
9361 "GET" : {
9362 "allowtoken" : 1,
9363 "description" : "SDN ipams index.",
9364 "method" : "GET",
9365 "name" : "index",
9366 "parameters" : {
9367 "additionalProperties" : 0,
9368 "properties" : {
9369 "type" : {
9370 "description" : "Only list sdn ipams of specific type",
9371 "enum" : [
9372 "netbox",
9373 "phpipam",
9374 "pve"
9375 ],
9376 "optional" : 1,
9377 "type" : "string"
9378 }
9379 }
9380 },
9381 "permissions" : {
9382 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
9383 "user" : "all"
9384 },
9385 "returns" : {
9386 "items" : {
9387 "properties" : {
9388 "ipam" : {
9389 "type" : "string"
9390 },
9391 "type" : {
9392 "type" : "string"
9393 }
9394 },
9395 "type" : "object"
9396 },
9397 "links" : [
9398 {
9399 "href" : "{ipam}",
9400 "rel" : "child"
9401 }
44660702 9402 ],
d2656385
TL
9403 "type" : "array"
9404 }
9405 },
9406 "POST" : {
9407 "allowtoken" : 1,
9408 "description" : "Create a new sdn ipam object.",
9409 "method" : "POST",
9410 "name" : "create",
9411 "parameters" : {
9412 "additionalProperties" : 0,
9413 "properties" : {
9414 "ipam" : {
9415 "description" : "The SDN ipam object identifier.",
9416 "format" : "pve-sdn-ipam-id",
9417 "type" : "string",
9418 "typetext" : "<string>"
9419 },
9420 "section" : {
9421 "optional" : 1,
9422 "type" : "integer",
9423 "typetext" : "<integer>"
9424 },
9425 "token" : {
9426 "optional" : 1,
9427 "type" : "string",
9428 "typetext" : "<string>"
9429 },
9430 "type" : {
9431 "description" : "Plugin type.",
9432 "enum" : [
9433 "netbox",
9434 "phpipam",
9435 "pve"
9436 ],
9437 "format" : "pve-configid",
9438 "type" : "string"
9439 },
9440 "url" : {
9441 "optional" : 1,
9442 "type" : "string",
9443 "typetext" : "<string>"
9444 }
9445 },
9446 "type" : "object"
9447 },
9448 "permissions" : {
9449 "check" : [
9450 "perm",
9451 "/sdn/ipams",
9452 [
9453 "SDN.Allocate"
9454 ]
9455 ]
9456 },
9457 "protected" : 1,
9458 "returns" : {
9459 "type" : "null"
56122987
DM
9460 }
9461 }
9462 },
d2656385
TL
9463 "leaf" : 0,
9464 "path" : "/cluster/sdn/ipams",
9465 "text" : "ipams"
9466 },
9467 {
9468 "children" : [
9469 {
9470 "info" : {
9471 "DELETE" : {
9472 "allowtoken" : 1,
9473 "description" : "Delete sdn dns object configuration.",
9474 "method" : "DELETE",
9475 "name" : "delete",
9476 "parameters" : {
9477 "additionalProperties" : 0,
9478 "properties" : {
9479 "dns" : {
9480 "description" : "The SDN dns object identifier.",
9481 "format" : "pve-sdn-dns-id",
9482 "type" : "string",
9483 "typetext" : "<string>"
9484 }
9485 }
9486 },
9487 "permissions" : {
9488 "check" : [
9489 "perm",
9490 "/sdn/dns",
9491 [
9492 "SDN.Allocate"
9493 ]
9494 ]
9495 },
9496 "protected" : 1,
9497 "returns" : {
9498 "type" : "null"
9499 }
9500 },
9501 "GET" : {
9502 "allowtoken" : 1,
9503 "description" : "Read sdn dns configuration.",
9504 "method" : "GET",
9505 "name" : "read",
9506 "parameters" : {
9507 "additionalProperties" : 0,
9508 "properties" : {
9509 "dns" : {
9510 "description" : "The SDN dns object identifier.",
9511 "format" : "pve-sdn-dns-id",
9512 "type" : "string",
9513 "typetext" : "<string>"
9514 }
9515 }
9516 },
9517 "permissions" : {
9518 "check" : [
9519 "perm",
9520 "/sdn/dns/{dns}",
9521 [
9522 "SDN.Allocate"
9523 ]
9524 ]
9525 },
9526 "returns" : {
9527 "type" : "object"
9528 }
9529 },
9530 "PUT" : {
9531 "allowtoken" : 1,
9532 "description" : "Update sdn dns object configuration.",
9533 "method" : "PUT",
9534 "name" : "update",
9535 "parameters" : {
9536 "additionalProperties" : 0,
9537 "properties" : {
9538 "delete" : {
9539 "description" : "A list of settings you want to delete.",
9540 "format" : "pve-configid-list",
9541 "maxLength" : 4096,
9542 "optional" : 1,
9543 "type" : "string",
9544 "typetext" : "<string>"
9545 },
9546 "digest" : {
9547 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9548 "maxLength" : 40,
9549 "optional" : 1,
9550 "type" : "string",
9551 "typetext" : "<string>"
9552 },
9553 "dns" : {
9554 "description" : "The SDN dns object identifier.",
9555 "format" : "pve-sdn-dns-id",
9556 "type" : "string",
9557 "typetext" : "<string>"
9558 },
9559 "key" : {
9560 "optional" : 1,
9561 "type" : "string",
9562 "typetext" : "<string>"
9563 },
9564 "reversemaskv6" : {
9565 "optional" : 1,
9566 "type" : "integer",
9567 "typetext" : "<integer>"
9568 },
9569 "ttl" : {
9570 "optional" : 1,
9571 "type" : "integer",
9572 "typetext" : "<integer>"
9573 },
9574 "url" : {
9575 "optional" : 1,
9576 "type" : "string",
9577 "typetext" : "<string>"
9578 }
9579 },
9580 "type" : "object"
9581 },
9582 "permissions" : {
9583 "check" : [
9584 "perm",
9585 "/sdn/dns",
9586 [
9587 "SDN.Allocate"
9588 ]
9589 ]
9590 },
9591 "protected" : 1,
9592 "returns" : {
9593 "type" : "null"
9594 }
9595 }
9596 },
9597 "leaf" : 1,
9598 "path" : "/cluster/sdn/dns/{dns}",
9599 "text" : "{dns}"
9600 }
9601 ],
9602 "info" : {
9603 "GET" : {
9604 "allowtoken" : 1,
9605 "description" : "SDN dns index.",
9606 "method" : "GET",
9607 "name" : "index",
9608 "parameters" : {
9609 "additionalProperties" : 0,
9610 "properties" : {
9611 "type" : {
9612 "description" : "Only list sdn dns of specific type",
9613 "enum" : [
9614 "powerdns"
9615 ],
9616 "optional" : 1,
9617 "type" : "string"
9618 }
9619 }
9620 },
9621 "permissions" : {
9622 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
9623 "user" : "all"
9624 },
9625 "returns" : {
9626 "items" : {
9627 "properties" : {
9628 "dns" : {
9629 "type" : "string"
9630 },
9631 "type" : {
9632 "type" : "string"
9633 }
9634 },
9635 "type" : "object"
9636 },
9637 "links" : [
9638 {
9639 "href" : "{dns}",
9640 "rel" : "child"
9641 }
9642 ],
9643 "type" : "array"
9644 }
9645 },
9646 "POST" : {
9647 "allowtoken" : 1,
9648 "description" : "Create a new sdn dns object.",
9649 "method" : "POST",
9650 "name" : "create",
9651 "parameters" : {
9652 "additionalProperties" : 0,
9653 "properties" : {
9654 "dns" : {
9655 "description" : "The SDN dns object identifier.",
9656 "format" : "pve-sdn-dns-id",
9657 "type" : "string",
9658 "typetext" : "<string>"
9659 },
9660 "key" : {
9661 "optional" : 0,
9662 "type" : "string",
9663 "typetext" : "<string>"
9664 },
9665 "reversemaskv6" : {
9666 "optional" : 1,
9667 "type" : "integer",
9668 "typetext" : "<integer>"
9669 },
9670 "reversev6mask" : {
9671 "optional" : 1,
9672 "type" : "integer",
9673 "typetext" : "<integer>"
9674 },
9675 "ttl" : {
9676 "optional" : 1,
9677 "type" : "integer",
9678 "typetext" : "<integer>"
9679 },
9680 "type" : {
9681 "description" : "Plugin type.",
9682 "enum" : [
9683 "powerdns"
9684 ],
9685 "format" : "pve-configid",
9686 "type" : "string"
9687 },
9688 "url" : {
9689 "optional" : 0,
9690 "type" : "string",
9691 "typetext" : "<string>"
9692 }
9693 },
9694 "type" : "object"
9695 },
9696 "permissions" : {
9697 "check" : [
9698 "perm",
9699 "/sdn/dns",
9700 [
9701 "SDN.Allocate"
9702 ]
9703 ]
9704 },
9705 "protected" : 1,
9706 "returns" : {
9707 "type" : "null"
9708 }
9709 }
9710 },
9711 "leaf" : 0,
9712 "path" : "/cluster/sdn/dns",
9713 "text" : "dns"
9714 }
9715 ],
9716 "info" : {
9717 "GET" : {
9718 "allowtoken" : 1,
9719 "description" : "Directory index.",
9720 "method" : "GET",
9721 "name" : "index",
9722 "parameters" : {
9723 "additionalProperties" : 0
9724 },
9725 "permissions" : {
9726 "check" : [
9727 "perm",
9728 "/",
9729 [
9730 "SDN.Audit"
9731 ]
9732 ]
9733 },
9734 "returns" : {
9735 "items" : {
9736 "properties" : {
9737 "id" : {
9738 "type" : "string"
9739 }
9740 },
9741 "type" : "object"
9742 },
9743 "links" : [
9744 {
9745 "href" : "{id}",
9746 "rel" : "child"
9747 }
9748 ],
9749 "type" : "array"
9750 }
9751 },
9752 "PUT" : {
9753 "allowtoken" : 1,
9754 "description" : "Apply sdn controller changes && reload.",
9755 "method" : "PUT",
9756 "name" : "reload",
9757 "parameters" : {
9758 "additionalProperties" : 0
9759 },
9760 "permissions" : {
9761 "check" : [
9762 "perm",
9763 "/sdn",
9764 [
9765 "SDN.Allocate"
9766 ]
9767 ]
9768 },
9769 "protected" : 1,
9770 "returns" : {
9771 "type" : "string"
9772 }
9773 }
9774 },
9775 "leaf" : 0,
9776 "path" : "/cluster/sdn",
9777 "text" : "sdn"
9778 },
9779 {
9780 "info" : {
9781 "GET" : {
9782 "allowtoken" : 1,
9783 "description" : "Read cluster log",
9784 "method" : "GET",
9785 "name" : "log",
9786 "parameters" : {
9787 "additionalProperties" : 0,
9788 "properties" : {
9789 "max" : {
9790 "description" : "Maximum number of entries.",
9791 "minimum" : 1,
9792 "optional" : 1,
9793 "type" : "integer",
9794 "typetext" : "<integer> (1 - N)"
9795 }
9796 }
9797 },
9798 "permissions" : {
9799 "user" : "all"
9800 },
9801 "returns" : {
9802 "items" : {
9803 "properties" : {},
9804 "type" : "object"
9805 },
9806 "type" : "array"
9807 }
9808 }
9809 },
9810 "leaf" : 1,
9811 "path" : "/cluster/log",
9812 "text" : "log"
9813 },
9814 {
9815 "info" : {
9816 "GET" : {
9817 "allowtoken" : 1,
9818 "description" : "Resources index (cluster wide).",
9819 "method" : "GET",
9820 "name" : "resources",
9821 "parameters" : {
9822 "additionalProperties" : 0,
9823 "properties" : {
9824 "type" : {
9825 "enum" : [
9826 "vm",
9827 "storage",
9828 "node",
9829 "sdn"
9830 ],
9831 "optional" : 1,
9832 "type" : "string"
9833 }
9834 }
9835 },
9836 "permissions" : {
9837 "user" : "all"
9838 },
9839 "returns" : {
9840 "items" : {
9841 "properties" : {
81a3384d
TL
9842 "cgroup-mode" : {
9843 "description" : "The cgroup mode the node operates under (when type == node).",
9844 "optional" : 1,
9845 "type" : "integer"
9846 },
d2656385
TL
9847 "content" : {
9848 "description" : "Allowed storage content types (when type == storage).",
9849 "format" : "pve-storage-content-list",
9850 "optional" : 1,
9851 "type" : "string"
9852 },
9853 "cpu" : {
9854 "description" : "CPU utilization (when type in node,qemu,lxc).",
4e7f60c2 9855 "minimum" : 0,
4d47f125
TL
9856 "optional" : 1,
9857 "renderer" : "fraction_as_percentage",
9858 "type" : "number"
9859 },
9860 "disk" : {
9861 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
4e7f60c2 9862 "minimum" : 0,
4d47f125
TL
9863 "optional" : 1,
9864 "renderer" : "bytes",
4e7f60c2 9865 "type" : "integer"
4d47f125
TL
9866 },
9867 "hastate" : {
9868 "description" : "HA service status (for HA managed VMs).",
9869 "optional" : 1,
9870 "type" : "string"
9871 },
9872 "id" : {
287a95cf 9873 "description" : "Resource id.",
4d47f125
TL
9874 "type" : "string"
9875 },
9876 "level" : {
9877 "description" : "Support level (when type == node).",
9878 "optional" : 1,
9879 "type" : "string"
9880 },
9881 "maxcpu" : {
9882 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
4e7f60c2 9883 "minimum" : 0,
4d47f125
TL
9884 "optional" : 1,
9885 "type" : "number"
9886 },
9887 "maxdisk" : {
9888 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
4e7f60c2 9889 "minimum" : 0,
4d47f125
TL
9890 "optional" : 1,
9891 "renderer" : "bytes",
9892 "type" : "integer"
9893 },
9894 "maxmem" : {
9895 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
9896 "optional" : 1,
9897 "renderer" : "bytes",
9898 "type" : "integer"
9899 },
9900 "mem" : {
9901 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
4e7f60c2 9902 "minimum" : 0,
4d47f125
TL
9903 "optional" : 1,
9904 "renderer" : "bytes",
4e7f60c2 9905 "type" : "integer"
4d47f125 9906 },
34f3e481
TL
9907 "name" : {
9908 "description" : "Name of the resource.",
9909 "optional" : 1,
9910 "type" : "string"
9911 },
4d47f125
TL
9912 "node" : {
9913 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
9914 "format" : "pve-node",
9915 "optional" : 1,
9916 "type" : "string"
9917 },
d2656385
TL
9918 "plugintype" : {
9919 "description" : "More specific type, if available.",
9920 "optional" : 1,
9921 "type" : "string"
9922 },
4d47f125
TL
9923 "pool" : {
9924 "description" : "The pool name (when type in pool,qemu,lxc).",
9925 "optional" : 1,
9926 "type" : "string"
9927 },
9928 "status" : {
9929 "description" : "Resource type dependent status.",
9930 "optional" : 1,
9931 "type" : "string"
9932 },
9933 "storage" : {
9934 "description" : "The storage identifier (when type == storage).",
9935 "format" : "pve-storage-id",
9936 "optional" : 1,
9937 "type" : "string"
9938 },
9939 "type" : {
9940 "description" : "Resource type.",
9941 "enum" : [
9942 "node",
9943 "storage",
9944 "pool",
9945 "qemu",
9946 "lxc",
1c532546
TL
9947 "openvz",
9948 "sdn"
4d47f125
TL
9949 ],
9950 "type" : "string"
9951 },
9952 "uptime" : {
9953 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
9954 "optional" : 1,
9955 "renderer" : "duration",
9956 "type" : "integer"
4e7f60c2
TL
9957 },
9958 "vmid" : {
9959 "description" : "The numerical vmid (when type in qemu,lxc).",
9960 "minimum" : 1,
9961 "optional" : 1,
9962 "type" : "integer"
4d47f125
TL
9963 }
9964 },
44660702
DM
9965 "type" : "object"
9966 },
9967 "type" : "array"
9968 }
56122987
DM
9969 }
9970 },
7aacca6f 9971 "leaf" : 1,
44660702
DM
9972 "path" : "/cluster/resources",
9973 "text" : "resources"
56122987
DM
9974 },
9975 {
56122987
DM
9976 "info" : {
9977 "GET" : {
e9cd3bd4 9978 "allowtoken" : 1,
7aacca6f 9979 "description" : "List recent tasks (cluster wide).",
44660702 9980 "method" : "GET",
7aacca6f 9981 "name" : "tasks",
56122987
DM
9982 "parameters" : {
9983 "additionalProperties" : 0
9984 },
44660702
DM
9985 "permissions" : {
9986 "user" : "all"
9987 },
56122987
DM
9988 "returns" : {
9989 "items" : {
9990 "properties" : {
9991 "upid" : {
9992 "type" : "string"
9993 }
44660702
DM
9994 },
9995 "type" : "object"
9996 },
9997 "type" : "array"
7aacca6f 9998 }
56122987
DM
9999 }
10000 },
7aacca6f 10001 "leaf" : 1,
44660702
DM
10002 "path" : "/cluster/tasks",
10003 "text" : "tasks"
56122987
DM
10004 },
10005 {
56122987 10006 "info" : {
7aacca6f 10007 "GET" : {
e9cd3bd4 10008 "allowtoken" : 1,
81a3384d 10009 "description" : "Get datacenter options. Without 'Sys.Audit' on '/' not all options are returned.",
44660702
DM
10010 "method" : "GET",
10011 "name" : "get_options",
56122987 10012 "parameters" : {
7aacca6f
DM
10013 "additionalProperties" : 0
10014 },
10015 "permissions" : {
10016 "check" : [
10017 "perm",
10018 "/",
10019 [
10020 "Sys.Audit"
10021 ]
81a3384d
TL
10022 ],
10023 "user" : "all"
7aacca6f 10024 },
7aacca6f 10025 "returns" : {
44660702 10026 "type" : "object"
7aacca6f
DM
10027 }
10028 },
10029 "PUT" : {
e9cd3bd4 10030 "allowtoken" : 1,
44660702
DM
10031 "description" : "Set datacenter options.",
10032 "method" : "PUT",
7aacca6f
DM
10033 "name" : "set_options",
10034 "parameters" : {
10035 "additionalProperties" : 0,
10036 "properties" : {
27a7acb2 10037 "bwlimit" : {
4a407cfd 10038 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
10039 "format" : {
10040 "clone" : {
95895385 10041 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
10042 "format_description" : "LIMIT",
10043 "minimum" : "0",
10044 "optional" : 1,
10045 "type" : "number"
10046 },
10047 "default" : {
95895385 10048 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
10049 "format_description" : "LIMIT",
10050 "minimum" : "0",
10051 "optional" : 1,
10052 "type" : "number"
10053 },
10054 "migration" : {
95895385 10055 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
10056 "format_description" : "LIMIT",
10057 "minimum" : "0",
10058 "optional" : 1,
10059 "type" : "number"
10060 },
10061 "move" : {
95895385 10062 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
10063 "format_description" : "LIMIT",
10064 "minimum" : "0",
10065 "optional" : 1,
10066 "type" : "number"
10067 },
10068 "restore" : {
95895385 10069 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
10070 "format_description" : "LIMIT",
10071 "minimum" : "0",
10072 "optional" : 1,
10073 "type" : "number"
10074 }
10075 },
10076 "optional" : 1,
10077 "type" : "string",
10078 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
10079 },
56122987 10080 "console" : {
a9a8e3d1 10081 "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer comtatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.",
56122987
DM
10082 "enum" : [
10083 "applet",
10084 "vv",
a9a8e3d1
DM
10085 "html5",
10086 "xtermjs"
44660702
DM
10087 ],
10088 "optional" : 1,
10089 "type" : "string"
56122987 10090 },
81a3384d
TL
10091 "crs" : {
10092 "description" : "Cluster resource scheduling settings.",
10093 "format" : {
10094 "ha" : {
10095 "default" : "basic",
10096 "description" : "Use this resource scheduler mode for HA.",
10097 "enum" : [
10098 "basic",
10099 "static"
10100 ],
9d2e98ed 10101 "optional" : 1,
81a3384d
TL
10102 "type" : "string",
10103 "verbose_description" : "Configures how the HA manager should select nodes to start or recover services. With 'basic', only the number of services is used, with 'static', static CPU and memory configuration of services is considered."
9d2e98ed
TL
10104 },
10105 "ha-rebalance-on-start" : {
10106 "default" : 0,
10107 "description" : "Set to use CRS for selecting a suited node when a HA services request-state changes from stop to start.",
10108 "optional" : 1,
10109 "type" : "boolean"
81a3384d
TL
10110 }
10111 },
10112 "optional" : 1,
10113 "type" : "string",
9d2e98ed 10114 "typetext" : "[ha=<basic|static>] [,ha-rebalance-on-start=<1|0>]"
81a3384d 10115 },
7aacca6f 10116 "delete" : {
7aacca6f 10117 "description" : "A list of settings you want to delete.",
44660702 10118 "format" : "pve-configid-list",
7aacca6f 10119 "optional" : 1,
013dc89f
DM
10120 "type" : "string",
10121 "typetext" : "<string>"
7aacca6f 10122 },
5370fa8c
TL
10123 "description" : {
10124 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
10125 "maxLength" : 65536,
10126 "optional" : 1,
10127 "type" : "string",
10128 "typetext" : "<string>"
10129 },
44660702
DM
10130 "email_from" : {
10131 "description" : "Specify email address to send notification from (default is root@$hostname)",
10132 "format" : "email-opt",
7aacca6f 10133 "optional" : 1,
013dc89f
DM
10134 "type" : "string",
10135 "typetext" : "<string>"
44660702
DM
10136 },
10137 "fencing" : {
10138 "default" : "watchdog",
10139 "description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
7aacca6f 10140 "enum" : [
44660702
DM
10141 "watchdog",
10142 "hardware",
10143 "both"
7aacca6f 10144 ],
44660702
DM
10145 "optional" : 1,
10146 "type" : "string"
10147 },
5f26e15b
TL
10148 "ha" : {
10149 "description" : "Cluster wide HA settings.",
10150 "format" : {
10151 "shutdown_policy" : {
10152 "default" : "conditional",
5c1699e5 10153 "description" : "The policy for HA services on node shutdown. 'freeze' disables auto-recovery, 'failover' ensures recovery, 'conditional' recovers on poweroff and freezes on reboot. 'migrate' will migrate running services to other nodes, if possible. With 'freeze' or 'failover', HA Services will always get stopped first on shutdown.",
5f26e15b
TL
10154 "enum" : [
10155 "freeze",
10156 "failover",
5c1699e5
TL
10157 "conditional",
10158 "migrate"
5f26e15b
TL
10159 ],
10160 "type" : "string",
e9cd3bd4 10161 "verbose_description" : "Describes the policy for handling HA services on poweroff or reboot of a node. Freeze will always freeze services which are still located on the node on shutdown, those services won't be recovered by the HA manager. Failover will not mark the services as frozen and thus the services will get recovered to other nodes, if the shutdown node does not come up again quickly (< 1min). 'conditional' chooses automatically depending on the type of shutdown, i.e., on a reboot the service will be frozen but on a poweroff the service will stay as is, and thus get recovered after about 2 minutes. Migrate will try to move all running services to another node when a reboot or shutdown was triggered. The poweroff process will only continue once no running services are located on the node anymore. If the node comes up again, the service will be moved back to the previously powered-off node, at least if no other migration, reloaction or recovery took place."
5f26e15b
TL
10162 }
10163 },
10164 "optional" : 1,
10165 "type" : "string",
5c1699e5 10166 "typetext" : "shutdown_policy=<enum>"
5f26e15b 10167 },
44660702
DM
10168 "http_proxy" : {
10169 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
10170 "optional" : 1,
10171 "pattern" : "http://.*",
10172 "type" : "string"
7aacca6f 10173 },
56122987 10174 "keyboard" : {
44660702 10175 "description" : "Default keybord layout for vnc server.",
56122987 10176 "enum" : [
44660702
DM
10177 "de",
10178 "de-ch",
7aacca6f 10179 "da",
56122987 10180 "en-gb",
44660702
DM
10181 "en-us",
10182 "es",
10183 "fi",
10184 "fr",
10185 "fr-be",
10186 "fr-ca",
10187 "fr-ch",
10188 "hu",
7aacca6f 10189 "is",
44660702
DM
10190 "it",
10191 "ja",
10192 "lt",
56122987 10193 "mk",
7aacca6f 10194 "nl",
56122987 10195 "no",
44660702 10196 "pl",
7aacca6f 10197 "pt",
44660702
DM
10198 "pt-br",
10199 "sv",
10200 "sl",
10201 "tr"
56122987 10202 ],
56122987
DM
10203 "optional" : 1,
10204 "type" : "string"
10205 },
44660702
DM
10206 "language" : {
10207 "description" : "Default GUI language.",
10208 "enum" : [
4d47f125 10209 "ca",
1c532546
TL
10210 "da",
10211 "de",
44660702 10212 "en",
1c532546 10213 "es",
4d47f125 10214 "eu",
1c532546 10215 "fa",
4d47f125 10216 "fr",
1c532546 10217 "he",
4d47f125 10218 "it",
4d47f125
TL
10219 "ja",
10220 "nb",
10221 "nn",
4d47f125
TL
10222 "pl",
10223 "pt_BR",
10224 "ru",
10225 "sl",
10226 "sv",
1c532546
TL
10227 "tr",
10228 "zh_CN",
10229 "zh_TW"
44660702 10230 ],
56122987 10231 "optional" : 1,
44660702 10232 "type" : "string"
56122987 10233 },
4bd7df8b
DM
10234 "mac_prefix" : {
10235 "description" : "Prefix for autogenerated MAC addresses.",
95895385 10236 "format" : "mac-prefix",
4bd7df8b 10237 "optional" : 1,
95895385
TL
10238 "type" : "string",
10239 "typetext" : "<string>"
4bd7df8b 10240 },
44660702
DM
10241 "max_workers" : {
10242 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
10243 "minimum" : 1,
56122987 10244 "optional" : 1,
4bd7df8b 10245 "type" : "integer",
013dc89f 10246 "typetext" : "<integer> (1 - N)"
56122987 10247 },
de0983cb
DM
10248 "migration" : {
10249 "description" : "For cluster wide migration settings.",
10250 "format" : {
10251 "network" : {
10252 "description" : "CIDR of the (sub) network that is used for migration.",
10253 "format" : "CIDR",
10254 "format_description" : "CIDR",
10255 "optional" : 1,
10256 "type" : "string"
10257 },
10258 "type" : {
10259 "default" : "secure",
10260 "default_key" : 1,
10261 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
10262 "enum" : [
10263 "secure",
10264 "insecure"
10265 ],
10266 "type" : "string"
10267 }
10268 },
10269 "optional" : 1,
10270 "type" : "string",
10271 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
10272 },
7aacca6f 10273 "migration_unsecure" : {
de0983cb 10274 "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration. Deprecated, use the 'migration' property instead!",
56122987 10275 "optional" : 1,
013dc89f
DM
10276 "type" : "boolean",
10277 "typetext" : "<boolean>"
95895385 10278 },
7af2edf9
TL
10279 "next-id" : {
10280 "description" : "Control the range for the free VMID auto-selection pool.",
10281 "format" : {
10282 "lower" : {
10283 "default" : 100,
10284 "description" : "Lower, inclusive boundary for free next-id API range.",
10285 "max" : 999999999,
10286 "min" : 100,
10287 "optional" : 1,
10288 "type" : "integer"
10289 },
10290 "upper" : {
10291 "default" : 1000000,
460359c5 10292 "description" : "Upper, exclusive boundary for free next-id API range.",
de786b48 10293 "max" : 1000000000,
7af2edf9
TL
10294 "min" : 100,
10295 "optional" : 1,
10296 "type" : "integer"
10297 }
10298 },
10299 "optional" : 1,
10300 "type" : "string",
10301 "typetext" : "[lower=<integer>] [,upper=<integer>]"
10302 },
9d2e98ed
TL
10303 "notify" : {
10304 "description" : "Cluster-wide notification settings.",
10305 "format" : {
10306 "package-updates" : {
10307 "default" : "auto",
10308 "description" : "Control when the daily update job should send out notification mails.",
10309 "enum" : [
10310 "auto",
10311 "always",
10312 "never"
10313 ],
10314 "type" : "string",
10315 "verbose_description" : "Control how often the daily update job should send out notification mails:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n"
10316 }
10317 },
10318 "optional" : 1,
10319 "type" : "string",
10320 "typetext" : "package-updates=<auto|always|never>"
10321 },
81a3384d
TL
10322 "registered-tags" : {
10323 "description" : "A list of tags that require a `Sys.Modify` on '/' to set and delete. Tags set here that are also in 'user-tag-access' also require `Sys.Modify`.",
10324 "optional" : 1,
10325 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*);)*(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)",
10326 "type" : "string",
10327 "typetext" : "<tag>[;<tag>...]"
10328 },
10329 "tag-style" : {
10330 "description" : "Tag style options.",
10331 "format" : {
e7e885f9
TL
10332 "case-sensitive" : {
10333 "default" : 0,
10334 "description" : "Controls if filtering for unique tags on update should check case-sensitive.",
10335 "optional" : 1,
10336 "type" : "boolean"
10337 },
81a3384d
TL
10338 "color-map" : {
10339 "description" : "Manual color mapping for tags (semicolon separated).",
10340 "optional" : 1,
10341 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*):[0-9a-fA-F]{6}(?::[0-9a-fA-F]{6})?)(?:;(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*):[0-9a-fA-F]{6}(?::[0-9a-fA-F]{6})?))*",
10342 "type" : "string",
10343 "typetext" : "<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]"
10344 },
10345 "ordering" : {
10346 "default" : "alphabetical",
e7e885f9 10347 "description" : "Controls the sorting of the tags in the web-interface and the API update.",
81a3384d
TL
10348 "enum" : [
10349 "config",
10350 "alphabetical"
10351 ],
10352 "optional" : 1,
10353 "type" : "string"
10354 },
10355 "shape" : {
10356 "default" : "circle",
10357 "description" : "Tag shape for the web ui tree. 'full' draws the full tag. 'circle' draws only a circle with the background color. 'dense' only draws a small rectancle (useful when many tags are assigned to each guest).'none' disables showing the tags.",
10358 "enum" : [
10359 "full",
10360 "circle",
10361 "dense",
10362 "none"
10363 ],
10364 "optional" : 1,
10365 "type" : "string"
10366 }
10367 },
10368 "optional" : 1,
10369 "type" : "string",
e7e885f9 10370 "typetext" : "[case-sensitive=<1|0>] [,color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]] [,ordering=<config|alphabetical>] [,shape=<enum>]"
81a3384d 10371 },
95895385
TL
10372 "u2f" : {
10373 "description" : "u2f",
10374 "format" : {
10375 "appid" : {
10376 "description" : "U2F AppId URL override. Defaults to the origin.",
10377 "format_description" : "APPID",
10378 "optional" : 1,
10379 "type" : "string"
10380 },
10381 "origin" : {
10382 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
10383 "format_description" : "URL",
10384 "optional" : 1,
10385 "type" : "string"
10386 }
10387 },
10388 "optional" : 1,
10389 "type" : "string",
10390 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c 10391 },
81a3384d
TL
10392 "user-tag-access" : {
10393 "description" : "Privilege options for user-settable tags",
10394 "format" : {
10395 "user-allow" : {
10396 "default" : "free",
10397 "description" : "Controls tag usage for users without `Sys.Modify` on `/` by either allowing `none`, a `list`, already `existing` or anything (`free`).",
10398 "enum" : [
10399 "none",
10400 "list",
10401 "existing",
10402 "free"
10403 ],
10404 "optional" : 1,
10405 "type" : "string",
9d2e98ed 10406 "verbose_description" : "Controls which tags can be set or deleted on resources a user controls (such as guests). Users with the `Sys.Modify` privilege on `/` are always unrestricted. * 'none' no tags are usable. * 'list' tags from 'user-allow-list' are usable. * 'existing' like list, but already existing tags of resources are also usable.* 'free' no tag restrictions."
81a3384d
TL
10407 },
10408 "user-allow-list" : {
10409 "description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
10410 "optional" : 1,
10411 "pattern" : "(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)(?:;(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*))*",
10412 "type" : "string",
10413 "typetext" : "<tag>[;<tag>...]"
10414 }
10415 },
10416 "optional" : 1,
10417 "type" : "string",
10418 "typetext" : "[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]"
10419 },
5370fa8c
TL
10420 "webauthn" : {
10421 "description" : "webauthn configuration",
10422 "format" : {
81a3384d
TL
10423 "allow-subdomains" : {
10424 "default" : 1,
10425 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
10426 "optional" : 1,
10427 "type" : "boolean"
10428 },
5370fa8c 10429 "id" : {
81a3384d 10430 "description" : "Relying party ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
5370fa8c
TL
10431 "format_description" : "DOMAINNAME",
10432 "optional" : 1,
10433 "type" : "string"
10434 },
10435 "origin" : {
10436 "description" : "Site origin. Must be a `https://` URL (or `http://localhost`). Should contain the address users type in their browsers to access the web interface. Changing this *may* break existing credentials.",
10437 "format_description" : "URL",
10438 "optional" : 1,
10439 "type" : "string"
10440 },
10441 "rp" : {
10442 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
10443 "format_description" : "RELYING_PARTY",
10444 "optional" : 1,
10445 "type" : "string"
10446 }
10447 },
10448 "optional" : 1,
10449 "type" : "string",
81a3384d 10450 "typetext" : "[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
10451 }
10452 }
10453 },
44660702
DM
10454 "permissions" : {
10455 "check" : [
10456 "perm",
10457 "/",
10458 [
10459 "Sys.Modify"
10460 ]
10461 ]
10462 },
56122987 10463 "protected" : 1,
7aacca6f
DM
10464 "returns" : {
10465 "type" : "null"
44660702 10466 }
7aacca6f
DM
10467 }
10468 },
44660702
DM
10469 "leaf" : 1,
10470 "path" : "/cluster/options",
7aacca6f
DM
10471 "text" : "options"
10472 },
10473 {
7aacca6f 10474 "info" : {
56122987 10475 "GET" : {
e9cd3bd4 10476 "allowtoken" : 1,
1e3f8156 10477 "description" : "Get cluster status information.",
44660702
DM
10478 "method" : "GET",
10479 "name" : "get_status",
56122987
DM
10480 "parameters" : {
10481 "additionalProperties" : 0
10482 },
56122987
DM
10483 "permissions" : {
10484 "check" : [
10485 "perm",
10486 "/",
10487 [
10488 "Sys.Audit"
10489 ]
10490 ]
10491 },
7aacca6f 10492 "protected" : 1,
56122987 10493 "returns" : {
56122987 10494 "items" : {
56122987 10495 "properties" : {
e9cd3bd4
TL
10496 "id" : {
10497 "type" : "string"
10498 },
10499 "ip" : {
10500 "description" : "[node] IP of the resolved nodename.",
10501 "optional" : 1,
10502 "type" : "string"
10503 },
10504 "level" : {
10505 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
10506 "optional" : 1,
10507 "type" : "string"
10508 },
10509 "local" : {
10510 "description" : "[node] Indicates if this is the responding node.",
10511 "optional" : 1,
10512 "type" : "boolean"
10513 },
10514 "name" : {
10515 "type" : "string"
10516 },
10517 "nodeid" : {
10518 "description" : "[node] ID of the node from the corosync configuration.",
10519 "optional" : 1,
10520 "type" : "integer"
10521 },
10522 "nodes" : {
10523 "description" : "[cluster] Nodes count, including offline nodes.",
10524 "optional" : 1,
10525 "type" : "integer"
10526 },
10527 "online" : {
10528 "description" : "[node] Indicates if the node is online or offline.",
10529 "optional" : 1,
10530 "type" : "boolean"
10531 },
10532 "quorate" : {
10533 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
10534 "optional" : 1,
10535 "type" : "boolean"
10536 },
56122987 10537 "type" : {
e9cd3bd4
TL
10538 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
10539 "enum" : [
10540 "cluster",
10541 "node"
10542 ],
56122987 10543 "type" : "string"
e9cd3bd4
TL
10544 },
10545 "version" : {
10546 "description" : "[cluster] Current version of the corosync configuration file.",
10547 "optional" : 1,
10548 "type" : "integer"
56122987 10549 }
44660702
DM
10550 },
10551 "type" : "object"
7aacca6f
DM
10552 },
10553 "type" : "array"
56122987
DM
10554 }
10555 }
10556 },
44660702 10557 "leaf" : 1,
7aacca6f 10558 "path" : "/cluster/status",
44660702 10559 "text" : "status"
56122987
DM
10560 },
10561 {
56122987
DM
10562 "info" : {
10563 "GET" : {
e9cd3bd4 10564 "allowtoken" : 1,
c30bb419 10565 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
10566 "method" : "GET",
10567 "name" : "nextid",
56122987 10568 "parameters" : {
44660702 10569 "additionalProperties" : 0,
56122987
DM
10570 "properties" : {
10571 "vmid" : {
44660702 10572 "description" : "The (unique) ID of the VM.",
56122987 10573 "format" : "pve-vmid",
8dd66e12
TL
10574 "maximum" : 999999999,
10575 "minimum" : 100,
7aacca6f 10576 "optional" : 1,
4bd7df8b 10577 "type" : "integer",
8dd66e12 10578 "typetext" : "<integer> (100 - 999999999)"
56122987 10579 }
44660702 10580 }
56122987 10581 },
7aacca6f
DM
10582 "permissions" : {
10583 "user" : "all"
44660702
DM
10584 },
10585 "returns" : {
10586 "description" : "The next free VMID.",
10587 "type" : "integer"
7aacca6f 10588 }
56122987
DM
10589 }
10590 },
7aacca6f 10591 "leaf" : 1,
44660702
DM
10592 "path" : "/cluster/nextid",
10593 "text" : "nextid"
56122987
DM
10594 }
10595 ],
44660702
DM
10596 "info" : {
10597 "GET" : {
e9cd3bd4 10598 "allowtoken" : 1,
44660702
DM
10599 "description" : "Cluster index.",
10600 "method" : "GET",
10601 "name" : "index",
10602 "parameters" : {
10603 "additionalProperties" : 0
10604 },
10605 "permissions" : {
10606 "user" : "all"
10607 },
10608 "returns" : {
10609 "items" : {
10610 "properties" : {},
10611 "type" : "object"
10612 },
10613 "links" : [
10614 {
10615 "href" : "{name}",
10616 "rel" : "child"
10617 }
10618 ],
10619 "type" : "array"
10620 }
10621 }
10622 },
10623 "leaf" : 0,
10624 "path" : "/cluster",
7aacca6f 10625 "text" : "cluster"
56122987
DM
10626 },
10627 {
56122987
DM
10628 "children" : [
10629 {
7aacca6f
DM
10630 "children" : [
10631 {
10632 "children" : [
10633 {
56122987
DM
10634 "children" : [
10635 {
56122987
DM
10636 "children" : [
10637 {
10638 "children" : [
10639 {
56122987
DM
10640 "info" : {
10641 "DELETE" : {
e9cd3bd4 10642 "allowtoken" : 1,
44660702 10643 "description" : "Delete rule.",
7aacca6f 10644 "method" : "DELETE",
44660702 10645 "name" : "delete_rule",
56122987 10646 "parameters" : {
44660702 10647 "additionalProperties" : 0,
56122987 10648 "properties" : {
44660702
DM
10649 "digest" : {
10650 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10651 "maxLength" : 40,
10652 "optional" : 1,
013dc89f
DM
10653 "type" : "string",
10654 "typetext" : "<string>"
44660702 10655 },
56122987 10656 "node" : {
7aacca6f 10657 "description" : "The cluster node name.",
44660702 10658 "format" : "pve-node",
013dc89f
DM
10659 "type" : "string",
10660 "typetext" : "<string>"
7aacca6f 10661 },
56122987 10662 "pos" : {
7aacca6f 10663 "description" : "Update rule at position <pos>.",
44660702 10664 "minimum" : 0,
56122987 10665 "optional" : 1,
4bd7df8b 10666 "type" : "integer",
013dc89f 10667 "typetext" : "<integer> (0 - N)"
44660702
DM
10668 },
10669 "vmid" : {
10670 "description" : "The (unique) ID of the VM.",
10671 "format" : "pve-vmid",
8dd66e12
TL
10672 "maximum" : 999999999,
10673 "minimum" : 100,
4bd7df8b 10674 "type" : "integer",
8dd66e12 10675 "typetext" : "<integer> (100 - 999999999)"
56122987 10676 }
44660702 10677 }
7aacca6f 10678 },
56122987
DM
10679 "permissions" : {
10680 "check" : [
10681 "perm",
10682 "/vms/{vmid}",
10683 [
10684 "VM.Config.Network"
10685 ]
10686 ]
10687 },
44660702
DM
10688 "protected" : 1,
10689 "proxyto" : null,
56122987
DM
10690 "returns" : {
10691 "type" : "null"
44660702
DM
10692 }
10693 },
10694 "GET" : {
e9cd3bd4 10695 "allowtoken" : 1,
44660702
DM
10696 "description" : "Get single rule data.",
10697 "method" : "GET",
10698 "name" : "get_rule",
10699 "parameters" : {
10700 "additionalProperties" : 0,
10701 "properties" : {
10702 "node" : {
10703 "description" : "The cluster node name.",
10704 "format" : "pve-node",
013dc89f
DM
10705 "type" : "string",
10706 "typetext" : "<string>"
44660702
DM
10707 },
10708 "pos" : {
10709 "description" : "Update rule at position <pos>.",
10710 "minimum" : 0,
10711 "optional" : 1,
4bd7df8b 10712 "type" : "integer",
013dc89f 10713 "typetext" : "<integer> (0 - N)"
44660702
DM
10714 },
10715 "vmid" : {
10716 "description" : "The (unique) ID of the VM.",
10717 "format" : "pve-vmid",
8dd66e12
TL
10718 "maximum" : 999999999,
10719 "minimum" : 100,
4bd7df8b 10720 "type" : "integer",
8dd66e12 10721 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
10722 }
10723 }
56122987 10724 },
56122987
DM
10725 "permissions" : {
10726 "check" : [
10727 "perm",
10728 "/vms/{vmid}",
10729 [
44660702 10730 "VM.Audit"
56122987
DM
10731 ]
10732 ]
10733 },
56122987 10734 "proxyto" : null,
44660702
DM
10735 "returns" : {
10736 "properties" : {
e2d681b3
TL
10737 "action" : {
10738 "type" : "string"
10739 },
10740 "comment" : {
10741 "optional" : 1,
10742 "type" : "string"
10743 },
10744 "dest" : {
10745 "optional" : 1,
10746 "type" : "string"
10747 },
10748 "dport" : {
10749 "optional" : 1,
10750 "type" : "string"
10751 },
10752 "enable" : {
10753 "optional" : 1,
10754 "type" : "integer"
10755 },
4772952b
TL
10756 "icmp-type" : {
10757 "optional" : 1,
10758 "type" : "string"
10759 },
e2d681b3
TL
10760 "iface" : {
10761 "optional" : 1,
10762 "type" : "string"
10763 },
10764 "ipversion" : {
10765 "optional" : 1,
10766 "type" : "integer"
10767 },
95895385
TL
10768 "log" : {
10769 "description" : "Log level for firewall rule",
10770 "enum" : [
10771 "emerg",
10772 "alert",
10773 "crit",
10774 "err",
10775 "warning",
10776 "notice",
10777 "info",
10778 "debug",
10779 "nolog"
10780 ],
10781 "optional" : 1,
10782 "type" : "string"
10783 },
e2d681b3
TL
10784 "macro" : {
10785 "optional" : 1,
5f26e15b 10786 "type" : "string"
e2d681b3 10787 },
44660702
DM
10788 "pos" : {
10789 "type" : "integer"
e2d681b3
TL
10790 },
10791 "proto" : {
10792 "optional" : 1,
10793 "type" : "string"
10794 },
10795 "source" : {
10796 "optional" : 1,
10797 "type" : "string"
10798 },
10799 "sport" : {
10800 "optional" : 1,
10801 "type" : "string"
10802 },
10803 "type" : {
10804 "type" : "string"
44660702
DM
10805 }
10806 },
10807 "type" : "object"
10808 }
10809 },
10810 "PUT" : {
e9cd3bd4 10811 "allowtoken" : 1,
7aacca6f
DM
10812 "description" : "Modify rule data.",
10813 "method" : "PUT",
44660702 10814 "name" : "update_rule",
56122987 10815 "parameters" : {
44660702 10816 "additionalProperties" : 0,
56122987 10817 "properties" : {
44660702
DM
10818 "action" : {
10819 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
10820 "maxLength" : 20,
10821 "minLength" : 2,
56122987 10822 "optional" : 1,
44660702 10823 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
10824 "type" : "string"
10825 },
7aacca6f 10826 "comment" : {
e94f0d56 10827 "description" : "Descriptive comment.",
7aacca6f 10828 "optional" : 1,
013dc89f
DM
10829 "type" : "string",
10830 "typetext" : "<string>"
7aacca6f
DM
10831 },
10832 "delete" : {
7aacca6f 10833 "description" : "A list of settings you want to delete.",
44660702
DM
10834 "format" : "pve-configid-list",
10835 "optional" : 1,
013dc89f
DM
10836 "type" : "string",
10837 "typetext" : "<string>"
7aacca6f
DM
10838 },
10839 "dest" : {
44660702 10840 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
7aacca6f 10841 "format" : "pve-fw-addr-spec",
0695fdaf 10842 "maxLength" : 512,
56122987 10843 "optional" : 1,
013dc89f
DM
10844 "type" : "string",
10845 "typetext" : "<string>"
56122987 10846 },
7aacca6f 10847 "digest" : {
44660702 10848 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 10849 "maxLength" : 40,
56122987 10850 "optional" : 1,
013dc89f
DM
10851 "type" : "string",
10852 "typetext" : "<string>"
44660702
DM
10853 },
10854 "dport" : {
10855 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
10856 "format" : "pve-fw-dport-spec",
10857 "optional" : 1,
013dc89f
DM
10858 "type" : "string",
10859 "typetext" : "<string>"
56122987 10860 },
7aacca6f 10861 "enable" : {
e94f0d56 10862 "description" : "Flag to enable/disable a rule.",
44660702 10863 "minimum" : 0,
56122987 10864 "optional" : 1,
4bd7df8b 10865 "type" : "integer",
013dc89f 10866 "typetext" : "<integer> (0 - N)"
7aacca6f 10867 },
4772952b 10868 "icmp-type" : {
287a95cf 10869 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
10870 "format" : "pve-fw-icmp-type-spec",
10871 "optional" : 1,
10872 "type" : "string",
10873 "typetext" : "<string>"
10874 },
44660702
DM
10875 "iface" : {
10876 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
10877 "format" : "pve-iface",
10878 "maxLength" : 20,
7aacca6f 10879 "minLength" : 2,
56122987 10880 "optional" : 1,
013dc89f
DM
10881 "type" : "string",
10882 "typetext" : "<string>"
56122987 10883 },
95895385
TL
10884 "log" : {
10885 "description" : "Log level for firewall rule.",
10886 "enum" : [
10887 "emerg",
10888 "alert",
10889 "crit",
10890 "err",
10891 "warning",
10892 "notice",
10893 "info",
10894 "debug",
10895 "nolog"
10896 ],
10897 "optional" : 1,
10898 "type" : "string"
10899 },
44660702 10900 "macro" : {
e94f0d56 10901 "description" : "Use predefined standard macro.",
44660702 10902 "maxLength" : 128,
56122987 10903 "optional" : 1,
013dc89f
DM
10904 "type" : "string",
10905 "typetext" : "<string>"
56122987 10906 },
44660702
DM
10907 "moveto" : {
10908 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
10909 "minimum" : 0,
56122987 10910 "optional" : 1,
4bd7df8b 10911 "type" : "integer",
013dc89f 10912 "typetext" : "<integer> (0 - N)"
56122987 10913 },
44660702
DM
10914 "node" : {
10915 "description" : "The cluster node name.",
10916 "format" : "pve-node",
013dc89f
DM
10917 "type" : "string",
10918 "typetext" : "<string>"
44660702
DM
10919 },
10920 "pos" : {
10921 "description" : "Update rule at position <pos>.",
10922 "minimum" : 0,
10923 "optional" : 1,
4bd7df8b 10924 "type" : "integer",
013dc89f 10925 "typetext" : "<integer> (0 - N)"
56122987 10926 },
44660702
DM
10927 "proto" : {
10928 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
10929 "format" : "pve-fw-protocol-spec",
10930 "optional" : 1,
013dc89f
DM
10931 "type" : "string",
10932 "typetext" : "<string>"
7aacca6f 10933 },
44660702
DM
10934 "source" : {
10935 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
10936 "format" : "pve-fw-addr-spec",
0695fdaf 10937 "maxLength" : 512,
56122987 10938 "optional" : 1,
013dc89f
DM
10939 "type" : "string",
10940 "typetext" : "<string>"
56122987
DM
10941 },
10942 "sport" : {
10943 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
44660702
DM
10944 "format" : "pve-fw-sport-spec",
10945 "optional" : 1,
013dc89f
DM
10946 "type" : "string",
10947 "typetext" : "<string>"
44660702
DM
10948 },
10949 "type" : {
e94f0d56 10950 "description" : "Rule type.",
44660702
DM
10951 "enum" : [
10952 "in",
10953 "out",
10954 "group"
10955 ],
56122987 10956 "optional" : 1,
56122987 10957 "type" : "string"
44660702
DM
10958 },
10959 "vmid" : {
10960 "description" : "The (unique) ID of the VM.",
10961 "format" : "pve-vmid",
8dd66e12
TL
10962 "maximum" : 999999999,
10963 "minimum" : 100,
4bd7df8b 10964 "type" : "integer",
8dd66e12 10965 "typetext" : "<integer> (100 - 999999999)"
56122987 10966 }
44660702 10967 }
56122987 10968 },
56122987
DM
10969 "permissions" : {
10970 "check" : [
10971 "perm",
10972 "/vms/{vmid}",
10973 [
44660702 10974 "VM.Config.Network"
56122987
DM
10975 ]
10976 ]
7aacca6f 10977 },
44660702 10978 "protected" : 1,
7aacca6f 10979 "proxyto" : null,
7aacca6f 10980 "returns" : {
44660702
DM
10981 "type" : "null"
10982 }
56122987 10983 }
7aacca6f 10984 },
44660702 10985 "leaf" : 1,
7aacca6f 10986 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 10987 "text" : "{pos}"
56122987
DM
10988 }
10989 ],
56122987 10990 "info" : {
44660702 10991 "GET" : {
e9cd3bd4 10992 "allowtoken" : 1,
44660702
DM
10993 "description" : "List rules.",
10994 "method" : "GET",
10995 "name" : "get_rules",
10996 "parameters" : {
10997 "additionalProperties" : 0,
10998 "properties" : {
10999 "node" : {
11000 "description" : "The cluster node name.",
11001 "format" : "pve-node",
013dc89f
DM
11002 "type" : "string",
11003 "typetext" : "<string>"
44660702
DM
11004 },
11005 "vmid" : {
11006 "description" : "The (unique) ID of the VM.",
11007 "format" : "pve-vmid",
8dd66e12
TL
11008 "maximum" : 999999999,
11009 "minimum" : 100,
4bd7df8b 11010 "type" : "integer",
8dd66e12 11011 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11012 }
11013 }
56122987 11014 },
56122987
DM
11015 "permissions" : {
11016 "check" : [
11017 "perm",
11018 "/vms/{vmid}",
11019 [
44660702 11020 "VM.Audit"
56122987
DM
11021 ]
11022 ]
7aacca6f 11023 },
44660702
DM
11024 "proxyto" : null,
11025 "returns" : {
11026 "items" : {
11027 "properties" : {
11028 "pos" : {
11029 "type" : "integer"
11030 }
11031 },
11032 "type" : "object"
11033 },
11034 "links" : [
11035 {
11036 "href" : "{pos}",
11037 "rel" : "child"
11038 }
11039 ],
11040 "type" : "array"
11041 }
11042 },
11043 "POST" : {
e9cd3bd4 11044 "allowtoken" : 1,
44660702 11045 "description" : "Create new rule.",
7aacca6f 11046 "method" : "POST",
44660702 11047 "name" : "create_rule",
56122987 11048 "parameters" : {
44660702 11049 "additionalProperties" : 0,
56122987 11050 "properties" : {
44660702
DM
11051 "action" : {
11052 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
11053 "maxLength" : 20,
11054 "minLength" : 2,
11055 "optional" : 0,
11056 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11057 "type" : "string"
56122987 11058 },
44660702 11059 "comment" : {
e94f0d56 11060 "description" : "Descriptive comment.",
56122987 11061 "optional" : 1,
013dc89f
DM
11062 "type" : "string",
11063 "typetext" : "<string>"
56122987 11064 },
44660702
DM
11065 "dest" : {
11066 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
11067 "format" : "pve-fw-addr-spec",
0695fdaf 11068 "maxLength" : 512,
44660702 11069 "optional" : 1,
013dc89f
DM
11070 "type" : "string",
11071 "typetext" : "<string>"
56122987 11072 },
44660702
DM
11073 "digest" : {
11074 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11075 "maxLength" : 40,
56122987 11076 "optional" : 1,
013dc89f
DM
11077 "type" : "string",
11078 "typetext" : "<string>"
56122987 11079 },
7aacca6f
DM
11080 "dport" : {
11081 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
44660702 11082 "format" : "pve-fw-dport-spec",
7aacca6f 11083 "optional" : 1,
013dc89f
DM
11084 "type" : "string",
11085 "typetext" : "<string>"
56122987
DM
11086 },
11087 "enable" : {
e94f0d56 11088 "description" : "Flag to enable/disable a rule.",
56122987 11089 "minimum" : 0,
44660702 11090 "optional" : 1,
4bd7df8b 11091 "type" : "integer",
013dc89f 11092 "typetext" : "<integer> (0 - N)"
56122987 11093 },
4772952b 11094 "icmp-type" : {
287a95cf 11095 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
11096 "format" : "pve-fw-icmp-type-spec",
11097 "optional" : 1,
11098 "type" : "string",
11099 "typetext" : "<string>"
11100 },
44660702
DM
11101 "iface" : {
11102 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
11103 "format" : "pve-iface",
11104 "maxLength" : 20,
7aacca6f 11105 "minLength" : 2,
44660702 11106 "optional" : 1,
013dc89f
DM
11107 "type" : "string",
11108 "typetext" : "<string>"
56122987 11109 },
95895385
TL
11110 "log" : {
11111 "description" : "Log level for firewall rule.",
11112 "enum" : [
11113 "emerg",
11114 "alert",
11115 "crit",
11116 "err",
11117 "warning",
11118 "notice",
11119 "info",
11120 "debug",
11121 "nolog"
11122 ],
11123 "optional" : 1,
11124 "type" : "string"
11125 },
44660702 11126 "macro" : {
e94f0d56 11127 "description" : "Use predefined standard macro.",
44660702 11128 "maxLength" : 128,
56122987 11129 "optional" : 1,
013dc89f
DM
11130 "type" : "string",
11131 "typetext" : "<string>"
7aacca6f 11132 },
44660702
DM
11133 "node" : {
11134 "description" : "The cluster node name.",
11135 "format" : "pve-node",
013dc89f
DM
11136 "type" : "string",
11137 "typetext" : "<string>"
44660702
DM
11138 },
11139 "pos" : {
11140 "description" : "Update rule at position <pos>.",
11141 "minimum" : 0,
11142 "optional" : 1,
4bd7df8b 11143 "type" : "integer",
013dc89f 11144 "typetext" : "<integer> (0 - N)"
44660702
DM
11145 },
11146 "proto" : {
11147 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
11148 "format" : "pve-fw-protocol-spec",
7aacca6f 11149 "optional" : 1,
013dc89f
DM
11150 "type" : "string",
11151 "typetext" : "<string>"
7aacca6f
DM
11152 },
11153 "source" : {
11154 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
44660702 11155 "format" : "pve-fw-addr-spec",
0695fdaf 11156 "maxLength" : 512,
7aacca6f 11157 "optional" : 1,
013dc89f
DM
11158 "type" : "string",
11159 "typetext" : "<string>"
7aacca6f 11160 },
44660702
DM
11161 "sport" : {
11162 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
11163 "format" : "pve-fw-sport-spec",
7aacca6f 11164 "optional" : 1,
013dc89f
DM
11165 "type" : "string",
11166 "typetext" : "<string>"
7aacca6f 11167 },
44660702 11168 "type" : {
e94f0d56 11169 "description" : "Rule type.",
44660702
DM
11170 "enum" : [
11171 "in",
11172 "out",
11173 "group"
11174 ],
11175 "optional" : 0,
11176 "type" : "string"
7aacca6f 11177 },
7aacca6f 11178 "vmid" : {
44660702 11179 "description" : "The (unique) ID of the VM.",
7aacca6f 11180 "format" : "pve-vmid",
8dd66e12
TL
11181 "maximum" : 999999999,
11182 "minimum" : 100,
4bd7df8b 11183 "type" : "integer",
8dd66e12 11184 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
11185 }
11186 }
11187 },
56122987
DM
11188 "permissions" : {
11189 "check" : [
11190 "perm",
11191 "/vms/{vmid}",
11192 [
44660702 11193 "VM.Config.Network"
56122987
DM
11194 ]
11195 ]
11196 },
44660702
DM
11197 "protected" : 1,
11198 "proxyto" : null,
56122987 11199 "returns" : {
44660702
DM
11200 "type" : "null"
11201 }
56122987
DM
11202 }
11203 },
44660702 11204 "leaf" : 0,
7aacca6f 11205 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 11206 "text" : "rules"
56122987
DM
11207 },
11208 {
11209 "children" : [
11210 {
56122987 11211 "info" : {
44660702 11212 "DELETE" : {
e9cd3bd4 11213 "allowtoken" : 1,
44660702
DM
11214 "description" : "Remove IP or Network alias.",
11215 "method" : "DELETE",
11216 "name" : "remove_alias",
56122987 11217 "parameters" : {
44660702 11218 "additionalProperties" : 0,
56122987 11219 "properties" : {
44660702
DM
11220 "digest" : {
11221 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11222 "maxLength" : 40,
11223 "optional" : 1,
013dc89f
DM
11224 "type" : "string",
11225 "typetext" : "<string>"
56122987
DM
11226 },
11227 "name" : {
56122987 11228 "description" : "Alias name.",
44660702 11229 "maxLength" : 64,
7aacca6f 11230 "minLength" : 2,
44660702 11231 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
11232 "type" : "string"
11233 },
7aacca6f 11234 "node" : {
44660702 11235 "description" : "The cluster node name.",
7aacca6f 11236 "format" : "pve-node",
013dc89f
DM
11237 "type" : "string",
11238 "typetext" : "<string>"
44660702
DM
11239 },
11240 "vmid" : {
11241 "description" : "The (unique) ID of the VM.",
11242 "format" : "pve-vmid",
8dd66e12
TL
11243 "maximum" : 999999999,
11244 "minimum" : 100,
4bd7df8b 11245 "type" : "integer",
8dd66e12 11246 "typetext" : "<integer> (100 - 999999999)"
56122987 11247 }
44660702 11248 }
56122987 11249 },
7aacca6f
DM
11250 "permissions" : {
11251 "check" : [
11252 "perm",
11253 "/vms/{vmid}",
11254 [
11255 "VM.Config.Network"
11256 ]
11257 ]
56122987 11258 },
44660702
DM
11259 "protected" : 1,
11260 "returns" : {
11261 "type" : "null"
11262 }
11263 },
11264 "GET" : {
e9cd3bd4 11265 "allowtoken" : 1,
44660702
DM
11266 "description" : "Read alias.",
11267 "method" : "GET",
11268 "name" : "read_alias",
56122987 11269 "parameters" : {
44660702 11270 "additionalProperties" : 0,
56122987 11271 "properties" : {
56122987 11272 "name" : {
7aacca6f 11273 "description" : "Alias name.",
44660702 11274 "maxLength" : 64,
56122987 11275 "minLength" : 2,
44660702 11276 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 11277 "type" : "string"
7aacca6f
DM
11278 },
11279 "node" : {
11280 "description" : "The cluster node name.",
44660702 11281 "format" : "pve-node",
013dc89f
DM
11282 "type" : "string",
11283 "typetext" : "<string>"
44660702
DM
11284 },
11285 "vmid" : {
11286 "description" : "The (unique) ID of the VM.",
11287 "format" : "pve-vmid",
8dd66e12
TL
11288 "maximum" : 999999999,
11289 "minimum" : 100,
4bd7df8b 11290 "type" : "integer",
8dd66e12 11291 "typetext" : "<integer> (100 - 999999999)"
56122987 11292 }
44660702 11293 }
56122987 11294 },
44660702
DM
11295 "permissions" : {
11296 "check" : [
11297 "perm",
11298 "/vms/{vmid}",
11299 [
11300 "VM.Audit"
11301 ]
11302 ]
56122987 11303 },
44660702
DM
11304 "returns" : {
11305 "type" : "object"
11306 }
7aacca6f 11307 },
44660702 11308 "PUT" : {
e9cd3bd4 11309 "allowtoken" : 1,
44660702
DM
11310 "description" : "Update IP or Network alias.",
11311 "method" : "PUT",
11312 "name" : "update_alias",
56122987
DM
11313 "parameters" : {
11314 "additionalProperties" : 0,
11315 "properties" : {
44660702
DM
11316 "cidr" : {
11317 "description" : "Network/IP specification in CIDR format.",
11318 "format" : "IPorCIDR",
013dc89f
DM
11319 "type" : "string",
11320 "typetext" : "<string>"
44660702
DM
11321 },
11322 "comment" : {
11323 "optional" : 1,
013dc89f
DM
11324 "type" : "string",
11325 "typetext" : "<string>"
56122987
DM
11326 },
11327 "digest" : {
44660702 11328 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
56122987
DM
11329 "maxLength" : 40,
11330 "optional" : 1,
013dc89f
DM
11331 "type" : "string",
11332 "typetext" : "<string>"
56122987 11333 },
7aacca6f 11334 "name" : {
44660702 11335 "description" : "Alias name.",
56122987
DM
11336 "maxLength" : 64,
11337 "minLength" : 2,
11338 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 11339 "type" : "string"
7aacca6f
DM
11340 },
11341 "node" : {
7aacca6f 11342 "description" : "The cluster node name.",
44660702 11343 "format" : "pve-node",
013dc89f
DM
11344 "type" : "string",
11345 "typetext" : "<string>"
44660702
DM
11346 },
11347 "rename" : {
11348 "description" : "Rename an existing alias.",
11349 "maxLength" : 64,
11350 "minLength" : 2,
11351 "optional" : 1,
11352 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11353 "type" : "string"
11354 },
11355 "vmid" : {
11356 "description" : "The (unique) ID of the VM.",
11357 "format" : "pve-vmid",
8dd66e12
TL
11358 "maximum" : 999999999,
11359 "minimum" : 100,
4bd7df8b 11360 "type" : "integer",
8dd66e12 11361 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
11362 }
11363 }
11364 },
7aacca6f
DM
11365 "permissions" : {
11366 "check" : [
11367 "perm",
11368 "/vms/{vmid}",
11369 [
11370 "VM.Config.Network"
11371 ]
11372 ]
11373 },
11374 "protected" : 1,
7aacca6f
DM
11375 "returns" : {
11376 "type" : "null"
44660702 11377 }
56122987
DM
11378 }
11379 },
44660702 11380 "leaf" : 1,
7aacca6f 11381 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 11382 "text" : "{name}"
56122987
DM
11383 }
11384 ],
11385 "info" : {
44660702 11386 "GET" : {
e9cd3bd4 11387 "allowtoken" : 1,
44660702
DM
11388 "description" : "List aliases",
11389 "method" : "GET",
11390 "name" : "get_aliases",
56122987 11391 "parameters" : {
44660702 11392 "additionalProperties" : 0,
56122987 11393 "properties" : {
7aacca6f 11394 "node" : {
7aacca6f 11395 "description" : "The cluster node name.",
44660702 11396 "format" : "pve-node",
013dc89f
DM
11397 "type" : "string",
11398 "typetext" : "<string>"
56122987 11399 },
44660702
DM
11400 "vmid" : {
11401 "description" : "The (unique) ID of the VM.",
11402 "format" : "pve-vmid",
8dd66e12
TL
11403 "maximum" : 999999999,
11404 "minimum" : 100,
4bd7df8b 11405 "type" : "integer",
8dd66e12 11406 "typetext" : "<integer> (100 - 999999999)"
56122987 11407 }
44660702 11408 }
56122987 11409 },
56122987
DM
11410 "permissions" : {
11411 "check" : [
11412 "perm",
11413 "/vms/{vmid}",
11414 [
44660702 11415 "VM.Audit"
56122987
DM
11416 ]
11417 ]
11418 },
56122987
DM
11419 "returns" : {
11420 "items" : {
11421 "properties" : {
44660702 11422 "cidr" : {
56122987
DM
11423 "type" : "string"
11424 },
44660702
DM
11425 "comment" : {
11426 "optional" : 1,
7aacca6f 11427 "type" : "string"
56122987
DM
11428 },
11429 "digest" : {
56122987 11430 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 11431 "maxLength" : 40,
56122987
DM
11432 "optional" : 0,
11433 "type" : "string"
11434 },
44660702 11435 "name" : {
56122987
DM
11436 "type" : "string"
11437 }
44660702
DM
11438 },
11439 "type" : "object"
56122987 11440 },
56122987
DM
11441 "links" : [
11442 {
11443 "href" : "{name}",
11444 "rel" : "child"
11445 }
44660702
DM
11446 ],
11447 "type" : "array"
11448 }
11449 },
11450 "POST" : {
e9cd3bd4 11451 "allowtoken" : 1,
44660702
DM
11452 "description" : "Create IP or Network Alias.",
11453 "method" : "POST",
11454 "name" : "create_alias",
56122987 11455 "parameters" : {
7aacca6f 11456 "additionalProperties" : 0,
56122987 11457 "properties" : {
44660702
DM
11458 "cidr" : {
11459 "description" : "Network/IP specification in CIDR format.",
11460 "format" : "IPorCIDR",
013dc89f
DM
11461 "type" : "string",
11462 "typetext" : "<string>"
44660702
DM
11463 },
11464 "comment" : {
11465 "optional" : 1,
013dc89f
DM
11466 "type" : "string",
11467 "typetext" : "<string>"
44660702
DM
11468 },
11469 "name" : {
11470 "description" : "Alias name.",
11471 "maxLength" : 64,
11472 "minLength" : 2,
11473 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11474 "type" : "string"
56122987
DM
11475 },
11476 "node" : {
7aacca6f 11477 "description" : "The cluster node name.",
44660702 11478 "format" : "pve-node",
013dc89f
DM
11479 "type" : "string",
11480 "typetext" : "<string>"
44660702
DM
11481 },
11482 "vmid" : {
11483 "description" : "The (unique) ID of the VM.",
11484 "format" : "pve-vmid",
8dd66e12
TL
11485 "maximum" : 999999999,
11486 "minimum" : 100,
4bd7df8b 11487 "type" : "integer",
8dd66e12 11488 "typetext" : "<integer> (100 - 999999999)"
56122987 11489 }
7aacca6f 11490 }
56122987 11491 },
44660702
DM
11492 "permissions" : {
11493 "check" : [
11494 "perm",
11495 "/vms/{vmid}",
11496 [
11497 "VM.Config.Network"
11498 ]
11499 ]
11500 },
11501 "protected" : 1,
11502 "returns" : {
11503 "type" : "null"
11504 }
56122987 11505 }
44660702
DM
11506 },
11507 "leaf" : 0,
11508 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
11509 "text" : "aliases"
56122987
DM
11510 },
11511 {
56122987
DM
11512 "children" : [
11513 {
7aacca6f
DM
11514 "children" : [
11515 {
11516 "info" : {
11517 "DELETE" : {
e9cd3bd4 11518 "allowtoken" : 1,
44660702 11519 "description" : "Remove IP or Network from IPSet.",
7aacca6f 11520 "method" : "DELETE",
44660702 11521 "name" : "remove_ip",
7aacca6f 11522 "parameters" : {
44660702 11523 "additionalProperties" : 0,
7aacca6f 11524 "properties" : {
44660702
DM
11525 "cidr" : {
11526 "description" : "Network/IP specification in CIDR format.",
11527 "format" : "IPorCIDRorAlias",
013dc89f
DM
11528 "type" : "string",
11529 "typetext" : "<string>"
44660702
DM
11530 },
11531 "digest" : {
11532 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11533 "maxLength" : 40,
11534 "optional" : 1,
013dc89f
DM
11535 "type" : "string",
11536 "typetext" : "<string>"
44660702 11537 },
7aacca6f 11538 "name" : {
7aacca6f 11539 "description" : "IP set name.",
44660702
DM
11540 "maxLength" : 64,
11541 "minLength" : 2,
7aacca6f 11542 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 11543 "type" : "string"
7aacca6f
DM
11544 },
11545 "node" : {
11546 "description" : "The cluster node name.",
44660702 11547 "format" : "pve-node",
013dc89f
DM
11548 "type" : "string",
11549 "typetext" : "<string>"
7aacca6f
DM
11550 },
11551 "vmid" : {
44660702 11552 "description" : "The (unique) ID of the VM.",
7aacca6f 11553 "format" : "pve-vmid",
8dd66e12
TL
11554 "maximum" : 999999999,
11555 "minimum" : 100,
4bd7df8b 11556 "type" : "integer",
8dd66e12 11557 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 11558 }
44660702 11559 }
7aacca6f 11560 },
7aacca6f
DM
11561 "permissions" : {
11562 "check" : [
11563 "perm",
11564 "/vms/{vmid}",
11565 [
11566 "VM.Config.Network"
11567 ]
11568 ]
11569 },
11570 "protected" : 1,
44660702
DM
11571 "returns" : {
11572 "type" : "null"
11573 }
56122987 11574 },
44660702 11575 "GET" : {
e9cd3bd4 11576 "allowtoken" : 1,
44660702
DM
11577 "description" : "Read IP or Network settings from IPSet.",
11578 "method" : "GET",
11579 "name" : "read_ip",
7aacca6f 11580 "parameters" : {
44660702 11581 "additionalProperties" : 0,
7aacca6f 11582 "properties" : {
7aacca6f 11583 "cidr" : {
44660702 11584 "description" : "Network/IP specification in CIDR format.",
7aacca6f 11585 "format" : "IPorCIDRorAlias",
013dc89f
DM
11586 "type" : "string",
11587 "typetext" : "<string>"
7aacca6f
DM
11588 },
11589 "name" : {
7aacca6f 11590 "description" : "IP set name.",
44660702 11591 "maxLength" : 64,
7aacca6f 11592 "minLength" : 2,
44660702
DM
11593 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11594 "type" : "string"
7aacca6f 11595 },
44660702
DM
11596 "node" : {
11597 "description" : "The cluster node name.",
11598 "format" : "pve-node",
013dc89f
DM
11599 "type" : "string",
11600 "typetext" : "<string>"
7aacca6f 11601 },
44660702
DM
11602 "vmid" : {
11603 "description" : "The (unique) ID of the VM.",
11604 "format" : "pve-vmid",
8dd66e12
TL
11605 "maximum" : 999999999,
11606 "minimum" : 100,
4bd7df8b 11607 "type" : "integer",
8dd66e12 11608 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 11609 }
44660702 11610 }
7aacca6f 11611 },
44660702
DM
11612 "permissions" : {
11613 "check" : [
11614 "perm",
11615 "/vms/{vmid}",
11616 [
11617 "VM.Audit"
11618 ]
11619 ]
11620 },
11621 "protected" : 1,
7aacca6f 11622 "returns" : {
44660702 11623 "type" : "object"
7aacca6f 11624 }
56122987 11625 },
44660702 11626 "PUT" : {
e9cd3bd4 11627 "allowtoken" : 1,
44660702
DM
11628 "description" : "Update IP or Network settings",
11629 "method" : "PUT",
11630 "name" : "update_ip",
7aacca6f
DM
11631 "parameters" : {
11632 "additionalProperties" : 0,
11633 "properties" : {
44660702
DM
11634 "cidr" : {
11635 "description" : "Network/IP specification in CIDR format.",
11636 "format" : "IPorCIDRorAlias",
013dc89f
DM
11637 "type" : "string",
11638 "typetext" : "<string>"
44660702
DM
11639 },
11640 "comment" : {
11641 "optional" : 1,
013dc89f
DM
11642 "type" : "string",
11643 "typetext" : "<string>"
44660702
DM
11644 },
11645 "digest" : {
11646 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11647 "maxLength" : 40,
11648 "optional" : 1,
013dc89f
DM
11649 "type" : "string",
11650 "typetext" : "<string>"
44660702 11651 },
7aacca6f 11652 "name" : {
7aacca6f 11653 "description" : "IP set name.",
44660702 11654 "maxLength" : 64,
7aacca6f 11655 "minLength" : 2,
44660702
DM
11656 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11657 "type" : "string"
7aacca6f
DM
11658 },
11659 "node" : {
7aacca6f 11660 "description" : "The cluster node name.",
44660702 11661 "format" : "pve-node",
013dc89f
DM
11662 "type" : "string",
11663 "typetext" : "<string>"
7aacca6f 11664 },
44660702
DM
11665 "nomatch" : {
11666 "optional" : 1,
013dc89f
DM
11667 "type" : "boolean",
11668 "typetext" : "<boolean>"
7aacca6f
DM
11669 },
11670 "vmid" : {
11671 "description" : "The (unique) ID of the VM.",
44660702 11672 "format" : "pve-vmid",
8dd66e12
TL
11673 "maximum" : 999999999,
11674 "minimum" : 100,
4bd7df8b 11675 "type" : "integer",
8dd66e12 11676 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
11677 }
11678 }
11679 },
11680 "permissions" : {
11681 "check" : [
11682 "perm",
11683 "/vms/{vmid}",
11684 [
44660702 11685 "VM.Config.Network"
7aacca6f
DM
11686 ]
11687 ]
11688 },
7aacca6f 11689 "protected" : 1,
7aacca6f 11690 "returns" : {
44660702 11691 "type" : "null"
7aacca6f 11692 }
56122987 11693 }
7aacca6f 11694 },
7aacca6f 11695 "leaf" : 1,
44660702
DM
11696 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
11697 "text" : "{cidr}"
7aacca6f 11698 }
44660702
DM
11699 ],
11700 "info" : {
11701 "DELETE" : {
e9cd3bd4 11702 "allowtoken" : 1,
44660702
DM
11703 "description" : "Delete IPSet",
11704 "method" : "DELETE",
11705 "name" : "delete_ipset",
11706 "parameters" : {
11707 "additionalProperties" : 0,
11708 "properties" : {
81a3384d
TL
11709 "force" : {
11710 "description" : "Delete all members of the IPSet, if there are any.",
11711 "optional" : 1,
11712 "type" : "boolean",
11713 "typetext" : "<boolean>"
11714 },
44660702
DM
11715 "name" : {
11716 "description" : "IP set name.",
11717 "maxLength" : 64,
11718 "minLength" : 2,
11719 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11720 "type" : "string"
11721 },
11722 "node" : {
11723 "description" : "The cluster node name.",
11724 "format" : "pve-node",
013dc89f
DM
11725 "type" : "string",
11726 "typetext" : "<string>"
44660702
DM
11727 },
11728 "vmid" : {
11729 "description" : "The (unique) ID of the VM.",
11730 "format" : "pve-vmid",
8dd66e12
TL
11731 "maximum" : 999999999,
11732 "minimum" : 100,
4bd7df8b 11733 "type" : "integer",
8dd66e12 11734 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11735 }
11736 }
7aacca6f 11737 },
44660702
DM
11738 "permissions" : {
11739 "check" : [
11740 "perm",
11741 "/vms/{vmid}",
11742 [
11743 "VM.Config.Network"
11744 ]
11745 ]
7aacca6f 11746 },
44660702
DM
11747 "protected" : 1,
11748 "returns" : {
11749 "type" : "null"
11750 }
11751 },
11752 "GET" : {
e9cd3bd4 11753 "allowtoken" : 1,
44660702
DM
11754 "description" : "List IPSet content",
11755 "method" : "GET",
11756 "name" : "get_ipset",
11757 "parameters" : {
11758 "additionalProperties" : 0,
11759 "properties" : {
11760 "name" : {
11761 "description" : "IP set name.",
11762 "maxLength" : 64,
11763 "minLength" : 2,
11764 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11765 "type" : "string"
11766 },
11767 "node" : {
11768 "description" : "The cluster node name.",
11769 "format" : "pve-node",
013dc89f
DM
11770 "type" : "string",
11771 "typetext" : "<string>"
44660702
DM
11772 },
11773 "vmid" : {
11774 "description" : "The (unique) ID of the VM.",
11775 "format" : "pve-vmid",
8dd66e12
TL
11776 "maximum" : 999999999,
11777 "minimum" : 100,
4bd7df8b 11778 "type" : "integer",
8dd66e12 11779 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11780 }
11781 }
7aacca6f 11782 },
44660702
DM
11783 "permissions" : {
11784 "check" : [
11785 "perm",
11786 "/vms/{vmid}",
11787 [
11788 "VM.Audit"
11789 ]
11790 ]
7aacca6f 11791 },
44660702
DM
11792 "returns" : {
11793 "items" : {
11794 "properties" : {
11795 "cidr" : {
11796 "type" : "string"
11797 },
11798 "comment" : {
11799 "optional" : 1,
11800 "type" : "string"
11801 },
11802 "digest" : {
11803 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11804 "maxLength" : 40,
11805 "optional" : 0,
11806 "type" : "string"
11807 },
11808 "nomatch" : {
11809 "optional" : 1,
11810 "type" : "boolean"
11811 }
11812 },
11813 "type" : "object"
11814 },
11815 "links" : [
11816 {
11817 "href" : "{cidr}",
11818 "rel" : "child"
11819 }
11820 ],
11821 "type" : "array"
56122987
DM
11822 }
11823 },
44660702 11824 "POST" : {
e9cd3bd4 11825 "allowtoken" : 1,
44660702
DM
11826 "description" : "Add IP or Network to IPSet.",
11827 "method" : "POST",
11828 "name" : "create_ip",
11829 "parameters" : {
11830 "additionalProperties" : 0,
11831 "properties" : {
11832 "cidr" : {
11833 "description" : "Network/IP specification in CIDR format.",
11834 "format" : "IPorCIDRorAlias",
013dc89f
DM
11835 "type" : "string",
11836 "typetext" : "<string>"
44660702
DM
11837 },
11838 "comment" : {
11839 "optional" : 1,
013dc89f
DM
11840 "type" : "string",
11841 "typetext" : "<string>"
44660702
DM
11842 },
11843 "name" : {
11844 "description" : "IP set name.",
11845 "maxLength" : 64,
11846 "minLength" : 2,
11847 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11848 "type" : "string"
11849 },
11850 "node" : {
11851 "description" : "The cluster node name.",
11852 "format" : "pve-node",
013dc89f
DM
11853 "type" : "string",
11854 "typetext" : "<string>"
44660702
DM
11855 },
11856 "nomatch" : {
11857 "optional" : 1,
013dc89f
DM
11858 "type" : "boolean",
11859 "typetext" : "<boolean>"
44660702
DM
11860 },
11861 "vmid" : {
11862 "description" : "The (unique) ID of the VM.",
11863 "format" : "pve-vmid",
8dd66e12
TL
11864 "maximum" : 999999999,
11865 "minimum" : 100,
4bd7df8b 11866 "type" : "integer",
8dd66e12 11867 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11868 }
11869 }
11870 },
11871 "permissions" : {
11872 "check" : [
11873 "perm",
11874 "/vms/{vmid}",
11875 [
11876 "VM.Config.Network"
11877 ]
11878 ]
11879 },
11880 "protected" : 1,
11881 "returns" : {
11882 "type" : "null"
11883 }
11884 }
11885 },
11886 "leaf" : 0,
11887 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
11888 "text" : "{name}"
11889 }
11890 ],
11891 "info" : {
11892 "GET" : {
e9cd3bd4 11893 "allowtoken" : 1,
44660702
DM
11894 "description" : "List IPSets",
11895 "method" : "GET",
11896 "name" : "ipset_index",
11897 "parameters" : {
11898 "additionalProperties" : 0,
11899 "properties" : {
11900 "node" : {
11901 "description" : "The cluster node name.",
11902 "format" : "pve-node",
013dc89f
DM
11903 "type" : "string",
11904 "typetext" : "<string>"
44660702
DM
11905 },
11906 "vmid" : {
11907 "description" : "The (unique) ID of the VM.",
11908 "format" : "pve-vmid",
8dd66e12
TL
11909 "maximum" : 999999999,
11910 "minimum" : 100,
4bd7df8b 11911 "type" : "integer",
8dd66e12 11912 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11913 }
11914 }
56122987
DM
11915 },
11916 "permissions" : {
11917 "check" : [
11918 "perm",
11919 "/vms/{vmid}",
11920 [
44660702 11921 "VM.Audit"
56122987
DM
11922 ]
11923 ]
11924 },
7aacca6f 11925 "returns" : {
7aacca6f
DM
11926 "items" : {
11927 "properties" : {
7aacca6f
DM
11928 "comment" : {
11929 "optional" : 1,
11930 "type" : "string"
11931 },
11932 "digest" : {
7aacca6f 11933 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
11934 "maxLength" : 40,
11935 "optional" : 0,
11936 "type" : "string"
11937 },
11938 "name" : {
11939 "description" : "IP set name.",
11940 "maxLength" : 64,
11941 "minLength" : 2,
11942 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11943 "type" : "string"
7aacca6f
DM
11944 }
11945 },
11946 "type" : "object"
11947 },
11948 "links" : [
11949 {
44660702
DM
11950 "href" : "{name}",
11951 "rel" : "child"
7aacca6f 11952 }
44660702
DM
11953 ],
11954 "type" : "array"
11955 }
11956 },
11957 "POST" : {
e9cd3bd4 11958 "allowtoken" : 1,
44660702
DM
11959 "description" : "Create new IPSet",
11960 "method" : "POST",
11961 "name" : "create_ipset",
56122987
DM
11962 "parameters" : {
11963 "additionalProperties" : 0,
11964 "properties" : {
44660702
DM
11965 "comment" : {
11966 "optional" : 1,
013dc89f
DM
11967 "type" : "string",
11968 "typetext" : "<string>"
56122987 11969 },
44660702
DM
11970 "digest" : {
11971 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11972 "maxLength" : 40,
11973 "optional" : 1,
013dc89f
DM
11974 "type" : "string",
11975 "typetext" : "<string>"
44660702
DM
11976 },
11977 "name" : {
11978 "description" : "IP set name.",
11979 "maxLength" : 64,
11980 "minLength" : 2,
11981 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11982 "type" : "string"
11983 },
11984 "node" : {
11985 "description" : "The cluster node name.",
11986 "format" : "pve-node",
013dc89f
DM
11987 "type" : "string",
11988 "typetext" : "<string>"
44660702
DM
11989 },
11990 "rename" : {
11991 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
11992 "maxLength" : 64,
11993 "minLength" : 2,
11994 "optional" : 1,
11995 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11996 "type" : "string"
11997 },
11998 "vmid" : {
11999 "description" : "The (unique) ID of the VM.",
12000 "format" : "pve-vmid",
8dd66e12
TL
12001 "maximum" : 999999999,
12002 "minimum" : 100,
4bd7df8b 12003 "type" : "integer",
8dd66e12 12004 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
12005 }
12006 }
12007 },
7aacca6f
DM
12008 "permissions" : {
12009 "check" : [
12010 "perm",
12011 "/vms/{vmid}",
12012 [
12013 "VM.Config.Network"
12014 ]
12015 ]
12016 },
44660702 12017 "protected" : 1,
56122987 12018 "returns" : {
7aacca6f 12019 "type" : "null"
44660702
DM
12020 }
12021 }
12022 },
12023 "leaf" : 0,
12024 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
12025 "text" : "ipset"
12026 },
12027 {
12028 "info" : {
12029 "GET" : {
e9cd3bd4 12030 "allowtoken" : 1,
44660702
DM
12031 "description" : "Get VM firewall options.",
12032 "method" : "GET",
12033 "name" : "get_options",
7aacca6f
DM
12034 "parameters" : {
12035 "additionalProperties" : 0,
56122987 12036 "properties" : {
7aacca6f
DM
12037 "node" : {
12038 "description" : "The cluster node name.",
44660702 12039 "format" : "pve-node",
013dc89f
DM
12040 "type" : "string",
12041 "typetext" : "<string>"
7aacca6f 12042 },
44660702
DM
12043 "vmid" : {
12044 "description" : "The (unique) ID of the VM.",
12045 "format" : "pve-vmid",
8dd66e12
TL
12046 "maximum" : 999999999,
12047 "minimum" : 100,
4bd7df8b 12048 "type" : "integer",
8dd66e12 12049 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
12050 }
12051 }
12052 },
12053 "permissions" : {
12054 "check" : [
12055 "perm",
12056 "/vms/{vmid}",
12057 [
12058 "VM.Audit"
12059 ]
12060 ]
12061 },
12062 "proxyto" : "node",
12063 "returns" : {
12064 "properties" : {
12065 "dhcp" : {
5c1699e5 12066 "default" : 0,
44660702 12067 "description" : "Enable DHCP.",
56122987 12068 "optional" : 1,
44660702 12069 "type" : "boolean"
56122987 12070 },
44660702 12071 "enable" : {
5c1699e5 12072 "default" : 0,
44660702 12073 "description" : "Enable/disable firewall rules.",
7aacca6f 12074 "optional" : 1,
44660702 12075 "type" : "boolean"
56122987 12076 },
44660702
DM
12077 "ipfilter" : {
12078 "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
7aacca6f 12079 "optional" : 1,
44660702 12080 "type" : "boolean"
7aacca6f 12081 },
56122987 12082 "log_level_in" : {
7aacca6f 12083 "description" : "Log level for incoming traffic.",
56122987
DM
12084 "enum" : [
12085 "emerg",
12086 "alert",
12087 "crit",
12088 "err",
12089 "warning",
12090 "notice",
12091 "info",
12092 "debug",
12093 "nolog"
12094 ],
56122987
DM
12095 "optional" : 1,
12096 "type" : "string"
12097 },
44660702
DM
12098 "log_level_out" : {
12099 "description" : "Log level for outgoing traffic.",
12100 "enum" : [
12101 "emerg",
12102 "alert",
12103 "crit",
12104 "err",
12105 "warning",
12106 "notice",
12107 "info",
12108 "debug",
12109 "nolog"
12110 ],
12111 "optional" : 1,
12112 "type" : "string"
12113 },
12114 "macfilter" : {
de786b48 12115 "default" : 1,
44660702 12116 "description" : "Enable/disable MAC address filter.",
56122987 12117 "optional" : 1,
7aacca6f 12118 "type" : "boolean"
56122987
DM
12119 },
12120 "ndp" : {
5c1699e5
TL
12121 "default" : 0,
12122 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 12123 "optional" : 1,
44660702 12124 "type" : "boolean"
56122987
DM
12125 },
12126 "policy_in" : {
56122987
DM
12127 "description" : "Input policy.",
12128 "enum" : [
12129 "ACCEPT",
12130 "REJECT",
12131 "DROP"
44660702
DM
12132 ],
12133 "optional" : 1,
12134 "type" : "string"
56122987 12135 },
44660702
DM
12136 "policy_out" : {
12137 "description" : "Output policy.",
12138 "enum" : [
12139 "ACCEPT",
12140 "REJECT",
12141 "DROP"
12142 ],
12143 "optional" : 1,
12144 "type" : "string"
12145 },
12146 "radv" : {
12147 "description" : "Allow sending Router Advertisement.",
12148 "optional" : 1,
12149 "type" : "boolean"
12150 }
12151 },
12152 "type" : "object"
12153 }
12154 },
12155 "PUT" : {
e9cd3bd4 12156 "allowtoken" : 1,
44660702
DM
12157 "description" : "Set Firewall options.",
12158 "method" : "PUT",
12159 "name" : "set_options",
12160 "parameters" : {
12161 "additionalProperties" : 0,
12162 "properties" : {
12163 "delete" : {
12164 "description" : "A list of settings you want to delete.",
12165 "format" : "pve-configid-list",
12166 "optional" : 1,
013dc89f
DM
12167 "type" : "string",
12168 "typetext" : "<string>"
44660702
DM
12169 },
12170 "dhcp" : {
5c1699e5 12171 "default" : 0,
44660702 12172 "description" : "Enable DHCP.",
7aacca6f 12173 "optional" : 1,
013dc89f
DM
12174 "type" : "boolean",
12175 "typetext" : "<boolean>"
7aacca6f
DM
12176 },
12177 "digest" : {
12178 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 12179 "maxLength" : 40,
7aacca6f 12180 "optional" : 1,
013dc89f
DM
12181 "type" : "string",
12182 "typetext" : "<string>"
7aacca6f
DM
12183 },
12184 "enable" : {
5c1699e5 12185 "default" : 0,
7aacca6f 12186 "description" : "Enable/disable firewall rules.",
56122987 12187 "optional" : 1,
013dc89f
DM
12188 "type" : "boolean",
12189 "typetext" : "<boolean>"
7aacca6f 12190 },
44660702
DM
12191 "ipfilter" : {
12192 "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
12193 "optional" : 1,
013dc89f
DM
12194 "type" : "boolean",
12195 "typetext" : "<boolean>"
44660702
DM
12196 },
12197 "log_level_in" : {
12198 "description" : "Log level for incoming traffic.",
56122987
DM
12199 "enum" : [
12200 "emerg",
12201 "alert",
12202 "crit",
12203 "err",
12204 "warning",
12205 "notice",
12206 "info",
12207 "debug",
12208 "nolog"
7aacca6f 12209 ],
7aacca6f 12210 "optional" : 1,
44660702 12211 "type" : "string"
7aacca6f 12212 },
44660702
DM
12213 "log_level_out" : {
12214 "description" : "Log level for outgoing traffic.",
56122987
DM
12215 "enum" : [
12216 "emerg",
12217 "alert",
12218 "crit",
12219 "err",
12220 "warning",
12221 "notice",
12222 "info",
12223 "debug",
12224 "nolog"
12225 ],
56122987 12226 "optional" : 1,
44660702 12227 "type" : "string"
56122987
DM
12228 },
12229 "macfilter" : {
de786b48 12230 "default" : 1,
56122987 12231 "description" : "Enable/disable MAC address filter.",
7aacca6f 12232 "optional" : 1,
013dc89f
DM
12233 "type" : "boolean",
12234 "typetext" : "<boolean>"
56122987 12235 },
44660702 12236 "ndp" : {
5c1699e5
TL
12237 "default" : 0,
12238 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 12239 "optional" : 1,
013dc89f
DM
12240 "type" : "boolean",
12241 "typetext" : "<boolean>"
44660702
DM
12242 },
12243 "node" : {
12244 "description" : "The cluster node name.",
12245 "format" : "pve-node",
013dc89f
DM
12246 "type" : "string",
12247 "typetext" : "<string>"
44660702 12248 },
56122987 12249 "policy_in" : {
44660702 12250 "description" : "Input policy.",
56122987
DM
12251 "enum" : [
12252 "ACCEPT",
12253 "REJECT",
12254 "DROP"
7aacca6f 12255 ],
56122987 12256 "optional" : 1,
7aacca6f 12257 "type" : "string"
56122987 12258 },
44660702
DM
12259 "policy_out" : {
12260 "description" : "Output policy.",
12261 "enum" : [
12262 "ACCEPT",
12263 "REJECT",
12264 "DROP"
12265 ],
56122987 12266 "optional" : 1,
44660702 12267 "type" : "string"
56122987 12268 },
44660702
DM
12269 "radv" : {
12270 "description" : "Allow sending Router Advertisement.",
56122987 12271 "optional" : 1,
013dc89f
DM
12272 "type" : "boolean",
12273 "typetext" : "<boolean>"
7aacca6f
DM
12274 },
12275 "vmid" : {
12276 "description" : "The (unique) ID of the VM.",
44660702 12277 "format" : "pve-vmid",
8dd66e12
TL
12278 "maximum" : 999999999,
12279 "minimum" : 100,
4bd7df8b 12280 "type" : "integer",
8dd66e12 12281 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
12282 }
12283 }
12284 },
56122987
DM
12285 "permissions" : {
12286 "check" : [
12287 "perm",
12288 "/vms/{vmid}",
12289 [
44660702 12290 "VM.Config.Network"
56122987
DM
12291 ]
12292 ]
7aacca6f 12293 },
44660702 12294 "protected" : 1,
7aacca6f 12295 "proxyto" : "node",
44660702
DM
12296 "returns" : {
12297 "type" : "null"
12298 }
56122987
DM
12299 }
12300 },
44660702 12301 "leaf" : 1,
7aacca6f 12302 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 12303 "text" : "options"
56122987
DM
12304 },
12305 {
56122987
DM
12306 "info" : {
12307 "GET" : {
e9cd3bd4 12308 "allowtoken" : 1,
44660702
DM
12309 "description" : "Read firewall log",
12310 "method" : "GET",
12311 "name" : "log",
12312 "parameters" : {
12313 "additionalProperties" : 0,
12314 "properties" : {
12315 "limit" : {
12316 "minimum" : 0,
12317 "optional" : 1,
4bd7df8b 12318 "type" : "integer",
013dc89f 12319 "typetext" : "<integer> (0 - N)"
56122987 12320 },
44660702
DM
12321 "node" : {
12322 "description" : "The cluster node name.",
12323 "format" : "pve-node",
013dc89f
DM
12324 "type" : "string",
12325 "typetext" : "<string>"
44660702 12326 },
9d2e98ed
TL
12327 "since" : {
12328 "description" : "Display log since this UNIX epoch.",
12329 "minimum" : 0,
12330 "optional" : 1,
12331 "type" : "integer",
12332 "typetext" : "<integer> (0 - N)"
12333 },
44660702
DM
12334 "start" : {
12335 "minimum" : 0,
12336 "optional" : 1,
4bd7df8b 12337 "type" : "integer",
013dc89f 12338 "typetext" : "<integer> (0 - N)"
44660702 12339 },
9d2e98ed
TL
12340 "until" : {
12341 "description" : "Display log until this UNIX epoch.",
12342 "minimum" : 0,
12343 "optional" : 1,
12344 "type" : "integer",
12345 "typetext" : "<integer> (0 - N)"
12346 },
44660702
DM
12347 "vmid" : {
12348 "description" : "The (unique) ID of the VM.",
12349 "format" : "pve-vmid",
8dd66e12
TL
12350 "maximum" : 999999999,
12351 "minimum" : 100,
4bd7df8b 12352 "type" : "integer",
8dd66e12 12353 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
12354 }
12355 }
7aacca6f 12356 },
7aacca6f
DM
12357 "permissions" : {
12358 "check" : [
12359 "perm",
12360 "/vms/{vmid}",
12361 [
12362 "VM.Console"
12363 ]
12364 ]
56122987 12365 },
7aacca6f 12366 "protected" : 1,
44660702
DM
12367 "proxyto" : "node",
12368 "returns" : {
12369 "items" : {
12370 "properties" : {
12371 "n" : {
12372 "description" : "Line number",
12373 "type" : "integer"
12374 },
12375 "t" : {
12376 "description" : "Line text",
12377 "type" : "string"
12378 }
56122987 12379 },
44660702 12380 "type" : "object"
7aacca6f 12381 },
44660702 12382 "type" : "array"
7aacca6f
DM
12383 }
12384 }
12385 },
44660702 12386 "leaf" : 1,
7aacca6f 12387 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 12388 "text" : "log"
7aacca6f
DM
12389 },
12390 {
7aacca6f
DM
12391 "info" : {
12392 "GET" : {
e9cd3bd4 12393 "allowtoken" : 1,
7aacca6f 12394 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
12395 "method" : "GET",
12396 "name" : "refs",
56122987 12397 "parameters" : {
44660702 12398 "additionalProperties" : 0,
56122987
DM
12399 "properties" : {
12400 "node" : {
7aacca6f 12401 "description" : "The cluster node name.",
44660702 12402 "format" : "pve-node",
013dc89f
DM
12403 "type" : "string",
12404 "typetext" : "<string>"
56122987
DM
12405 },
12406 "type" : {
56122987
DM
12407 "description" : "Only list references of specified type.",
12408 "enum" : [
12409 "alias",
12410 "ipset"
7aacca6f 12411 ],
44660702
DM
12412 "optional" : 1,
12413 "type" : "string"
12414 },
12415 "vmid" : {
12416 "description" : "The (unique) ID of the VM.",
12417 "format" : "pve-vmid",
8dd66e12
TL
12418 "maximum" : 999999999,
12419 "minimum" : 100,
4bd7df8b 12420 "type" : "integer",
8dd66e12 12421 "typetext" : "<integer> (100 - 999999999)"
56122987 12422 }
44660702
DM
12423 }
12424 },
12425 "permissions" : {
12426 "check" : [
12427 "perm",
12428 "/vms/{vmid}",
12429 [
12430 "VM.Audit"
12431 ]
12432 ]
56122987
DM
12433 },
12434 "returns" : {
56122987
DM
12435 "items" : {
12436 "properties" : {
44660702
DM
12437 "comment" : {
12438 "optional" : 1,
56122987
DM
12439 "type" : "string"
12440 },
12441 "name" : {
12442 "type" : "string"
12443 },
44660702
DM
12444 "type" : {
12445 "enum" : [
12446 "alias",
12447 "ipset"
12448 ],
7aacca6f 12449 "type" : "string"
56122987
DM
12450 }
12451 },
12452 "type" : "object"
7aacca6f
DM
12453 },
12454 "type" : "array"
12455 }
56122987 12456 }
44660702
DM
12457 },
12458 "leaf" : 1,
12459 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
12460 "text" : "refs"
56122987
DM
12461 }
12462 ],
56122987
DM
12463 "info" : {
12464 "GET" : {
e9cd3bd4 12465 "allowtoken" : 1,
44660702 12466 "description" : "Directory index.",
56122987 12467 "method" : "GET",
44660702 12468 "name" : "index",
56122987 12469 "parameters" : {
44660702 12470 "additionalProperties" : 0,
56122987
DM
12471 "properties" : {
12472 "node" : {
12473 "description" : "The cluster node name.",
44660702 12474 "format" : "pve-node",
013dc89f
DM
12475 "type" : "string",
12476 "typetext" : "<string>"
56122987
DM
12477 },
12478 "vmid" : {
44660702 12479 "description" : "The (unique) ID of the VM.",
56122987 12480 "format" : "pve-vmid",
8dd66e12
TL
12481 "maximum" : 999999999,
12482 "minimum" : 100,
4bd7df8b 12483 "type" : "integer",
8dd66e12 12484 "typetext" : "<integer> (100 - 999999999)"
56122987 12485 }
44660702 12486 }
56122987 12487 },
56122987 12488 "permissions" : {
27a7acb2
DM
12489 "user" : "all"
12490 },
12491 "returns" : {
12492 "items" : {
12493 "properties" : {},
12494 "type" : "object"
12495 },
12496 "links" : [
12497 {
12498 "href" : "{name}",
12499 "rel" : "child"
12500 }
12501 ],
12502 "type" : "array"
12503 }
12504 }
12505 },
12506 "leaf" : 0,
12507 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
12508 "text" : "firewall"
12509 },
12510 {
12511 "children" : [
12512 {
12513 "info" : {
12514 "POST" : {
e9cd3bd4 12515 "allowtoken" : 1,
27a7acb2
DM
12516 "description" : "Execute fsfreeze-freeze.",
12517 "method" : "POST",
12518 "name" : "fsfreeze-freeze",
12519 "parameters" : {
12520 "additionalProperties" : 0,
12521 "properties" : {
12522 "node" : {
12523 "description" : "The cluster node name.",
12524 "format" : "pve-node",
12525 "type" : "string",
12526 "typetext" : "<string>"
12527 },
12528 "vmid" : {
12529 "description" : "The (unique) ID of the VM.",
12530 "format" : "pve-vmid",
8dd66e12
TL
12531 "maximum" : 999999999,
12532 "minimum" : 100,
27a7acb2 12533 "type" : "integer",
8dd66e12 12534 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12535 }
12536 }
12537 },
12538 "permissions" : {
12539 "check" : [
12540 "perm",
12541 "/vms/{vmid}",
12542 [
12543 "VM.Monitor"
12544 ]
12545 ]
12546 },
12547 "protected" : 1,
12548 "proxyto" : "node",
12549 "returns" : {
12550 "description" : "Returns an object with a single `result` property.",
12551 "type" : "object"
12552 }
12553 }
12554 },
12555 "leaf" : 1,
12556 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
12557 "text" : "fsfreeze-freeze"
12558 },
12559 {
12560 "info" : {
12561 "POST" : {
e9cd3bd4 12562 "allowtoken" : 1,
27a7acb2
DM
12563 "description" : "Execute fsfreeze-status.",
12564 "method" : "POST",
12565 "name" : "fsfreeze-status",
12566 "parameters" : {
12567 "additionalProperties" : 0,
12568 "properties" : {
12569 "node" : {
12570 "description" : "The cluster node name.",
12571 "format" : "pve-node",
12572 "type" : "string",
12573 "typetext" : "<string>"
12574 },
12575 "vmid" : {
12576 "description" : "The (unique) ID of the VM.",
12577 "format" : "pve-vmid",
8dd66e12
TL
12578 "maximum" : 999999999,
12579 "minimum" : 100,
27a7acb2 12580 "type" : "integer",
8dd66e12 12581 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12582 }
12583 }
12584 },
12585 "permissions" : {
12586 "check" : [
12587 "perm",
12588 "/vms/{vmid}",
12589 [
12590 "VM.Monitor"
12591 ]
12592 ]
12593 },
12594 "protected" : 1,
12595 "proxyto" : "node",
12596 "returns" : {
12597 "description" : "Returns an object with a single `result` property.",
12598 "type" : "object"
12599 }
12600 }
12601 },
12602 "leaf" : 1,
12603 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
12604 "text" : "fsfreeze-status"
12605 },
12606 {
12607 "info" : {
12608 "POST" : {
e9cd3bd4 12609 "allowtoken" : 1,
27a7acb2
DM
12610 "description" : "Execute fsfreeze-thaw.",
12611 "method" : "POST",
12612 "name" : "fsfreeze-thaw",
12613 "parameters" : {
12614 "additionalProperties" : 0,
12615 "properties" : {
12616 "node" : {
12617 "description" : "The cluster node name.",
12618 "format" : "pve-node",
12619 "type" : "string",
12620 "typetext" : "<string>"
12621 },
12622 "vmid" : {
12623 "description" : "The (unique) ID of the VM.",
12624 "format" : "pve-vmid",
8dd66e12
TL
12625 "maximum" : 999999999,
12626 "minimum" : 100,
27a7acb2 12627 "type" : "integer",
8dd66e12 12628 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12629 }
12630 }
12631 },
12632 "permissions" : {
12633 "check" : [
12634 "perm",
12635 "/vms/{vmid}",
12636 [
12637 "VM.Monitor"
12638 ]
12639 ]
12640 },
12641 "protected" : 1,
12642 "proxyto" : "node",
12643 "returns" : {
12644 "description" : "Returns an object with a single `result` property.",
12645 "type" : "object"
12646 }
12647 }
12648 },
12649 "leaf" : 1,
12650 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
12651 "text" : "fsfreeze-thaw"
12652 },
12653 {
12654 "info" : {
12655 "POST" : {
e9cd3bd4 12656 "allowtoken" : 1,
27a7acb2
DM
12657 "description" : "Execute fstrim.",
12658 "method" : "POST",
12659 "name" : "fstrim",
12660 "parameters" : {
12661 "additionalProperties" : 0,
12662 "properties" : {
12663 "node" : {
12664 "description" : "The cluster node name.",
12665 "format" : "pve-node",
12666 "type" : "string",
12667 "typetext" : "<string>"
12668 },
12669 "vmid" : {
12670 "description" : "The (unique) ID of the VM.",
12671 "format" : "pve-vmid",
8dd66e12
TL
12672 "maximum" : 999999999,
12673 "minimum" : 100,
27a7acb2 12674 "type" : "integer",
8dd66e12 12675 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12676 }
12677 }
12678 },
12679 "permissions" : {
12680 "check" : [
12681 "perm",
12682 "/vms/{vmid}",
12683 [
12684 "VM.Monitor"
12685 ]
12686 ]
12687 },
12688 "protected" : 1,
12689 "proxyto" : "node",
12690 "returns" : {
12691 "description" : "Returns an object with a single `result` property.",
12692 "type" : "object"
12693 }
12694 }
12695 },
12696 "leaf" : 1,
12697 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
12698 "text" : "fstrim"
12699 },
12700 {
12701 "info" : {
12702 "GET" : {
e9cd3bd4 12703 "allowtoken" : 1,
27a7acb2
DM
12704 "description" : "Execute get-fsinfo.",
12705 "method" : "GET",
12706 "name" : "get-fsinfo",
12707 "parameters" : {
12708 "additionalProperties" : 0,
12709 "properties" : {
12710 "node" : {
12711 "description" : "The cluster node name.",
12712 "format" : "pve-node",
12713 "type" : "string",
12714 "typetext" : "<string>"
12715 },
12716 "vmid" : {
12717 "description" : "The (unique) ID of the VM.",
12718 "format" : "pve-vmid",
8dd66e12
TL
12719 "maximum" : 999999999,
12720 "minimum" : 100,
27a7acb2 12721 "type" : "integer",
8dd66e12 12722 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12723 }
12724 }
12725 },
12726 "permissions" : {
12727 "check" : [
12728 "perm",
12729 "/vms/{vmid}",
12730 [
12731 "VM.Monitor"
12732 ]
12733 ]
12734 },
12735 "protected" : 1,
12736 "proxyto" : "node",
12737 "returns" : {
12738 "description" : "Returns an object with a single `result` property.",
12739 "type" : "object"
12740 }
12741 }
12742 },
12743 "leaf" : 1,
12744 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
12745 "text" : "get-fsinfo"
12746 },
12747 {
12748 "info" : {
12749 "GET" : {
e9cd3bd4 12750 "allowtoken" : 1,
27a7acb2
DM
12751 "description" : "Execute get-host-name.",
12752 "method" : "GET",
12753 "name" : "get-host-name",
12754 "parameters" : {
12755 "additionalProperties" : 0,
12756 "properties" : {
12757 "node" : {
12758 "description" : "The cluster node name.",
12759 "format" : "pve-node",
12760 "type" : "string",
12761 "typetext" : "<string>"
12762 },
12763 "vmid" : {
12764 "description" : "The (unique) ID of the VM.",
12765 "format" : "pve-vmid",
8dd66e12
TL
12766 "maximum" : 999999999,
12767 "minimum" : 100,
27a7acb2 12768 "type" : "integer",
8dd66e12 12769 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12770 }
12771 }
12772 },
12773 "permissions" : {
12774 "check" : [
12775 "perm",
12776 "/vms/{vmid}",
12777 [
12778 "VM.Monitor"
12779 ]
12780 ]
12781 },
12782 "protected" : 1,
12783 "proxyto" : "node",
12784 "returns" : {
12785 "description" : "Returns an object with a single `result` property.",
12786 "type" : "object"
12787 }
12788 }
12789 },
12790 "leaf" : 1,
12791 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
12792 "text" : "get-host-name"
12793 },
12794 {
12795 "info" : {
12796 "GET" : {
e9cd3bd4 12797 "allowtoken" : 1,
27a7acb2
DM
12798 "description" : "Execute get-memory-block-info.",
12799 "method" : "GET",
12800 "name" : "get-memory-block-info",
12801 "parameters" : {
12802 "additionalProperties" : 0,
12803 "properties" : {
12804 "node" : {
12805 "description" : "The cluster node name.",
12806 "format" : "pve-node",
12807 "type" : "string",
12808 "typetext" : "<string>"
12809 },
12810 "vmid" : {
12811 "description" : "The (unique) ID of the VM.",
12812 "format" : "pve-vmid",
8dd66e12
TL
12813 "maximum" : 999999999,
12814 "minimum" : 100,
27a7acb2 12815 "type" : "integer",
8dd66e12 12816 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12817 }
12818 }
12819 },
12820 "permissions" : {
12821 "check" : [
12822 "perm",
12823 "/vms/{vmid}",
12824 [
12825 "VM.Monitor"
12826 ]
12827 ]
12828 },
12829 "protected" : 1,
12830 "proxyto" : "node",
12831 "returns" : {
12832 "description" : "Returns an object with a single `result` property.",
12833 "type" : "object"
12834 }
12835 }
12836 },
12837 "leaf" : 1,
12838 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
12839 "text" : "get-memory-block-info"
12840 },
12841 {
12842 "info" : {
12843 "GET" : {
e9cd3bd4 12844 "allowtoken" : 1,
27a7acb2
DM
12845 "description" : "Execute get-memory-blocks.",
12846 "method" : "GET",
12847 "name" : "get-memory-blocks",
12848 "parameters" : {
12849 "additionalProperties" : 0,
12850 "properties" : {
12851 "node" : {
12852 "description" : "The cluster node name.",
12853 "format" : "pve-node",
12854 "type" : "string",
12855 "typetext" : "<string>"
12856 },
12857 "vmid" : {
12858 "description" : "The (unique) ID of the VM.",
12859 "format" : "pve-vmid",
8dd66e12
TL
12860 "maximum" : 999999999,
12861 "minimum" : 100,
27a7acb2 12862 "type" : "integer",
8dd66e12 12863 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12864 }
12865 }
12866 },
12867 "permissions" : {
12868 "check" : [
12869 "perm",
12870 "/vms/{vmid}",
12871 [
12872 "VM.Monitor"
12873 ]
12874 ]
12875 },
12876 "protected" : 1,
12877 "proxyto" : "node",
12878 "returns" : {
12879 "description" : "Returns an object with a single `result` property.",
12880 "type" : "object"
12881 }
12882 }
12883 },
12884 "leaf" : 1,
12885 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
12886 "text" : "get-memory-blocks"
12887 },
12888 {
12889 "info" : {
12890 "GET" : {
e9cd3bd4 12891 "allowtoken" : 1,
27a7acb2
DM
12892 "description" : "Execute get-osinfo.",
12893 "method" : "GET",
12894 "name" : "get-osinfo",
12895 "parameters" : {
12896 "additionalProperties" : 0,
12897 "properties" : {
12898 "node" : {
12899 "description" : "The cluster node name.",
12900 "format" : "pve-node",
12901 "type" : "string",
12902 "typetext" : "<string>"
12903 },
12904 "vmid" : {
12905 "description" : "The (unique) ID of the VM.",
12906 "format" : "pve-vmid",
8dd66e12
TL
12907 "maximum" : 999999999,
12908 "minimum" : 100,
27a7acb2 12909 "type" : "integer",
8dd66e12 12910 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12911 }
12912 }
12913 },
12914 "permissions" : {
12915 "check" : [
12916 "perm",
12917 "/vms/{vmid}",
12918 [
12919 "VM.Monitor"
12920 ]
12921 ]
12922 },
12923 "protected" : 1,
12924 "proxyto" : "node",
12925 "returns" : {
12926 "description" : "Returns an object with a single `result` property.",
12927 "type" : "object"
12928 }
12929 }
12930 },
12931 "leaf" : 1,
12932 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
12933 "text" : "get-osinfo"
12934 },
12935 {
12936 "info" : {
12937 "GET" : {
e9cd3bd4 12938 "allowtoken" : 1,
27a7acb2
DM
12939 "description" : "Execute get-time.",
12940 "method" : "GET",
12941 "name" : "get-time",
12942 "parameters" : {
12943 "additionalProperties" : 0,
12944 "properties" : {
12945 "node" : {
12946 "description" : "The cluster node name.",
12947 "format" : "pve-node",
12948 "type" : "string",
12949 "typetext" : "<string>"
12950 },
12951 "vmid" : {
12952 "description" : "The (unique) ID of the VM.",
12953 "format" : "pve-vmid",
8dd66e12
TL
12954 "maximum" : 999999999,
12955 "minimum" : 100,
27a7acb2 12956 "type" : "integer",
8dd66e12 12957 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12958 }
12959 }
12960 },
12961 "permissions" : {
12962 "check" : [
12963 "perm",
12964 "/vms/{vmid}",
12965 [
12966 "VM.Monitor"
12967 ]
12968 ]
12969 },
12970 "protected" : 1,
12971 "proxyto" : "node",
12972 "returns" : {
12973 "description" : "Returns an object with a single `result` property.",
12974 "type" : "object"
12975 }
12976 }
12977 },
12978 "leaf" : 1,
12979 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
12980 "text" : "get-time"
12981 },
12982 {
12983 "info" : {
12984 "GET" : {
e9cd3bd4 12985 "allowtoken" : 1,
27a7acb2
DM
12986 "description" : "Execute get-timezone.",
12987 "method" : "GET",
12988 "name" : "get-timezone",
12989 "parameters" : {
12990 "additionalProperties" : 0,
12991 "properties" : {
12992 "node" : {
12993 "description" : "The cluster node name.",
12994 "format" : "pve-node",
12995 "type" : "string",
12996 "typetext" : "<string>"
12997 },
12998 "vmid" : {
12999 "description" : "The (unique) ID of the VM.",
13000 "format" : "pve-vmid",
8dd66e12
TL
13001 "maximum" : 999999999,
13002 "minimum" : 100,
27a7acb2 13003 "type" : "integer",
8dd66e12 13004 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13005 }
13006 }
13007 },
13008 "permissions" : {
13009 "check" : [
13010 "perm",
13011 "/vms/{vmid}",
13012 [
13013 "VM.Monitor"
13014 ]
13015 ]
13016 },
13017 "protected" : 1,
13018 "proxyto" : "node",
13019 "returns" : {
13020 "description" : "Returns an object with a single `result` property.",
13021 "type" : "object"
13022 }
13023 }
13024 },
13025 "leaf" : 1,
13026 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
13027 "text" : "get-timezone"
13028 },
13029 {
13030 "info" : {
13031 "GET" : {
e9cd3bd4 13032 "allowtoken" : 1,
27a7acb2
DM
13033 "description" : "Execute get-users.",
13034 "method" : "GET",
13035 "name" : "get-users",
13036 "parameters" : {
13037 "additionalProperties" : 0,
13038 "properties" : {
13039 "node" : {
13040 "description" : "The cluster node name.",
13041 "format" : "pve-node",
13042 "type" : "string",
13043 "typetext" : "<string>"
13044 },
13045 "vmid" : {
13046 "description" : "The (unique) ID of the VM.",
13047 "format" : "pve-vmid",
8dd66e12
TL
13048 "maximum" : 999999999,
13049 "minimum" : 100,
27a7acb2 13050 "type" : "integer",
8dd66e12 13051 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13052 }
13053 }
13054 },
13055 "permissions" : {
13056 "check" : [
13057 "perm",
13058 "/vms/{vmid}",
13059 [
13060 "VM.Monitor"
13061 ]
13062 ]
13063 },
13064 "protected" : 1,
13065 "proxyto" : "node",
13066 "returns" : {
13067 "description" : "Returns an object with a single `result` property.",
13068 "type" : "object"
13069 }
13070 }
13071 },
13072 "leaf" : 1,
13073 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
13074 "text" : "get-users"
13075 },
13076 {
13077 "info" : {
13078 "GET" : {
e9cd3bd4 13079 "allowtoken" : 1,
27a7acb2
DM
13080 "description" : "Execute get-vcpus.",
13081 "method" : "GET",
13082 "name" : "get-vcpus",
13083 "parameters" : {
13084 "additionalProperties" : 0,
13085 "properties" : {
13086 "node" : {
13087 "description" : "The cluster node name.",
13088 "format" : "pve-node",
13089 "type" : "string",
13090 "typetext" : "<string>"
13091 },
13092 "vmid" : {
13093 "description" : "The (unique) ID of the VM.",
13094 "format" : "pve-vmid",
8dd66e12
TL
13095 "maximum" : 999999999,
13096 "minimum" : 100,
27a7acb2 13097 "type" : "integer",
8dd66e12 13098 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13099 }
13100 }
13101 },
13102 "permissions" : {
13103 "check" : [
13104 "perm",
13105 "/vms/{vmid}",
13106 [
13107 "VM.Monitor"
13108 ]
13109 ]
13110 },
13111 "protected" : 1,
13112 "proxyto" : "node",
13113 "returns" : {
13114 "description" : "Returns an object with a single `result` property.",
13115 "type" : "object"
13116 }
13117 }
13118 },
13119 "leaf" : 1,
13120 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
13121 "text" : "get-vcpus"
13122 },
13123 {
13124 "info" : {
13125 "GET" : {
e9cd3bd4 13126 "allowtoken" : 1,
27a7acb2
DM
13127 "description" : "Execute info.",
13128 "method" : "GET",
13129 "name" : "info",
13130 "parameters" : {
13131 "additionalProperties" : 0,
13132 "properties" : {
13133 "node" : {
13134 "description" : "The cluster node name.",
13135 "format" : "pve-node",
13136 "type" : "string",
13137 "typetext" : "<string>"
13138 },
13139 "vmid" : {
13140 "description" : "The (unique) ID of the VM.",
13141 "format" : "pve-vmid",
8dd66e12
TL
13142 "maximum" : 999999999,
13143 "minimum" : 100,
27a7acb2 13144 "type" : "integer",
8dd66e12 13145 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13146 }
13147 }
13148 },
13149 "permissions" : {
13150 "check" : [
13151 "perm",
13152 "/vms/{vmid}",
13153 [
13154 "VM.Monitor"
13155 ]
13156 ]
13157 },
13158 "protected" : 1,
13159 "proxyto" : "node",
13160 "returns" : {
13161 "description" : "Returns an object with a single `result` property.",
13162 "type" : "object"
13163 }
13164 }
13165 },
13166 "leaf" : 1,
13167 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
13168 "text" : "info"
13169 },
13170 {
13171 "info" : {
13172 "GET" : {
e9cd3bd4 13173 "allowtoken" : 1,
27a7acb2
DM
13174 "description" : "Execute network-get-interfaces.",
13175 "method" : "GET",
13176 "name" : "network-get-interfaces",
13177 "parameters" : {
13178 "additionalProperties" : 0,
13179 "properties" : {
13180 "node" : {
13181 "description" : "The cluster node name.",
13182 "format" : "pve-node",
13183 "type" : "string",
13184 "typetext" : "<string>"
13185 },
13186 "vmid" : {
13187 "description" : "The (unique) ID of the VM.",
13188 "format" : "pve-vmid",
8dd66e12
TL
13189 "maximum" : 999999999,
13190 "minimum" : 100,
27a7acb2 13191 "type" : "integer",
8dd66e12 13192 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13193 }
13194 }
13195 },
13196 "permissions" : {
13197 "check" : [
13198 "perm",
13199 "/vms/{vmid}",
13200 [
13201 "VM.Monitor"
13202 ]
13203 ]
13204 },
13205 "protected" : 1,
13206 "proxyto" : "node",
13207 "returns" : {
13208 "description" : "Returns an object with a single `result` property.",
13209 "type" : "object"
13210 }
13211 }
13212 },
13213 "leaf" : 1,
13214 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
13215 "text" : "network-get-interfaces"
13216 },
13217 {
13218 "info" : {
13219 "POST" : {
e9cd3bd4 13220 "allowtoken" : 1,
27a7acb2
DM
13221 "description" : "Execute ping.",
13222 "method" : "POST",
13223 "name" : "ping",
13224 "parameters" : {
13225 "additionalProperties" : 0,
13226 "properties" : {
13227 "node" : {
13228 "description" : "The cluster node name.",
13229 "format" : "pve-node",
13230 "type" : "string",
13231 "typetext" : "<string>"
13232 },
13233 "vmid" : {
13234 "description" : "The (unique) ID of the VM.",
13235 "format" : "pve-vmid",
8dd66e12
TL
13236 "maximum" : 999999999,
13237 "minimum" : 100,
27a7acb2 13238 "type" : "integer",
8dd66e12 13239 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13240 }
13241 }
13242 },
13243 "permissions" : {
13244 "check" : [
13245 "perm",
13246 "/vms/{vmid}",
13247 [
13248 "VM.Monitor"
13249 ]
13250 ]
13251 },
13252 "protected" : 1,
13253 "proxyto" : "node",
13254 "returns" : {
13255 "description" : "Returns an object with a single `result` property.",
13256 "type" : "object"
13257 }
13258 }
13259 },
13260 "leaf" : 1,
13261 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
13262 "text" : "ping"
13263 },
13264 {
13265 "info" : {
13266 "POST" : {
e9cd3bd4 13267 "allowtoken" : 1,
27a7acb2
DM
13268 "description" : "Execute shutdown.",
13269 "method" : "POST",
13270 "name" : "shutdown",
13271 "parameters" : {
13272 "additionalProperties" : 0,
13273 "properties" : {
13274 "node" : {
13275 "description" : "The cluster node name.",
13276 "format" : "pve-node",
13277 "type" : "string",
13278 "typetext" : "<string>"
13279 },
13280 "vmid" : {
13281 "description" : "The (unique) ID of the VM.",
13282 "format" : "pve-vmid",
8dd66e12
TL
13283 "maximum" : 999999999,
13284 "minimum" : 100,
27a7acb2 13285 "type" : "integer",
8dd66e12 13286 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13287 }
13288 }
13289 },
13290 "permissions" : {
13291 "check" : [
13292 "perm",
13293 "/vms/{vmid}",
13294 [
13295 "VM.Monitor"
13296 ]
13297 ]
13298 },
13299 "protected" : 1,
13300 "proxyto" : "node",
13301 "returns" : {
13302 "description" : "Returns an object with a single `result` property.",
13303 "type" : "object"
13304 }
13305 }
13306 },
13307 "leaf" : 1,
13308 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
13309 "text" : "shutdown"
13310 },
13311 {
13312 "info" : {
13313 "POST" : {
e9cd3bd4 13314 "allowtoken" : 1,
27a7acb2
DM
13315 "description" : "Execute suspend-disk.",
13316 "method" : "POST",
13317 "name" : "suspend-disk",
13318 "parameters" : {
13319 "additionalProperties" : 0,
13320 "properties" : {
13321 "node" : {
13322 "description" : "The cluster node name.",
13323 "format" : "pve-node",
13324 "type" : "string",
13325 "typetext" : "<string>"
13326 },
13327 "vmid" : {
13328 "description" : "The (unique) ID of the VM.",
13329 "format" : "pve-vmid",
8dd66e12
TL
13330 "maximum" : 999999999,
13331 "minimum" : 100,
27a7acb2 13332 "type" : "integer",
8dd66e12 13333 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13334 }
13335 }
13336 },
13337 "permissions" : {
13338 "check" : [
13339 "perm",
13340 "/vms/{vmid}",
13341 [
13342 "VM.Monitor"
13343 ]
13344 ]
13345 },
13346 "protected" : 1,
13347 "proxyto" : "node",
13348 "returns" : {
13349 "description" : "Returns an object with a single `result` property.",
13350 "type" : "object"
13351 }
13352 }
13353 },
13354 "leaf" : 1,
13355 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
13356 "text" : "suspend-disk"
13357 },
13358 {
13359 "info" : {
13360 "POST" : {
e9cd3bd4 13361 "allowtoken" : 1,
27a7acb2
DM
13362 "description" : "Execute suspend-hybrid.",
13363 "method" : "POST",
13364 "name" : "suspend-hybrid",
13365 "parameters" : {
13366 "additionalProperties" : 0,
13367 "properties" : {
13368 "node" : {
13369 "description" : "The cluster node name.",
13370 "format" : "pve-node",
13371 "type" : "string",
13372 "typetext" : "<string>"
13373 },
13374 "vmid" : {
13375 "description" : "The (unique) ID of the VM.",
13376 "format" : "pve-vmid",
8dd66e12
TL
13377 "maximum" : 999999999,
13378 "minimum" : 100,
27a7acb2 13379 "type" : "integer",
8dd66e12 13380 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13381 }
13382 }
13383 },
13384 "permissions" : {
13385 "check" : [
13386 "perm",
13387 "/vms/{vmid}",
13388 [
13389 "VM.Monitor"
13390 ]
13391 ]
13392 },
13393 "protected" : 1,
13394 "proxyto" : "node",
13395 "returns" : {
13396 "description" : "Returns an object with a single `result` property.",
13397 "type" : "object"
13398 }
13399 }
13400 },
13401 "leaf" : 1,
13402 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
13403 "text" : "suspend-hybrid"
13404 },
13405 {
13406 "info" : {
13407 "POST" : {
e9cd3bd4 13408 "allowtoken" : 1,
27a7acb2
DM
13409 "description" : "Execute suspend-ram.",
13410 "method" : "POST",
13411 "name" : "suspend-ram",
13412 "parameters" : {
13413 "additionalProperties" : 0,
13414 "properties" : {
13415 "node" : {
13416 "description" : "The cluster node name.",
13417 "format" : "pve-node",
13418 "type" : "string",
13419 "typetext" : "<string>"
13420 },
13421 "vmid" : {
13422 "description" : "The (unique) ID of the VM.",
13423 "format" : "pve-vmid",
8dd66e12
TL
13424 "maximum" : 999999999,
13425 "minimum" : 100,
27a7acb2 13426 "type" : "integer",
8dd66e12 13427 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13428 }
13429 }
13430 },
13431 "permissions" : {
13432 "check" : [
13433 "perm",
13434 "/vms/{vmid}",
13435 [
13436 "VM.Monitor"
13437 ]
13438 ]
13439 },
13440 "protected" : 1,
13441 "proxyto" : "node",
13442 "returns" : {
13443 "description" : "Returns an object with a single `result` property.",
13444 "type" : "object"
13445 }
13446 }
13447 },
13448 "leaf" : 1,
13449 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
13450 "text" : "suspend-ram"
4d47f125
TL
13451 },
13452 {
13453 "info" : {
13454 "POST" : {
e9cd3bd4 13455 "allowtoken" : 1,
4d47f125
TL
13456 "description" : "Sets the password for the given user to the given password",
13457 "method" : "POST",
13458 "name" : "set-user-password",
13459 "parameters" : {
13460 "additionalProperties" : 0,
13461 "properties" : {
13462 "crypted" : {
13463 "default" : 0,
13464 "description" : "set to 1 if the password has already been passed through crypt()",
13465 "optional" : 1,
13466 "type" : "boolean",
13467 "typetext" : "<boolean>"
13468 },
13469 "node" : {
13470 "description" : "The cluster node name.",
13471 "format" : "pve-node",
13472 "type" : "string",
13473 "typetext" : "<string>"
13474 },
13475 "password" : {
13476 "description" : "The new password.",
1c532546 13477 "maxLength" : 1024,
4d47f125
TL
13478 "minLength" : 5,
13479 "type" : "string",
13480 "typetext" : "<string>"
13481 },
13482 "username" : {
13483 "description" : "The user to set the password for.",
13484 "type" : "string",
13485 "typetext" : "<string>"
13486 },
13487 "vmid" : {
13488 "description" : "The (unique) ID of the VM.",
13489 "format" : "pve-vmid",
8dd66e12
TL
13490 "maximum" : 999999999,
13491 "minimum" : 100,
4d47f125 13492 "type" : "integer",
8dd66e12 13493 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13494 }
13495 }
27a7acb2 13496 },
4d47f125
TL
13497 "permissions" : {
13498 "check" : [
13499 "perm",
13500 "/vms/{vmid}",
13501 [
13502 "VM.Monitor"
13503 ]
13504 ]
13505 },
13506 "protected" : 1,
13507 "proxyto" : "node",
13508 "returns" : {
13509 "description" : "Returns an object with a single `result` property.",
13510 "type" : "object"
27a7acb2
DM
13511 }
13512 }
13513 },
4d47f125
TL
13514 "leaf" : 1,
13515 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
13516 "text" : "set-user-password"
27a7acb2 13517 },
4d47f125
TL
13518 {
13519 "info" : {
13520 "POST" : {
e9cd3bd4 13521 "allowtoken" : 1,
4d47f125
TL
13522 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
13523 "method" : "POST",
13524 "name" : "exec",
13525 "parameters" : {
13526 "additionalProperties" : 0,
13527 "properties" : {
13528 "command" : {
4a407cfd
TL
13529 "description" : "The command as a list of program + arguments.",
13530 "items" : {
13531 "description" : "A single part of the program + arguments.",
13532 "format" : "string"
13533 },
13534 "type" : "array",
13535 "typetext" : "<array>"
c5aa7e14
TL
13536 },
13537 "input-data" : {
13538 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
13539 "maxLength" : 65536,
13540 "optional" : 1,
4d47f125
TL
13541 "type" : "string",
13542 "typetext" : "<string>"
13543 },
13544 "node" : {
13545 "description" : "The cluster node name.",
13546 "format" : "pve-node",
13547 "type" : "string",
13548 "typetext" : "<string>"
13549 },
13550 "vmid" : {
13551 "description" : "The (unique) ID of the VM.",
13552 "format" : "pve-vmid",
8dd66e12
TL
13553 "maximum" : 999999999,
13554 "minimum" : 100,
4d47f125 13555 "type" : "integer",
8dd66e12 13556 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13557 }
13558 }
27a7acb2 13559 },
4d47f125
TL
13560 "permissions" : {
13561 "check" : [
13562 "perm",
13563 "/vms/{vmid}",
13564 [
13565 "VM.Monitor"
13566 ]
13567 ]
27a7acb2 13568 },
4d47f125
TL
13569 "protected" : 1,
13570 "proxyto" : "node",
13571 "returns" : {
13572 "properties" : {
13573 "pid" : {
13574 "description" : "The PID of the process started by the guest-agent.",
13575 "type" : "integer"
13576 }
13577 },
13578 "type" : "object"
27a7acb2
DM
13579 }
13580 }
13581 },
4d47f125
TL
13582 "leaf" : 1,
13583 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
13584 "text" : "exec"
13585 },
13586 {
13587 "info" : {
13588 "GET" : {
e9cd3bd4 13589 "allowtoken" : 1,
4d47f125
TL
13590 "description" : "Gets the status of the given pid started by the guest-agent",
13591 "method" : "GET",
13592 "name" : "exec-status",
13593 "parameters" : {
13594 "additionalProperties" : 0,
13595 "properties" : {
13596 "node" : {
13597 "description" : "The cluster node name.",
13598 "format" : "pve-node",
13599 "type" : "string",
13600 "typetext" : "<string>"
13601 },
13602 "pid" : {
13603 "description" : "The PID to query",
13604 "type" : "integer",
13605 "typetext" : "<integer>"
13606 },
13607 "vmid" : {
13608 "description" : "The (unique) ID of the VM.",
13609 "format" : "pve-vmid",
8dd66e12
TL
13610 "maximum" : 999999999,
13611 "minimum" : 100,
4d47f125 13612 "type" : "integer",
8dd66e12 13613 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13614 }
13615 }
56122987 13616 },
4d47f125
TL
13617 "permissions" : {
13618 "check" : [
13619 "perm",
13620 "/vms/{vmid}",
13621 [
13622 "VM.Monitor"
13623 ]
13624 ]
56122987 13625 },
4d47f125
TL
13626 "protected" : 1,
13627 "proxyto" : "node",
13628 "returns" : {
13629 "properties" : {
13630 "err-data" : {
13631 "description" : "stderr of the process",
13632 "optional" : 1,
13633 "type" : "string"
13634 },
13635 "err-truncated" : {
13636 "description" : "true if stderr was not fully captured",
13637 "optional" : 1,
13638 "type" : "boolean"
13639 },
13640 "exitcode" : {
13641 "description" : "process exit code if it was normally terminated.",
13642 "optional" : 1,
13643 "type" : "integer"
13644 },
13645 "exited" : {
13646 "description" : "Tells if the given command has exited yet.",
13647 "type" : "boolean"
13648 },
13649 "out-data" : {
13650 "description" : "stdout of the process",
13651 "optional" : 1,
13652 "type" : "string"
13653 },
13654 "out-truncated" : {
13655 "description" : "true if stdout was not fully captured",
13656 "optional" : 1,
13657 "type" : "boolean"
13658 },
13659 "signal" : {
13660 "description" : "signal number or exception code if the process was abnormally terminated.",
13661 "optional" : 1,
13662 "type" : "integer"
13663 }
13664 },
13665 "type" : "object"
56122987
DM
13666 }
13667 }
13668 },
4d47f125
TL
13669 "leaf" : 1,
13670 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
13671 "text" : "exec-status"
13672 },
13673 {
13674 "info" : {
13675 "GET" : {
e9cd3bd4 13676 "allowtoken" : 1,
4d47f125
TL
13677 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
13678 "method" : "GET",
13679 "name" : "file-read",
13680 "parameters" : {
13681 "additionalProperties" : 0,
13682 "properties" : {
13683 "file" : {
13684 "description" : "The path to the file",
13685 "type" : "string",
13686 "typetext" : "<string>"
13687 },
13688 "node" : {
13689 "description" : "The cluster node name.",
13690 "format" : "pve-node",
13691 "type" : "string",
13692 "typetext" : "<string>"
13693 },
13694 "vmid" : {
13695 "description" : "The (unique) ID of the VM.",
13696 "format" : "pve-vmid",
8dd66e12
TL
13697 "maximum" : 999999999,
13698 "minimum" : 100,
4d47f125 13699 "type" : "integer",
8dd66e12 13700 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13701 }
13702 }
13703 },
13704 "permissions" : {
13705 "check" : [
13706 "perm",
13707 "/vms/{vmid}",
13708 [
13709 "VM.Monitor"
13710 ]
13711 ]
13712 },
13713 "protected" : 1,
13714 "proxyto" : "node",
13715 "returns" : {
13716 "description" : "Returns an object with a `content` property.",
13717 "properties" : {
13718 "content" : {
13719 "description" : "The content of the file, maximum 16777216",
13720 "type" : "string"
13721 },
13722 "truncated" : {
13723 "description" : "If set to 1, the output is truncated and not complete",
13724 "optional" : 1,
13725 "type" : "boolean"
13726 }
13727 },
13728 "type" : "object"
13729 }
13730 }
56122987 13731 },
4d47f125
TL
13732 "leaf" : 1,
13733 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
13734 "text" : "file-read"
13735 },
13736 {
13737 "info" : {
13738 "POST" : {
e9cd3bd4 13739 "allowtoken" : 1,
4d47f125
TL
13740 "description" : "Writes the given file via guest agent.",
13741 "method" : "POST",
13742 "name" : "file-write",
13743 "parameters" : {
13744 "additionalProperties" : 0,
13745 "properties" : {
13746 "content" : {
13747 "description" : "The content to write into the file.",
13748 "maxLength" : 61440,
13749 "type" : "string",
13750 "typetext" : "<string>"
13751 },
7af2edf9
TL
13752 "encode" : {
13753 "default" : 1,
13754 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
13755 "optional" : 1,
13756 "type" : "boolean",
13757 "typetext" : "<boolean>"
13758 },
4d47f125
TL
13759 "file" : {
13760 "description" : "The path to the file.",
13761 "type" : "string",
13762 "typetext" : "<string>"
13763 },
13764 "node" : {
13765 "description" : "The cluster node name.",
13766 "format" : "pve-node",
13767 "type" : "string",
13768 "typetext" : "<string>"
13769 },
13770 "vmid" : {
13771 "description" : "The (unique) ID of the VM.",
13772 "format" : "pve-vmid",
8dd66e12
TL
13773 "maximum" : 999999999,
13774 "minimum" : 100,
4d47f125 13775 "type" : "integer",
8dd66e12 13776 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13777 }
13778 }
13779 },
13780 "permissions" : {
13781 "check" : [
13782 "perm",
13783 "/vms/{vmid}",
13784 [
13785 "VM.Monitor"
13786 ]
13787 ]
13788 },
13789 "protected" : 1,
13790 "proxyto" : "node",
13791 "returns" : {
13792 "type" : "null"
7aacca6f 13793 }
4d47f125
TL
13794 }
13795 },
13796 "leaf" : 1,
13797 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
13798 "text" : "file-write"
56122987 13799 }
4d47f125 13800 ],
7aacca6f 13801 "info" : {
56122987 13802 "GET" : {
e9cd3bd4 13803 "allowtoken" : 1,
9d2e98ed 13804 "description" : "QEMU Guest Agent command index.",
44660702 13805 "method" : "GET",
4d47f125 13806 "name" : "index",
56122987 13807 "parameters" : {
4d47f125 13808 "additionalProperties" : 1,
56122987
DM
13809 "properties" : {
13810 "node" : {
44660702 13811 "description" : "The cluster node name.",
56122987 13812 "format" : "pve-node",
013dc89f
DM
13813 "type" : "string",
13814 "typetext" : "<string>"
56122987 13815 },
7aacca6f 13816 "vmid" : {
7aacca6f
DM
13817 "description" : "The (unique) ID of the VM.",
13818 "format" : "pve-vmid",
8dd66e12
TL
13819 "maximum" : 999999999,
13820 "minimum" : 100,
4bd7df8b 13821 "type" : "integer",
8dd66e12 13822 "typetext" : "<integer> (100 - 999999999)"
56122987 13823 }
44660702 13824 }
56122987 13825 },
56122987 13826 "permissions" : {
4d47f125 13827 "user" : "all"
56122987 13828 },
4d47f125 13829 "proxyto" : "node",
7aacca6f 13830 "returns" : {
9d2e98ed 13831 "description" : "Returns the list of QEMU Guest Agent commands",
7aacca6f 13832 "items" : {
44660702
DM
13833 "properties" : {},
13834 "type" : "object"
13835 },
4d47f125
TL
13836 "links" : [
13837 {
13838 "href" : "{name}",
13839 "rel" : "child"
13840 }
13841 ],
44660702 13842 "type" : "array"
7aacca6f 13843 }
4d47f125
TL
13844 },
13845 "POST" : {
e9cd3bd4 13846 "allowtoken" : 1,
9d2e98ed 13847 "description" : "Execute QEMU Guest Agent commands.",
4d47f125
TL
13848 "method" : "POST",
13849 "name" : "agent",
44660702
DM
13850 "parameters" : {
13851 "additionalProperties" : 0,
13852 "properties" : {
4d47f125
TL
13853 "command" : {
13854 "description" : "The QGA command.",
13855 "enum" : [
13856 "fsfreeze-freeze",
13857 "fsfreeze-status",
13858 "fsfreeze-thaw",
13859 "fstrim",
13860 "get-fsinfo",
13861 "get-host-name",
13862 "get-memory-block-info",
13863 "get-memory-blocks",
13864 "get-osinfo",
13865 "get-time",
13866 "get-timezone",
13867 "get-users",
13868 "get-vcpus",
13869 "info",
13870 "network-get-interfaces",
13871 "ping",
13872 "shutdown",
13873 "suspend-disk",
13874 "suspend-hybrid",
13875 "suspend-ram"
13876 ],
13877 "type" : "string"
13878 },
13879 "node" : {
13880 "description" : "The cluster node name.",
13881 "format" : "pve-node",
13882 "type" : "string",
13883 "typetext" : "<string>"
13884 },
13885 "vmid" : {
13886 "description" : "The (unique) ID of the VM.",
13887 "format" : "pve-vmid",
8dd66e12
TL
13888 "maximum" : 999999999,
13889 "minimum" : 100,
4d47f125 13890 "type" : "integer",
8dd66e12 13891 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13892 }
13893 }
13894 },
13895 "permissions" : {
13896 "check" : [
13897 "perm",
13898 "/vms/{vmid}",
13899 [
13900 "VM.Monitor"
13901 ]
13902 ]
13903 },
13904 "protected" : 1,
13905 "proxyto" : "node",
13906 "returns" : {
13907 "description" : "Returns an object with a single `result` property.",
13908 "type" : "object"
13909 }
13910 }
13911 },
13912 "leaf" : 0,
13913 "path" : "/nodes/{node}/qemu/{vmid}/agent",
13914 "text" : "agent"
13915 },
13916 {
13917 "info" : {
13918 "GET" : {
e9cd3bd4 13919 "allowtoken" : 1,
4d47f125
TL
13920 "description" : "Read VM RRD statistics (returns PNG)",
13921 "method" : "GET",
13922 "name" : "rrd",
13923 "parameters" : {
13924 "additionalProperties" : 0,
13925 "properties" : {
13926 "cf" : {
13927 "description" : "The RRD consolidation function",
13928 "enum" : [
13929 "AVERAGE",
13930 "MAX"
13931 ],
44660702 13932 "optional" : 1,
4d47f125
TL
13933 "type" : "string"
13934 },
13935 "ds" : {
13936 "description" : "The list of datasources you want to display.",
13937 "format" : "pve-configid-list",
13938 "type" : "string",
13939 "typetext" : "<string>"
44660702
DM
13940 },
13941 "node" : {
13942 "description" : "The cluster node name.",
13943 "format" : "pve-node",
013dc89f
DM
13944 "type" : "string",
13945 "typetext" : "<string>"
44660702 13946 },
4d47f125
TL
13947 "timeframe" : {
13948 "description" : "Specify the time frame you are interested in.",
13949 "enum" : [
13950 "hour",
13951 "day",
13952 "week",
13953 "month",
13954 "year"
13955 ],
13956 "type" : "string"
13957 },
44660702
DM
13958 "vmid" : {
13959 "description" : "The (unique) ID of the VM.",
13960 "format" : "pve-vmid",
8dd66e12
TL
13961 "maximum" : 999999999,
13962 "minimum" : 100,
4bd7df8b 13963 "type" : "integer",
8dd66e12 13964 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13965 }
13966 }
7aacca6f 13967 },
56122987
DM
13968 "permissions" : {
13969 "check" : [
13970 "perm",
13971 "/vms/{vmid}",
13972 [
44660702
DM
13973 "VM.Audit"
13974 ]
56122987
DM
13975 ]
13976 },
4d47f125 13977 "protected" : 1,
44660702
DM
13978 "returns" : {
13979 "properties" : {
4d47f125 13980 "filename" : {
44660702
DM
13981 "type" : "string"
13982 }
13983 },
13984 "type" : "object"
13985 }
4d47f125
TL
13986 }
13987 },
13988 "leaf" : 1,
13989 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
13990 "text" : "rrd"
13991 },
13992 {
13993 "info" : {
13994 "GET" : {
e9cd3bd4 13995 "allowtoken" : 1,
4d47f125
TL
13996 "description" : "Read VM RRD statistics",
13997 "method" : "GET",
13998 "name" : "rrddata",
13999 "parameters" : {
14000 "additionalProperties" : 0,
14001 "properties" : {
14002 "cf" : {
14003 "description" : "The RRD consolidation function",
14004 "enum" : [
14005 "AVERAGE",
14006 "MAX"
14007 ],
14008 "optional" : 1,
14009 "type" : "string"
14010 },
14011 "node" : {
14012 "description" : "The cluster node name.",
14013 "format" : "pve-node",
14014 "type" : "string",
14015 "typetext" : "<string>"
14016 },
14017 "timeframe" : {
14018 "description" : "Specify the time frame you are interested in.",
14019 "enum" : [
14020 "hour",
14021 "day",
14022 "week",
14023 "month",
14024 "year"
14025 ],
14026 "type" : "string"
14027 },
14028 "vmid" : {
14029 "description" : "The (unique) ID of the VM.",
14030 "format" : "pve-vmid",
8dd66e12
TL
14031 "maximum" : 999999999,
14032 "minimum" : 100,
4d47f125 14033 "type" : "integer",
8dd66e12 14034 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
14035 }
14036 }
14037 },
14038 "permissions" : {
14039 "check" : [
14040 "perm",
14041 "/vms/{vmid}",
14042 [
14043 "VM.Audit"
14044 ]
14045 ]
14046 },
14047 "protected" : 1,
14048 "returns" : {
14049 "items" : {
14050 "properties" : {},
14051 "type" : "object"
14052 },
14053 "type" : "array"
14054 }
14055 }
14056 },
14057 "leaf" : 1,
14058 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
14059 "text" : "rrddata"
14060 },
14061 {
14062 "info" : {
14063 "GET" : {
e9cd3bd4
TL
14064 "allowtoken" : 1,
14065 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
14066 "method" : "GET",
14067 "name" : "vm_config",
56122987 14068 "parameters" : {
44660702 14069 "additionalProperties" : 0,
4d47f125
TL
14070 "properties" : {
14071 "current" : {
14072 "default" : 0,
14073 "description" : "Get current values (instead of pending values).",
14074 "optional" : 1,
14075 "type" : "boolean",
14076 "typetext" : "<boolean>"
14077 },
14078 "node" : {
14079 "description" : "The cluster node name.",
14080 "format" : "pve-node",
14081 "type" : "string",
14082 "typetext" : "<string>"
14083 },
5f26e15b
TL
14084 "snapshot" : {
14085 "description" : "Fetch config values from given snapshot.",
14086 "format" : "pve-configid",
14087 "maxLength" : 40,
14088 "optional" : 1,
14089 "type" : "string",
14090 "typetext" : "<string>"
14091 },
4d47f125
TL
14092 "vmid" : {
14093 "description" : "The (unique) ID of the VM.",
14094 "format" : "pve-vmid",
8dd66e12
TL
14095 "maximum" : 999999999,
14096 "minimum" : 100,
4d47f125 14097 "type" : "integer",
8dd66e12 14098 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
14099 }
14100 }
14101 },
14102 "permissions" : {
14103 "check" : [
14104 "perm",
14105 "/vms/{vmid}",
14106 [
14107 "VM.Audit"
14108 ]
14109 ]
14110 },
14111 "proxyto" : "node",
14112 "returns" : {
e9cd3bd4 14113 "description" : "The VM configuration.",
56122987 14114 "properties" : {
44660702
DM
14115 "acpi" : {
14116 "default" : 1,
14117 "description" : "Enable/disable ACPI.",
14118 "optional" : 1,
4d47f125 14119 "type" : "boolean"
44660702 14120 },
4e7f60c2 14121 "affinity" : {
81a3384d 14122 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
14123 "format" : "pve-cpuset",
14124 "optional" : 1,
14125 "type" : "string"
14126 },
44660702 14127 "agent" : {
9d2e98ed 14128 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
14129 "format" : {
14130 "enabled" : {
14131 "default" : 0,
14132 "default_key" : 1,
9d2e98ed
TL
14133 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
14134 "type" : "boolean"
14135 },
14136 "freeze-fs-on-backup" : {
14137 "default" : 1,
14138 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
14139 "optional" : 1,
4d47f125
TL
14140 "type" : "boolean"
14141 },
14142 "fstrim_cloned_disks" : {
14143 "default" : 0,
d2656385 14144 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
14145 "optional" : 1,
14146 "type" : "boolean"
5c1699e5
TL
14147 },
14148 "type" : {
14149 "default" : "virtio",
14150 "description" : "Select the agent type",
14151 "enum" : [
14152 "virtio",
14153 "isa"
14154 ],
14155 "optional" : 1,
14156 "type" : "string"
4d47f125
TL
14157 }
14158 },
7aacca6f 14159 "optional" : 1,
4d47f125 14160 "type" : "string"
7aacca6f 14161 },
e2d681b3
TL
14162 "arch" : {
14163 "description" : "Virtual processor architecture. Defaults to the host.",
14164 "enum" : [
14165 "x86_64",
14166 "aarch64"
14167 ],
14168 "optional" : 1,
14169 "type" : "string"
14170 },
44660702 14171 "args" : {
c2993fe5 14172 "description" : "Arbitrary arguments passed to kvm.",
44660702 14173 "optional" : 1,
c2993fe5 14174 "type" : "string",
159464a9 14175 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
7aacca6f 14176 },
1c532546
TL
14177 "audio0" : {
14178 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
14179 "format" : {
14180 "device" : {
14181 "description" : "Configure an audio device.",
14182 "enum" : [
14183 "ich9-intel-hda",
14184 "intel-hda",
14185 "AC97"
14186 ],
14187 "type" : "string"
14188 },
14189 "driver" : {
14190 "default" : "spice",
14191 "description" : "Driver backend for the audio device.",
14192 "enum" : [
d2656385
TL
14193 "spice",
14194 "none"
1c532546
TL
14195 ],
14196 "optional" : 1,
14197 "type" : "string"
14198 }
14199 },
14200 "optional" : 1,
14201 "type" : "string"
14202 },
44660702
DM
14203 "autostart" : {
14204 "default" : 0,
14205 "description" : "Automatic restart after crash (currently ignored).",
56122987 14206 "optional" : 1,
4d47f125 14207 "type" : "boolean"
56122987 14208 },
4d47f125 14209 "balloon" : {
9d2e98ed 14210 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125 14211 "minimum" : 0,
7aacca6f 14212 "optional" : 1,
4d47f125 14213 "type" : "integer"
7aacca6f 14214 },
44660702
DM
14215 "bios" : {
14216 "default" : "seabios",
14217 "description" : "Select BIOS implementation.",
14218 "enum" : [
14219 "seabios",
14220 "ovmf"
14221 ],
56122987 14222 "optional" : 1,
44660702 14223 "type" : "string"
7aacca6f 14224 },
44660702 14225 "boot" : {
5370fa8c 14226 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 14227 "format" : "pve-qm-boot",
44660702 14228 "optional" : 1,
44660702
DM
14229 "type" : "string"
14230 },
14231 "bootdisk" : {
4772952b 14232 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
14233 "format" : "pve-qm-bootdisk",
14234 "optional" : 1,
14235 "pattern" : "(ide|sata|scsi|virtio)\\d+",
14236 "type" : "string"
14237 },
14238 "cdrom" : {
14239 "description" : "This is an alias for option -ide2",
de0983cb 14240 "format" : "pve-qm-ide",
44660702 14241 "optional" : 1,
7aacca6f 14242 "type" : "string",
013dc89f 14243 "typetext" : "<volume>"
44660702 14244 },
95895385
TL
14245 "cicustom" : {
14246 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
14247 "format" : "pve-qm-cicustom",
14248 "optional" : 1,
14249 "type" : "string"
14250 },
27a7acb2
DM
14251 "cipassword" : {
14252 "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
14253 "optional" : 1,
4d47f125 14254 "type" : "string"
27a7acb2
DM
14255 },
14256 "citype" : {
14257 "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
14258 "enum" : [
14259 "configdrive2",
d2656385
TL
14260 "nocloud",
14261 "opennebula"
27a7acb2
DM
14262 ],
14263 "optional" : 1,
14264 "type" : "string"
14265 },
159464a9
TL
14266 "ciupgrade" : {
14267 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
14268 "optional" : 1,
14269 "type" : "boolean"
14270 },
27a7acb2
DM
14271 "ciuser" : {
14272 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
14273 "optional" : 1,
4d47f125 14274 "type" : "string"
27a7acb2 14275 },
44660702
DM
14276 "cores" : {
14277 "default" : 1,
14278 "description" : "The number of cores per socket.",
14279 "minimum" : 1,
7aacca6f 14280 "optional" : 1,
4d47f125 14281 "type" : "integer"
7aacca6f 14282 },
44660702
DM
14283 "cpu" : {
14284 "description" : "Emulated CPU type.",
c5aa7e14 14285 "format" : "pve-vm-cpu-conf",
44660702 14286 "optional" : 1,
4d47f125 14287 "type" : "string"
44660702
DM
14288 },
14289 "cpulimit" : {
14290 "default" : 0,
c2993fe5 14291 "description" : "Limit of CPU usage.",
44660702
DM
14292 "maximum" : 128,
14293 "minimum" : 0,
14294 "optional" : 1,
c2993fe5
DM
14295 "type" : "number",
14296 "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
14297 },
14298 "cpuunits" : {
5370fa8c
TL
14299 "default" : "cgroup v1: 1024, cgroup v2: 100",
14300 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 14301 "maximum" : 262144,
7af2edf9 14302 "minimum" : 1,
44660702 14303 "optional" : 1,
c2993fe5 14304 "type" : "integer",
2489d6df 14305 "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 14306 },
44660702 14307 "description" : {
8f4d9c87
TL
14308 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
14309 "maxLength" : 8192,
44660702 14310 "optional" : 1,
4d47f125 14311 "type" : "string"
44660702
DM
14312 },
14313 "digest" : {
4d47f125
TL
14314 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
14315 "type" : "string"
44660702 14316 },
4d47f125 14317 "efidisk0" : {
9d2e98ed 14318 "description" : "Configure a disk for storing EFI vars.",
4d47f125 14319 "format" : {
5370fa8c
TL
14320 "efitype" : {
14321 "default" : "2m",
9d2e98ed 14322 "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
14323 "enum" : [
14324 "2m",
14325 "4m"
14326 ],
14327 "optional" : 1,
14328 "type" : "string"
14329 },
4d47f125
TL
14330 "file" : {
14331 "default_key" : 1,
14332 "description" : "The drive's backing volume.",
14333 "format" : "pve-volume-id-or-qm-path",
14334 "format_description" : "volume",
14335 "type" : "string"
14336 },
14337 "format" : {
14338 "description" : "The drive's backing file's data format.",
14339 "enum" : [
14340 "raw",
14341 "cow",
14342 "qcow",
14343 "qed",
14344 "qcow2",
14345 "vmdk",
14346 "cloop"
14347 ],
14348 "optional" : 1,
14349 "type" : "string"
14350 },
5370fa8c
TL
14351 "pre-enrolled-keys" : {
14352 "default" : 0,
14353 "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.",
14354 "optional" : 1,
14355 "type" : "boolean"
14356 },
4d47f125
TL
14357 "size" : {
14358 "description" : "Disk size. This is purely informational and has no effect.",
14359 "format" : "disk-size",
14360 "format_description" : "DiskSize",
14361 "optional" : 1,
14362 "type" : "string"
14363 },
14364 "volume" : {
14365 "alias" : "file"
14366 }
14367 },
44660702 14368 "optional" : 1,
4d47f125 14369 "type" : "string"
44660702
DM
14370 },
14371 "freeze" : {
14372 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
14373 "optional" : 1,
4d47f125 14374 "type" : "boolean"
44660702 14375 },
5f26e15b
TL
14376 "hookscript" : {
14377 "description" : "Script that will be executed during various steps in the vms lifetime.",
14378 "format" : "pve-volume-id",
14379 "optional" : 1,
14380 "type" : "string"
14381 },
44660702 14382 "hostpci[n]" : {
c2993fe5 14383 "description" : "Map host PCI devices into guest.",
44660702
DM
14384 "format" : "pve-qm-hostpci",
14385 "optional" : 1,
57b78691 14386 "type" : "string",
bb4c8cf8 14387 "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
14388 },
14389 "hotplug" : {
14390 "default" : "network,disk,usb",
4e7f60c2 14391 "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
14392 "format" : "pve-hotplug-features",
14393 "optional" : 1,
4d47f125 14394 "type" : "string"
44660702 14395 },
4bd7df8b
DM
14396 "hugepages" : {
14397 "description" : "Enable/disable hugepages memory.",
14398 "enum" : [
14399 "any",
14400 "2",
14401 "1024"
14402 ],
14403 "optional" : 1,
14404 "type" : "string"
14405 },
44660702 14406 "ide[n]" : {
7af2edf9 14407 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
14408 "format" : {
14409 "aio" : {
14410 "description" : "AIO type to use.",
14411 "enum" : [
14412 "native",
8f4d9c87
TL
14413 "threads",
14414 "io_uring"
56122987 14415 ],
56122987 14416 "optional" : 1,
44660702 14417 "type" : "string"
56122987 14418 },
44660702
DM
14419 "backup" : {
14420 "description" : "Whether the drive should be included when making backups.",
56122987 14421 "optional" : 1,
44660702 14422 "type" : "boolean"
56122987 14423 },
7aacca6f 14424 "bps" : {
de0983cb 14425 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
14426 "format_description" : "bps",
14427 "optional" : 1,
14428 "type" : "integer"
14429 },
de0983cb
DM
14430 "bps_max_length" : {
14431 "description" : "Maximum length of I/O bursts in seconds.",
14432 "format_description" : "seconds",
14433 "minimum" : 1,
14434 "optional" : 1,
14435 "type" : "integer"
14436 },
44660702 14437 "bps_rd" : {
de0983cb 14438 "description" : "Maximum read speed in bytes per second.",
44660702 14439 "format_description" : "bps",
56122987 14440 "optional" : 1,
44660702 14441 "type" : "integer"
56122987 14442 },
de0983cb 14443 "bps_rd_length" : {
5d9c884c
DM
14444 "alias" : "bps_rd_max_length"
14445 },
14446 "bps_rd_max_length" : {
de0983cb
DM
14447 "description" : "Maximum length of read I/O bursts in seconds.",
14448 "format_description" : "seconds",
14449 "minimum" : 1,
14450 "optional" : 1,
14451 "type" : "integer"
14452 },
44660702 14453 "bps_wr" : {
de0983cb 14454 "description" : "Maximum write speed in bytes per second.",
44660702
DM
14455 "format_description" : "bps",
14456 "optional" : 1,
14457 "type" : "integer"
14458 },
de0983cb 14459 "bps_wr_length" : {
5d9c884c
DM
14460 "alias" : "bps_wr_max_length"
14461 },
14462 "bps_wr_max_length" : {
de0983cb
DM
14463 "description" : "Maximum length of write I/O bursts in seconds.",
14464 "format_description" : "seconds",
14465 "minimum" : 1,
14466 "optional" : 1,
14467 "type" : "integer"
14468 },
44660702
DM
14469 "cache" : {
14470 "description" : "The drive's cache mode",
14471 "enum" : [
14472 "none",
14473 "writethrough",
14474 "writeback",
14475 "unsafe",
14476 "directsync"
14477 ],
44660702
DM
14478 "optional" : 1,
14479 "type" : "string"
14480 },
14481 "cyls" : {
14482 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
14483 "optional" : 1,
14484 "type" : "integer"
14485 },
14486 "detect_zeroes" : {
14487 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
14488 "optional" : 1,
14489 "type" : "boolean"
14490 },
14491 "discard" : {
14492 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14493 "enum" : [
14494 "ignore",
14495 "on"
14496 ],
56122987 14497 "optional" : 1,
44660702
DM
14498 "type" : "string"
14499 },
14500 "file" : {
14501 "default_key" : 1,
14502 "description" : "The drive's backing volume.",
14503 "format" : "pve-volume-id-or-qm-path",
14504 "format_description" : "volume",
14505 "type" : "string"
56122987 14506 },
7aacca6f 14507 "format" : {
7aacca6f 14508 "description" : "The drive's backing file's data format.",
56122987 14509 "enum" : [
7aacca6f
DM
14510 "raw",
14511 "cow",
14512 "qcow",
14513 "qed",
14514 "qcow2",
14515 "vmdk",
14516 "cloop"
56122987
DM
14517 ],
14518 "optional" : 1,
56122987
DM
14519 "type" : "string"
14520 },
44660702
DM
14521 "heads" : {
14522 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
14523 "optional" : 1,
14524 "type" : "integer"
7aacca6f 14525 },
44660702 14526 "iops" : {
de0983cb 14527 "description" : "Maximum r/w I/O in operations per second.",
44660702 14528 "format_description" : "iops",
56122987 14529 "optional" : 1,
44660702 14530 "type" : "integer"
56122987 14531 },
44660702 14532 "iops_max" : {
de0983cb 14533 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14534 "format_description" : "iops",
56122987 14535 "optional" : 1,
44660702 14536 "type" : "integer"
56122987 14537 },
de0983cb
DM
14538 "iops_max_length" : {
14539 "description" : "Maximum length of I/O bursts in seconds.",
14540 "format_description" : "seconds",
14541 "minimum" : 1,
14542 "optional" : 1,
14543 "type" : "integer"
14544 },
44660702 14545 "iops_rd" : {
de0983cb 14546 "description" : "Maximum read I/O in operations per second.",
44660702
DM
14547 "format_description" : "iops",
14548 "optional" : 1,
14549 "type" : "integer"
14550 },
de0983cb 14551 "iops_rd_length" : {
5d9c884c 14552 "alias" : "iops_rd_max_length"
de0983cb 14553 },
44660702 14554 "iops_rd_max" : {
de0983cb 14555 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 14556 "format_description" : "iops",
44660702
DM
14557 "optional" : 1,
14558 "type" : "integer"
14559 },
5d9c884c
DM
14560 "iops_rd_max_length" : {
14561 "description" : "Maximum length of read I/O bursts in seconds.",
14562 "format_description" : "seconds",
14563 "minimum" : 1,
14564 "optional" : 1,
14565 "type" : "integer"
14566 },
44660702 14567 "iops_wr" : {
de0983cb 14568 "description" : "Maximum write I/O in operations per second.",
44660702 14569 "format_description" : "iops",
56122987 14570 "optional" : 1,
7aacca6f 14571 "type" : "integer"
56122987 14572 },
de0983cb 14573 "iops_wr_length" : {
5d9c884c 14574 "alias" : "iops_wr_max_length"
de0983cb 14575 },
44660702 14576 "iops_wr_max" : {
de0983cb 14577 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 14578 "format_description" : "iops",
7aacca6f 14579 "optional" : 1,
44660702 14580 "type" : "integer"
56122987 14581 },
5d9c884c
DM
14582 "iops_wr_max_length" : {
14583 "description" : "Maximum length of write I/O bursts in seconds.",
14584 "format_description" : "seconds",
14585 "minimum" : 1,
14586 "optional" : 1,
14587 "type" : "integer"
14588 },
44660702 14589 "mbps" : {
de0983cb 14590 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
14591 "format_description" : "mbps",
14592 "optional" : 1,
14593 "type" : "number"
14594 },
14595 "mbps_max" : {
de0983cb 14596 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14597 "format_description" : "mbps",
14598 "optional" : 1,
14599 "type" : "number"
14600 },
14601 "mbps_rd" : {
de0983cb 14602 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
14603 "format_description" : "mbps",
14604 "optional" : 1,
14605 "type" : "number"
14606 },
14607 "mbps_rd_max" : {
de0983cb 14608 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
14609 "format_description" : "mbps",
14610 "optional" : 1,
14611 "type" : "number"
14612 },
14613 "mbps_wr" : {
de0983cb 14614 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
14615 "format_description" : "mbps",
14616 "optional" : 1,
14617 "type" : "number"
14618 },
14619 "mbps_wr_max" : {
de0983cb 14620 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 14621 "format_description" : "mbps",
56122987 14622 "optional" : 1,
44660702 14623 "type" : "number"
56122987 14624 },
7aacca6f 14625 "media" : {
7aacca6f 14626 "default" : "disk",
7aacca6f
DM
14627 "description" : "The drive's media type.",
14628 "enum" : [
14629 "cdrom",
14630 "disk"
44660702 14631 ],
44660702
DM
14632 "optional" : 1,
14633 "type" : "string"
56122987 14634 },
44660702
DM
14635 "model" : {
14636 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
14637 "format" : "urlencoded",
14638 "format_description" : "model",
14639 "maxLength" : 120,
56122987 14640 "optional" : 1,
44660702 14641 "type" : "string"
56122987 14642 },
5d9c884c
DM
14643 "replicate" : {
14644 "default" : 1,
14645 "description" : "Whether the drive should considered for replication jobs.",
14646 "optional" : 1,
14647 "type" : "boolean"
14648 },
44660702
DM
14649 "rerror" : {
14650 "description" : "Read error action.",
14651 "enum" : [
14652 "ignore",
14653 "report",
14654 "stop"
14655 ],
56122987 14656 "optional" : 1,
44660702
DM
14657 "type" : "string"
14658 },
14659 "secs" : {
14660 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14661 "optional" : 1,
14662 "type" : "integer"
14663 },
14664 "serial" : {
14665 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14666 "format" : "urlencoded",
14667 "format_description" : "serial",
14668 "maxLength" : 60,
14669 "optional" : 1,
14670 "type" : "string"
14671 },
27a7acb2
DM
14672 "shared" : {
14673 "default" : 0,
14674 "description" : "Mark this locally-managed volume as available on all nodes",
14675 "optional" : 1,
14676 "type" : "boolean",
14677 "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!"
14678 },
44660702
DM
14679 "size" : {
14680 "description" : "Disk size. This is purely informational and has no effect.",
14681 "format" : "disk-size",
f004f5b9 14682 "format_description" : "DiskSize",
44660702
DM
14683 "optional" : 1,
14684 "type" : "string"
14685 },
14686 "snapshot" : {
27a7acb2 14687 "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
14688 "optional" : 1,
14689 "type" : "boolean"
14690 },
25203dc1
NC
14691 "ssd" : {
14692 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
14693 "optional" : 1,
14694 "type" : "boolean"
14695 },
44660702
DM
14696 "trans" : {
14697 "description" : "Force disk geometry bios translation mode.",
14698 "enum" : [
14699 "none",
14700 "lba",
14701 "auto"
14702 ],
44660702
DM
14703 "optional" : 1,
14704 "type" : "string"
14705 },
14706 "volume" : {
14707 "alias" : "file"
14708 },
14709 "werror" : {
14710 "description" : "Write error action.",
14711 "enum" : [
14712 "enospc",
14713 "ignore",
14714 "report",
14715 "stop"
14716 ],
44660702
DM
14717 "optional" : 1,
14718 "type" : "string"
95895385
TL
14719 },
14720 "wwn" : {
14721 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
14722 "format_description" : "wwn",
14723 "optional" : 1,
14724 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
14725 "type" : "string"
56122987
DM
14726 }
14727 },
44660702 14728 "optional" : 1,
4d47f125 14729 "type" : "string"
27a7acb2
DM
14730 },
14731 "ipconfig[n]" : {
d2656385 14732 "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
14733 "format" : "pve-qm-ipconfig",
14734 "optional" : 1,
4d47f125 14735 "type" : "string"
56122987 14736 },
95895385
TL
14737 "ivshmem" : {
14738 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
14739 "format" : {
14740 "name" : {
14741 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
14742 "format_description" : "string",
14743 "optional" : 1,
14744 "pattern" : "[a-zA-Z0-9\\-]+",
14745 "type" : "string"
14746 },
14747 "size" : {
14748 "description" : "The size of the file in MB.",
14749 "minimum" : 1,
14750 "type" : "integer"
14751 }
14752 },
14753 "optional" : 1,
14754 "type" : "string"
14755 },
4772952b
TL
14756 "keephugepages" : {
14757 "default" : 0,
14758 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
14759 "optional" : 1,
14760 "type" : "boolean"
14761 },
44660702 14762 "keyboard" : {
35a75dd3 14763 "default" : null,
7af2edf9 14764 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
14765 "enum" : [
14766 "de",
14767 "de-ch",
14768 "da",
14769 "en-gb",
14770 "en-us",
14771 "es",
14772 "fi",
14773 "fr",
14774 "fr-be",
14775 "fr-ca",
14776 "fr-ch",
14777 "hu",
14778 "is",
14779 "it",
14780 "ja",
14781 "lt",
14782 "mk",
14783 "nl",
14784 "no",
14785 "pl",
14786 "pt",
14787 "pt-br",
14788 "sv",
14789 "sl",
14790 "tr"
14791 ],
56122987 14792 "optional" : 1,
44660702
DM
14793 "type" : "string"
14794 },
14795 "kvm" : {
7aacca6f 14796 "default" : 1,
44660702
DM
14797 "description" : "Enable/disable KVM hardware virtualization.",
14798 "optional" : 1,
4d47f125 14799 "type" : "boolean"
56122987 14800 },
44660702 14801 "localtime" : {
5370fa8c 14802 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 14803 "optional" : 1,
4d47f125 14804 "type" : "boolean"
56122987 14805 },
44660702
DM
14806 "lock" : {
14807 "description" : "Lock/unlock the VM.",
14808 "enum" : [
44660702 14809 "backup",
5f26e15b
TL
14810 "clone",
14811 "create",
14812 "migrate",
14813 "rollback",
44660702 14814 "snapshot",
95895385
TL
14815 "snapshot-delete",
14816 "suspending",
14817 "suspended"
44660702 14818 ],
7aacca6f 14819 "optional" : 1,
44660702
DM
14820 "type" : "string"
14821 },
14822 "machine" : {
9d2e98ed 14823 "description" : "Specifies the QEMU machine type.",
44660702
DM
14824 "maxLength" : 40,
14825 "optional" : 1,
5c1699e5 14826 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
14827 "type" : "string"
14828 },
14829 "memory" : {
14830 "default" : 512,
9d2e98ed 14831 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702
DM
14832 "minimum" : 16,
14833 "optional" : 1,
4d47f125 14834 "type" : "integer"
44660702
DM
14835 },
14836 "migrate_downtime" : {
14837 "default" : 0.1,
14838 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
14839 "minimum" : 0,
14840 "optional" : 1,
4d47f125 14841 "type" : "number"
44660702
DM
14842 },
14843 "migrate_speed" : {
14844 "default" : 0,
14845 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
14846 "minimum" : 0,
14847 "optional" : 1,
4d47f125 14848 "type" : "integer"
44660702
DM
14849 },
14850 "name" : {
14851 "description" : "Set a name for the VM. Only used on the configuration web interface.",
14852 "format" : "dns-name",
14853 "optional" : 1,
4d47f125 14854 "type" : "string"
44660702 14855 },
27a7acb2 14856 "nameserver" : {
de786b48 14857 "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
14858 "format" : "address-list",
14859 "optional" : 1,
4d47f125 14860 "type" : "string"
27a7acb2 14861 },
44660702 14862 "net[n]" : {
c2993fe5 14863 "description" : "Specify network devices.",
f004f5b9
DM
14864 "format" : {
14865 "bridge" : {
c2993fe5 14866 "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 14867 "format" : "pve-bridge-id",
f004f5b9
DM
14868 "format_description" : "bridge",
14869 "optional" : 1,
14870 "type" : "string"
14871 },
14872 "e1000" : {
14873 "alias" : "macaddr",
14874 "keyAlias" : "model"
14875 },
14876 "e1000-82540em" : {
14877 "alias" : "macaddr",
14878 "keyAlias" : "model"
14879 },
14880 "e1000-82544gc" : {
14881 "alias" : "macaddr",
14882 "keyAlias" : "model"
14883 },
14884 "e1000-82545em" : {
14885 "alias" : "macaddr",
14886 "keyAlias" : "model"
14887 },
5370fa8c
TL
14888 "e1000e" : {
14889 "alias" : "macaddr",
14890 "keyAlias" : "model"
14891 },
f004f5b9
DM
14892 "firewall" : {
14893 "description" : "Whether this interface should be protected by the firewall.",
14894 "optional" : 1,
14895 "type" : "boolean"
14896 },
14897 "i82551" : {
14898 "alias" : "macaddr",
14899 "keyAlias" : "model"
14900 },
14901 "i82557b" : {
14902 "alias" : "macaddr",
14903 "keyAlias" : "model"
14904 },
14905 "i82559er" : {
14906 "alias" : "macaddr",
14907 "keyAlias" : "model"
14908 },
14909 "link_down" : {
c2993fe5 14910 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
14911 "optional" : 1,
14912 "type" : "boolean"
14913 },
14914 "macaddr" : {
c2993fe5 14915 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 14916 "format" : "mac-addr",
f004f5b9 14917 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 14918 "optional" : 1,
95895385
TL
14919 "type" : "string",
14920 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
14921 },
14922 "model" : {
14923 "default_key" : 1,
c2993fe5 14924 "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 14925 "enum" : [
f004f5b9 14926 "e1000",
5370fa8c
TL
14927 "e1000-82540em",
14928 "e1000-82544gc",
14929 "e1000-82545em",
14930 "e1000e",
f004f5b9
DM
14931 "i82551",
14932 "i82557b",
14933 "i82559er",
5370fa8c
TL
14934 "ne2k_isa",
14935 "ne2k_pci",
14936 "pcnet",
14937 "rtl8139",
14938 "virtio",
14939 "vmxnet3"
f004f5b9 14940 ],
f004f5b9
DM
14941 "type" : "string"
14942 },
ac70d7d1
TL
14943 "mtu" : {
14944 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
14945 "maximum" : 65520,
14946 "minimum" : 1,
14947 "optional" : 1,
14948 "type" : "integer"
14949 },
f004f5b9
DM
14950 "ne2k_isa" : {
14951 "alias" : "macaddr",
14952 "keyAlias" : "model"
14953 },
14954 "ne2k_pci" : {
14955 "alias" : "macaddr",
14956 "keyAlias" : "model"
14957 },
14958 "pcnet" : {
14959 "alias" : "macaddr",
14960 "keyAlias" : "model"
14961 },
14962 "queues" : {
14963 "description" : "Number of packet queues to be used on the device.",
81a3384d 14964 "maximum" : 64,
f004f5b9
DM
14965 "minimum" : 0,
14966 "optional" : 1,
14967 "type" : "integer"
14968 },
14969 "rate" : {
c2993fe5 14970 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
14971 "minimum" : 0,
14972 "optional" : 1,
14973 "type" : "number"
14974 },
14975 "rtl8139" : {
14976 "alias" : "macaddr",
14977 "keyAlias" : "model"
14978 },
14979 "tag" : {
14980 "description" : "VLAN tag to apply to packets on this interface.",
14981 "maximum" : 4094,
c2993fe5 14982 "minimum" : 1,
f004f5b9
DM
14983 "optional" : 1,
14984 "type" : "integer"
14985 },
14986 "trunks" : {
14987 "description" : "VLAN trunks to pass through this interface.",
14988 "format_description" : "vlanid[;vlanid...]",
14989 "optional" : 1,
14990 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
14991 "type" : "string"
14992 },
14993 "virtio" : {
14994 "alias" : "macaddr",
14995 "keyAlias" : "model"
14996 },
14997 "vmxnet3" : {
14998 "alias" : "macaddr",
14999 "keyAlias" : "model"
15000 }
15001 },
44660702 15002 "optional" : 1,
4d47f125 15003 "type" : "string"
44660702
DM
15004 },
15005 "numa" : {
15006 "default" : 0,
15007 "description" : "Enable/disable NUMA.",
15008 "optional" : 1,
4d47f125 15009 "type" : "boolean"
44660702
DM
15010 },
15011 "numa[n]" : {
c2993fe5 15012 "description" : "NUMA topology.",
56122987 15013 "format" : {
7aacca6f 15014 "cpus" : {
c2993fe5 15015 "description" : "CPUs accessing this NUMA node.",
44660702
DM
15016 "format_description" : "id[-id];...",
15017 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15018 "type" : "string"
7aacca6f
DM
15019 },
15020 "hostnodes" : {
c2993fe5 15021 "description" : "Host NUMA nodes to use.",
44660702 15022 "format_description" : "id[-id];...",
7aacca6f 15023 "optional" : 1,
7aacca6f 15024 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 15025 "type" : "string"
7aacca6f 15026 },
44660702 15027 "memory" : {
c2993fe5 15028 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 15029 "optional" : 1,
44660702
DM
15030 "type" : "number"
15031 },
15032 "policy" : {
c2993fe5 15033 "description" : "NUMA allocation policy.",
7aacca6f
DM
15034 "enum" : [
15035 "preferred",
15036 "bind",
15037 "interleave"
15038 ],
44660702
DM
15039 "optional" : 1,
15040 "type" : "string"
56122987 15041 }
44660702 15042 },
56122987 15043 "optional" : 1,
4d47f125 15044 "type" : "string"
56122987 15045 },
44660702 15046 "onboot" : {
7aacca6f 15047 "default" : 0,
44660702
DM
15048 "description" : "Specifies whether a VM will be started during system bootup.",
15049 "optional" : 1,
4d47f125 15050 "type" : "boolean"
7aacca6f
DM
15051 },
15052 "ostype" : {
c2993fe5 15053 "description" : "Specify guest operating system.",
7aacca6f
DM
15054 "enum" : [
15055 "other",
15056 "wxp",
15057 "w2k",
15058 "w2k3",
15059 "w2k8",
15060 "wvista",
15061 "win7",
15062 "win8",
32d876b5 15063 "win10",
5370fa8c 15064 "win11",
7aacca6f
DM
15065 "l24",
15066 "l26",
15067 "solaris"
15068 ],
7aacca6f 15069 "optional" : 1,
c2993fe5 15070 "type" : "string",
9d2e98ed 15071 "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 15072 },
44660702 15073 "parallel[n]" : {
c2993fe5 15074 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 15075 "optional" : 1,
44660702 15076 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 15077 "type" : "string",
4772952b 15078 "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
15079 },
15080 "protection" : {
15081 "default" : 0,
c2993fe5 15082 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 15083 "optional" : 1,
4d47f125 15084 "type" : "boolean"
7aacca6f 15085 },
44660702
DM
15086 "reboot" : {
15087 "default" : 1,
15088 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 15089 "optional" : 1,
4d47f125 15090 "type" : "boolean"
44660702 15091 },
c5aa7e14
TL
15092 "rng0" : {
15093 "description" : "Configure a VirtIO-based Random Number Generator.",
15094 "format" : {
15095 "max_bytes" : {
15096 "default" : 1024,
5370fa8c 15097 "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
15098 "optional" : 1,
15099 "type" : "integer"
15100 },
15101 "period" : {
15102 "default" : 1000,
15103 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
15104 "optional" : 1,
15105 "type" : "integer"
15106 },
15107 "source" : {
15108 "default_key" : 1,
5370fa8c 15109 "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
15110 "enum" : [
15111 "/dev/urandom",
15112 "/dev/random",
15113 "/dev/hwrng"
15114 ],
15115 "type" : "string"
15116 }
15117 },
15118 "optional" : 1,
15119 "type" : "string"
15120 },
44660702 15121 "sata[n]" : {
7af2edf9 15122 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 15123 "format" : {
44660702
DM
15124 "aio" : {
15125 "description" : "AIO type to use.",
7aacca6f 15126 "enum" : [
44660702 15127 "native",
8f4d9c87
TL
15128 "threads",
15129 "io_uring"
7aacca6f 15130 ],
44660702
DM
15131 "optional" : 1,
15132 "type" : "string"
7aacca6f 15133 },
44660702
DM
15134 "backup" : {
15135 "description" : "Whether the drive should be included when making backups.",
56122987 15136 "optional" : 1,
7aacca6f 15137 "type" : "boolean"
44660702
DM
15138 },
15139 "bps" : {
de0983cb 15140 "description" : "Maximum r/w speed in bytes per second.",
44660702 15141 "format_description" : "bps",
7aacca6f 15142 "optional" : 1,
44660702 15143 "type" : "integer"
56122987 15144 },
de0983cb
DM
15145 "bps_max_length" : {
15146 "description" : "Maximum length of I/O bursts in seconds.",
15147 "format_description" : "seconds",
15148 "minimum" : 1,
15149 "optional" : 1,
15150 "type" : "integer"
15151 },
44660702 15152 "bps_rd" : {
de0983cb 15153 "description" : "Maximum read speed in bytes per second.",
44660702 15154 "format_description" : "bps",
56122987 15155 "optional" : 1,
44660702 15156 "type" : "integer"
56122987 15157 },
de0983cb 15158 "bps_rd_length" : {
5d9c884c
DM
15159 "alias" : "bps_rd_max_length"
15160 },
15161 "bps_rd_max_length" : {
de0983cb
DM
15162 "description" : "Maximum length of read I/O bursts in seconds.",
15163 "format_description" : "seconds",
15164 "minimum" : 1,
15165 "optional" : 1,
15166 "type" : "integer"
15167 },
44660702 15168 "bps_wr" : {
de0983cb 15169 "description" : "Maximum write speed in bytes per second.",
44660702 15170 "format_description" : "bps",
56122987 15171 "optional" : 1,
44660702 15172 "type" : "integer"
56122987 15173 },
de0983cb 15174 "bps_wr_length" : {
5d9c884c
DM
15175 "alias" : "bps_wr_max_length"
15176 },
15177 "bps_wr_max_length" : {
de0983cb
DM
15178 "description" : "Maximum length of write I/O bursts in seconds.",
15179 "format_description" : "seconds",
15180 "minimum" : 1,
15181 "optional" : 1,
15182 "type" : "integer"
15183 },
56122987 15184 "cache" : {
44660702 15185 "description" : "The drive's cache mode",
56122987
DM
15186 "enum" : [
15187 "none",
15188 "writethrough",
15189 "writeback",
15190 "unsafe",
15191 "directsync"
15192 ],
56122987 15193 "optional" : 1,
44660702 15194 "type" : "string"
56122987 15195 },
44660702
DM
15196 "cyls" : {
15197 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 15198 "optional" : 1,
44660702 15199 "type" : "integer"
7aacca6f
DM
15200 },
15201 "detect_zeroes" : {
15202 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 15203 "optional" : 1,
44660702 15204 "type" : "boolean"
56122987 15205 },
44660702
DM
15206 "discard" : {
15207 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
15208 "enum" : [
15209 "ignore",
15210 "on"
15211 ],
56122987 15212 "optional" : 1,
44660702 15213 "type" : "string"
7aacca6f 15214 },
44660702
DM
15215 "file" : {
15216 "default_key" : 1,
15217 "description" : "The drive's backing volume.",
15218 "format" : "pve-volume-id-or-qm-path",
15219 "format_description" : "volume",
15220 "type" : "string"
56122987 15221 },
7aacca6f 15222 "format" : {
44660702 15223 "description" : "The drive's backing file's data format.",
7aacca6f
DM
15224 "enum" : [
15225 "raw",
15226 "cow",
15227 "qcow",
15228 "qed",
15229 "qcow2",
15230 "vmdk",
15231 "cloop"
15232 ],
7aacca6f 15233 "optional" : 1,
44660702 15234 "type" : "string"
56122987 15235 },
7aacca6f 15236 "heads" : {
7aacca6f 15237 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15238 "optional" : 1,
7aacca6f 15239 "type" : "integer"
56122987 15240 },
44660702 15241 "iops" : {
de0983cb 15242 "description" : "Maximum r/w I/O in operations per second.",
44660702 15243 "format_description" : "iops",
56122987 15244 "optional" : 1,
44660702 15245 "type" : "integer"
56122987 15246 },
44660702 15247 "iops_max" : {
de0983cb 15248 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15249 "format_description" : "iops",
56122987 15250 "optional" : 1,
44660702 15251 "type" : "integer"
56122987 15252 },
de0983cb
DM
15253 "iops_max_length" : {
15254 "description" : "Maximum length of I/O bursts in seconds.",
15255 "format_description" : "seconds",
15256 "minimum" : 1,
15257 "optional" : 1,
15258 "type" : "integer"
15259 },
44660702 15260 "iops_rd" : {
de0983cb 15261 "description" : "Maximum read I/O in operations per second.",
44660702 15262 "format_description" : "iops",
7aacca6f 15263 "optional" : 1,
44660702 15264 "type" : "integer"
56122987 15265 },
de0983cb 15266 "iops_rd_length" : {
5d9c884c 15267 "alias" : "iops_rd_max_length"
de0983cb 15268 },
44660702 15269 "iops_rd_max" : {
de0983cb 15270 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15271 "format_description" : "iops",
56122987 15272 "optional" : 1,
44660702 15273 "type" : "integer"
7aacca6f 15274 },
5d9c884c
DM
15275 "iops_rd_max_length" : {
15276 "description" : "Maximum length of read I/O bursts in seconds.",
15277 "format_description" : "seconds",
15278 "minimum" : 1,
15279 "optional" : 1,
15280 "type" : "integer"
15281 },
44660702 15282 "iops_wr" : {
de0983cb 15283 "description" : "Maximum write I/O in operations per second.",
44660702 15284 "format_description" : "iops",
56122987 15285 "optional" : 1,
44660702 15286 "type" : "integer"
56122987 15287 },
de0983cb 15288 "iops_wr_length" : {
5d9c884c 15289 "alias" : "iops_wr_max_length"
de0983cb 15290 },
56122987 15291 "iops_wr_max" : {
de0983cb 15292 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 15293 "format_description" : "iops",
56122987 15294 "optional" : 1,
44660702 15295 "type" : "integer"
56122987 15296 },
5d9c884c
DM
15297 "iops_wr_max_length" : {
15298 "description" : "Maximum length of write I/O bursts in seconds.",
15299 "format_description" : "seconds",
15300 "minimum" : 1,
15301 "optional" : 1,
15302 "type" : "integer"
15303 },
44660702 15304 "mbps" : {
de0983cb 15305 "description" : "Maximum r/w speed in megabytes per second.",
44660702 15306 "format_description" : "mbps",
56122987 15307 "optional" : 1,
44660702 15308 "type" : "number"
56122987 15309 },
44660702 15310 "mbps_max" : {
de0983cb 15311 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
15312 "format_description" : "mbps",
15313 "optional" : 1,
15314 "type" : "number"
56122987 15315 },
44660702 15316 "mbps_rd" : {
de0983cb 15317 "description" : "Maximum read speed in megabytes per second.",
44660702 15318 "format_description" : "mbps",
56122987 15319 "optional" : 1,
44660702 15320 "type" : "number"
56122987 15321 },
44660702 15322 "mbps_rd_max" : {
de0983cb 15323 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 15324 "format_description" : "mbps",
56122987 15325 "optional" : 1,
44660702 15326 "type" : "number"
56122987 15327 },
44660702 15328 "mbps_wr" : {
de0983cb 15329 "description" : "Maximum write speed in megabytes per second.",
56122987 15330 "format_description" : "mbps",
44660702
DM
15331 "optional" : 1,
15332 "type" : "number"
56122987 15333 },
44660702 15334 "mbps_wr_max" : {
de0983cb 15335 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15336 "format_description" : "mbps",
15337 "optional" : 1,
15338 "type" : "number"
7aacca6f 15339 },
44660702
DM
15340 "media" : {
15341 "default" : "disk",
15342 "description" : "The drive's media type.",
15343 "enum" : [
15344 "cdrom",
15345 "disk"
15346 ],
56122987 15347 "optional" : 1,
44660702
DM
15348 "type" : "string"
15349 },
5d9c884c
DM
15350 "replicate" : {
15351 "default" : 1,
15352 "description" : "Whether the drive should considered for replication jobs.",
15353 "optional" : 1,
15354 "type" : "boolean"
15355 },
44660702
DM
15356 "rerror" : {
15357 "description" : "Read error action.",
7aacca6f 15358 "enum" : [
44660702
DM
15359 "ignore",
15360 "report",
15361 "stop"
15362 ],
7aacca6f 15363 "optional" : 1,
44660702 15364 "type" : "string"
56122987 15365 },
44660702
DM
15366 "secs" : {
15367 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 15368 "optional" : 1,
44660702 15369 "type" : "integer"
56122987 15370 },
44660702
DM
15371 "serial" : {
15372 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15373 "format" : "urlencoded",
15374 "format_description" : "serial",
15375 "maxLength" : 60,
56122987 15376 "optional" : 1,
44660702 15377 "type" : "string"
56122987 15378 },
27a7acb2
DM
15379 "shared" : {
15380 "default" : 0,
15381 "description" : "Mark this locally-managed volume as available on all nodes",
15382 "optional" : 1,
15383 "type" : "boolean",
15384 "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!"
15385 },
44660702
DM
15386 "size" : {
15387 "description" : "Disk size. This is purely informational and has no effect.",
15388 "format" : "disk-size",
f004f5b9 15389 "format_description" : "DiskSize",
44660702
DM
15390 "optional" : 1,
15391 "type" : "string"
15392 },
15393 "snapshot" : {
27a7acb2 15394 "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 15395 "optional" : 1,
44660702
DM
15396 "type" : "boolean"
15397 },
25203dc1
NC
15398 "ssd" : {
15399 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15400 "optional" : 1,
15401 "type" : "boolean"
15402 },
44660702
DM
15403 "trans" : {
15404 "description" : "Force disk geometry bios translation mode.",
56122987 15405 "enum" : [
7aacca6f
DM
15406 "none",
15407 "lba",
15408 "auto"
56122987 15409 ],
44660702
DM
15410 "optional" : 1,
15411 "type" : "string"
56122987 15412 },
7aacca6f
DM
15413 "volume" : {
15414 "alias" : "file"
56122987 15415 },
44660702
DM
15416 "werror" : {
15417 "description" : "Write error action.",
15418 "enum" : [
15419 "enospc",
15420 "ignore",
15421 "report",
15422 "stop"
15423 ],
7aacca6f 15424 "optional" : 1,
44660702 15425 "type" : "string"
95895385
TL
15426 },
15427 "wwn" : {
15428 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15429 "format_description" : "wwn",
15430 "optional" : 1,
15431 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15432 "type" : "string"
44660702
DM
15433 }
15434 },
15435 "optional" : 1,
4d47f125 15436 "type" : "string"
44660702
DM
15437 },
15438 "scsi[n]" : {
7af2edf9 15439 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 15440 "format" : {
56122987 15441 "aio" : {
56122987
DM
15442 "description" : "AIO type to use.",
15443 "enum" : [
15444 "native",
8f4d9c87
TL
15445 "threads",
15446 "io_uring"
56122987 15447 ],
7aacca6f 15448 "optional" : 1,
44660702 15449 "type" : "string"
56122987 15450 },
44660702
DM
15451 "backup" : {
15452 "description" : "Whether the drive should be included when making backups.",
56122987 15453 "optional" : 1,
44660702 15454 "type" : "boolean"
56122987 15455 },
44660702 15456 "bps" : {
de0983cb 15457 "description" : "Maximum r/w speed in bytes per second.",
44660702 15458 "format_description" : "bps",
56122987 15459 "optional" : 1,
44660702 15460 "type" : "integer"
56122987 15461 },
de0983cb
DM
15462 "bps_max_length" : {
15463 "description" : "Maximum length of I/O bursts in seconds.",
15464 "format_description" : "seconds",
15465 "minimum" : 1,
15466 "optional" : 1,
15467 "type" : "integer"
15468 },
44660702 15469 "bps_rd" : {
de0983cb 15470 "description" : "Maximum read speed in bytes per second.",
44660702 15471 "format_description" : "bps",
56122987 15472 "optional" : 1,
44660702 15473 "type" : "integer"
56122987 15474 },
de0983cb 15475 "bps_rd_length" : {
5d9c884c
DM
15476 "alias" : "bps_rd_max_length"
15477 },
15478 "bps_rd_max_length" : {
de0983cb
DM
15479 "description" : "Maximum length of read I/O bursts in seconds.",
15480 "format_description" : "seconds",
15481 "minimum" : 1,
15482 "optional" : 1,
15483 "type" : "integer"
15484 },
7aacca6f 15485 "bps_wr" : {
de0983cb 15486 "description" : "Maximum write speed in bytes per second.",
7aacca6f 15487 "format_description" : "bps",
56122987 15488 "optional" : 1,
44660702 15489 "type" : "integer"
56122987 15490 },
de0983cb 15491 "bps_wr_length" : {
5d9c884c
DM
15492 "alias" : "bps_wr_max_length"
15493 },
15494 "bps_wr_max_length" : {
de0983cb
DM
15495 "description" : "Maximum length of write I/O bursts in seconds.",
15496 "format_description" : "seconds",
15497 "minimum" : 1,
15498 "optional" : 1,
15499 "type" : "integer"
15500 },
44660702
DM
15501 "cache" : {
15502 "description" : "The drive's cache mode",
7aacca6f 15503 "enum" : [
44660702
DM
15504 "none",
15505 "writethrough",
15506 "writeback",
15507 "unsafe",
15508 "directsync"
7aacca6f 15509 ],
56122987 15510 "optional" : 1,
44660702 15511 "type" : "string"
56122987 15512 },
44660702
DM
15513 "cyls" : {
15514 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 15515 "optional" : 1,
44660702 15516 "type" : "integer"
56122987 15517 },
44660702
DM
15518 "detect_zeroes" : {
15519 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 15520 "optional" : 1,
44660702 15521 "type" : "boolean"
56122987 15522 },
44660702
DM
15523 "discard" : {
15524 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
15525 "enum" : [
15526 "ignore",
15527 "on"
15528 ],
7aacca6f 15529 "optional" : 1,
44660702 15530 "type" : "string"
56122987 15531 },
44660702
DM
15532 "file" : {
15533 "default_key" : 1,
15534 "description" : "The drive's backing volume.",
15535 "format" : "pve-volume-id-or-qm-path",
15536 "format_description" : "volume",
15537 "type" : "string"
56122987 15538 },
7aacca6f 15539 "format" : {
44660702 15540 "description" : "The drive's backing file's data format.",
56122987 15541 "enum" : [
7aacca6f
DM
15542 "raw",
15543 "cow",
15544 "qcow",
15545 "qed",
15546 "qcow2",
15547 "vmdk",
15548 "cloop"
15549 ],
44660702
DM
15550 "optional" : 1,
15551 "type" : "string"
56122987 15552 },
44660702
DM
15553 "heads" : {
15554 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15555 "optional" : 1,
7aacca6f 15556 "type" : "integer"
56122987 15557 },
44660702 15558 "iops" : {
de0983cb 15559 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 15560 "format_description" : "iops",
44660702
DM
15561 "optional" : 1,
15562 "type" : "integer"
7aacca6f 15563 },
44660702 15564 "iops_max" : {
de0983cb 15565 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15566 "format_description" : "iops",
56122987 15567 "optional" : 1,
44660702 15568 "type" : "integer"
7aacca6f 15569 },
de0983cb
DM
15570 "iops_max_length" : {
15571 "description" : "Maximum length of I/O bursts in seconds.",
15572 "format_description" : "seconds",
15573 "minimum" : 1,
15574 "optional" : 1,
15575 "type" : "integer"
15576 },
44660702 15577 "iops_rd" : {
de0983cb 15578 "description" : "Maximum read I/O in operations per second.",
44660702 15579 "format_description" : "iops",
7aacca6f 15580 "optional" : 1,
44660702 15581 "type" : "integer"
56122987 15582 },
de0983cb 15583 "iops_rd_length" : {
5d9c884c 15584 "alias" : "iops_rd_max_length"
de0983cb 15585 },
44660702 15586 "iops_rd_max" : {
de0983cb 15587 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
15588 "format_description" : "iops",
15589 "optional" : 1,
15590 "type" : "integer"
15591 },
5d9c884c
DM
15592 "iops_rd_max_length" : {
15593 "description" : "Maximum length of read I/O bursts in seconds.",
15594 "format_description" : "seconds",
15595 "minimum" : 1,
15596 "optional" : 1,
15597 "type" : "integer"
15598 },
44660702 15599 "iops_wr" : {
de0983cb 15600 "description" : "Maximum write I/O in operations per second.",
44660702 15601 "format_description" : "iops",
56122987 15602 "optional" : 1,
44660702
DM
15603 "type" : "integer"
15604 },
de0983cb 15605 "iops_wr_length" : {
5d9c884c 15606 "alias" : "iops_wr_max_length"
de0983cb 15607 },
44660702 15608 "iops_wr_max" : {
de0983cb 15609 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
15610 "format_description" : "iops",
15611 "optional" : 1,
15612 "type" : "integer"
56122987 15613 },
5d9c884c
DM
15614 "iops_wr_max_length" : {
15615 "description" : "Maximum length of write I/O bursts in seconds.",
15616 "format_description" : "seconds",
15617 "minimum" : 1,
15618 "optional" : 1,
15619 "type" : "integer"
15620 },
7aacca6f 15621 "iothread" : {
7aacca6f 15622 "description" : "Whether to use iothreads for this drive",
56122987 15623 "optional" : 1,
56122987
DM
15624 "type" : "boolean"
15625 },
44660702 15626 "mbps" : {
de0983cb 15627 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
15628 "format_description" : "mbps",
15629 "optional" : 1,
15630 "type" : "number"
15631 },
15632 "mbps_max" : {
de0983cb 15633 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
15634 "format_description" : "mbps",
15635 "optional" : 1,
15636 "type" : "number"
15637 },
15638 "mbps_rd" : {
de0983cb 15639 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
15640 "format_description" : "mbps",
15641 "optional" : 1,
15642 "type" : "number"
15643 },
15644 "mbps_rd_max" : {
de0983cb 15645 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
15646 "format_description" : "mbps",
15647 "optional" : 1,
15648 "type" : "number"
15649 },
15650 "mbps_wr" : {
de0983cb 15651 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
15652 "format_description" : "mbps",
15653 "optional" : 1,
15654 "type" : "number"
15655 },
15656 "mbps_wr_max" : {
de0983cb 15657 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15658 "format_description" : "mbps",
15659 "optional" : 1,
15660 "type" : "number"
15661 },
7aacca6f 15662 "media" : {
44660702
DM
15663 "default" : "disk",
15664 "description" : "The drive's media type.",
7aacca6f
DM
15665 "enum" : [
15666 "cdrom",
15667 "disk"
15668 ],
56122987 15669 "optional" : 1,
44660702
DM
15670 "type" : "string"
15671 },
15672 "queues" : {
15673 "description" : "Number of queues.",
44660702
DM
15674 "minimum" : 2,
15675 "optional" : 1,
15676 "type" : "integer"
15677 },
5d9c884c
DM
15678 "replicate" : {
15679 "default" : 1,
15680 "description" : "Whether the drive should considered for replication jobs.",
15681 "optional" : 1,
15682 "type" : "boolean"
15683 },
15684 "rerror" : {
15685 "description" : "Read error action.",
15686 "enum" : [
15687 "ignore",
15688 "report",
15689 "stop"
15690 ],
15691 "optional" : 1,
15692 "type" : "string"
15693 },
5370fa8c
TL
15694 "ro" : {
15695 "description" : "Whether the drive is read-only.",
15696 "optional" : 1,
15697 "type" : "boolean"
15698 },
52e44c50
FG
15699 "scsiblock" : {
15700 "default" : 0,
15701 "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",
15702 "optional" : 1,
15703 "type" : "boolean"
15704 },
44660702
DM
15705 "secs" : {
15706 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
15707 "optional" : 1,
15708 "type" : "integer"
15709 },
15710 "serial" : {
15711 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15712 "format" : "urlencoded",
15713 "format_description" : "serial",
15714 "maxLength" : 60,
15715 "optional" : 1,
15716 "type" : "string"
15717 },
27a7acb2
DM
15718 "shared" : {
15719 "default" : 0,
15720 "description" : "Mark this locally-managed volume as available on all nodes",
15721 "optional" : 1,
15722 "type" : "boolean",
15723 "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!"
15724 },
44660702
DM
15725 "size" : {
15726 "description" : "Disk size. This is purely informational and has no effect.",
15727 "format" : "disk-size",
f004f5b9 15728 "format_description" : "DiskSize",
44660702
DM
15729 "optional" : 1,
15730 "type" : "string"
56122987 15731 },
7aacca6f 15732 "snapshot" : {
27a7acb2 15733 "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 15734 "optional" : 1,
44660702 15735 "type" : "boolean"
7aacca6f 15736 },
25203dc1
NC
15737 "ssd" : {
15738 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15739 "optional" : 1,
15740 "type" : "boolean"
15741 },
44660702
DM
15742 "trans" : {
15743 "description" : "Force disk geometry bios translation mode.",
15744 "enum" : [
15745 "none",
15746 "lba",
15747 "auto"
15748 ],
44660702
DM
15749 "optional" : 1,
15750 "type" : "string"
15751 },
15752 "volume" : {
15753 "alias" : "file"
15754 },
15755 "werror" : {
15756 "description" : "Write error action.",
15757 "enum" : [
15758 "enospc",
15759 "ignore",
15760 "report",
15761 "stop"
15762 ],
56122987 15763 "optional" : 1,
44660702 15764 "type" : "string"
95895385
TL
15765 },
15766 "wwn" : {
15767 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15768 "format_description" : "wwn",
15769 "optional" : 1,
15770 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15771 "type" : "string"
56122987 15772 }
44660702 15773 },
7aacca6f 15774 "optional" : 1,
4d47f125 15775 "type" : "string"
44660702
DM
15776 },
15777 "scsihw" : {
15778 "default" : "lsi",
c2993fe5 15779 "description" : "SCSI controller model",
7aacca6f 15780 "enum" : [
44660702
DM
15781 "lsi",
15782 "lsi53c810",
15783 "virtio-scsi-pci",
15784 "virtio-scsi-single",
15785 "megasas",
15786 "pvscsi"
7aacca6f 15787 ],
44660702
DM
15788 "optional" : 1,
15789 "type" : "string"
56122987 15790 },
27a7acb2 15791 "searchdomain" : {
de786b48 15792 "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 15793 "optional" : 1,
4d47f125 15794 "type" : "string"
27a7acb2 15795 },
44660702 15796 "serial[n]" : {
c2993fe5 15797 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 15798 "optional" : 1,
44660702 15799 "pattern" : "(/dev/.+|socket)",
c2993fe5 15800 "type" : "string",
4772952b 15801 "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 15802 },
44660702
DM
15803 "shares" : {
15804 "default" : 1000,
5da3d723 15805 "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
15806 "maximum" : 50000,
15807 "minimum" : 0,
56122987 15808 "optional" : 1,
4d47f125 15809 "type" : "integer"
56122987 15810 },
44660702
DM
15811 "smbios1" : {
15812 "description" : "Specify SMBIOS type 1 fields.",
15813 "format" : "pve-qm-smbios1",
1e3f8156 15814 "maxLength" : 512,
56122987 15815 "optional" : 1,
4d47f125 15816 "type" : "string"
56122987 15817 },
44660702
DM
15818 "smp" : {
15819 "default" : 1,
15820 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 15821 "minimum" : 1,
7aacca6f 15822 "optional" : 1,
4d47f125 15823 "type" : "integer"
7aacca6f 15824 },
44660702
DM
15825 "sockets" : {
15826 "default" : 1,
15827 "description" : "The number of CPU sockets.",
15828 "minimum" : 1,
7aacca6f 15829 "optional" : 1,
4d47f125 15830 "type" : "integer"
56122987 15831 },
1c532546
TL
15832 "spice_enhancements" : {
15833 "description" : "Configure additional enhancements for SPICE.",
15834 "format" : {
15835 "foldersharing" : {
15836 "default" : "0",
15837 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
15838 "optional" : 1,
15839 "type" : "boolean"
15840 },
15841 "videostreaming" : {
15842 "default" : "off",
15843 "description" : "Enable video streaming. Uses compression for detected video streams.",
15844 "enum" : [
15845 "off",
15846 "all",
15847 "filter"
15848 ],
15849 "optional" : 1,
15850 "type" : "string"
15851 }
15852 },
15853 "optional" : 1,
15854 "type" : "string"
15855 },
27a7acb2
DM
15856 "sshkeys" : {
15857 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
15858 "format" : "urlencoded",
15859 "optional" : 1,
4d47f125 15860 "type" : "string"
27a7acb2 15861 },
44660702
DM
15862 "startdate" : {
15863 "default" : "now",
4772952b 15864 "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 15865 "optional" : 1,
44660702 15866 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 15867 "type" : "string",
44660702 15868 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 15869 },
7aacca6f 15870 "startup" : {
7aacca6f 15871 "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 15872 "format" : "pve-startup-order",
56122987 15873 "optional" : 1,
44660702
DM
15874 "type" : "string",
15875 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 15876 },
44660702 15877 "tablet" : {
7aacca6f 15878 "default" : 1,
c2993fe5 15879 "description" : "Enable/disable the USB tablet device.",
7aacca6f 15880 "optional" : 1,
c2993fe5 15881 "type" : "boolean",
4772952b 15882 "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 15883 },
5c1699e5
TL
15884 "tags" : {
15885 "description" : "Tags of the VM. This is only meta information.",
15886 "format" : "pve-tag-list",
15887 "optional" : 1,
15888 "type" : "string"
15889 },
44660702
DM
15890 "tdf" : {
15891 "default" : 0,
15892 "description" : "Enable/disable time drift fix.",
7aacca6f 15893 "optional" : 1,
4d47f125 15894 "type" : "boolean"
7aacca6f 15895 },
44660702
DM
15896 "template" : {
15897 "default" : 0,
15898 "description" : "Enable/disable Template.",
7aacca6f 15899 "optional" : 1,
4d47f125 15900 "type" : "boolean"
7aacca6f 15901 },
5370fa8c 15902 "tpmstate0" : {
7af2edf9 15903 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
15904 "format" : {
15905 "file" : {
15906 "default_key" : 1,
15907 "description" : "The drive's backing volume.",
15908 "format" : "pve-volume-id-or-qm-path",
15909 "format_description" : "volume",
15910 "type" : "string"
15911 },
15912 "size" : {
15913 "description" : "Disk size. This is purely informational and has no effect.",
15914 "format" : "disk-size",
15915 "format_description" : "DiskSize",
15916 "optional" : 1,
15917 "type" : "string"
15918 },
15919 "version" : {
15920 "default" : "v2.0",
15921 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
15922 "enum" : [
15923 "v1.2",
15924 "v2.0"
15925 ],
15926 "optional" : 1,
15927 "type" : "string"
15928 },
15929 "volume" : {
15930 "alias" : "file"
15931 }
15932 },
15933 "optional" : 1,
15934 "type" : "string"
15935 },
44660702 15936 "unused[n]" : {
c2993fe5 15937 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
15938 "format" : {
15939 "file" : {
15940 "default_key" : 1,
15941 "description" : "The drive's backing volume.",
15942 "format" : "pve-volume-id",
15943 "format_description" : "volume",
15944 "type" : "string"
15945 },
15946 "volume" : {
15947 "alias" : "file"
15948 }
15949 },
7aacca6f 15950 "optional" : 1,
4d47f125 15951 "type" : "string"
7aacca6f 15952 },
44660702 15953 "usb[n]" : {
4e7f60c2 15954 "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
15955 "format" : {
15956 "host" : {
15957 "default_key" : 1,
499c9b7f 15958 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 15959 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
15960 "optional" : 1,
15961 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
15962 "type" : "string"
15963 },
15964 "mapping" : {
15965 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
15966 "format" : "pve-configid",
15967 "format_description" : "mapping-id",
15968 "optional" : 1,
44660702
DM
15969 "type" : "string"
15970 },
15971 "usb3" : {
c2993fe5 15972 "default" : 0,
4e7f60c2 15973 "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
15974 "optional" : 1,
15975 "type" : "boolean"
15976 }
15977 },
7aacca6f 15978 "optional" : 1,
4d47f125 15979 "type" : "string"
56122987 15980 },
44660702
DM
15981 "vcpus" : {
15982 "default" : 0,
15983 "description" : "Number of hotplugged vcpus.",
15984 "minimum" : 1,
56122987 15985 "optional" : 1,
4d47f125 15986 "type" : "integer"
56122987 15987 },
44660702 15988 "vga" : {
e2d681b3
TL
15989 "description" : "Configure the VGA hardware.",
15990 "format" : {
15991 "memory" : {
15992 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
15993 "maximum" : 512,
15994 "minimum" : 4,
15995 "optional" : 1,
15996 "type" : "integer"
15997 },
15998 "type" : {
15999 "default" : "std",
16000 "default_key" : 1,
16001 "description" : "Select the VGA type.",
16002 "enum" : [
16003 "cirrus",
16004 "qxl",
16005 "qxl2",
16006 "qxl3",
16007 "qxl4",
5f26e15b 16008 "none",
e2d681b3
TL
16009 "serial0",
16010 "serial1",
16011 "serial2",
16012 "serial3",
16013 "std",
16014 "virtio",
7af2edf9 16015 "virtio-gl",
e2d681b3
TL
16016 "vmware"
16017 ],
16018 "optional" : 1,
16019 "type" : "string"
16020 }
16021 },
56122987 16022 "optional" : 1,
c2993fe5 16023 "type" : "string",
e2d681b3 16024 "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 16025 },
44660702 16026 "virtio[n]" : {
7af2edf9 16027 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 16028 "format" : {
44660702
DM
16029 "aio" : {
16030 "description" : "AIO type to use.",
56122987 16031 "enum" : [
44660702 16032 "native",
8f4d9c87
TL
16033 "threads",
16034 "io_uring"
56122987 16035 ],
56122987
DM
16036 "optional" : 1,
16037 "type" : "string"
16038 },
44660702
DM
16039 "backup" : {
16040 "description" : "Whether the drive should be included when making backups.",
44660702
DM
16041 "optional" : 1,
16042 "type" : "boolean"
7aacca6f 16043 },
44660702 16044 "bps" : {
de0983cb 16045 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
16046 "format_description" : "bps",
16047 "optional" : 1,
16048 "type" : "integer"
56122987 16049 },
de0983cb
DM
16050 "bps_max_length" : {
16051 "description" : "Maximum length of I/O bursts in seconds.",
16052 "format_description" : "seconds",
16053 "minimum" : 1,
16054 "optional" : 1,
16055 "type" : "integer"
16056 },
44660702 16057 "bps_rd" : {
de0983cb 16058 "description" : "Maximum read speed in bytes per second.",
44660702 16059 "format_description" : "bps",
56122987 16060 "optional" : 1,
44660702 16061 "type" : "integer"
56122987 16062 },
de0983cb 16063 "bps_rd_length" : {
5d9c884c
DM
16064 "alias" : "bps_rd_max_length"
16065 },
16066 "bps_rd_max_length" : {
de0983cb
DM
16067 "description" : "Maximum length of read I/O bursts in seconds.",
16068 "format_description" : "seconds",
16069 "minimum" : 1,
16070 "optional" : 1,
16071 "type" : "integer"
16072 },
44660702 16073 "bps_wr" : {
de0983cb 16074 "description" : "Maximum write speed in bytes per second.",
44660702 16075 "format_description" : "bps",
56122987 16076 "optional" : 1,
44660702
DM
16077 "type" : "integer"
16078 },
de0983cb 16079 "bps_wr_length" : {
5d9c884c
DM
16080 "alias" : "bps_wr_max_length"
16081 },
16082 "bps_wr_max_length" : {
de0983cb
DM
16083 "description" : "Maximum length of write I/O bursts in seconds.",
16084 "format_description" : "seconds",
16085 "minimum" : 1,
16086 "optional" : 1,
16087 "type" : "integer"
16088 },
44660702
DM
16089 "cache" : {
16090 "description" : "The drive's cache mode",
56122987 16091 "enum" : [
44660702
DM
16092 "none",
16093 "writethrough",
16094 "writeback",
16095 "unsafe",
16096 "directsync"
56122987 16097 ],
56122987 16098 "optional" : 1,
44660702 16099 "type" : "string"
56122987 16100 },
44660702
DM
16101 "cyls" : {
16102 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 16103 "optional" : 1,
44660702 16104 "type" : "integer"
7aacca6f 16105 },
44660702
DM
16106 "detect_zeroes" : {
16107 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16108 "optional" : 1,
16109 "type" : "boolean"
7aacca6f 16110 },
44660702
DM
16111 "discard" : {
16112 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16113 "enum" : [
16114 "ignore",
16115 "on"
16116 ],
56122987 16117 "optional" : 1,
44660702 16118 "type" : "string"
56122987
DM
16119 },
16120 "file" : {
7aacca6f 16121 "default_key" : 1,
44660702 16122 "description" : "The drive's backing volume.",
7aacca6f 16123 "format" : "pve-volume-id-or-qm-path",
44660702
DM
16124 "format_description" : "volume",
16125 "type" : "string"
7aacca6f
DM
16126 },
16127 "format" : {
7aacca6f
DM
16128 "description" : "The drive's backing file's data format.",
16129 "enum" : [
16130 "raw",
16131 "cow",
16132 "qcow",
16133 "qed",
16134 "qcow2",
16135 "vmdk",
16136 "cloop"
56122987
DM
16137 ],
16138 "optional" : 1,
56122987
DM
16139 "type" : "string"
16140 },
44660702
DM
16141 "heads" : {
16142 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16143 "optional" : 1,
44660702 16144 "type" : "integer"
56122987 16145 },
44660702 16146 "iops" : {
de0983cb 16147 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 16148 "format_description" : "iops",
56122987 16149 "optional" : 1,
44660702 16150 "type" : "integer"
56122987 16151 },
44660702 16152 "iops_max" : {
de0983cb 16153 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16154 "format_description" : "iops",
56122987 16155 "optional" : 1,
56122987
DM
16156 "type" : "integer"
16157 },
de0983cb
DM
16158 "iops_max_length" : {
16159 "description" : "Maximum length of I/O bursts in seconds.",
16160 "format_description" : "seconds",
16161 "minimum" : 1,
16162 "optional" : 1,
16163 "type" : "integer"
16164 },
44660702 16165 "iops_rd" : {
de0983cb 16166 "description" : "Maximum read I/O in operations per second.",
44660702 16167 "format_description" : "iops",
56122987 16168 "optional" : 1,
44660702 16169 "type" : "integer"
56122987 16170 },
de0983cb 16171 "iops_rd_length" : {
5d9c884c 16172 "alias" : "iops_rd_max_length"
de0983cb 16173 },
44660702 16174 "iops_rd_max" : {
de0983cb 16175 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16176 "format_description" : "iops",
7aacca6f 16177 "optional" : 1,
44660702 16178 "type" : "integer"
56122987 16179 },
5d9c884c
DM
16180 "iops_rd_max_length" : {
16181 "description" : "Maximum length of read I/O bursts in seconds.",
16182 "format_description" : "seconds",
16183 "minimum" : 1,
16184 "optional" : 1,
16185 "type" : "integer"
16186 },
44660702 16187 "iops_wr" : {
de0983cb 16188 "description" : "Maximum write I/O in operations per second.",
44660702 16189 "format_description" : "iops",
7aacca6f 16190 "optional" : 1,
44660702 16191 "type" : "integer"
56122987 16192 },
de0983cb 16193 "iops_wr_length" : {
5d9c884c 16194 "alias" : "iops_wr_max_length"
de0983cb 16195 },
44660702 16196 "iops_wr_max" : {
de0983cb 16197 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16198 "format_description" : "iops",
56122987
DM
16199 "optional" : 1,
16200 "type" : "integer"
16201 },
5d9c884c
DM
16202 "iops_wr_max_length" : {
16203 "description" : "Maximum length of write I/O bursts in seconds.",
16204 "format_description" : "seconds",
16205 "minimum" : 1,
16206 "optional" : 1,
16207 "type" : "integer"
16208 },
44660702
DM
16209 "iothread" : {
16210 "description" : "Whether to use iothreads for this drive",
44660702
DM
16211 "optional" : 1,
16212 "type" : "boolean"
16213 },
16214 "mbps" : {
de0983cb 16215 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 16216 "format_description" : "mbps",
44660702
DM
16217 "optional" : 1,
16218 "type" : "number"
16219 },
16220 "mbps_max" : {
de0983cb 16221 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
16222 "format_description" : "mbps",
16223 "optional" : 1,
16224 "type" : "number"
7aacca6f 16225 },
44660702 16226 "mbps_rd" : {
de0983cb 16227 "description" : "Maximum read speed in megabytes per second.",
44660702 16228 "format_description" : "mbps",
56122987 16229 "optional" : 1,
44660702 16230 "type" : "number"
56122987 16231 },
44660702 16232 "mbps_rd_max" : {
de0983cb 16233 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 16234 "format_description" : "mbps",
7aacca6f 16235 "optional" : 1,
44660702 16236 "type" : "number"
56122987 16237 },
44660702 16238 "mbps_wr" : {
de0983cb 16239 "description" : "Maximum write speed in megabytes per second.",
44660702 16240 "format_description" : "mbps",
56122987 16241 "optional" : 1,
44660702 16242 "type" : "number"
56122987 16243 },
44660702 16244 "mbps_wr_max" : {
de0983cb 16245 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 16246 "format_description" : "mbps",
56122987 16247 "optional" : 1,
44660702 16248 "type" : "number"
56122987
DM
16249 },
16250 "media" : {
7aacca6f 16251 "default" : "disk",
44660702 16252 "description" : "The drive's media type.",
56122987
DM
16253 "enum" : [
16254 "cdrom",
16255 "disk"
16256 ],
44660702
DM
16257 "optional" : 1,
16258 "type" : "string"
56122987 16259 },
5d9c884c
DM
16260 "replicate" : {
16261 "default" : 1,
16262 "description" : "Whether the drive should considered for replication jobs.",
16263 "optional" : 1,
16264 "type" : "boolean"
16265 },
7aacca6f 16266 "rerror" : {
44660702 16267 "description" : "Read error action.",
56122987 16268 "enum" : [
7aacca6f
DM
16269 "ignore",
16270 "report",
16271 "stop"
56122987 16272 ],
56122987 16273 "optional" : 1,
44660702 16274 "type" : "string"
56122987 16275 },
5370fa8c
TL
16276 "ro" : {
16277 "description" : "Whether the drive is read-only.",
16278 "optional" : 1,
16279 "type" : "boolean"
16280 },
44660702
DM
16281 "secs" : {
16282 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
16283 "optional" : 1,
16284 "type" : "integer"
16285 },
16286 "serial" : {
16287 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16288 "format" : "urlencoded",
16289 "format_description" : "serial",
16290 "maxLength" : 60,
56122987 16291 "optional" : 1,
7aacca6f 16292 "type" : "string"
56122987 16293 },
27a7acb2
DM
16294 "shared" : {
16295 "default" : 0,
16296 "description" : "Mark this locally-managed volume as available on all nodes",
16297 "optional" : 1,
16298 "type" : "boolean",
16299 "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!"
16300 },
44660702
DM
16301 "size" : {
16302 "description" : "Disk size. This is purely informational and has no effect.",
16303 "format" : "disk-size",
f004f5b9 16304 "format_description" : "DiskSize",
56122987 16305 "optional" : 1,
44660702 16306 "type" : "string"
56122987 16307 },
44660702 16308 "snapshot" : {
27a7acb2 16309 "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 16310 "optional" : 1,
44660702 16311 "type" : "boolean"
56122987 16312 },
44660702
DM
16313 "trans" : {
16314 "description" : "Force disk geometry bios translation mode.",
16315 "enum" : [
16316 "none",
16317 "lba",
16318 "auto"
16319 ],
44660702
DM
16320 "optional" : 1,
16321 "type" : "string"
16322 },
16323 "volume" : {
16324 "alias" : "file"
16325 },
16326 "werror" : {
16327 "description" : "Write error action.",
16328 "enum" : [
16329 "enospc",
16330 "ignore",
16331 "report",
16332 "stop"
16333 ],
56122987 16334 "optional" : 1,
44660702 16335 "type" : "string"
56122987 16336 }
44660702 16337 },
56122987 16338 "optional" : 1,
4d47f125 16339 "type" : "string"
56122987 16340 },
4d47f125
TL
16341 "vmgenid" : {
16342 "default" : "1 (autogenerated)",
16343 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
16344 "format_description" : "UUID",
16345 "optional" : 1,
16346 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
16347 "type" : "string",
4772952b 16348 "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 16349 },
2489d6df
WB
16350 "vmstatestorage" : {
16351 "description" : "Default storage for VM state volumes/files.",
16352 "format" : "pve-storage-id",
16353 "optional" : 1,
4d47f125 16354 "type" : "string"
2489d6df 16355 },
44660702 16356 "watchdog" : {
c2993fe5 16357 "description" : "Create a virtual hardware watchdog device.",
44660702 16358 "format" : "pve-qm-watchdog",
56122987 16359 "optional" : 1,
c2993fe5
DM
16360 "type" : "string",
16361 "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 16362 }
4d47f125
TL
16363 },
16364 "type" : "object"
44660702 16365 }
56122987 16366 },
4d47f125 16367 "POST" : {
e9cd3bd4 16368 "allowtoken" : 1,
4d47f125
TL
16369 "description" : "Set virtual machine options (asynchrounous API).",
16370 "method" : "POST",
16371 "name" : "update_vm_async",
56122987 16372 "parameters" : {
7aacca6f 16373 "additionalProperties" : 0,
56122987 16374 "properties" : {
44660702
DM
16375 "acpi" : {
16376 "default" : 1,
16377 "description" : "Enable/disable ACPI.",
7aacca6f 16378 "optional" : 1,
013dc89f
DM
16379 "type" : "boolean",
16380 "typetext" : "<boolean>"
7aacca6f 16381 },
4e7f60c2 16382 "affinity" : {
81a3384d 16383 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
16384 "format" : "pve-cpuset",
16385 "optional" : 1,
16386 "type" : "string",
16387 "typetext" : "<string>"
16388 },
44660702 16389 "agent" : {
9d2e98ed 16390 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
16391 "format" : {
16392 "enabled" : {
16393 "default" : 0,
16394 "default_key" : 1,
9d2e98ed
TL
16395 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
16396 "type" : "boolean"
16397 },
16398 "freeze-fs-on-backup" : {
16399 "default" : 1,
16400 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
16401 "optional" : 1,
4d47f125
TL
16402 "type" : "boolean"
16403 },
16404 "fstrim_cloned_disks" : {
16405 "default" : 0,
d2656385 16406 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
16407 "optional" : 1,
16408 "type" : "boolean"
5c1699e5
TL
16409 },
16410 "type" : {
16411 "default" : "virtio",
16412 "description" : "Select the agent type",
16413 "enum" : [
16414 "virtio",
16415 "isa"
16416 ],
16417 "optional" : 1,
16418 "type" : "string"
4d47f125
TL
16419 }
16420 },
7aacca6f 16421 "optional" : 1,
4d47f125 16422 "type" : "string",
9d2e98ed 16423 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 16424 },
e2d681b3
TL
16425 "arch" : {
16426 "description" : "Virtual processor architecture. Defaults to the host.",
16427 "enum" : [
16428 "x86_64",
16429 "aarch64"
16430 ],
16431 "optional" : 1,
16432 "type" : "string"
16433 },
44660702 16434 "args" : {
c2993fe5 16435 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 16436 "optional" : 1,
c2993fe5 16437 "type" : "string",
013dc89f 16438 "typetext" : "<string>",
159464a9 16439 "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 16440 },
1c532546
TL
16441 "audio0" : {
16442 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
16443 "format" : {
16444 "device" : {
16445 "description" : "Configure an audio device.",
16446 "enum" : [
16447 "ich9-intel-hda",
16448 "intel-hda",
16449 "AC97"
16450 ],
16451 "type" : "string"
16452 },
16453 "driver" : {
16454 "default" : "spice",
16455 "description" : "Driver backend for the audio device.",
16456 "enum" : [
d2656385
TL
16457 "spice",
16458 "none"
1c532546
TL
16459 ],
16460 "optional" : 1,
16461 "type" : "string"
16462 }
16463 },
16464 "optional" : 1,
16465 "type" : "string",
d2656385 16466 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 16467 },
44660702
DM
16468 "autostart" : {
16469 "default" : 0,
16470 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 16471 "optional" : 1,
013dc89f
DM
16472 "type" : "boolean",
16473 "typetext" : "<boolean>"
7aacca6f 16474 },
4d47f125
TL
16475 "background_delay" : {
16476 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
16477 "maximum" : 30,
16478 "minimum" : 1,
16479 "optional" : 1,
16480 "type" : "integer",
16481 "typetext" : "<integer> (1 - 30)"
16482 },
44660702 16483 "balloon" : {
9d2e98ed 16484 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702
DM
16485 "minimum" : 0,
16486 "optional" : 1,
4bd7df8b 16487 "type" : "integer",
013dc89f 16488 "typetext" : "<integer> (0 - N)"
44660702
DM
16489 },
16490 "bios" : {
16491 "default" : "seabios",
16492 "description" : "Select BIOS implementation.",
7aacca6f 16493 "enum" : [
44660702
DM
16494 "seabios",
16495 "ovmf"
7aacca6f 16496 ],
56122987 16497 "optional" : 1,
7aacca6f
DM
16498 "type" : "string"
16499 },
44660702 16500 "boot" : {
5370fa8c 16501 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 16502 "format" : "pve-qm-boot",
7aacca6f 16503 "optional" : 1,
4772952b
TL
16504 "type" : "string",
16505 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 16506 },
44660702 16507 "bootdisk" : {
4772952b 16508 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
16509 "format" : "pve-qm-bootdisk",
16510 "optional" : 1,
16511 "pattern" : "(ide|sata|scsi|virtio)\\d+",
16512 "type" : "string"
16513 },
16514 "cdrom" : {
16515 "description" : "This is an alias for option -ide2",
de0983cb 16516 "format" : "pve-qm-ide",
56122987 16517 "optional" : 1,
7aacca6f 16518 "type" : "string",
013dc89f 16519 "typetext" : "<volume>"
44660702 16520 },
95895385
TL
16521 "cicustom" : {
16522 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
16523 "format" : "pve-qm-cicustom",
16524 "optional" : 1,
16525 "type" : "string",
5370fa8c 16526 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 16527 },
27a7acb2
DM
16528 "cipassword" : {
16529 "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.",
16530 "optional" : 1,
16531 "type" : "string",
16532 "typetext" : "<string>"
16533 },
16534 "citype" : {
16535 "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.",
16536 "enum" : [
16537 "configdrive2",
d2656385
TL
16538 "nocloud",
16539 "opennebula"
27a7acb2
DM
16540 ],
16541 "optional" : 1,
16542 "type" : "string"
16543 },
159464a9
TL
16544 "ciupgrade" : {
16545 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
16546 "optional" : 1,
16547 "type" : "boolean",
16548 "typetext" : "<boolean>"
16549 },
27a7acb2
DM
16550 "ciuser" : {
16551 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
16552 "optional" : 1,
16553 "type" : "string",
16554 "typetext" : "<string>"
16555 },
44660702
DM
16556 "cores" : {
16557 "default" : 1,
16558 "description" : "The number of cores per socket.",
16559 "minimum" : 1,
16560 "optional" : 1,
4bd7df8b 16561 "type" : "integer",
013dc89f 16562 "typetext" : "<integer> (1 - N)"
44660702
DM
16563 },
16564 "cpu" : {
16565 "description" : "Emulated CPU type.",
c5aa7e14 16566 "format" : "pve-vm-cpu-conf",
44660702 16567 "optional" : 1,
4bd7df8b 16568 "type" : "string",
04d22a9f 16569 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
16570 },
16571 "cpulimit" : {
16572 "default" : 0,
c2993fe5 16573 "description" : "Limit of CPU usage.",
44660702
DM
16574 "maximum" : 128,
16575 "minimum" : 0,
16576 "optional" : 1,
c2993fe5 16577 "type" : "number",
013dc89f 16578 "typetext" : "<number> (0 - 128)",
c2993fe5 16579 "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
16580 },
16581 "cpuunits" : {
5370fa8c
TL
16582 "default" : "cgroup v1: 1024, cgroup v2: 100",
16583 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 16584 "maximum" : 262144,
7af2edf9 16585 "minimum" : 1,
44660702 16586 "optional" : 1,
c2993fe5 16587 "type" : "integer",
7af2edf9 16588 "typetext" : "<integer> (1 - 262144)",
2489d6df 16589 "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
16590 },
16591 "delete" : {
16592 "description" : "A list of settings you want to delete.",
16593 "format" : "pve-configid-list",
16594 "optional" : 1,
013dc89f
DM
16595 "type" : "string",
16596 "typetext" : "<string>"
44660702
DM
16597 },
16598 "description" : {
8f4d9c87
TL
16599 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
16600 "maxLength" : 8192,
44660702 16601 "optional" : 1,
013dc89f
DM
16602 "type" : "string",
16603 "typetext" : "<string>"
44660702
DM
16604 },
16605 "digest" : {
16606 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
16607 "maxLength" : 40,
16608 "optional" : 1,
013dc89f
DM
16609 "type" : "string",
16610 "typetext" : "<string>"
44660702 16611 },
4d47f125 16612 "efidisk0" : {
9d2e98ed 16613 "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 16614 "format" : {
5370fa8c
TL
16615 "efitype" : {
16616 "default" : "2m",
9d2e98ed 16617 "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
16618 "enum" : [
16619 "2m",
16620 "4m"
16621 ],
16622 "optional" : 1,
16623 "type" : "string"
16624 },
4d47f125
TL
16625 "file" : {
16626 "default_key" : 1,
16627 "description" : "The drive's backing volume.",
16628 "format" : "pve-volume-id-or-qm-path",
16629 "format_description" : "volume",
16630 "type" : "string"
16631 },
16632 "format" : {
16633 "description" : "The drive's backing file's data format.",
16634 "enum" : [
16635 "raw",
16636 "cow",
16637 "qcow",
16638 "qed",
16639 "qcow2",
16640 "vmdk",
16641 "cloop"
16642 ],
16643 "optional" : 1,
16644 "type" : "string"
16645 },
7af2edf9
TL
16646 "import-from" : {
16647 "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!",
16648 "format" : "pve-volume-id-or-absolute-path",
16649 "format_description" : "source volume",
16650 "optional" : 1,
16651 "type" : "string"
16652 },
5370fa8c
TL
16653 "pre-enrolled-keys" : {
16654 "default" : 0,
16655 "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.",
16656 "optional" : 1,
16657 "type" : "boolean"
16658 },
4d47f125
TL
16659 "size" : {
16660 "description" : "Disk size. This is purely informational and has no effect.",
16661 "format" : "disk-size",
16662 "format_description" : "DiskSize",
16663 "optional" : 1,
16664 "type" : "string"
16665 },
16666 "volume" : {
16667 "alias" : "file"
16668 }
16669 },
16670 "optional" : 1,
16671 "type" : "string",
7af2edf9 16672 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 16673 },
44660702
DM
16674 "force" : {
16675 "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.",
16676 "optional" : 1,
16677 "requires" : "delete",
013dc89f
DM
16678 "type" : "boolean",
16679 "typetext" : "<boolean>"
44660702
DM
16680 },
16681 "freeze" : {
16682 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
16683 "optional" : 1,
013dc89f
DM
16684 "type" : "boolean",
16685 "typetext" : "<boolean>"
44660702 16686 },
5f26e15b
TL
16687 "hookscript" : {
16688 "description" : "Script that will be executed during various steps in the vms lifetime.",
16689 "format" : "pve-volume-id",
16690 "optional" : 1,
16691 "type" : "string",
16692 "typetext" : "<string>"
16693 },
44660702 16694 "hostpci[n]" : {
c2993fe5 16695 "description" : "Map host PCI devices into guest.",
44660702
DM
16696 "format" : "pve-qm-hostpci",
16697 "optional" : 1,
57b78691 16698 "type" : "string",
499c9b7f 16699 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 16700 "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 16701 },
7aacca6f 16702 "hotplug" : {
7aacca6f 16703 "default" : "network,disk,usb",
4e7f60c2 16704 "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 16705 "format" : "pve-hotplug-features",
56122987 16706 "optional" : 1,
013dc89f
DM
16707 "type" : "string",
16708 "typetext" : "<string>"
56122987 16709 },
4bd7df8b
DM
16710 "hugepages" : {
16711 "description" : "Enable/disable hugepages memory.",
16712 "enum" : [
16713 "any",
16714 "2",
16715 "1024"
16716 ],
16717 "optional" : 1,
16718 "type" : "string"
16719 },
56122987 16720 "ide[n]" : {
7af2edf9 16721 "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 16722 "format" : {
44660702
DM
16723 "aio" : {
16724 "description" : "AIO type to use.",
16725 "enum" : [
16726 "native",
8f4d9c87
TL
16727 "threads",
16728 "io_uring"
44660702 16729 ],
56122987 16730 "optional" : 1,
44660702 16731 "type" : "string"
56122987 16732 },
44660702
DM
16733 "backup" : {
16734 "description" : "Whether the drive should be included when making backups.",
44660702
DM
16735 "optional" : 1,
16736 "type" : "boolean"
16737 },
16738 "bps" : {
de0983cb 16739 "description" : "Maximum r/w speed in bytes per second.",
44660702 16740 "format_description" : "bps",
56122987 16741 "optional" : 1,
44660702 16742 "type" : "integer"
56122987 16743 },
de0983cb
DM
16744 "bps_max_length" : {
16745 "description" : "Maximum length of I/O bursts in seconds.",
16746 "format_description" : "seconds",
16747 "minimum" : 1,
16748 "optional" : 1,
16749 "type" : "integer"
16750 },
44660702 16751 "bps_rd" : {
de0983cb 16752 "description" : "Maximum read speed in bytes per second.",
44660702 16753 "format_description" : "bps",
56122987 16754 "optional" : 1,
44660702 16755 "type" : "integer"
56122987 16756 },
de0983cb 16757 "bps_rd_length" : {
5d9c884c
DM
16758 "alias" : "bps_rd_max_length"
16759 },
16760 "bps_rd_max_length" : {
de0983cb
DM
16761 "description" : "Maximum length of read I/O bursts in seconds.",
16762 "format_description" : "seconds",
16763 "minimum" : 1,
16764 "optional" : 1,
16765 "type" : "integer"
16766 },
7aacca6f 16767 "bps_wr" : {
de0983cb 16768 "description" : "Maximum write speed in bytes per second.",
44660702
DM
16769 "format_description" : "bps",
16770 "optional" : 1,
16771 "type" : "integer"
7aacca6f 16772 },
de0983cb 16773 "bps_wr_length" : {
5d9c884c
DM
16774 "alias" : "bps_wr_max_length"
16775 },
16776 "bps_wr_max_length" : {
de0983cb
DM
16777 "description" : "Maximum length of write I/O bursts in seconds.",
16778 "format_description" : "seconds",
16779 "minimum" : 1,
16780 "optional" : 1,
16781 "type" : "integer"
16782 },
44660702
DM
16783 "cache" : {
16784 "description" : "The drive's cache mode",
16785 "enum" : [
16786 "none",
16787 "writethrough",
16788 "writeback",
16789 "unsafe",
16790 "directsync"
16791 ],
56122987 16792 "optional" : 1,
44660702
DM
16793 "type" : "string"
16794 },
16795 "cyls" : {
16796 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16797 "optional" : 1,
16798 "type" : "integer"
16799 },
16800 "detect_zeroes" : {
16801 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16802 "optional" : 1,
16803 "type" : "boolean"
56122987 16804 },
7aacca6f 16805 "discard" : {
7aacca6f 16806 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 16807 "enum" : [
7aacca6f
DM
16808 "ignore",
16809 "on"
56122987
DM
16810 ],
16811 "optional" : 1,
44660702 16812 "type" : "string"
7aacca6f 16813 },
44660702
DM
16814 "file" : {
16815 "default_key" : 1,
16816 "description" : "The drive's backing volume.",
16817 "format" : "pve-volume-id-or-qm-path",
16818 "format_description" : "volume",
16819 "type" : "string"
7aacca6f
DM
16820 },
16821 "format" : {
44660702 16822 "description" : "The drive's backing file's data format.",
7aacca6f
DM
16823 "enum" : [
16824 "raw",
16825 "cow",
16826 "qcow",
16827 "qed",
16828 "qcow2",
16829 "vmdk",
16830 "cloop"
16831 ],
7aacca6f 16832 "optional" : 1,
44660702 16833 "type" : "string"
56122987 16834 },
7aacca6f 16835 "heads" : {
44660702 16836 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16837 "optional" : 1,
44660702 16838 "type" : "integer"
7aacca6f 16839 },
7af2edf9
TL
16840 "import-from" : {
16841 "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!",
16842 "format" : "pve-volume-id-or-absolute-path",
16843 "format_description" : "source volume",
16844 "optional" : 1,
16845 "type" : "string"
16846 },
44660702 16847 "iops" : {
de0983cb 16848 "description" : "Maximum r/w I/O in operations per second.",
44660702 16849 "format_description" : "iops",
7aacca6f 16850 "optional" : 1,
44660702 16851 "type" : "integer"
56122987 16852 },
44660702 16853 "iops_max" : {
de0983cb 16854 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16855 "format_description" : "iops",
56122987 16856 "optional" : 1,
44660702 16857 "type" : "integer"
56122987 16858 },
de0983cb
DM
16859 "iops_max_length" : {
16860 "description" : "Maximum length of I/O bursts in seconds.",
16861 "format_description" : "seconds",
16862 "minimum" : 1,
16863 "optional" : 1,
16864 "type" : "integer"
16865 },
44660702 16866 "iops_rd" : {
de0983cb 16867 "description" : "Maximum read I/O in operations per second.",
44660702 16868 "format_description" : "iops",
56122987 16869 "optional" : 1,
44660702 16870 "type" : "integer"
7aacca6f 16871 },
de0983cb 16872 "iops_rd_length" : {
5d9c884c 16873 "alias" : "iops_rd_max_length"
de0983cb 16874 },
44660702 16875 "iops_rd_max" : {
de0983cb 16876 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16877 "format_description" : "iops",
7aacca6f 16878 "optional" : 1,
44660702 16879 "type" : "integer"
7aacca6f 16880 },
5d9c884c
DM
16881 "iops_rd_max_length" : {
16882 "description" : "Maximum length of read I/O bursts in seconds.",
16883 "format_description" : "seconds",
16884 "minimum" : 1,
16885 "optional" : 1,
16886 "type" : "integer"
16887 },
44660702 16888 "iops_wr" : {
de0983cb 16889 "description" : "Maximum write I/O in operations per second.",
44660702 16890 "format_description" : "iops",
7aacca6f 16891 "optional" : 1,
44660702 16892 "type" : "integer"
56122987 16893 },
de0983cb 16894 "iops_wr_length" : {
5d9c884c 16895 "alias" : "iops_wr_max_length"
de0983cb 16896 },
44660702 16897 "iops_wr_max" : {
de0983cb 16898 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16899 "format_description" : "iops",
7aacca6f 16900 "optional" : 1,
44660702 16901 "type" : "integer"
7aacca6f 16902 },
5d9c884c
DM
16903 "iops_wr_max_length" : {
16904 "description" : "Maximum length of write I/O bursts in seconds.",
16905 "format_description" : "seconds",
16906 "minimum" : 1,
16907 "optional" : 1,
16908 "type" : "integer"
16909 },
7aacca6f 16910 "mbps" : {
de0983cb 16911 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 16912 "format_description" : "mbps",
7aacca6f 16913 "optional" : 1,
44660702 16914 "type" : "number"
7aacca6f 16915 },
44660702 16916 "mbps_max" : {
de0983cb 16917 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16918 "format_description" : "mbps",
7aacca6f 16919 "optional" : 1,
44660702 16920 "type" : "number"
7aacca6f 16921 },
44660702 16922 "mbps_rd" : {
de0983cb 16923 "description" : "Maximum read speed in megabytes per second.",
44660702 16924 "format_description" : "mbps",
7aacca6f 16925 "optional" : 1,
44660702 16926 "type" : "number"
7aacca6f 16927 },
44660702 16928 "mbps_rd_max" : {
de0983cb 16929 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16930 "format_description" : "mbps",
16931 "optional" : 1,
16932 "type" : "number"
7aacca6f 16933 },
44660702 16934 "mbps_wr" : {
de0983cb 16935 "description" : "Maximum write speed in megabytes per second.",
44660702 16936 "format_description" : "mbps",
7aacca6f 16937 "optional" : 1,
44660702
DM
16938 "type" : "number"
16939 },
16940 "mbps_wr_max" : {
de0983cb 16941 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16942 "format_description" : "mbps",
16943 "optional" : 1,
16944 "type" : "number"
16945 },
16946 "media" : {
16947 "default" : "disk",
16948 "description" : "The drive's media type.",
56122987 16949 "enum" : [
44660702
DM
16950 "cdrom",
16951 "disk"
56122987 16952 ],
44660702
DM
16953 "optional" : 1,
16954 "type" : "string"
56122987 16955 },
7aacca6f 16956 "model" : {
44660702 16957 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 16958 "format" : "urlencoded",
7aacca6f 16959 "format_description" : "model",
44660702 16960 "maxLength" : 120,
56122987 16961 "optional" : 1,
44660702 16962 "type" : "string"
56122987 16963 },
5d9c884c
DM
16964 "replicate" : {
16965 "default" : 1,
16966 "description" : "Whether the drive should considered for replication jobs.",
16967 "optional" : 1,
16968 "type" : "boolean"
16969 },
44660702
DM
16970 "rerror" : {
16971 "description" : "Read error action.",
16972 "enum" : [
16973 "ignore",
16974 "report",
16975 "stop"
16976 ],
56122987 16977 "optional" : 1,
44660702 16978 "type" : "string"
56122987 16979 },
44660702
DM
16980 "secs" : {
16981 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
16982 "optional" : 1,
16983 "type" : "integer"
56122987 16984 },
44660702
DM
16985 "serial" : {
16986 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16987 "format" : "urlencoded",
16988 "format_description" : "serial",
16989 "maxLength" : 60,
56122987 16990 "optional" : 1,
44660702 16991 "type" : "string"
56122987 16992 },
27a7acb2
DM
16993 "shared" : {
16994 "default" : 0,
16995 "description" : "Mark this locally-managed volume as available on all nodes",
16996 "optional" : 1,
16997 "type" : "boolean",
16998 "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!"
16999 },
44660702
DM
17000 "size" : {
17001 "description" : "Disk size. This is purely informational and has no effect.",
17002 "format" : "disk-size",
f004f5b9 17003 "format_description" : "DiskSize",
56122987 17004 "optional" : 1,
44660702 17005 "type" : "string"
56122987 17006 },
44660702 17007 "snapshot" : {
27a7acb2 17008 "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 17009 "optional" : 1,
44660702 17010 "type" : "boolean"
56122987 17011 },
25203dc1
NC
17012 "ssd" : {
17013 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17014 "optional" : 1,
17015 "type" : "boolean"
17016 },
44660702
DM
17017 "trans" : {
17018 "description" : "Force disk geometry bios translation mode.",
17019 "enum" : [
17020 "none",
17021 "lba",
17022 "auto"
17023 ],
56122987 17024 "optional" : 1,
44660702
DM
17025 "type" : "string"
17026 },
17027 "volume" : {
17028 "alias" : "file"
56122987 17029 },
7aacca6f 17030 "werror" : {
44660702 17031 "description" : "Write error action.",
7aacca6f
DM
17032 "enum" : [
17033 "enospc",
17034 "ignore",
17035 "report",
17036 "stop"
17037 ],
56122987 17038 "optional" : 1,
44660702 17039 "type" : "string"
95895385
TL
17040 },
17041 "wwn" : {
17042 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17043 "format_description" : "wwn",
17044 "optional" : 1,
17045 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17046 "type" : "string"
7aacca6f 17047 }
44660702
DM
17048 },
17049 "optional" : 1,
4bd7df8b 17050 "type" : "string",
7af2edf9 17051 "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
17052 },
17053 "ipconfig[n]" : {
d2656385 17054 "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
17055 "format" : "pve-qm-ipconfig",
17056 "optional" : 1,
17057 "type" : "string",
17058 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 17059 },
95895385
TL
17060 "ivshmem" : {
17061 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
17062 "format" : {
17063 "name" : {
17064 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
17065 "format_description" : "string",
17066 "optional" : 1,
17067 "pattern" : "[a-zA-Z0-9\\-]+",
17068 "type" : "string"
17069 },
17070 "size" : {
17071 "description" : "The size of the file in MB.",
17072 "minimum" : 1,
17073 "type" : "integer"
17074 }
17075 },
17076 "optional" : 1,
17077 "type" : "string",
17078 "typetext" : "size=<integer> [,name=<string>]"
17079 },
4772952b
TL
17080 "keephugepages" : {
17081 "default" : 0,
17082 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
17083 "optional" : 1,
17084 "type" : "boolean",
17085 "typetext" : "<boolean>"
17086 },
44660702 17087 "keyboard" : {
35a75dd3 17088 "default" : null,
7af2edf9 17089 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
17090 "enum" : [
17091 "de",
17092 "de-ch",
17093 "da",
17094 "en-gb",
17095 "en-us",
17096 "es",
17097 "fi",
17098 "fr",
17099 "fr-be",
17100 "fr-ca",
17101 "fr-ch",
17102 "hu",
17103 "is",
17104 "it",
17105 "ja",
17106 "lt",
17107 "mk",
17108 "nl",
17109 "no",
17110 "pl",
17111 "pt",
17112 "pt-br",
17113 "sv",
17114 "sl",
17115 "tr"
17116 ],
7aacca6f 17117 "optional" : 1,
44660702 17118 "type" : "string"
7aacca6f 17119 },
44660702 17120 "kvm" : {
7aacca6f 17121 "default" : 1,
44660702 17122 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 17123 "optional" : 1,
013dc89f
DM
17124 "type" : "boolean",
17125 "typetext" : "<boolean>"
7aacca6f 17126 },
44660702 17127 "localtime" : {
5370fa8c 17128 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 17129 "optional" : 1,
013dc89f
DM
17130 "type" : "boolean",
17131 "typetext" : "<boolean>"
7aacca6f 17132 },
44660702
DM
17133 "lock" : {
17134 "description" : "Lock/unlock the VM.",
17135 "enum" : [
44660702 17136 "backup",
5f26e15b
TL
17137 "clone",
17138 "create",
17139 "migrate",
17140 "rollback",
44660702 17141 "snapshot",
95895385
TL
17142 "snapshot-delete",
17143 "suspending",
17144 "suspended"
44660702 17145 ],
7aacca6f 17146 "optional" : 1,
44660702 17147 "type" : "string"
7aacca6f 17148 },
44660702 17149 "machine" : {
9d2e98ed 17150 "description" : "Specifies the QEMU machine type.",
44660702 17151 "maxLength" : 40,
7aacca6f 17152 "optional" : 1,
5c1699e5 17153 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 17154 "type" : "string"
7aacca6f 17155 },
44660702
DM
17156 "memory" : {
17157 "default" : 512,
9d2e98ed 17158 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702 17159 "minimum" : 16,
7aacca6f 17160 "optional" : 1,
4bd7df8b 17161 "type" : "integer",
013dc89f 17162 "typetext" : "<integer> (16 - N)"
7aacca6f 17163 },
44660702
DM
17164 "migrate_downtime" : {
17165 "default" : 0.1,
17166 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
17167 "minimum" : 0,
7aacca6f 17168 "optional" : 1,
4bd7df8b 17169 "type" : "number",
013dc89f 17170 "typetext" : "<number> (0 - N)"
7aacca6f 17171 },
44660702 17172 "migrate_speed" : {
7aacca6f 17173 "default" : 0,
44660702
DM
17174 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
17175 "minimum" : 0,
17176 "optional" : 1,
4bd7df8b 17177 "type" : "integer",
013dc89f 17178 "typetext" : "<integer> (0 - N)"
7aacca6f 17179 },
44660702
DM
17180 "name" : {
17181 "description" : "Set a name for the VM. Only used on the configuration web interface.",
17182 "format" : "dns-name",
7aacca6f 17183 "optional" : 1,
013dc89f
DM
17184 "type" : "string",
17185 "typetext" : "<string>"
7aacca6f 17186 },
27a7acb2 17187 "nameserver" : {
de786b48 17188 "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
17189 "format" : "address-list",
17190 "optional" : 1,
17191 "type" : "string",
17192 "typetext" : "<string>"
17193 },
44660702 17194 "net[n]" : {
c2993fe5 17195 "description" : "Specify network devices.",
f004f5b9
DM
17196 "format" : {
17197 "bridge" : {
c2993fe5 17198 "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 17199 "format" : "pve-bridge-id",
f004f5b9
DM
17200 "format_description" : "bridge",
17201 "optional" : 1,
17202 "type" : "string"
17203 },
17204 "e1000" : {
17205 "alias" : "macaddr",
17206 "keyAlias" : "model"
17207 },
17208 "e1000-82540em" : {
17209 "alias" : "macaddr",
17210 "keyAlias" : "model"
17211 },
17212 "e1000-82544gc" : {
17213 "alias" : "macaddr",
17214 "keyAlias" : "model"
17215 },
17216 "e1000-82545em" : {
17217 "alias" : "macaddr",
17218 "keyAlias" : "model"
17219 },
5370fa8c
TL
17220 "e1000e" : {
17221 "alias" : "macaddr",
17222 "keyAlias" : "model"
17223 },
f004f5b9
DM
17224 "firewall" : {
17225 "description" : "Whether this interface should be protected by the firewall.",
17226 "optional" : 1,
17227 "type" : "boolean"
17228 },
17229 "i82551" : {
17230 "alias" : "macaddr",
17231 "keyAlias" : "model"
17232 },
17233 "i82557b" : {
17234 "alias" : "macaddr",
17235 "keyAlias" : "model"
17236 },
17237 "i82559er" : {
17238 "alias" : "macaddr",
17239 "keyAlias" : "model"
17240 },
17241 "link_down" : {
c2993fe5 17242 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
17243 "optional" : 1,
17244 "type" : "boolean"
17245 },
17246 "macaddr" : {
c2993fe5 17247 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 17248 "format" : "mac-addr",
f004f5b9 17249 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 17250 "optional" : 1,
95895385
TL
17251 "type" : "string",
17252 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
17253 },
17254 "model" : {
17255 "default_key" : 1,
c2993fe5 17256 "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 17257 "enum" : [
f004f5b9 17258 "e1000",
5370fa8c
TL
17259 "e1000-82540em",
17260 "e1000-82544gc",
17261 "e1000-82545em",
17262 "e1000e",
f004f5b9
DM
17263 "i82551",
17264 "i82557b",
17265 "i82559er",
5370fa8c
TL
17266 "ne2k_isa",
17267 "ne2k_pci",
17268 "pcnet",
17269 "rtl8139",
17270 "virtio",
17271 "vmxnet3"
f004f5b9 17272 ],
f004f5b9
DM
17273 "type" : "string"
17274 },
ac70d7d1
TL
17275 "mtu" : {
17276 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
17277 "maximum" : 65520,
17278 "minimum" : 1,
17279 "optional" : 1,
17280 "type" : "integer"
17281 },
f004f5b9
DM
17282 "ne2k_isa" : {
17283 "alias" : "macaddr",
17284 "keyAlias" : "model"
17285 },
17286 "ne2k_pci" : {
17287 "alias" : "macaddr",
17288 "keyAlias" : "model"
17289 },
17290 "pcnet" : {
17291 "alias" : "macaddr",
17292 "keyAlias" : "model"
17293 },
17294 "queues" : {
17295 "description" : "Number of packet queues to be used on the device.",
81a3384d 17296 "maximum" : 64,
f004f5b9
DM
17297 "minimum" : 0,
17298 "optional" : 1,
17299 "type" : "integer"
17300 },
17301 "rate" : {
c2993fe5 17302 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
17303 "minimum" : 0,
17304 "optional" : 1,
17305 "type" : "number"
17306 },
17307 "rtl8139" : {
17308 "alias" : "macaddr",
17309 "keyAlias" : "model"
17310 },
17311 "tag" : {
17312 "description" : "VLAN tag to apply to packets on this interface.",
17313 "maximum" : 4094,
c2993fe5 17314 "minimum" : 1,
f004f5b9
DM
17315 "optional" : 1,
17316 "type" : "integer"
17317 },
17318 "trunks" : {
17319 "description" : "VLAN trunks to pass through this interface.",
17320 "format_description" : "vlanid[;vlanid...]",
17321 "optional" : 1,
17322 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17323 "type" : "string"
17324 },
17325 "virtio" : {
17326 "alias" : "macaddr",
17327 "keyAlias" : "model"
17328 },
17329 "vmxnet3" : {
17330 "alias" : "macaddr",
17331 "keyAlias" : "model"
17332 }
17333 },
7aacca6f 17334 "optional" : 1,
4bd7df8b 17335 "type" : "string",
ac70d7d1 17336 "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 17337 },
44660702
DM
17338 "node" : {
17339 "description" : "The cluster node name.",
17340 "format" : "pve-node",
013dc89f
DM
17341 "type" : "string",
17342 "typetext" : "<string>"
44660702
DM
17343 },
17344 "numa" : {
17345 "default" : 0,
17346 "description" : "Enable/disable NUMA.",
7aacca6f 17347 "optional" : 1,
013dc89f
DM
17348 "type" : "boolean",
17349 "typetext" : "<boolean>"
7aacca6f 17350 },
44660702 17351 "numa[n]" : {
c2993fe5 17352 "description" : "NUMA topology.",
44660702
DM
17353 "format" : {
17354 "cpus" : {
c2993fe5 17355 "description" : "CPUs accessing this NUMA node.",
44660702
DM
17356 "format_description" : "id[-id];...",
17357 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17358 "type" : "string"
17359 },
17360 "hostnodes" : {
c2993fe5 17361 "description" : "Host NUMA nodes to use.",
44660702
DM
17362 "format_description" : "id[-id];...",
17363 "optional" : 1,
17364 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17365 "type" : "string"
17366 },
17367 "memory" : {
c2993fe5 17368 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
17369 "optional" : 1,
17370 "type" : "number"
17371 },
17372 "policy" : {
c2993fe5 17373 "description" : "NUMA allocation policy.",
44660702
DM
17374 "enum" : [
17375 "preferred",
17376 "bind",
17377 "interleave"
17378 ],
44660702
DM
17379 "optional" : 1,
17380 "type" : "string"
17381 }
17382 },
7aacca6f 17383 "optional" : 1,
4bd7df8b
DM
17384 "type" : "string",
17385 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 17386 },
44660702
DM
17387 "onboot" : {
17388 "default" : 0,
17389 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 17390 "optional" : 1,
013dc89f
DM
17391 "type" : "boolean",
17392 "typetext" : "<boolean>"
7aacca6f 17393 },
44660702 17394 "ostype" : {
c2993fe5 17395 "description" : "Specify guest operating system.",
44660702
DM
17396 "enum" : [
17397 "other",
17398 "wxp",
17399 "w2k",
17400 "w2k3",
17401 "w2k8",
17402 "wvista",
17403 "win7",
17404 "win8",
32d876b5 17405 "win10",
5370fa8c 17406 "win11",
44660702
DM
17407 "l24",
17408 "l26",
17409 "solaris"
17410 ],
7aacca6f 17411 "optional" : 1,
c2993fe5 17412 "type" : "string",
9d2e98ed 17413 "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 17414 },
44660702 17415 "parallel[n]" : {
c2993fe5 17416 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 17417 "optional" : 1,
44660702 17418 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 17419 "type" : "string",
4772952b 17420 "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 17421 },
44660702
DM
17422 "protection" : {
17423 "default" : 0,
c2993fe5 17424 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 17425 "optional" : 1,
013dc89f
DM
17426 "type" : "boolean",
17427 "typetext" : "<boolean>"
7aacca6f 17428 },
44660702
DM
17429 "reboot" : {
17430 "default" : 1,
17431 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 17432 "optional" : 1,
013dc89f
DM
17433 "type" : "boolean",
17434 "typetext" : "<boolean>"
7aacca6f 17435 },
44660702
DM
17436 "revert" : {
17437 "description" : "Revert a pending change.",
17438 "format" : "pve-configid-list",
7aacca6f 17439 "optional" : 1,
013dc89f
DM
17440 "type" : "string",
17441 "typetext" : "<string>"
7aacca6f 17442 },
c5aa7e14
TL
17443 "rng0" : {
17444 "description" : "Configure a VirtIO-based Random Number Generator.",
17445 "format" : {
17446 "max_bytes" : {
17447 "default" : 1024,
5370fa8c 17448 "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
17449 "optional" : 1,
17450 "type" : "integer"
17451 },
17452 "period" : {
17453 "default" : 1000,
17454 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
17455 "optional" : 1,
17456 "type" : "integer"
17457 },
17458 "source" : {
17459 "default_key" : 1,
5370fa8c 17460 "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
17461 "enum" : [
17462 "/dev/urandom",
17463 "/dev/random",
17464 "/dev/hwrng"
17465 ],
17466 "type" : "string"
17467 }
17468 },
17469 "optional" : 1,
17470 "type" : "string",
17471 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
17472 },
44660702 17473 "sata[n]" : {
7af2edf9 17474 "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 17475 "format" : {
44660702
DM
17476 "aio" : {
17477 "description" : "AIO type to use.",
17478 "enum" : [
17479 "native",
8f4d9c87
TL
17480 "threads",
17481 "io_uring"
44660702 17482 ],
44660702
DM
17483 "optional" : 1,
17484 "type" : "string"
17485 },
17486 "backup" : {
17487 "description" : "Whether the drive should be included when making backups.",
44660702
DM
17488 "optional" : 1,
17489 "type" : "boolean"
17490 },
17491 "bps" : {
de0983cb 17492 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 17493 "format_description" : "bps",
7aacca6f
DM
17494 "optional" : 1,
17495 "type" : "integer"
56122987 17496 },
de0983cb
DM
17497 "bps_max_length" : {
17498 "description" : "Maximum length of I/O bursts in seconds.",
17499 "format_description" : "seconds",
17500 "minimum" : 1,
17501 "optional" : 1,
17502 "type" : "integer"
17503 },
44660702 17504 "bps_rd" : {
de0983cb 17505 "description" : "Maximum read speed in bytes per second.",
44660702 17506 "format_description" : "bps",
7aacca6f 17507 "optional" : 1,
44660702 17508 "type" : "integer"
7aacca6f 17509 },
de0983cb 17510 "bps_rd_length" : {
5d9c884c
DM
17511 "alias" : "bps_rd_max_length"
17512 },
17513 "bps_rd_max_length" : {
de0983cb
DM
17514 "description" : "Maximum length of read I/O bursts in seconds.",
17515 "format_description" : "seconds",
17516 "minimum" : 1,
17517 "optional" : 1,
17518 "type" : "integer"
17519 },
44660702 17520 "bps_wr" : {
de0983cb 17521 "description" : "Maximum write speed in bytes per second.",
44660702 17522 "format_description" : "bps",
7aacca6f 17523 "optional" : 1,
44660702 17524 "type" : "integer"
7aacca6f 17525 },
de0983cb 17526 "bps_wr_length" : {
5d9c884c
DM
17527 "alias" : "bps_wr_max_length"
17528 },
17529 "bps_wr_max_length" : {
de0983cb
DM
17530 "description" : "Maximum length of write I/O bursts in seconds.",
17531 "format_description" : "seconds",
17532 "minimum" : 1,
17533 "optional" : 1,
17534 "type" : "integer"
17535 },
44660702
DM
17536 "cache" : {
17537 "description" : "The drive's cache mode",
17538 "enum" : [
17539 "none",
17540 "writethrough",
17541 "writeback",
17542 "unsafe",
17543 "directsync"
17544 ],
7aacca6f 17545 "optional" : 1,
44660702 17546 "type" : "string"
7aacca6f 17547 },
44660702
DM
17548 "cyls" : {
17549 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 17550 "optional" : 1,
44660702 17551 "type" : "integer"
7aacca6f 17552 },
44660702
DM
17553 "detect_zeroes" : {
17554 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 17555 "optional" : 1,
44660702 17556 "type" : "boolean"
7aacca6f 17557 },
44660702
DM
17558 "discard" : {
17559 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17560 "enum" : [
17561 "ignore",
17562 "on"
17563 ],
7aacca6f 17564 "optional" : 1,
44660702
DM
17565 "type" : "string"
17566 },
17567 "file" : {
17568 "default_key" : 1,
17569 "description" : "The drive's backing volume.",
17570 "format" : "pve-volume-id-or-qm-path",
17571 "format_description" : "volume",
17572 "type" : "string"
7aacca6f
DM
17573 },
17574 "format" : {
7aacca6f 17575 "description" : "The drive's backing file's data format.",
56122987
DM
17576 "enum" : [
17577 "raw",
17578 "cow",
17579 "qcow",
17580 "qed",
17581 "qcow2",
17582 "vmdk",
17583 "cloop"
17584 ],
17585 "optional" : 1,
7aacca6f 17586 "type" : "string"
56122987 17587 },
7aacca6f 17588 "heads" : {
7aacca6f 17589 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
17590 "optional" : 1,
17591 "type" : "integer"
56122987 17592 },
7af2edf9
TL
17593 "import-from" : {
17594 "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!",
17595 "format" : "pve-volume-id-or-absolute-path",
17596 "format_description" : "source volume",
17597 "optional" : 1,
17598 "type" : "string"
17599 },
44660702 17600 "iops" : {
de0983cb 17601 "description" : "Maximum r/w I/O in operations per second.",
44660702 17602 "format_description" : "iops",
56122987 17603 "optional" : 1,
44660702 17604 "type" : "integer"
7aacca6f 17605 },
44660702 17606 "iops_max" : {
de0983cb 17607 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 17608 "format_description" : "iops",
7aacca6f 17609 "optional" : 1,
44660702 17610 "type" : "integer"
56122987 17611 },
de0983cb
DM
17612 "iops_max_length" : {
17613 "description" : "Maximum length of I/O bursts in seconds.",
17614 "format_description" : "seconds",
17615 "minimum" : 1,
17616 "optional" : 1,
17617 "type" : "integer"
17618 },
44660702 17619 "iops_rd" : {
de0983cb 17620 "description" : "Maximum read I/O in operations per second.",
44660702 17621 "format_description" : "iops",
56122987 17622 "optional" : 1,
44660702 17623 "type" : "integer"
7aacca6f 17624 },
de0983cb 17625 "iops_rd_length" : {
5d9c884c 17626 "alias" : "iops_rd_max_length"
de0983cb 17627 },
44660702 17628 "iops_rd_max" : {
de0983cb 17629 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 17630 "format_description" : "iops",
56122987 17631 "optional" : 1,
44660702 17632 "type" : "integer"
56122987 17633 },
5d9c884c
DM
17634 "iops_rd_max_length" : {
17635 "description" : "Maximum length of read I/O bursts in seconds.",
17636 "format_description" : "seconds",
17637 "minimum" : 1,
17638 "optional" : 1,
17639 "type" : "integer"
17640 },
44660702 17641 "iops_wr" : {
de0983cb 17642 "description" : "Maximum write I/O in operations per second.",
44660702
DM
17643 "format_description" : "iops",
17644 "optional" : 1,
17645 "type" : "integer"
56122987 17646 },
de0983cb 17647 "iops_wr_length" : {
5d9c884c 17648 "alias" : "iops_wr_max_length"
de0983cb 17649 },
44660702 17650 "iops_wr_max" : {
de0983cb 17651 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
17652 "format_description" : "iops",
17653 "optional" : 1,
17654 "type" : "integer"
17655 },
5d9c884c
DM
17656 "iops_wr_max_length" : {
17657 "description" : "Maximum length of write I/O bursts in seconds.",
17658 "format_description" : "seconds",
17659 "minimum" : 1,
17660 "optional" : 1,
17661 "type" : "integer"
17662 },
44660702 17663 "mbps" : {
de0983cb 17664 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
17665 "format_description" : "mbps",
17666 "optional" : 1,
17667 "type" : "number"
17668 },
17669 "mbps_max" : {
de0983cb 17670 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
17671 "format_description" : "mbps",
17672 "optional" : 1,
17673 "type" : "number"
17674 },
17675 "mbps_rd" : {
de0983cb 17676 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
17677 "format_description" : "mbps",
17678 "optional" : 1,
17679 "type" : "number"
17680 },
17681 "mbps_rd_max" : {
de0983cb 17682 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
17683 "format_description" : "mbps",
17684 "optional" : 1,
17685 "type" : "number"
17686 },
17687 "mbps_wr" : {
de0983cb 17688 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
17689 "format_description" : "mbps",
17690 "optional" : 1,
17691 "type" : "number"
17692 },
17693 "mbps_wr_max" : {
de0983cb 17694 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
17695 "format_description" : "mbps",
17696 "optional" : 1,
17697 "type" : "number"
17698 },
17699 "media" : {
17700 "default" : "disk",
17701 "description" : "The drive's media type.",
17702 "enum" : [
17703 "cdrom",
17704 "disk"
17705 ],
56122987 17706 "optional" : 1,
44660702
DM
17707 "type" : "string"
17708 },
5d9c884c
DM
17709 "replicate" : {
17710 "default" : 1,
17711 "description" : "Whether the drive should considered for replication jobs.",
17712 "optional" : 1,
17713 "type" : "boolean"
17714 },
44660702 17715 "rerror" : {
7aacca6f
DM
17716 "description" : "Read error action.",
17717 "enum" : [
17718 "ignore",
17719 "report",
17720 "stop"
44660702 17721 ],
56122987 17722 "optional" : 1,
44660702 17723 "type" : "string"
56122987 17724 },
7aacca6f 17725 "secs" : {
44660702 17726 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 17727 "optional" : 1,
44660702 17728 "type" : "integer"
56122987 17729 },
44660702
DM
17730 "serial" : {
17731 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17732 "format" : "urlencoded",
17733 "format_description" : "serial",
17734 "maxLength" : 60,
56122987 17735 "optional" : 1,
44660702 17736 "type" : "string"
56122987 17737 },
27a7acb2
DM
17738 "shared" : {
17739 "default" : 0,
17740 "description" : "Mark this locally-managed volume as available on all nodes",
17741 "optional" : 1,
17742 "type" : "boolean",
17743 "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!"
17744 },
44660702
DM
17745 "size" : {
17746 "description" : "Disk size. This is purely informational and has no effect.",
17747 "format" : "disk-size",
f004f5b9 17748 "format_description" : "DiskSize",
56122987 17749 "optional" : 1,
44660702 17750 "type" : "string"
56122987
DM
17751 },
17752 "snapshot" : {
27a7acb2 17753 "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 17754 "optional" : 1,
44660702 17755 "type" : "boolean"
56122987 17756 },
25203dc1
NC
17757 "ssd" : {
17758 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17759 "optional" : 1,
17760 "type" : "boolean"
17761 },
56122987 17762 "trans" : {
7aacca6f 17763 "description" : "Force disk geometry bios translation mode.",
56122987
DM
17764 "enum" : [
17765 "none",
17766 "lba",
17767 "auto"
17768 ],
17769 "optional" : 1,
44660702 17770 "type" : "string"
56122987 17771 },
44660702
DM
17772 "volume" : {
17773 "alias" : "file"
56122987 17774 },
7aacca6f 17775 "werror" : {
44660702 17776 "description" : "Write error action.",
56122987 17777 "enum" : [
7aacca6f 17778 "enospc",
56122987 17779 "ignore",
7aacca6f
DM
17780 "report",
17781 "stop"
17782 ],
7aacca6f 17783 "optional" : 1,
44660702 17784 "type" : "string"
95895385
TL
17785 },
17786 "wwn" : {
17787 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17788 "format_description" : "wwn",
17789 "optional" : 1,
17790 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17791 "type" : "string"
44660702
DM
17792 }
17793 },
17794 "optional" : 1,
4bd7df8b 17795 "type" : "string",
7af2edf9 17796 "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
17797 },
17798 "scsi[n]" : {
7af2edf9 17799 "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
17800 "format" : {
17801 "aio" : {
7aacca6f 17802 "description" : "AIO type to use.",
56122987
DM
17803 "enum" : [
17804 "native",
8f4d9c87
TL
17805 "threads",
17806 "io_uring"
44660702 17807 ],
56122987 17808 "optional" : 1,
44660702 17809 "type" : "string"
56122987 17810 },
7aacca6f 17811 "backup" : {
7aacca6f 17812 "description" : "Whether the drive should be included when making backups.",
7aacca6f 17813 "optional" : 1,
44660702 17814 "type" : "boolean"
56122987 17815 },
44660702 17816 "bps" : {
de0983cb 17817 "description" : "Maximum r/w speed in bytes per second.",
44660702 17818 "format_description" : "bps",
7aacca6f 17819 "optional" : 1,
44660702 17820 "type" : "integer"
7aacca6f 17821 },
de0983cb
DM
17822 "bps_max_length" : {
17823 "description" : "Maximum length of I/O bursts in seconds.",
17824 "format_description" : "seconds",
17825 "minimum" : 1,
17826 "optional" : 1,
17827 "type" : "integer"
17828 },
44660702 17829 "bps_rd" : {
de0983cb 17830 "description" : "Maximum read speed in bytes per second.",
44660702 17831 "format_description" : "bps",
56122987 17832 "optional" : 1,
44660702 17833 "type" : "integer"
56122987 17834 },
de0983cb 17835 "bps_rd_length" : {
5d9c884c
DM
17836 "alias" : "bps_rd_max_length"
17837 },
17838 "bps_rd_max_length" : {
de0983cb
DM
17839 "description" : "Maximum length of read I/O bursts in seconds.",
17840 "format_description" : "seconds",
17841 "minimum" : 1,
17842 "optional" : 1,
17843 "type" : "integer"
17844 },
44660702 17845 "bps_wr" : {
de0983cb 17846 "description" : "Maximum write speed in bytes per second.",
44660702 17847 "format_description" : "bps",
56122987 17848 "optional" : 1,
44660702 17849 "type" : "integer"
56122987 17850 },
de0983cb 17851 "bps_wr_length" : {
5d9c884c
DM
17852 "alias" : "bps_wr_max_length"
17853 },
17854 "bps_wr_max_length" : {
de0983cb
DM
17855 "description" : "Maximum length of write I/O bursts in seconds.",
17856 "format_description" : "seconds",
17857 "minimum" : 1,
17858 "optional" : 1,
17859 "type" : "integer"
17860 },
44660702
DM
17861 "cache" : {
17862 "description" : "The drive's cache mode",
17863 "enum" : [
17864 "none",
17865 "writethrough",
17866 "writeback",
17867 "unsafe",
17868 "directsync"
17869 ],
56122987 17870 "optional" : 1,
44660702
DM
17871 "type" : "string"
17872 },
17873 "cyls" : {
17874 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
17875 "optional" : 1,
17876 "type" : "integer"
17877 },
17878 "detect_zeroes" : {
17879 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
17880 "optional" : 1,
17881 "type" : "boolean"
17882 },
17883 "discard" : {
17884 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17885 "enum" : [
17886 "ignore",
17887 "on"
17888 ],
44660702
DM
17889 "optional" : 1,
17890 "type" : "string"
17891 },
17892 "file" : {
17893 "default_key" : 1,
17894 "description" : "The drive's backing volume.",
17895 "format" : "pve-volume-id-or-qm-path",
17896 "format_description" : "volume",
17897 "type" : "string"
56122987 17898 },
7aacca6f 17899 "format" : {
44660702 17900 "description" : "The drive's backing file's data format.",
7aacca6f
DM
17901 "enum" : [
17902 "raw",
17903 "cow",
17904 "qcow",
17905 "qed",
17906 "qcow2",
17907 "vmdk",
17908 "cloop"
17909 ],
56122987 17910 "optional" : 1,
44660702 17911 "type" : "string"
56122987 17912 },
44660702
DM
17913 "heads" : {
17914 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17915 "optional" : 1,
44660702 17916 "type" : "integer"
56122987 17917 },
7af2edf9
TL
17918 "import-from" : {
17919 "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!",
17920 "format" : "pve-volume-id-or-absolute-path",
17921 "format_description" : "source volume",
17922 "optional" : 1,
17923 "type" : "string"
17924 },
44660702 17925 "iops" : {
de0983cb 17926 "description" : "Maximum r/w I/O in operations per second.",
44660702 17927 "format_description" : "iops",
7aacca6f 17928 "optional" : 1,
44660702 17929 "type" : "integer"
56122987 17930 },
44660702 17931 "iops_max" : {
de0983cb 17932 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 17933 "format_description" : "iops",
7aacca6f 17934 "optional" : 1,
44660702 17935 "type" : "integer"
56122987 17936 },
de0983cb
DM
17937 "iops_max_length" : {
17938 "description" : "Maximum length of I/O bursts in seconds.",
17939 "format_description" : "seconds",
17940 "minimum" : 1,
17941 "optional" : 1,
17942 "type" : "integer"
17943 },
44660702 17944 "iops_rd" : {
de0983cb 17945 "description" : "Maximum read I/O in operations per second.",
44660702 17946 "format_description" : "iops",
56122987 17947 "optional" : 1,
44660702 17948 "type" : "integer"
56122987 17949 },
de0983cb 17950 "iops_rd_length" : {
5d9c884c 17951 "alias" : "iops_rd_max_length"
de0983cb 17952 },
44660702 17953 "iops_rd_max" : {
de0983cb 17954 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 17955 "format_description" : "iops",
56122987 17956 "optional" : 1,
44660702 17957 "type" : "integer"
56122987 17958 },
5d9c884c
DM
17959 "iops_rd_max_length" : {
17960 "description" : "Maximum length of read I/O bursts in seconds.",
17961 "format_description" : "seconds",
17962 "minimum" : 1,
17963 "optional" : 1,
17964 "type" : "integer"
17965 },
44660702 17966 "iops_wr" : {
de0983cb 17967 "description" : "Maximum write I/O in operations per second.",
44660702 17968 "format_description" : "iops",
56122987 17969 "optional" : 1,
44660702 17970 "type" : "integer"
56122987 17971 },
de0983cb 17972 "iops_wr_length" : {
5d9c884c 17973 "alias" : "iops_wr_max_length"
de0983cb 17974 },
44660702 17975 "iops_wr_max" : {
de0983cb 17976 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 17977 "format_description" : "iops",
44660702
DM
17978 "optional" : 1,
17979 "type" : "integer"
7aacca6f 17980 },
5d9c884c
DM
17981 "iops_wr_max_length" : {
17982 "description" : "Maximum length of write I/O bursts in seconds.",
17983 "format_description" : "seconds",
17984 "minimum" : 1,
17985 "optional" : 1,
17986 "type" : "integer"
17987 },
7aacca6f 17988 "iothread" : {
44660702 17989 "description" : "Whether to use iothreads for this drive",
56122987 17990 "optional" : 1,
44660702 17991 "type" : "boolean"
56122987 17992 },
44660702 17993 "mbps" : {
de0983cb 17994 "description" : "Maximum r/w speed in megabytes per second.",
44660702 17995 "format_description" : "mbps",
56122987 17996 "optional" : 1,
44660702 17997 "type" : "number"
56122987 17998 },
44660702 17999 "mbps_max" : {
de0983cb 18000 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 18001 "format_description" : "mbps",
56122987 18002 "optional" : 1,
44660702 18003 "type" : "number"
56122987 18004 },
44660702 18005 "mbps_rd" : {
de0983cb 18006 "description" : "Maximum read speed in megabytes per second.",
44660702 18007 "format_description" : "mbps",
7aacca6f 18008 "optional" : 1,
44660702 18009 "type" : "number"
56122987 18010 },
44660702 18011 "mbps_rd_max" : {
de0983cb 18012 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 18013 "format_description" : "mbps",
7aacca6f 18014 "optional" : 1,
44660702 18015 "type" : "number"
7aacca6f 18016 },
44660702 18017 "mbps_wr" : {
de0983cb 18018 "description" : "Maximum write speed in megabytes per second.",
44660702 18019 "format_description" : "mbps",
56122987 18020 "optional" : 1,
44660702 18021 "type" : "number"
56122987 18022 },
44660702 18023 "mbps_wr_max" : {
de0983cb 18024 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 18025 "format_description" : "mbps",
56122987 18026 "optional" : 1,
44660702
DM
18027 "type" : "number"
18028 },
18029 "media" : {
18030 "default" : "disk",
18031 "description" : "The drive's media type.",
7aacca6f 18032 "enum" : [
44660702
DM
18033 "cdrom",
18034 "disk"
7aacca6f 18035 ],
56122987 18036 "optional" : 1,
44660702 18037 "type" : "string"
56122987 18038 },
7aacca6f 18039 "queues" : {
44660702 18040 "description" : "Number of queues.",
7aacca6f 18041 "minimum" : 2,
7aacca6f
DM
18042 "optional" : 1,
18043 "type" : "integer"
56122987 18044 },
5d9c884c
DM
18045 "replicate" : {
18046 "default" : 1,
18047 "description" : "Whether the drive should considered for replication jobs.",
18048 "optional" : 1,
18049 "type" : "boolean"
18050 },
18051 "rerror" : {
18052 "description" : "Read error action.",
18053 "enum" : [
18054 "ignore",
18055 "report",
18056 "stop"
18057 ],
18058 "optional" : 1,
18059 "type" : "string"
18060 },
5370fa8c
TL
18061 "ro" : {
18062 "description" : "Whether the drive is read-only.",
18063 "optional" : 1,
18064 "type" : "boolean"
18065 },
52e44c50
FG
18066 "scsiblock" : {
18067 "default" : 0,
18068 "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",
18069 "optional" : 1,
18070 "type" : "boolean"
18071 },
44660702
DM
18072 "secs" : {
18073 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 18074 "optional" : 1,
44660702 18075 "type" : "integer"
56122987 18076 },
44660702
DM
18077 "serial" : {
18078 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18079 "format" : "urlencoded",
18080 "format_description" : "serial",
18081 "maxLength" : 60,
56122987 18082 "optional" : 1,
44660702 18083 "type" : "string"
56122987 18084 },
27a7acb2
DM
18085 "shared" : {
18086 "default" : 0,
18087 "description" : "Mark this locally-managed volume as available on all nodes",
18088 "optional" : 1,
18089 "type" : "boolean",
18090 "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!"
18091 },
44660702
DM
18092 "size" : {
18093 "description" : "Disk size. This is purely informational and has no effect.",
18094 "format" : "disk-size",
f004f5b9 18095 "format_description" : "DiskSize",
44660702
DM
18096 "optional" : 1,
18097 "type" : "string"
18098 },
18099 "snapshot" : {
27a7acb2 18100 "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 18101 "optional" : 1,
44660702
DM
18102 "type" : "boolean"
18103 },
25203dc1
NC
18104 "ssd" : {
18105 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18106 "optional" : 1,
18107 "type" : "boolean"
18108 },
44660702
DM
18109 "trans" : {
18110 "description" : "Force disk geometry bios translation mode.",
56122987 18111 "enum" : [
44660702
DM
18112 "none",
18113 "lba",
18114 "auto"
56122987 18115 ],
44660702
DM
18116 "optional" : 1,
18117 "type" : "string"
18118 },
18119 "volume" : {
18120 "alias" : "file"
56122987 18121 },
7aacca6f 18122 "werror" : {
7aacca6f
DM
18123 "description" : "Write error action.",
18124 "enum" : [
18125 "enospc",
18126 "ignore",
18127 "report",
18128 "stop"
44660702 18129 ],
56122987 18130 "optional" : 1,
7aacca6f 18131 "type" : "string"
95895385
TL
18132 },
18133 "wwn" : {
18134 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18135 "format_description" : "wwn",
18136 "optional" : 1,
18137 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18138 "type" : "string"
56122987 18139 }
44660702 18140 },
56122987 18141 "optional" : 1,
4bd7df8b 18142 "type" : "string",
7af2edf9 18143 "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
18144 },
18145 "scsihw" : {
44660702 18146 "default" : "lsi",
c2993fe5 18147 "description" : "SCSI controller model",
56122987
DM
18148 "enum" : [
18149 "lsi",
18150 "lsi53c810",
18151 "virtio-scsi-pci",
18152 "virtio-scsi-single",
18153 "megasas",
18154 "pvscsi"
18155 ],
18156 "optional" : 1,
56122987
DM
18157 "type" : "string"
18158 },
27a7acb2 18159 "searchdomain" : {
de786b48 18160 "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
18161 "optional" : 1,
18162 "type" : "string",
18163 "typetext" : "<string>"
18164 },
44660702 18165 "serial[n]" : {
c2993fe5 18166 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 18167 "optional" : 1,
44660702 18168 "pattern" : "(/dev/.+|socket)",
c2993fe5 18169 "type" : "string",
4772952b 18170 "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 18171 },
44660702
DM
18172 "shares" : {
18173 "default" : 1000,
5da3d723 18174 "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
18175 "maximum" : 50000,
18176 "minimum" : 0,
7aacca6f 18177 "optional" : 1,
4bd7df8b 18178 "type" : "integer",
013dc89f 18179 "typetext" : "<integer> (0 - 50000)"
56122987 18180 },
7aacca6f
DM
18181 "skiplock" : {
18182 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 18183 "optional" : 1,
013dc89f
DM
18184 "type" : "boolean",
18185 "typetext" : "<boolean>"
56122987 18186 },
44660702
DM
18187 "smbios1" : {
18188 "description" : "Specify SMBIOS type 1 fields.",
18189 "format" : "pve-qm-smbios1",
1e3f8156 18190 "maxLength" : 512,
56122987 18191 "optional" : 1,
4bd7df8b 18192 "type" : "string",
1e3f8156 18193 "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 18194 },
44660702
DM
18195 "smp" : {
18196 "default" : 1,
18197 "description" : "The number of CPUs. Please use option -sockets instead.",
18198 "minimum" : 1,
56122987 18199 "optional" : 1,
4bd7df8b 18200 "type" : "integer",
013dc89f 18201 "typetext" : "<integer> (1 - N)"
56122987 18202 },
44660702
DM
18203 "sockets" : {
18204 "default" : 1,
18205 "description" : "The number of CPU sockets.",
18206 "minimum" : 1,
56122987 18207 "optional" : 1,
4bd7df8b 18208 "type" : "integer",
013dc89f 18209 "typetext" : "<integer> (1 - N)"
56122987 18210 },
1c532546
TL
18211 "spice_enhancements" : {
18212 "description" : "Configure additional enhancements for SPICE.",
18213 "format" : {
18214 "foldersharing" : {
18215 "default" : "0",
18216 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
18217 "optional" : 1,
18218 "type" : "boolean"
18219 },
18220 "videostreaming" : {
18221 "default" : "off",
18222 "description" : "Enable video streaming. Uses compression for detected video streams.",
18223 "enum" : [
18224 "off",
18225 "all",
18226 "filter"
18227 ],
18228 "optional" : 1,
18229 "type" : "string"
18230 }
18231 },
18232 "optional" : 1,
18233 "type" : "string",
18234 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
18235 },
27a7acb2
DM
18236 "sshkeys" : {
18237 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
18238 "format" : "urlencoded",
18239 "optional" : 1,
18240 "type" : "string",
18241 "typetext" : "<string>"
18242 },
44660702
DM
18243 "startdate" : {
18244 "default" : "now",
4772952b 18245 "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
18246 "optional" : 1,
18247 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 18248 "type" : "string",
44660702
DM
18249 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
18250 },
18251 "startup" : {
18252 "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.",
18253 "format" : "pve-startup-order",
7aacca6f 18254 "optional" : 1,
44660702
DM
18255 "type" : "string",
18256 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 18257 },
44660702
DM
18258 "tablet" : {
18259 "default" : 1,
c2993fe5 18260 "description" : "Enable/disable the USB tablet device.",
7aacca6f 18261 "optional" : 1,
c2993fe5 18262 "type" : "boolean",
013dc89f 18263 "typetext" : "<boolean>",
4772952b 18264 "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 18265 },
5c1699e5
TL
18266 "tags" : {
18267 "description" : "Tags of the VM. This is only meta information.",
18268 "format" : "pve-tag-list",
18269 "optional" : 1,
18270 "type" : "string",
18271 "typetext" : "<string>"
18272 },
44660702
DM
18273 "tdf" : {
18274 "default" : 0,
18275 "description" : "Enable/disable time drift fix.",
7aacca6f 18276 "optional" : 1,
013dc89f
DM
18277 "type" : "boolean",
18278 "typetext" : "<boolean>"
7aacca6f 18279 },
44660702
DM
18280 "template" : {
18281 "default" : 0,
18282 "description" : "Enable/disable Template.",
7aacca6f 18283 "optional" : 1,
013dc89f
DM
18284 "type" : "boolean",
18285 "typetext" : "<boolean>"
7aacca6f 18286 },
5370fa8c 18287 "tpmstate0" : {
7af2edf9 18288 "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
18289 "format" : {
18290 "file" : {
18291 "default_key" : 1,
18292 "description" : "The drive's backing volume.",
18293 "format" : "pve-volume-id-or-qm-path",
18294 "format_description" : "volume",
18295 "type" : "string"
18296 },
7af2edf9
TL
18297 "import-from" : {
18298 "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!",
18299 "format" : "pve-volume-id-or-absolute-path",
18300 "format_description" : "source volume",
18301 "optional" : 1,
18302 "type" : "string"
18303 },
5370fa8c
TL
18304 "size" : {
18305 "description" : "Disk size. This is purely informational and has no effect.",
18306 "format" : "disk-size",
18307 "format_description" : "DiskSize",
18308 "optional" : 1,
18309 "type" : "string"
18310 },
18311 "version" : {
18312 "default" : "v2.0",
18313 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
18314 "enum" : [
18315 "v1.2",
18316 "v2.0"
18317 ],
18318 "optional" : 1,
18319 "type" : "string"
18320 },
18321 "volume" : {
18322 "alias" : "file"
18323 }
18324 },
18325 "optional" : 1,
18326 "type" : "string",
7af2edf9 18327 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 18328 },
44660702 18329 "unused[n]" : {
c2993fe5 18330 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
18331 "format" : {
18332 "file" : {
18333 "default_key" : 1,
18334 "description" : "The drive's backing volume.",
18335 "format" : "pve-volume-id",
18336 "format_description" : "volume",
18337 "type" : "string"
18338 },
18339 "volume" : {
18340 "alias" : "file"
18341 }
18342 },
7aacca6f 18343 "optional" : 1,
013dc89f 18344 "type" : "string",
c5aa7e14 18345 "typetext" : "[file=]<volume>"
7aacca6f 18346 },
44660702 18347 "usb[n]" : {
4e7f60c2 18348 "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 18349 "format" : {
44660702
DM
18350 "host" : {
18351 "default_key" : 1,
499c9b7f 18352 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 18353 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
18354 "optional" : 1,
18355 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
18356 "type" : "string"
18357 },
18358 "mapping" : {
18359 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
18360 "format" : "pve-configid",
18361 "format_description" : "mapping-id",
18362 "optional" : 1,
44660702 18363 "type" : "string"
7aacca6f 18364 },
44660702 18365 "usb3" : {
c2993fe5 18366 "default" : 0,
4e7f60c2 18367 "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 18368 "optional" : 1,
44660702 18369 "type" : "boolean"
7aacca6f 18370 }
44660702 18371 },
7aacca6f 18372 "optional" : 1,
4bd7df8b 18373 "type" : "string",
499c9b7f 18374 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
7aacca6f 18375 },
44660702 18376 "vcpus" : {
7aacca6f 18377 "default" : 0,
44660702
DM
18378 "description" : "Number of hotplugged vcpus.",
18379 "minimum" : 1,
7aacca6f 18380 "optional" : 1,
4bd7df8b 18381 "type" : "integer",
013dc89f 18382 "typetext" : "<integer> (1 - N)"
7aacca6f 18383 },
44660702 18384 "vga" : {
e2d681b3
TL
18385 "description" : "Configure the VGA hardware.",
18386 "format" : {
18387 "memory" : {
18388 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
18389 "maximum" : 512,
18390 "minimum" : 4,
18391 "optional" : 1,
18392 "type" : "integer"
18393 },
18394 "type" : {
18395 "default" : "std",
18396 "default_key" : 1,
18397 "description" : "Select the VGA type.",
18398 "enum" : [
18399 "cirrus",
18400 "qxl",
18401 "qxl2",
18402 "qxl3",
18403 "qxl4",
5f26e15b 18404 "none",
e2d681b3
TL
18405 "serial0",
18406 "serial1",
18407 "serial2",
18408 "serial3",
18409 "std",
18410 "virtio",
7af2edf9 18411 "virtio-gl",
e2d681b3
TL
18412 "vmware"
18413 ],
18414 "optional" : 1,
18415 "type" : "string"
18416 }
18417 },
7aacca6f 18418 "optional" : 1,
c2993fe5 18419 "type" : "string",
e2d681b3
TL
18420 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
18421 "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 18422 },
44660702 18423 "virtio[n]" : {
7af2edf9 18424 "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 18425 "format" : {
7aacca6f 18426 "aio" : {
7aacca6f 18427 "description" : "AIO type to use.",
56122987 18428 "enum" : [
7aacca6f 18429 "native",
8f4d9c87
TL
18430 "threads",
18431 "io_uring"
7aacca6f 18432 ],
44660702
DM
18433 "optional" : 1,
18434 "type" : "string"
56122987 18435 },
44660702
DM
18436 "backup" : {
18437 "description" : "Whether the drive should be included when making backups.",
56122987 18438 "optional" : 1,
44660702 18439 "type" : "boolean"
7aacca6f 18440 },
44660702 18441 "bps" : {
de0983cb 18442 "description" : "Maximum r/w speed in bytes per second.",
44660702 18443 "format_description" : "bps",
7aacca6f 18444 "optional" : 1,
44660702 18445 "type" : "integer"
56122987 18446 },
de0983cb
DM
18447 "bps_max_length" : {
18448 "description" : "Maximum length of I/O bursts in seconds.",
18449 "format_description" : "seconds",
18450 "minimum" : 1,
18451 "optional" : 1,
18452 "type" : "integer"
18453 },
56122987 18454 "bps_rd" : {
de0983cb 18455 "description" : "Maximum read speed in bytes per second.",
44660702 18456 "format_description" : "bps",
56122987 18457 "optional" : 1,
7aacca6f 18458 "type" : "integer"
56122987 18459 },
de0983cb 18460 "bps_rd_length" : {
5d9c884c
DM
18461 "alias" : "bps_rd_max_length"
18462 },
18463 "bps_rd_max_length" : {
de0983cb
DM
18464 "description" : "Maximum length of read I/O bursts in seconds.",
18465 "format_description" : "seconds",
18466 "minimum" : 1,
18467 "optional" : 1,
18468 "type" : "integer"
18469 },
44660702 18470 "bps_wr" : {
de0983cb 18471 "description" : "Maximum write speed in bytes per second.",
44660702 18472 "format_description" : "bps",
56122987 18473 "optional" : 1,
7aacca6f 18474 "type" : "integer"
56122987 18475 },
de0983cb 18476 "bps_wr_length" : {
5d9c884c
DM
18477 "alias" : "bps_wr_max_length"
18478 },
18479 "bps_wr_max_length" : {
de0983cb
DM
18480 "description" : "Maximum length of write I/O bursts in seconds.",
18481 "format_description" : "seconds",
18482 "minimum" : 1,
18483 "optional" : 1,
18484 "type" : "integer"
18485 },
7aacca6f 18486 "cache" : {
44660702 18487 "description" : "The drive's cache mode",
7aacca6f
DM
18488 "enum" : [
18489 "none",
18490 "writethrough",
18491 "writeback",
18492 "unsafe",
18493 "directsync"
18494 ],
56122987 18495 "optional" : 1,
44660702 18496 "type" : "string"
7aacca6f 18497 },
44660702
DM
18498 "cyls" : {
18499 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
18500 "optional" : 1,
18501 "type" : "integer"
18502 },
18503 "detect_zeroes" : {
18504 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18505 "optional" : 1,
18506 "type" : "boolean"
18507 },
18508 "discard" : {
18509 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 18510 "enum" : [
44660702
DM
18511 "ignore",
18512 "on"
56122987
DM
18513 ],
18514 "optional" : 1,
44660702 18515 "type" : "string"
56122987 18516 },
44660702
DM
18517 "file" : {
18518 "default_key" : 1,
18519 "description" : "The drive's backing volume.",
18520 "format" : "pve-volume-id-or-qm-path",
18521 "format_description" : "volume",
18522 "type" : "string"
18523 },
18524 "format" : {
18525 "description" : "The drive's backing file's data format.",
18526 "enum" : [
18527 "raw",
18528 "cow",
18529 "qcow",
18530 "qed",
18531 "qcow2",
18532 "vmdk",
18533 "cloop"
18534 ],
56122987 18535 "optional" : 1,
44660702 18536 "type" : "string"
56122987 18537 },
44660702
DM
18538 "heads" : {
18539 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
18540 "optional" : 1,
18541 "type" : "integer"
18542 },
7af2edf9
TL
18543 "import-from" : {
18544 "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!",
18545 "format" : "pve-volume-id-or-absolute-path",
18546 "format_description" : "source volume",
18547 "optional" : 1,
18548 "type" : "string"
18549 },
44660702 18550 "iops" : {
de0983cb 18551 "description" : "Maximum r/w I/O in operations per second.",
44660702 18552 "format_description" : "iops",
56122987 18553 "optional" : 1,
44660702
DM
18554 "type" : "integer"
18555 },
18556 "iops_max" : {
de0983cb 18557 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
18558 "format_description" : "iops",
18559 "optional" : 1,
18560 "type" : "integer"
56122987 18561 },
de0983cb
DM
18562 "iops_max_length" : {
18563 "description" : "Maximum length of I/O bursts in seconds.",
18564 "format_description" : "seconds",
18565 "minimum" : 1,
18566 "optional" : 1,
18567 "type" : "integer"
18568 },
7aacca6f 18569 "iops_rd" : {
de0983cb 18570 "description" : "Maximum read I/O in operations per second.",
7aacca6f 18571 "format_description" : "iops",
7aacca6f 18572 "optional" : 1,
44660702 18573 "type" : "integer"
56122987 18574 },
de0983cb 18575 "iops_rd_length" : {
5d9c884c 18576 "alias" : "iops_rd_max_length"
de0983cb 18577 },
44660702 18578 "iops_rd_max" : {
de0983cb 18579 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
18580 "format_description" : "iops",
18581 "optional" : 1,
18582 "type" : "integer"
18583 },
5d9c884c
DM
18584 "iops_rd_max_length" : {
18585 "description" : "Maximum length of read I/O bursts in seconds.",
18586 "format_description" : "seconds",
18587 "minimum" : 1,
18588 "optional" : 1,
18589 "type" : "integer"
18590 },
44660702 18591 "iops_wr" : {
de0983cb 18592 "description" : "Maximum write I/O in operations per second.",
44660702
DM
18593 "format_description" : "iops",
18594 "optional" : 1,
18595 "type" : "integer"
18596 },
de0983cb 18597 "iops_wr_length" : {
5d9c884c 18598 "alias" : "iops_wr_max_length"
de0983cb 18599 },
44660702 18600 "iops_wr_max" : {
de0983cb 18601 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
18602 "format_description" : "iops",
18603 "optional" : 1,
18604 "type" : "integer"
18605 },
5d9c884c
DM
18606 "iops_wr_max_length" : {
18607 "description" : "Maximum length of write I/O bursts in seconds.",
18608 "format_description" : "seconds",
18609 "minimum" : 1,
18610 "optional" : 1,
18611 "type" : "integer"
18612 },
44660702
DM
18613 "iothread" : {
18614 "description" : "Whether to use iothreads for this drive",
44660702
DM
18615 "optional" : 1,
18616 "type" : "boolean"
18617 },
18618 "mbps" : {
de0983cb 18619 "description" : "Maximum r/w speed in megabytes per second.",
44660702 18620 "format_description" : "mbps",
7aacca6f 18621 "optional" : 1,
44660702 18622 "type" : "number"
7aacca6f
DM
18623 },
18624 "mbps_max" : {
de0983cb 18625 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 18626 "format_description" : "mbps",
56122987 18627 "optional" : 1,
44660702 18628 "type" : "number"
56122987 18629 },
44660702 18630 "mbps_rd" : {
de0983cb 18631 "description" : "Maximum read speed in megabytes per second.",
44660702 18632 "format_description" : "mbps",
56122987 18633 "optional" : 1,
44660702 18634 "type" : "number"
56122987 18635 },
44660702 18636 "mbps_rd_max" : {
de0983cb 18637 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
18638 "format_description" : "mbps",
18639 "optional" : 1,
18640 "type" : "number"
18641 },
18642 "mbps_wr" : {
de0983cb 18643 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
18644 "format_description" : "mbps",
18645 "optional" : 1,
18646 "type" : "number"
18647 },
18648 "mbps_wr_max" : {
de0983cb 18649 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
18650 "format_description" : "mbps",
18651 "optional" : 1,
18652 "type" : "number"
18653 },
18654 "media" : {
18655 "default" : "disk",
18656 "description" : "The drive's media type.",
56122987 18657 "enum" : [
44660702
DM
18658 "cdrom",
18659 "disk"
56122987
DM
18660 ],
18661 "optional" : 1,
44660702 18662 "type" : "string"
56122987 18663 },
5d9c884c
DM
18664 "replicate" : {
18665 "default" : 1,
18666 "description" : "Whether the drive should considered for replication jobs.",
18667 "optional" : 1,
18668 "type" : "boolean"
18669 },
44660702
DM
18670 "rerror" : {
18671 "description" : "Read error action.",
18672 "enum" : [
18673 "ignore",
18674 "report",
18675 "stop"
18676 ],
56122987 18677 "optional" : 1,
44660702 18678 "type" : "string"
56122987 18679 },
5370fa8c
TL
18680 "ro" : {
18681 "description" : "Whether the drive is read-only.",
18682 "optional" : 1,
18683 "type" : "boolean"
18684 },
44660702
DM
18685 "secs" : {
18686 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 18687 "optional" : 1,
44660702 18688 "type" : "integer"
56122987 18689 },
7aacca6f
DM
18690 "serial" : {
18691 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 18692 "format" : "urlencoded",
44660702 18693 "format_description" : "serial",
7aacca6f 18694 "maxLength" : 60,
44660702
DM
18695 "optional" : 1,
18696 "type" : "string"
56122987 18697 },
27a7acb2
DM
18698 "shared" : {
18699 "default" : 0,
18700 "description" : "Mark this locally-managed volume as available on all nodes",
18701 "optional" : 1,
18702 "type" : "boolean",
18703 "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!"
18704 },
44660702
DM
18705 "size" : {
18706 "description" : "Disk size. This is purely informational and has no effect.",
18707 "format" : "disk-size",
f004f5b9 18708 "format_description" : "DiskSize",
44660702
DM
18709 "optional" : 1,
18710 "type" : "string"
56122987 18711 },
44660702 18712 "snapshot" : {
27a7acb2 18713 "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 18714 "optional" : 1,
44660702 18715 "type" : "boolean"
56122987 18716 },
44660702
DM
18717 "trans" : {
18718 "description" : "Force disk geometry bios translation mode.",
18719 "enum" : [
18720 "none",
18721 "lba",
18722 "auto"
18723 ],
7aacca6f 18724 "optional" : 1,
44660702 18725 "type" : "string"
7aacca6f 18726 },
44660702
DM
18727 "volume" : {
18728 "alias" : "file"
18729 },
18730 "werror" : {
18731 "description" : "Write error action.",
18732 "enum" : [
18733 "enospc",
18734 "ignore",
18735 "report",
18736 "stop"
18737 ],
7aacca6f 18738 "optional" : 1,
44660702 18739 "type" : "string"
56122987
DM
18740 }
18741 },
7aacca6f 18742 "optional" : 1,
4bd7df8b 18743 "type" : "string",
7af2edf9 18744 "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 18745 },
4d47f125
TL
18746 "vmgenid" : {
18747 "default" : "1 (autogenerated)",
18748 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
18749 "format_description" : "UUID",
18750 "optional" : 1,
18751 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
18752 "type" : "string",
4772952b 18753 "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 18754 },
44660702
DM
18755 "vmid" : {
18756 "description" : "The (unique) ID of the VM.",
18757 "format" : "pve-vmid",
8dd66e12
TL
18758 "maximum" : 999999999,
18759 "minimum" : 100,
4bd7df8b 18760 "type" : "integer",
8dd66e12 18761 "typetext" : "<integer> (100 - 999999999)"
56122987 18762 },
2489d6df
WB
18763 "vmstatestorage" : {
18764 "description" : "Default storage for VM state volumes/files.",
18765 "format" : "pve-storage-id",
18766 "optional" : 1,
18767 "type" : "string",
18768 "typetext" : "<string>"
18769 },
44660702 18770 "watchdog" : {
c2993fe5 18771 "description" : "Create a virtual hardware watchdog device.",
44660702 18772 "format" : "pve-qm-watchdog",
56122987 18773 "optional" : 1,
c2993fe5 18774 "type" : "string",
013dc89f 18775 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 18776 "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 18777 }
7aacca6f 18778 }
56122987 18779 },
56122987
DM
18780 "permissions" : {
18781 "check" : [
18782 "perm",
18783 "/vms/{vmid}",
18784 [
18785 "VM.Config.Disk",
18786 "VM.Config.CDROM",
18787 "VM.Config.CPU",
18788 "VM.Config.Memory",
18789 "VM.Config.Network",
18790 "VM.Config.HWType",
ac70d7d1
TL
18791 "VM.Config.Options",
18792 "VM.Config.Cloudinit"
56122987
DM
18793 ],
18794 "any",
18795 1
18796 ]
18797 },
44660702 18798 "protected" : 1,
7aacca6f 18799 "proxyto" : "node",
56122987 18800 "returns" : {
4d47f125
TL
18801 "optional" : 1,
18802 "type" : "string"
7aacca6f 18803 }
4d47f125
TL
18804 },
18805 "PUT" : {
e9cd3bd4 18806 "allowtoken" : 1,
4d47f125
TL
18807 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
18808 "method" : "PUT",
18809 "name" : "update_vm",
7aacca6f 18810 "parameters" : {
44660702 18811 "additionalProperties" : 0,
7aacca6f 18812 "properties" : {
4d47f125
TL
18813 "acpi" : {
18814 "default" : 1,
18815 "description" : "Enable/disable ACPI.",
18816 "optional" : 1,
18817 "type" : "boolean",
18818 "typetext" : "<boolean>"
7aacca6f 18819 },
4e7f60c2 18820 "affinity" : {
81a3384d 18821 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
18822 "format" : "pve-cpuset",
18823 "optional" : 1,
18824 "type" : "string",
18825 "typetext" : "<string>"
18826 },
4d47f125 18827 "agent" : {
9d2e98ed 18828 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
18829 "format" : {
18830 "enabled" : {
18831 "default" : 0,
18832 "default_key" : 1,
9d2e98ed
TL
18833 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
18834 "type" : "boolean"
18835 },
18836 "freeze-fs-on-backup" : {
18837 "default" : 1,
18838 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
18839 "optional" : 1,
4d47f125
TL
18840 "type" : "boolean"
18841 },
18842 "fstrim_cloned_disks" : {
18843 "default" : 0,
d2656385 18844 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
18845 "optional" : 1,
18846 "type" : "boolean"
5c1699e5
TL
18847 },
18848 "type" : {
18849 "default" : "virtio",
18850 "description" : "Select the agent type",
18851 "enum" : [
18852 "virtio",
18853 "isa"
18854 ],
18855 "optional" : 1,
18856 "type" : "string"
4d47f125 18857 }
44660702 18858 },
4d47f125
TL
18859 "optional" : 1,
18860 "type" : "string",
9d2e98ed 18861 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 18862 },
e2d681b3
TL
18863 "arch" : {
18864 "description" : "Virtual processor architecture. Defaults to the host.",
18865 "enum" : [
18866 "x86_64",
18867 "aarch64"
18868 ],
18869 "optional" : 1,
18870 "type" : "string"
18871 },
4d47f125
TL
18872 "args" : {
18873 "description" : "Arbitrary arguments passed to kvm.",
18874 "optional" : 1,
18875 "type" : "string",
18876 "typetext" : "<string>",
159464a9 18877 "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 18878 },
1c532546
TL
18879 "audio0" : {
18880 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
18881 "format" : {
18882 "device" : {
18883 "description" : "Configure an audio device.",
18884 "enum" : [
18885 "ich9-intel-hda",
18886 "intel-hda",
18887 "AC97"
18888 ],
18889 "type" : "string"
18890 },
18891 "driver" : {
18892 "default" : "spice",
18893 "description" : "Driver backend for the audio device.",
18894 "enum" : [
d2656385
TL
18895 "spice",
18896 "none"
1c532546
TL
18897 ],
18898 "optional" : 1,
18899 "type" : "string"
18900 }
18901 },
18902 "optional" : 1,
18903 "type" : "string",
d2656385 18904 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 18905 },
4d47f125
TL
18906 "autostart" : {
18907 "default" : 0,
18908 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 18909 "optional" : 1,
013dc89f
DM
18910 "type" : "boolean",
18911 "typetext" : "<boolean>"
7aacca6f 18912 },
4d47f125 18913 "balloon" : {
9d2e98ed 18914 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125
TL
18915 "minimum" : 0,
18916 "optional" : 1,
18917 "type" : "integer",
18918 "typetext" : "<integer> (0 - N)"
18919 },
18920 "bios" : {
18921 "default" : "seabios",
18922 "description" : "Select BIOS implementation.",
18923 "enum" : [
18924 "seabios",
18925 "ovmf"
18926 ],
18927 "optional" : 1,
18928 "type" : "string"
18929 },
18930 "boot" : {
5370fa8c 18931 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 18932 "format" : "pve-qm-boot",
4d47f125 18933 "optional" : 1,
4772952b
TL
18934 "type" : "string",
18935 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
18936 },
18937 "bootdisk" : {
4772952b 18938 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
18939 "format" : "pve-qm-bootdisk",
18940 "optional" : 1,
18941 "pattern" : "(ide|sata|scsi|virtio)\\d+",
18942 "type" : "string"
18943 },
18944 "cdrom" : {
18945 "description" : "This is an alias for option -ide2",
18946 "format" : "pve-qm-ide",
18947 "optional" : 1,
18948 "type" : "string",
18949 "typetext" : "<volume>"
18950 },
95895385
TL
18951 "cicustom" : {
18952 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
18953 "format" : "pve-qm-cicustom",
18954 "optional" : 1,
18955 "type" : "string",
5370fa8c 18956 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 18957 },
4d47f125
TL
18958 "cipassword" : {
18959 "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.",
18960 "optional" : 1,
013dc89f
DM
18961 "type" : "string",
18962 "typetext" : "<string>"
44660702 18963 },
4d47f125
TL
18964 "citype" : {
18965 "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.",
18966 "enum" : [
18967 "configdrive2",
d2656385
TL
18968 "nocloud",
18969 "opennebula"
4d47f125
TL
18970 ],
18971 "optional" : 1,
18972 "type" : "string"
18973 },
159464a9
TL
18974 "ciupgrade" : {
18975 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
18976 "optional" : 1,
18977 "type" : "boolean",
18978 "typetext" : "<boolean>"
18979 },
4d47f125
TL
18980 "ciuser" : {
18981 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
18982 "optional" : 1,
013dc89f
DM
18983 "type" : "string",
18984 "typetext" : "<string>"
56122987 18985 },
4d47f125
TL
18986 "cores" : {
18987 "default" : 1,
18988 "description" : "The number of cores per socket.",
7aacca6f 18989 "minimum" : 1,
4d47f125 18990 "optional" : 1,
4bd7df8b 18991 "type" : "integer",
013dc89f 18992 "typetext" : "<integer> (1 - N)"
4d47f125
TL
18993 },
18994 "cpu" : {
18995 "description" : "Emulated CPU type.",
c5aa7e14 18996 "format" : "pve-vm-cpu-conf",
4d47f125 18997 "optional" : 1,
013dc89f 18998 "type" : "string",
04d22a9f 18999 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 19000 },
4d47f125
TL
19001 "cpulimit" : {
19002 "default" : 0,
19003 "description" : "Limit of CPU usage.",
19004 "maximum" : 128,
19005 "minimum" : 0,
19006 "optional" : 1,
19007 "type" : "number",
19008 "typetext" : "<number> (0 - 128)",
19009 "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."
19010 },
19011 "cpuunits" : {
5370fa8c
TL
19012 "default" : "cgroup v1: 1024, cgroup v2: 100",
19013 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 19014 "maximum" : 262144,
7af2edf9 19015 "minimum" : 1,
4d47f125 19016 "optional" : 1,
4bd7df8b 19017 "type" : "integer",
7af2edf9 19018 "typetext" : "<integer> (1 - 262144)",
4d47f125 19019 "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 19020 },
4d47f125
TL
19021 "delete" : {
19022 "description" : "A list of settings you want to delete.",
19023 "format" : "pve-configid-list",
19024 "optional" : 1,
19025 "type" : "string",
19026 "typetext" : "<string>"
19027 },
19028 "description" : {
8f4d9c87
TL
19029 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
19030 "maxLength" : 8192,
4d47f125
TL
19031 "optional" : 1,
19032 "type" : "string",
19033 "typetext" : "<string>"
19034 },
19035 "digest" : {
19036 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
19037 "maxLength" : 40,
44660702 19038 "optional" : 1,
4d47f125
TL
19039 "type" : "string",
19040 "typetext" : "<string>"
19041 },
19042 "efidisk0" : {
9d2e98ed 19043 "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 19044 "format" : {
5370fa8c
TL
19045 "efitype" : {
19046 "default" : "2m",
9d2e98ed 19047 "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
19048 "enum" : [
19049 "2m",
19050 "4m"
19051 ],
19052 "optional" : 1,
19053 "type" : "string"
19054 },
4d47f125
TL
19055 "file" : {
19056 "default_key" : 1,
19057 "description" : "The drive's backing volume.",
19058 "format" : "pve-volume-id-or-qm-path",
19059 "format_description" : "volume",
19060 "type" : "string"
19061 },
19062 "format" : {
19063 "description" : "The drive's backing file's data format.",
19064 "enum" : [
19065 "raw",
19066 "cow",
19067 "qcow",
19068 "qed",
19069 "qcow2",
19070 "vmdk",
19071 "cloop"
19072 ],
19073 "optional" : 1,
19074 "type" : "string"
19075 },
7af2edf9
TL
19076 "import-from" : {
19077 "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!",
19078 "format" : "pve-volume-id-or-absolute-path",
19079 "format_description" : "source volume",
19080 "optional" : 1,
19081 "type" : "string"
19082 },
5370fa8c
TL
19083 "pre-enrolled-keys" : {
19084 "default" : 0,
19085 "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.",
19086 "optional" : 1,
19087 "type" : "boolean"
19088 },
4d47f125
TL
19089 "size" : {
19090 "description" : "Disk size. This is purely informational and has no effect.",
19091 "format" : "disk-size",
19092 "format_description" : "DiskSize",
19093 "optional" : 1,
19094 "type" : "string"
19095 },
19096 "volume" : {
19097 "alias" : "file"
19098 }
19099 },
19100 "optional" : 1,
19101 "type" : "string",
7af2edf9 19102 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
19103 },
19104 "force" : {
19105 "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.",
19106 "optional" : 1,
19107 "requires" : "delete",
013dc89f
DM
19108 "type" : "boolean",
19109 "typetext" : "<boolean>"
56122987 19110 },
4d47f125
TL
19111 "freeze" : {
19112 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
19113 "optional" : 1,
19114 "type" : "boolean",
19115 "typetext" : "<boolean>"
7aacca6f 19116 },
5f26e15b
TL
19117 "hookscript" : {
19118 "description" : "Script that will be executed during various steps in the vms lifetime.",
19119 "format" : "pve-volume-id",
19120 "optional" : 1,
19121 "type" : "string",
19122 "typetext" : "<string>"
19123 },
4d47f125
TL
19124 "hostpci[n]" : {
19125 "description" : "Map host PCI devices into guest.",
19126 "format" : "pve-qm-hostpci",
19127 "optional" : 1,
19128 "type" : "string",
499c9b7f 19129 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 19130 "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 19131 },
4d47f125
TL
19132 "hotplug" : {
19133 "default" : "network,disk,usb",
4e7f60c2 19134 "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
19135 "format" : "pve-hotplug-features",
19136 "optional" : 1,
35a75dd3
DM
19137 "type" : "string",
19138 "typetext" : "<string>"
19139 },
4d47f125
TL
19140 "hugepages" : {
19141 "description" : "Enable/disable hugepages memory.",
35a75dd3 19142 "enum" : [
4d47f125
TL
19143 "any",
19144 "2",
19145 "1024"
35a75dd3
DM
19146 ],
19147 "optional" : 1,
19148 "type" : "string"
19149 },
4d47f125 19150 "ide[n]" : {
7af2edf9 19151 "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
19152 "format" : {
19153 "aio" : {
19154 "description" : "AIO type to use.",
19155 "enum" : [
19156 "native",
8f4d9c87
TL
19157 "threads",
19158 "io_uring"
4d47f125 19159 ],
44660702 19160 "optional" : 1,
44660702
DM
19161 "type" : "string"
19162 },
4d47f125
TL
19163 "backup" : {
19164 "description" : "Whether the drive should be included when making backups.",
56122987 19165 "optional" : 1,
4d47f125 19166 "type" : "boolean"
56122987 19167 },
4d47f125
TL
19168 "bps" : {
19169 "description" : "Maximum r/w speed in bytes per second.",
19170 "format_description" : "bps",
de0983cb 19171 "optional" : 1,
4d47f125 19172 "type" : "integer"
de0983cb 19173 },
4d47f125
TL
19174 "bps_max_length" : {
19175 "description" : "Maximum length of I/O bursts in seconds.",
19176 "format_description" : "seconds",
19177 "minimum" : 1,
de0983cb 19178 "optional" : 1,
4d47f125 19179 "type" : "integer"
7aacca6f 19180 },
4d47f125
TL
19181 "bps_rd" : {
19182 "description" : "Maximum read speed in bytes per second.",
19183 "format_description" : "bps",
7aacca6f 19184 "optional" : 1,
4d47f125 19185 "type" : "integer"
56122987 19186 },
4d47f125
TL
19187 "bps_rd_length" : {
19188 "alias" : "bps_rd_max_length"
19189 },
19190 "bps_rd_max_length" : {
19191 "description" : "Maximum length of read I/O bursts in seconds.",
19192 "format_description" : "seconds",
19193 "minimum" : 1,
56122987 19194 "optional" : 1,
4d47f125 19195 "type" : "integer"
56122987 19196 },
4d47f125
TL
19197 "bps_wr" : {
19198 "description" : "Maximum write speed in bytes per second.",
19199 "format_description" : "bps",
52e44c50 19200 "optional" : 1,
4d47f125 19201 "type" : "integer"
52e44c50 19202 },
4d47f125
TL
19203 "bps_wr_length" : {
19204 "alias" : "bps_wr_max_length"
19205 },
19206 "bps_wr_max_length" : {
19207 "description" : "Maximum length of write I/O bursts in seconds.",
19208 "format_description" : "seconds",
44660702 19209 "minimum" : 1,
56122987 19210 "optional" : 1,
4d47f125 19211 "type" : "integer"
56122987 19212 },
4d47f125
TL
19213 "cache" : {
19214 "description" : "The drive's cache mode",
19215 "enum" : [
19216 "none",
19217 "writethrough",
19218 "writeback",
19219 "unsafe",
19220 "directsync"
19221 ],
7aacca6f 19222 "optional" : 1,
4d47f125 19223 "type" : "string"
7aacca6f 19224 },
4d47f125
TL
19225 "cyls" : {
19226 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19227 "optional" : 1,
19228 "type" : "integer"
56122987 19229 },
4d47f125
TL
19230 "detect_zeroes" : {
19231 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 19232 "optional" : 1,
4d47f125 19233 "type" : "boolean"
56122987 19234 },
4d47f125
TL
19235 "discard" : {
19236 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19237 "enum" : [
19238 "ignore",
19239 "on"
19240 ],
56122987 19241 "optional" : 1,
4d47f125 19242 "type" : "string"
7aacca6f 19243 },
4d47f125
TL
19244 "file" : {
19245 "default_key" : 1,
19246 "description" : "The drive's backing volume.",
19247 "format" : "pve-volume-id-or-qm-path",
19248 "format_description" : "volume",
19249 "type" : "string"
56122987 19250 },
4d47f125
TL
19251 "format" : {
19252 "description" : "The drive's backing file's data format.",
19253 "enum" : [
19254 "raw",
19255 "cow",
19256 "qcow",
19257 "qed",
19258 "qcow2",
19259 "vmdk",
19260 "cloop"
19261 ],
7aacca6f 19262 "optional" : 1,
4d47f125 19263 "type" : "string"
7aacca6f 19264 },
4d47f125
TL
19265 "heads" : {
19266 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 19267 "optional" : 1,
4d47f125 19268 "type" : "integer"
56122987 19269 },
7af2edf9
TL
19270 "import-from" : {
19271 "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!",
19272 "format" : "pve-volume-id-or-absolute-path",
19273 "format_description" : "source volume",
19274 "optional" : 1,
19275 "type" : "string"
19276 },
4d47f125
TL
19277 "iops" : {
19278 "description" : "Maximum r/w I/O in operations per second.",
19279 "format_description" : "iops",
44660702 19280 "optional" : 1,
4d47f125 19281 "type" : "integer"
44660702 19282 },
4d47f125
TL
19283 "iops_max" : {
19284 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
19285 "format_description" : "iops",
44660702 19286 "optional" : 1,
4d47f125 19287 "type" : "integer"
56122987 19288 },
4d47f125
TL
19289 "iops_max_length" : {
19290 "description" : "Maximum length of I/O bursts in seconds.",
19291 "format_description" : "seconds",
19292 "minimum" : 1,
7aacca6f 19293 "optional" : 1,
4d47f125 19294 "type" : "integer"
7aacca6f 19295 },
4d47f125
TL
19296 "iops_rd" : {
19297 "description" : "Maximum read I/O in operations per second.",
19298 "format_description" : "iops",
19299 "optional" : 1,
19300 "type" : "integer"
19301 },
19302 "iops_rd_length" : {
19303 "alias" : "iops_rd_max_length"
19304 },
19305 "iops_rd_max" : {
19306 "description" : "Maximum unthrottled read I/O pool in operations per second.",
19307 "format_description" : "iops",
19308 "optional" : 1,
19309 "type" : "integer"
19310 },
19311 "iops_rd_max_length" : {
19312 "description" : "Maximum length of read I/O bursts in seconds.",
19313 "format_description" : "seconds",
44660702 19314 "minimum" : 1,
4d47f125
TL
19315 "optional" : 1,
19316 "type" : "integer"
7aacca6f 19317 },
4d47f125
TL
19318 "iops_wr" : {
19319 "description" : "Maximum write I/O in operations per second.",
19320 "format_description" : "iops",
44660702 19321 "optional" : 1,
4d47f125 19322 "type" : "integer"
44660702 19323 },
4d47f125
TL
19324 "iops_wr_length" : {
19325 "alias" : "iops_wr_max_length"
19326 },
19327 "iops_wr_max" : {
19328 "description" : "Maximum unthrottled write I/O pool in operations per second.",
19329 "format_description" : "iops",
19330 "optional" : 1,
19331 "type" : "integer"
19332 },
19333 "iops_wr_max_length" : {
19334 "description" : "Maximum length of write I/O bursts in seconds.",
19335 "format_description" : "seconds",
44660702 19336 "minimum" : 1,
44660702 19337 "optional" : 1,
4d47f125 19338 "type" : "integer"
44660702 19339 },
4d47f125
TL
19340 "mbps" : {
19341 "description" : "Maximum r/w speed in megabytes per second.",
19342 "format_description" : "mbps",
19343 "optional" : 1,
19344 "type" : "number"
56122987 19345 },
4d47f125
TL
19346 "mbps_max" : {
19347 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
19348 "format_description" : "mbps",
19349 "optional" : 1,
19350 "type" : "number"
19351 },
19352 "mbps_rd" : {
19353 "description" : "Maximum read speed in megabytes per second.",
19354 "format_description" : "mbps",
19355 "optional" : 1,
19356 "type" : "number"
19357 },
19358 "mbps_rd_max" : {
19359 "description" : "Maximum unthrottled read pool in megabytes per second.",
19360 "format_description" : "mbps",
19361 "optional" : 1,
19362 "type" : "number"
19363 },
19364 "mbps_wr" : {
19365 "description" : "Maximum write speed in megabytes per second.",
19366 "format_description" : "mbps",
19367 "optional" : 1,
19368 "type" : "number"
19369 },
19370 "mbps_wr_max" : {
19371 "description" : "Maximum unthrottled write pool in megabytes per second.",
19372 "format_description" : "mbps",
19373 "optional" : 1,
19374 "type" : "number"
19375 },
19376 "media" : {
19377 "default" : "disk",
19378 "description" : "The drive's media type.",
19379 "enum" : [
19380 "cdrom",
19381 "disk"
19382 ],
19383 "optional" : 1,
19384 "type" : "string"
19385 },
19386 "model" : {
19387 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
19388 "format" : "urlencoded",
19389 "format_description" : "model",
19390 "maxLength" : 120,
19391 "optional" : 1,
19392 "type" : "string"
19393 },
19394 "replicate" : {
19395 "default" : 1,
19396 "description" : "Whether the drive should considered for replication jobs.",
19397 "optional" : 1,
19398 "type" : "boolean"
19399 },
19400 "rerror" : {
19401 "description" : "Read error action.",
19402 "enum" : [
19403 "ignore",
19404 "report",
19405 "stop"
19406 ],
19407 "optional" : 1,
19408 "type" : "string"
19409 },
19410 "secs" : {
19411 "description" : "Force the drive's physical geometry to have a specific sector count.",
19412 "optional" : 1,
19413 "type" : "integer"
19414 },
19415 "serial" : {
19416 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19417 "format" : "urlencoded",
19418 "format_description" : "serial",
19419 "maxLength" : 60,
19420 "optional" : 1,
19421 "type" : "string"
19422 },
19423 "shared" : {
19424 "default" : 0,
19425 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 19426 "optional" : 1,
013dc89f 19427 "type" : "boolean",
4d47f125 19428 "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 19429 },
4d47f125
TL
19430 "size" : {
19431 "description" : "Disk size. This is purely informational and has no effect.",
19432 "format" : "disk-size",
19433 "format_description" : "DiskSize",
19434 "optional" : 1,
19435 "type" : "string"
19436 },
19437 "snapshot" : {
19438 "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.",
19439 "optional" : 1,
19440 "type" : "boolean"
19441 },
25203dc1
NC
19442 "ssd" : {
19443 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
19444 "optional" : 1,
19445 "type" : "boolean"
19446 },
4d47f125
TL
19447 "trans" : {
19448 "description" : "Force disk geometry bios translation mode.",
19449 "enum" : [
19450 "none",
19451 "lba",
19452 "auto"
19453 ],
19454 "optional" : 1,
19455 "type" : "string"
19456 },
19457 "volume" : {
19458 "alias" : "file"
19459 },
19460 "werror" : {
19461 "description" : "Write error action.",
19462 "enum" : [
19463 "enospc",
19464 "ignore",
19465 "report",
19466 "stop"
19467 ],
19468 "optional" : 1,
19469 "type" : "string"
95895385
TL
19470 },
19471 "wwn" : {
19472 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19473 "format_description" : "wwn",
19474 "optional" : 1,
19475 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19476 "type" : "string"
4d47f125
TL
19477 }
19478 },
19479 "optional" : 1,
013dc89f 19480 "type" : "string",
7af2edf9 19481 "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 19482 },
4d47f125 19483 "ipconfig[n]" : {
d2656385 19484 "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
19485 "format" : "pve-qm-ipconfig",
19486 "optional" : 1,
013dc89f 19487 "type" : "string",
4d47f125 19488 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 19489 },
95895385
TL
19490 "ivshmem" : {
19491 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
19492 "format" : {
19493 "name" : {
19494 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
19495 "format_description" : "string",
19496 "optional" : 1,
19497 "pattern" : "[a-zA-Z0-9\\-]+",
19498 "type" : "string"
19499 },
19500 "size" : {
19501 "description" : "The size of the file in MB.",
19502 "minimum" : 1,
19503 "type" : "integer"
19504 }
19505 },
19506 "optional" : 1,
19507 "type" : "string",
19508 "typetext" : "size=<integer> [,name=<string>]"
19509 },
4772952b
TL
19510 "keephugepages" : {
19511 "default" : 0,
19512 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
19513 "optional" : 1,
19514 "type" : "boolean",
19515 "typetext" : "<boolean>"
19516 },
4d47f125
TL
19517 "keyboard" : {
19518 "default" : null,
7af2edf9 19519 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
19520 "enum" : [
19521 "de",
19522 "de-ch",
19523 "da",
19524 "en-gb",
19525 "en-us",
19526 "es",
19527 "fi",
19528 "fr",
19529 "fr-be",
19530 "fr-ca",
19531 "fr-ch",
19532 "hu",
19533 "is",
19534 "it",
19535 "ja",
19536 "lt",
19537 "mk",
19538 "nl",
19539 "no",
19540 "pl",
19541 "pt",
19542 "pt-br",
19543 "sv",
19544 "sl",
19545 "tr"
19546 ],
19547 "optional" : 1,
19548 "type" : "string"
44660702 19549 },
4d47f125
TL
19550 "kvm" : {
19551 "default" : 1,
19552 "description" : "Enable/disable KVM hardware virtualization.",
44660702 19553 "optional" : 1,
013dc89f
DM
19554 "type" : "boolean",
19555 "typetext" : "<boolean>"
7aacca6f 19556 },
4d47f125 19557 "localtime" : {
5370fa8c 19558 "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
19559 "optional" : 1,
19560 "type" : "boolean",
19561 "typetext" : "<boolean>"
19562 },
19563 "lock" : {
19564 "description" : "Lock/unlock the VM.",
56122987 19565 "enum" : [
4d47f125 19566 "backup",
5f26e15b
TL
19567 "clone",
19568 "create",
19569 "migrate",
19570 "rollback",
56122987 19571 "snapshot",
95895385
TL
19572 "snapshot-delete",
19573 "suspending",
19574 "suspended"
56122987 19575 ],
4d47f125 19576 "optional" : 1,
44660702
DM
19577 "type" : "string"
19578 },
4d47f125 19579 "machine" : {
9d2e98ed 19580 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
19581 "maxLength" : 40,
19582 "optional" : 1,
5c1699e5 19583 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
19584 "type" : "string"
19585 },
19586 "memory" : {
19587 "default" : 512,
9d2e98ed 19588 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
4d47f125
TL
19589 "minimum" : 16,
19590 "optional" : 1,
19591 "type" : "integer",
19592 "typetext" : "<integer> (16 - N)"
19593 },
19594 "migrate_downtime" : {
19595 "default" : 0.1,
19596 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
19597 "minimum" : 0,
19598 "optional" : 1,
19599 "type" : "number",
19600 "typetext" : "<number> (0 - N)"
19601 },
19602 "migrate_speed" : {
19603 "default" : 0,
19604 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
19605 "minimum" : 0,
19606 "optional" : 1,
19607 "type" : "integer",
19608 "typetext" : "<integer> (0 - N)"
19609 },
19610 "name" : {
19611 "description" : "Set a name for the VM. Only used on the configuration web interface.",
19612 "format" : "dns-name",
19613 "optional" : 1,
013dc89f
DM
19614 "type" : "string",
19615 "typetext" : "<string>"
56122987 19616 },
4d47f125 19617 "nameserver" : {
de786b48 19618 "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 19619 "format" : "address-list",
7aacca6f 19620 "optional" : 1,
013dc89f
DM
19621 "type" : "string",
19622 "typetext" : "<string>"
7aacca6f 19623 },
4d47f125
TL
19624 "net[n]" : {
19625 "description" : "Specify network devices.",
19626 "format" : {
19627 "bridge" : {
19628 "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 19629 "format" : "pve-bridge-id",
4d47f125
TL
19630 "format_description" : "bridge",
19631 "optional" : 1,
19632 "type" : "string"
19633 },
19634 "e1000" : {
19635 "alias" : "macaddr",
19636 "keyAlias" : "model"
19637 },
19638 "e1000-82540em" : {
19639 "alias" : "macaddr",
19640 "keyAlias" : "model"
19641 },
19642 "e1000-82544gc" : {
19643 "alias" : "macaddr",
19644 "keyAlias" : "model"
19645 },
19646 "e1000-82545em" : {
19647 "alias" : "macaddr",
19648 "keyAlias" : "model"
19649 },
5370fa8c
TL
19650 "e1000e" : {
19651 "alias" : "macaddr",
19652 "keyAlias" : "model"
19653 },
4d47f125
TL
19654 "firewall" : {
19655 "description" : "Whether this interface should be protected by the firewall.",
19656 "optional" : 1,
19657 "type" : "boolean"
19658 },
19659 "i82551" : {
19660 "alias" : "macaddr",
19661 "keyAlias" : "model"
19662 },
19663 "i82557b" : {
19664 "alias" : "macaddr",
19665 "keyAlias" : "model"
19666 },
19667 "i82559er" : {
19668 "alias" : "macaddr",
19669 "keyAlias" : "model"
19670 },
19671 "link_down" : {
19672 "description" : "Whether this interface should be disconnected (like pulling the plug).",
19673 "optional" : 1,
19674 "type" : "boolean"
19675 },
19676 "macaddr" : {
19677 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 19678 "format" : "mac-addr",
4d47f125
TL
19679 "format_description" : "XX:XX:XX:XX:XX:XX",
19680 "optional" : 1,
95895385
TL
19681 "type" : "string",
19682 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
19683 },
19684 "model" : {
19685 "default_key" : 1,
19686 "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'.",
19687 "enum" : [
4d47f125 19688 "e1000",
5370fa8c
TL
19689 "e1000-82540em",
19690 "e1000-82544gc",
19691 "e1000-82545em",
19692 "e1000e",
4d47f125
TL
19693 "i82551",
19694 "i82557b",
19695 "i82559er",
5370fa8c
TL
19696 "ne2k_isa",
19697 "ne2k_pci",
19698 "pcnet",
19699 "rtl8139",
19700 "virtio",
19701 "vmxnet3"
4d47f125
TL
19702 ],
19703 "type" : "string"
19704 },
ac70d7d1
TL
19705 "mtu" : {
19706 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
19707 "maximum" : 65520,
19708 "minimum" : 1,
19709 "optional" : 1,
19710 "type" : "integer"
19711 },
4d47f125
TL
19712 "ne2k_isa" : {
19713 "alias" : "macaddr",
19714 "keyAlias" : "model"
19715 },
19716 "ne2k_pci" : {
19717 "alias" : "macaddr",
19718 "keyAlias" : "model"
19719 },
19720 "pcnet" : {
19721 "alias" : "macaddr",
19722 "keyAlias" : "model"
19723 },
19724 "queues" : {
19725 "description" : "Number of packet queues to be used on the device.",
81a3384d 19726 "maximum" : 64,
4d47f125
TL
19727 "minimum" : 0,
19728 "optional" : 1,
19729 "type" : "integer"
19730 },
19731 "rate" : {
19732 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
19733 "minimum" : 0,
19734 "optional" : 1,
19735 "type" : "number"
19736 },
19737 "rtl8139" : {
19738 "alias" : "macaddr",
19739 "keyAlias" : "model"
19740 },
19741 "tag" : {
19742 "description" : "VLAN tag to apply to packets on this interface.",
19743 "maximum" : 4094,
19744 "minimum" : 1,
19745 "optional" : 1,
19746 "type" : "integer"
19747 },
19748 "trunks" : {
19749 "description" : "VLAN trunks to pass through this interface.",
19750 "format_description" : "vlanid[;vlanid...]",
19751 "optional" : 1,
19752 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19753 "type" : "string"
19754 },
19755 "virtio" : {
19756 "alias" : "macaddr",
19757 "keyAlias" : "model"
19758 },
19759 "vmxnet3" : {
19760 "alias" : "macaddr",
19761 "keyAlias" : "model"
19762 }
44660702 19763 },
44660702 19764 "optional" : 1,
013dc89f 19765 "type" : "string",
ac70d7d1 19766 "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
19767 },
19768 "node" : {
19769 "description" : "The cluster node name.",
19770 "format" : "pve-node",
013dc89f
DM
19771 "type" : "string",
19772 "typetext" : "<string>"
7aacca6f 19773 },
4d47f125
TL
19774 "numa" : {
19775 "default" : 0,
19776 "description" : "Enable/disable NUMA.",
56122987 19777 "optional" : 1,
4d47f125
TL
19778 "type" : "boolean",
19779 "typetext" : "<boolean>"
56122987 19780 },
4d47f125
TL
19781 "numa[n]" : {
19782 "description" : "NUMA topology.",
19783 "format" : {
19784 "cpus" : {
19785 "description" : "CPUs accessing this NUMA node.",
19786 "format_description" : "id[-id];...",
19787 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19788 "type" : "string"
19789 },
19790 "hostnodes" : {
19791 "description" : "Host NUMA nodes to use.",
19792 "format_description" : "id[-id];...",
19793 "optional" : 1,
19794 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19795 "type" : "string"
19796 },
19797 "memory" : {
19798 "description" : "Amount of memory this NUMA node provides.",
19799 "optional" : 1,
19800 "type" : "number"
19801 },
19802 "policy" : {
19803 "description" : "NUMA allocation policy.",
19804 "enum" : [
19805 "preferred",
19806 "bind",
19807 "interleave"
19808 ],
19809 "optional" : 1,
19810 "type" : "string"
19811 }
19812 },
7aacca6f 19813 "optional" : 1,
013dc89f 19814 "type" : "string",
4d47f125 19815 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 19816 },
4d47f125 19817 "onboot" : {
44660702 19818 "default" : 0,
4d47f125 19819 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 19820 "optional" : 1,
013dc89f
DM
19821 "type" : "boolean",
19822 "typetext" : "<boolean>"
56122987 19823 },
4d47f125
TL
19824 "ostype" : {
19825 "description" : "Specify guest operating system.",
7aacca6f 19826 "enum" : [
4d47f125
TL
19827 "other",
19828 "wxp",
19829 "w2k",
19830 "w2k3",
19831 "w2k8",
19832 "wvista",
19833 "win7",
19834 "win8",
19835 "win10",
5370fa8c 19836 "win11",
4d47f125
TL
19837 "l24",
19838 "l26",
19839 "solaris"
7aacca6f
DM
19840 ],
19841 "optional" : 1,
013dc89f 19842 "type" : "string",
9d2e98ed 19843 "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 19844 },
4d47f125
TL
19845 "parallel[n]" : {
19846 "description" : "Map host parallel devices (n is 0 to 2).",
19847 "optional" : 1,
19848 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 19849 "type" : "string",
4772952b 19850 "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 19851 },
4d47f125
TL
19852 "protection" : {
19853 "default" : 0,
19854 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 19855 "optional" : 1,
013dc89f
DM
19856 "type" : "boolean",
19857 "typetext" : "<boolean>"
44660702 19858 },
4d47f125
TL
19859 "reboot" : {
19860 "default" : 1,
19861 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 19862 "optional" : 1,
013dc89f
DM
19863 "type" : "boolean",
19864 "typetext" : "<boolean>"
56122987 19865 },
4d47f125
TL
19866 "revert" : {
19867 "description" : "Revert a pending change.",
19868 "format" : "pve-configid-list",
19869 "optional" : 1,
013dc89f
DM
19870 "type" : "string",
19871 "typetext" : "<string>"
56122987 19872 },
c5aa7e14
TL
19873 "rng0" : {
19874 "description" : "Configure a VirtIO-based Random Number Generator.",
19875 "format" : {
19876 "max_bytes" : {
19877 "default" : 1024,
5370fa8c 19878 "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
19879 "optional" : 1,
19880 "type" : "integer"
19881 },
19882 "period" : {
19883 "default" : 1000,
19884 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
19885 "optional" : 1,
19886 "type" : "integer"
19887 },
19888 "source" : {
19889 "default_key" : 1,
5370fa8c 19890 "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
19891 "enum" : [
19892 "/dev/urandom",
19893 "/dev/random",
19894 "/dev/hwrng"
19895 ],
19896 "type" : "string"
19897 }
19898 },
19899 "optional" : 1,
19900 "type" : "string",
19901 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
19902 },
4d47f125 19903 "sata[n]" : {
7af2edf9 19904 "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
19905 "format" : {
19906 "aio" : {
19907 "description" : "AIO type to use.",
19908 "enum" : [
19909 "native",
8f4d9c87
TL
19910 "threads",
19911 "io_uring"
4d47f125
TL
19912 ],
19913 "optional" : 1,
19914 "type" : "string"
19915 },
19916 "backup" : {
19917 "description" : "Whether the drive should be included when making backups.",
19918 "optional" : 1,
19919 "type" : "boolean"
19920 },
19921 "bps" : {
19922 "description" : "Maximum r/w speed in bytes per second.",
19923 "format_description" : "bps",
19924 "optional" : 1,
19925 "type" : "integer"
19926 },
19927 "bps_max_length" : {
19928 "description" : "Maximum length of I/O bursts in seconds.",
19929 "format_description" : "seconds",
19930 "minimum" : 1,
19931 "optional" : 1,
19932 "type" : "integer"
19933 },
19934 "bps_rd" : {
19935 "description" : "Maximum read speed in bytes per second.",
19936 "format_description" : "bps",
19937 "optional" : 1,
19938 "type" : "integer"
19939 },
19940 "bps_rd_length" : {
19941 "alias" : "bps_rd_max_length"
19942 },
19943 "bps_rd_max_length" : {
19944 "description" : "Maximum length of read I/O bursts in seconds.",
19945 "format_description" : "seconds",
19946 "minimum" : 1,
19947 "optional" : 1,
19948 "type" : "integer"
19949 },
19950 "bps_wr" : {
19951 "description" : "Maximum write speed in bytes per second.",
19952 "format_description" : "bps",
19953 "optional" : 1,
19954 "type" : "integer"
19955 },
19956 "bps_wr_length" : {
19957 "alias" : "bps_wr_max_length"
19958 },
19959 "bps_wr_max_length" : {
19960 "description" : "Maximum length of write I/O bursts in seconds.",
19961 "format_description" : "seconds",
19962 "minimum" : 1,
19963 "optional" : 1,
19964 "type" : "integer"
19965 },
19966 "cache" : {
19967 "description" : "The drive's cache mode",
19968 "enum" : [
19969 "none",
19970 "writethrough",
19971 "writeback",
19972 "unsafe",
19973 "directsync"
19974 ],
19975 "optional" : 1,
19976 "type" : "string"
19977 },
19978 "cyls" : {
19979 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19980 "optional" : 1,
19981 "type" : "integer"
19982 },
19983 "detect_zeroes" : {
19984 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19985 "optional" : 1,
19986 "type" : "boolean"
19987 },
19988 "discard" : {
19989 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19990 "enum" : [
19991 "ignore",
19992 "on"
19993 ],
19994 "optional" : 1,
19995 "type" : "string"
19996 },
19997 "file" : {
19998 "default_key" : 1,
19999 "description" : "The drive's backing volume.",
20000 "format" : "pve-volume-id-or-qm-path",
20001 "format_description" : "volume",
20002 "type" : "string"
20003 },
20004 "format" : {
20005 "description" : "The drive's backing file's data format.",
20006 "enum" : [
20007 "raw",
20008 "cow",
20009 "qcow",
20010 "qed",
20011 "qcow2",
20012 "vmdk",
20013 "cloop"
20014 ],
20015 "optional" : 1,
20016 "type" : "string"
20017 },
20018 "heads" : {
20019 "description" : "Force the drive's physical geometry to have a specific head count.",
20020 "optional" : 1,
20021 "type" : "integer"
20022 },
7af2edf9
TL
20023 "import-from" : {
20024 "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!",
20025 "format" : "pve-volume-id-or-absolute-path",
20026 "format_description" : "source volume",
20027 "optional" : 1,
20028 "type" : "string"
20029 },
4d47f125
TL
20030 "iops" : {
20031 "description" : "Maximum r/w I/O in operations per second.",
20032 "format_description" : "iops",
20033 "optional" : 1,
20034 "type" : "integer"
20035 },
20036 "iops_max" : {
20037 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
20038 "format_description" : "iops",
20039 "optional" : 1,
20040 "type" : "integer"
20041 },
20042 "iops_max_length" : {
20043 "description" : "Maximum length of I/O bursts in seconds.",
20044 "format_description" : "seconds",
20045 "minimum" : 1,
20046 "optional" : 1,
20047 "type" : "integer"
20048 },
20049 "iops_rd" : {
20050 "description" : "Maximum read I/O in operations per second.",
20051 "format_description" : "iops",
20052 "optional" : 1,
20053 "type" : "integer"
20054 },
20055 "iops_rd_length" : {
20056 "alias" : "iops_rd_max_length"
20057 },
20058 "iops_rd_max" : {
20059 "description" : "Maximum unthrottled read I/O pool in operations per second.",
20060 "format_description" : "iops",
20061 "optional" : 1,
20062 "type" : "integer"
20063 },
20064 "iops_rd_max_length" : {
20065 "description" : "Maximum length of read I/O bursts in seconds.",
20066 "format_description" : "seconds",
20067 "minimum" : 1,
20068 "optional" : 1,
20069 "type" : "integer"
20070 },
20071 "iops_wr" : {
20072 "description" : "Maximum write I/O in operations per second.",
20073 "format_description" : "iops",
20074 "optional" : 1,
20075 "type" : "integer"
20076 },
20077 "iops_wr_length" : {
20078 "alias" : "iops_wr_max_length"
20079 },
20080 "iops_wr_max" : {
20081 "description" : "Maximum unthrottled write I/O pool in operations per second.",
20082 "format_description" : "iops",
20083 "optional" : 1,
20084 "type" : "integer"
20085 },
20086 "iops_wr_max_length" : {
20087 "description" : "Maximum length of write I/O bursts in seconds.",
20088 "format_description" : "seconds",
20089 "minimum" : 1,
20090 "optional" : 1,
20091 "type" : "integer"
20092 },
20093 "mbps" : {
20094 "description" : "Maximum r/w speed in megabytes per second.",
20095 "format_description" : "mbps",
20096 "optional" : 1,
20097 "type" : "number"
20098 },
20099 "mbps_max" : {
20100 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
20101 "format_description" : "mbps",
20102 "optional" : 1,
20103 "type" : "number"
20104 },
20105 "mbps_rd" : {
20106 "description" : "Maximum read speed in megabytes per second.",
20107 "format_description" : "mbps",
20108 "optional" : 1,
20109 "type" : "number"
20110 },
20111 "mbps_rd_max" : {
20112 "description" : "Maximum unthrottled read pool in megabytes per second.",
20113 "format_description" : "mbps",
20114 "optional" : 1,
20115 "type" : "number"
20116 },
20117 "mbps_wr" : {
20118 "description" : "Maximum write speed in megabytes per second.",
20119 "format_description" : "mbps",
20120 "optional" : 1,
20121 "type" : "number"
20122 },
20123 "mbps_wr_max" : {
20124 "description" : "Maximum unthrottled write pool in megabytes per second.",
20125 "format_description" : "mbps",
20126 "optional" : 1,
20127 "type" : "number"
20128 },
20129 "media" : {
20130 "default" : "disk",
20131 "description" : "The drive's media type.",
20132 "enum" : [
20133 "cdrom",
20134 "disk"
20135 ],
20136 "optional" : 1,
20137 "type" : "string"
20138 },
20139 "replicate" : {
20140 "default" : 1,
20141 "description" : "Whether the drive should considered for replication jobs.",
20142 "optional" : 1,
20143 "type" : "boolean"
20144 },
20145 "rerror" : {
20146 "description" : "Read error action.",
20147 "enum" : [
20148 "ignore",
20149 "report",
20150 "stop"
20151 ],
20152 "optional" : 1,
20153 "type" : "string"
20154 },
20155 "secs" : {
20156 "description" : "Force the drive's physical geometry to have a specific sector count.",
20157 "optional" : 1,
20158 "type" : "integer"
20159 },
20160 "serial" : {
20161 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20162 "format" : "urlencoded",
20163 "format_description" : "serial",
20164 "maxLength" : 60,
20165 "optional" : 1,
20166 "type" : "string"
20167 },
20168 "shared" : {
20169 "default" : 0,
20170 "description" : "Mark this locally-managed volume as available on all nodes",
20171 "optional" : 1,
20172 "type" : "boolean",
20173 "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!"
20174 },
20175 "size" : {
20176 "description" : "Disk size. This is purely informational and has no effect.",
20177 "format" : "disk-size",
20178 "format_description" : "DiskSize",
20179 "optional" : 1,
20180 "type" : "string"
20181 },
20182 "snapshot" : {
20183 "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.",
20184 "optional" : 1,
20185 "type" : "boolean"
20186 },
25203dc1
NC
20187 "ssd" : {
20188 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
20189 "optional" : 1,
20190 "type" : "boolean"
20191 },
4d47f125
TL
20192 "trans" : {
20193 "description" : "Force disk geometry bios translation mode.",
20194 "enum" : [
20195 "none",
20196 "lba",
20197 "auto"
20198 ],
20199 "optional" : 1,
20200 "type" : "string"
20201 },
20202 "volume" : {
20203 "alias" : "file"
20204 },
20205 "werror" : {
20206 "description" : "Write error action.",
20207 "enum" : [
20208 "enospc",
20209 "ignore",
20210 "report",
20211 "stop"
20212 ],
20213 "optional" : 1,
20214 "type" : "string"
95895385
TL
20215 },
20216 "wwn" : {
20217 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
20218 "format_description" : "wwn",
20219 "optional" : 1,
20220 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
20221 "type" : "string"
4d47f125
TL
20222 }
20223 },
20224 "optional" : 1,
20225 "type" : "string",
7af2edf9 20226 "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
20227 },
20228 "scsi[n]" : {
7af2edf9 20229 "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
20230 "format" : {
20231 "aio" : {
20232 "description" : "AIO type to use.",
20233 "enum" : [
20234 "native",
8f4d9c87
TL
20235 "threads",
20236 "io_uring"
4d47f125
TL
20237 ],
20238 "optional" : 1,
20239 "type" : "string"
20240 },
20241 "backup" : {
20242 "description" : "Whether the drive should be included when making backups.",
20243 "optional" : 1,
20244 "type" : "boolean"
20245 },
20246 "bps" : {
20247 "description" : "Maximum r/w speed in bytes per second.",
20248 "format_description" : "bps",
20249 "optional" : 1,
20250 "type" : "integer"
20251 },
20252 "bps_max_length" : {
20253 "description" : "Maximum length of I/O bursts in seconds.",
20254 "format_description" : "seconds",
20255 "minimum" : 1,
20256 "optional" : 1,
20257 "type" : "integer"
20258 },
20259 "bps_rd" : {
20260 "description" : "Maximum read speed in bytes per second.",
20261 "format_description" : "bps",
20262 "optional" : 1,
20263 "type" : "integer"
20264 },
20265 "bps_rd_length" : {
20266 "alias" : "bps_rd_max_length"
20267 },
20268 "bps_rd_max_length" : {
20269 "description" : "Maximum length of read I/O bursts in seconds.",
20270 "format_description" : "seconds",
20271 "minimum" : 1,
20272 "optional" : 1,
20273 "type" : "integer"
20274 },
20275 "bps_wr" : {
20276 "description" : "Maximum write speed in bytes per second.",
20277 "format_description" : "bps",
20278 "optional" : 1,
20279 "type" : "integer"
20280 },
20281 "bps_wr_length" : {
20282 "alias" : "bps_wr_max_length"
20283 },
20284 "bps_wr_max_length" : {
20285 "description" : "Maximum length of write I/O bursts in seconds.",
20286 "format_description" : "seconds",
20287 "minimum" : 1,
20288 "optional" : 1,
20289 "type" : "integer"
20290 },
20291 "cache" : {
20292 "description" : "The drive's cache mode",
20293 "enum" : [
20294 "none",
20295 "writethrough",
20296 "writeback",
20297 "unsafe",
20298 "directsync"
20299 ],
20300 "optional" : 1,
20301 "type" : "string"
20302 },
20303 "cyls" : {
20304 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
20305 "optional" : 1,
20306 "type" : "integer"
20307 },
20308 "detect_zeroes" : {
20309 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20310 "optional" : 1,
20311 "type" : "boolean"
20312 },
20313 "discard" : {
20314 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20315 "enum" : [
20316 "ignore",
20317 "on"
20318 ],
20319 "optional" : 1,
20320 "type" : "string"
20321 },
20322 "file" : {
20323 "default_key" : 1,
20324 "description" : "The drive's backing volume.",
20325 "format" : "pve-volume-id-or-qm-path",
20326 "format_description" : "volume",
20327 "type" : "string"
20328 },
20329 "format" : {
20330 "description" : "The drive's backing file's data format.",
20331 "enum" : [
20332 "raw",
20333 "cow",
20334 "qcow",
20335 "qed",
20336 "qcow2",
20337 "vmdk",
20338 "cloop"
20339 ],
20340 "optional" : 1,
20341 "type" : "string"
20342 },
20343 "heads" : {
20344 "description" : "Force the drive's physical geometry to have a specific head count.",
20345 "optional" : 1,
20346 "type" : "integer"
20347 },
7af2edf9
TL
20348 "import-from" : {
20349 "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!",
20350 "format" : "pve-volume-id-or-absolute-path",
20351 "format_description" : "source volume",
20352 "optional" : 1,
20353 "type" : "string"
20354 },
4d47f125
TL
20355 "iops" : {
20356 "description" : "Maximum r/w I/O in operations per second.",
20357 "format_description" : "iops",
20358 "optional" : 1,
20359 "type" : "integer"
20360 },
20361 "iops_max" : {
20362 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
20363 "format_description" : "iops",
20364 "optional" : 1,
20365 "type" : "integer"
20366 },
20367 "iops_max_length" : {
20368 "description" : "Maximum length of I/O bursts in seconds.",
20369 "format_description" : "seconds",
20370 "minimum" : 1,
20371 "optional" : 1,
20372 "type" : "integer"
20373 },
20374 "iops_rd" : {
20375 "description" : "Maximum read I/O in operations per second.",
20376 "format_description" : "iops",
20377 "optional" : 1,
20378 "type" : "integer"
20379 },
20380 "iops_rd_length" : {
20381 "alias" : "iops_rd_max_length"
20382 },
20383 "iops_rd_max" : {
20384 "description" : "Maximum unthrottled read I/O pool in operations per second.",
20385 "format_description" : "iops",
20386 "optional" : 1,
20387 "type" : "integer"
20388 },
20389 "iops_rd_max_length" : {
20390 "description" : "Maximum length of read I/O bursts in seconds.",
20391 "format_description" : "seconds",
20392 "minimum" : 1,
20393 "optional" : 1,
20394 "type" : "integer"
20395 },
20396 "iops_wr" : {
20397 "description" : "Maximum write I/O in operations per second.",
20398 "format_description" : "iops",
20399 "optional" : 1,
20400 "type" : "integer"
20401 },
20402 "iops_wr_length" : {
20403 "alias" : "iops_wr_max_length"
20404 },
20405 "iops_wr_max" : {
20406 "description" : "Maximum unthrottled write I/O pool in operations per second.",
20407 "format_description" : "iops",
20408 "optional" : 1,
20409 "type" : "integer"
20410 },
20411 "iops_wr_max_length" : {
20412 "description" : "Maximum length of write I/O bursts in seconds.",
20413 "format_description" : "seconds",
20414 "minimum" : 1,
20415 "optional" : 1,
20416 "type" : "integer"
20417 },
20418 "iothread" : {
20419 "description" : "Whether to use iothreads for this drive",
20420 "optional" : 1,
20421 "type" : "boolean"
20422 },
20423 "mbps" : {
20424 "description" : "Maximum r/w speed in megabytes per second.",
20425 "format_description" : "mbps",
20426 "optional" : 1,
20427 "type" : "number"
20428 },
20429 "mbps_max" : {
20430 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
20431 "format_description" : "mbps",
20432 "optional" : 1,
20433 "type" : "number"
20434 },
20435 "mbps_rd" : {
20436 "description" : "Maximum read speed in megabytes per second.",
20437 "format_description" : "mbps",
20438 "optional" : 1,
20439 "type" : "number"
20440 },
20441 "mbps_rd_max" : {
20442 "description" : "Maximum unthrottled read pool in megabytes per second.",
20443 "format_description" : "mbps",
20444 "optional" : 1,
20445 "type" : "number"
20446 },
20447 "mbps_wr" : {
20448 "description" : "Maximum write speed in megabytes per second.",
20449 "format_description" : "mbps",
20450 "optional" : 1,
20451 "type" : "number"
20452 },
20453 "mbps_wr_max" : {
20454 "description" : "Maximum unthrottled write pool in megabytes per second.",
20455 "format_description" : "mbps",
20456 "optional" : 1,
20457 "type" : "number"
20458 },
20459 "media" : {
20460 "default" : "disk",
20461 "description" : "The drive's media type.",
20462 "enum" : [
20463 "cdrom",
20464 "disk"
20465 ],
20466 "optional" : 1,
20467 "type" : "string"
20468 },
20469 "queues" : {
20470 "description" : "Number of queues.",
20471 "minimum" : 2,
20472 "optional" : 1,
20473 "type" : "integer"
20474 },
20475 "replicate" : {
20476 "default" : 1,
20477 "description" : "Whether the drive should considered for replication jobs.",
20478 "optional" : 1,
20479 "type" : "boolean"
20480 },
20481 "rerror" : {
20482 "description" : "Read error action.",
20483 "enum" : [
20484 "ignore",
20485 "report",
20486 "stop"
20487 ],
20488 "optional" : 1,
20489 "type" : "string"
20490 },
5370fa8c
TL
20491 "ro" : {
20492 "description" : "Whether the drive is read-only.",
20493 "optional" : 1,
20494 "type" : "boolean"
20495 },
4d47f125
TL
20496 "scsiblock" : {
20497 "default" : 0,
20498 "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",
20499 "optional" : 1,
20500 "type" : "boolean"
20501 },
20502 "secs" : {
20503 "description" : "Force the drive's physical geometry to have a specific sector count.",
20504 "optional" : 1,
20505 "type" : "integer"
20506 },
20507 "serial" : {
20508 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20509 "format" : "urlencoded",
20510 "format_description" : "serial",
20511 "maxLength" : 60,
20512 "optional" : 1,
20513 "type" : "string"
20514 },
20515 "shared" : {
20516 "default" : 0,
20517 "description" : "Mark this locally-managed volume as available on all nodes",
20518 "optional" : 1,
20519 "type" : "boolean",
20520 "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!"
20521 },
20522 "size" : {
20523 "description" : "Disk size. This is purely informational and has no effect.",
20524 "format" : "disk-size",
20525 "format_description" : "DiskSize",
20526 "optional" : 1,
20527 "type" : "string"
20528 },
20529 "snapshot" : {
20530 "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.",
20531 "optional" : 1,
20532 "type" : "boolean"
20533 },
25203dc1
NC
20534 "ssd" : {
20535 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
20536 "optional" : 1,
20537 "type" : "boolean"
20538 },
4d47f125
TL
20539 "trans" : {
20540 "description" : "Force disk geometry bios translation mode.",
20541 "enum" : [
20542 "none",
20543 "lba",
20544 "auto"
20545 ],
20546 "optional" : 1,
20547 "type" : "string"
20548 },
20549 "volume" : {
20550 "alias" : "file"
20551 },
20552 "werror" : {
20553 "description" : "Write error action.",
20554 "enum" : [
20555 "enospc",
20556 "ignore",
20557 "report",
20558 "stop"
20559 ],
20560 "optional" : 1,
20561 "type" : "string"
95895385
TL
20562 },
20563 "wwn" : {
20564 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
20565 "format_description" : "wwn",
20566 "optional" : 1,
20567 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
20568 "type" : "string"
4d47f125
TL
20569 }
20570 },
20571 "optional" : 1,
20572 "type" : "string",
7af2edf9 20573 "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
20574 },
20575 "scsihw" : {
20576 "default" : "lsi",
20577 "description" : "SCSI controller model",
20578 "enum" : [
20579 "lsi",
20580 "lsi53c810",
20581 "virtio-scsi-pci",
20582 "virtio-scsi-single",
20583 "megasas",
20584 "pvscsi"
20585 ],
20586 "optional" : 1,
20587 "type" : "string"
20588 },
20589 "searchdomain" : {
de786b48 20590 "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
20591 "optional" : 1,
20592 "type" : "string",
20593 "typetext" : "<string>"
20594 },
20595 "serial[n]" : {
20596 "description" : "Create a serial device inside the VM (n is 0 to 3)",
20597 "optional" : 1,
20598 "pattern" : "(/dev/.+|socket)",
20599 "type" : "string",
4772952b 20600 "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
20601 },
20602 "shares" : {
20603 "default" : 1000,
20604 "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.",
20605 "maximum" : 50000,
20606 "minimum" : 0,
20607 "optional" : 1,
20608 "type" : "integer",
20609 "typetext" : "<integer> (0 - 50000)"
20610 },
20611 "skiplock" : {
20612 "description" : "Ignore locks - only root is allowed to use this option.",
20613 "optional" : 1,
20614 "type" : "boolean",
20615 "typetext" : "<boolean>"
20616 },
20617 "smbios1" : {
20618 "description" : "Specify SMBIOS type 1 fields.",
20619 "format" : "pve-qm-smbios1",
1e3f8156 20620 "maxLength" : 512,
4d47f125
TL
20621 "optional" : 1,
20622 "type" : "string",
1e3f8156 20623 "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
20624 },
20625 "smp" : {
20626 "default" : 1,
20627 "description" : "The number of CPUs. Please use option -sockets instead.",
20628 "minimum" : 1,
20629 "optional" : 1,
20630 "type" : "integer",
20631 "typetext" : "<integer> (1 - N)"
20632 },
20633 "sockets" : {
20634 "default" : 1,
20635 "description" : "The number of CPU sockets.",
20636 "minimum" : 1,
20637 "optional" : 1,
20638 "type" : "integer",
20639 "typetext" : "<integer> (1 - N)"
20640 },
1c532546
TL
20641 "spice_enhancements" : {
20642 "description" : "Configure additional enhancements for SPICE.",
20643 "format" : {
20644 "foldersharing" : {
20645 "default" : "0",
20646 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
20647 "optional" : 1,
20648 "type" : "boolean"
20649 },
20650 "videostreaming" : {
20651 "default" : "off",
20652 "description" : "Enable video streaming. Uses compression for detected video streams.",
20653 "enum" : [
20654 "off",
20655 "all",
20656 "filter"
20657 ],
20658 "optional" : 1,
20659 "type" : "string"
20660 }
20661 },
20662 "optional" : 1,
20663 "type" : "string",
20664 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
20665 },
4d47f125
TL
20666 "sshkeys" : {
20667 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
20668 "format" : "urlencoded",
20669 "optional" : 1,
20670 "type" : "string",
20671 "typetext" : "<string>"
20672 },
20673 "startdate" : {
20674 "default" : "now",
4772952b 20675 "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
20676 "optional" : 1,
20677 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
20678 "type" : "string",
20679 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
20680 },
20681 "startup" : {
20682 "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.",
20683 "format" : "pve-startup-order",
20684 "optional" : 1,
20685 "type" : "string",
20686 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
20687 },
20688 "tablet" : {
20689 "default" : 1,
20690 "description" : "Enable/disable the USB tablet device.",
20691 "optional" : 1,
20692 "type" : "boolean",
20693 "typetext" : "<boolean>",
4772952b 20694 "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 20695 },
5c1699e5
TL
20696 "tags" : {
20697 "description" : "Tags of the VM. This is only meta information.",
20698 "format" : "pve-tag-list",
20699 "optional" : 1,
20700 "type" : "string",
20701 "typetext" : "<string>"
20702 },
4d47f125
TL
20703 "tdf" : {
20704 "default" : 0,
20705 "description" : "Enable/disable time drift fix.",
20706 "optional" : 1,
20707 "type" : "boolean",
20708 "typetext" : "<boolean>"
20709 },
20710 "template" : {
20711 "default" : 0,
20712 "description" : "Enable/disable Template.",
20713 "optional" : 1,
20714 "type" : "boolean",
20715 "typetext" : "<boolean>"
20716 },
5370fa8c 20717 "tpmstate0" : {
7af2edf9 20718 "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
20719 "format" : {
20720 "file" : {
20721 "default_key" : 1,
20722 "description" : "The drive's backing volume.",
20723 "format" : "pve-volume-id-or-qm-path",
20724 "format_description" : "volume",
20725 "type" : "string"
20726 },
7af2edf9
TL
20727 "import-from" : {
20728 "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!",
20729 "format" : "pve-volume-id-or-absolute-path",
20730 "format_description" : "source volume",
20731 "optional" : 1,
20732 "type" : "string"
20733 },
5370fa8c
TL
20734 "size" : {
20735 "description" : "Disk size. This is purely informational and has no effect.",
20736 "format" : "disk-size",
20737 "format_description" : "DiskSize",
20738 "optional" : 1,
20739 "type" : "string"
20740 },
20741 "version" : {
20742 "default" : "v2.0",
20743 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
20744 "enum" : [
20745 "v1.2",
20746 "v2.0"
20747 ],
20748 "optional" : 1,
20749 "type" : "string"
20750 },
20751 "volume" : {
20752 "alias" : "file"
20753 }
20754 },
20755 "optional" : 1,
20756 "type" : "string",
7af2edf9 20757 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 20758 },
4d47f125
TL
20759 "unused[n]" : {
20760 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
20761 "format" : {
20762 "file" : {
20763 "default_key" : 1,
20764 "description" : "The drive's backing volume.",
20765 "format" : "pve-volume-id",
20766 "format_description" : "volume",
20767 "type" : "string"
20768 },
20769 "volume" : {
20770 "alias" : "file"
20771 }
20772 },
4d47f125
TL
20773 "optional" : 1,
20774 "type" : "string",
c5aa7e14 20775 "typetext" : "[file=]<volume>"
4d47f125
TL
20776 },
20777 "usb[n]" : {
4e7f60c2 20778 "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
20779 "format" : {
20780 "host" : {
20781 "default_key" : 1,
499c9b7f 20782 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
4d47f125 20783 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
20784 "optional" : 1,
20785 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
20786 "type" : "string"
20787 },
20788 "mapping" : {
20789 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
20790 "format" : "pve-configid",
20791 "format_description" : "mapping-id",
20792 "optional" : 1,
4d47f125
TL
20793 "type" : "string"
20794 },
20795 "usb3" : {
20796 "default" : 0,
4e7f60c2 20797 "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
20798 "optional" : 1,
20799 "type" : "boolean"
20800 }
20801 },
20802 "optional" : 1,
20803 "type" : "string",
499c9b7f 20804 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
4d47f125
TL
20805 },
20806 "vcpus" : {
20807 "default" : 0,
20808 "description" : "Number of hotplugged vcpus.",
20809 "minimum" : 1,
20810 "optional" : 1,
20811 "type" : "integer",
20812 "typetext" : "<integer> (1 - N)"
20813 },
20814 "vga" : {
e2d681b3
TL
20815 "description" : "Configure the VGA hardware.",
20816 "format" : {
20817 "memory" : {
20818 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
20819 "maximum" : 512,
20820 "minimum" : 4,
20821 "optional" : 1,
20822 "type" : "integer"
20823 },
20824 "type" : {
20825 "default" : "std",
20826 "default_key" : 1,
20827 "description" : "Select the VGA type.",
20828 "enum" : [
20829 "cirrus",
20830 "qxl",
20831 "qxl2",
20832 "qxl3",
20833 "qxl4",
5f26e15b 20834 "none",
e2d681b3
TL
20835 "serial0",
20836 "serial1",
20837 "serial2",
20838 "serial3",
20839 "std",
20840 "virtio",
7af2edf9 20841 "virtio-gl",
e2d681b3
TL
20842 "vmware"
20843 ],
20844 "optional" : 1,
20845 "type" : "string"
20846 }
20847 },
4d47f125
TL
20848 "optional" : 1,
20849 "type" : "string",
e2d681b3
TL
20850 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
20851 "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
20852 },
20853 "virtio[n]" : {
7af2edf9 20854 "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
20855 "format" : {
20856 "aio" : {
20857 "description" : "AIO type to use.",
20858 "enum" : [
20859 "native",
8f4d9c87
TL
20860 "threads",
20861 "io_uring"
4d47f125
TL
20862 ],
20863 "optional" : 1,
20864 "type" : "string"
20865 },
20866 "backup" : {
20867 "description" : "Whether the drive should be included when making backups.",
20868 "optional" : 1,
20869 "type" : "boolean"
20870 },
20871 "bps" : {
20872 "description" : "Maximum r/w speed in bytes per second.",
20873 "format_description" : "bps",
20874 "optional" : 1,
20875 "type" : "integer"
20876 },
20877 "bps_max_length" : {
20878 "description" : "Maximum length of I/O bursts in seconds.",
20879 "format_description" : "seconds",
20880 "minimum" : 1,
20881 "optional" : 1,
20882 "type" : "integer"
20883 },
20884 "bps_rd" : {
20885 "description" : "Maximum read speed in bytes per second.",
20886 "format_description" : "bps",
20887 "optional" : 1,
20888 "type" : "integer"
20889 },
20890 "bps_rd_length" : {
20891 "alias" : "bps_rd_max_length"
20892 },
20893 "bps_rd_max_length" : {
20894 "description" : "Maximum length of read I/O bursts in seconds.",
20895 "format_description" : "seconds",
20896 "minimum" : 1,
20897 "optional" : 1,
20898 "type" : "integer"
20899 },
20900 "bps_wr" : {
20901 "description" : "Maximum write speed in bytes per second.",
20902 "format_description" : "bps",
20903 "optional" : 1,
20904 "type" : "integer"
20905 },
20906 "bps_wr_length" : {
20907 "alias" : "bps_wr_max_length"
20908 },
20909 "bps_wr_max_length" : {
20910 "description" : "Maximum length of write I/O bursts in seconds.",
20911 "format_description" : "seconds",
20912 "minimum" : 1,
20913 "optional" : 1,
20914 "type" : "integer"
20915 },
20916 "cache" : {
20917 "description" : "The drive's cache mode",
20918 "enum" : [
20919 "none",
20920 "writethrough",
20921 "writeback",
20922 "unsafe",
20923 "directsync"
20924 ],
20925 "optional" : 1,
20926 "type" : "string"
20927 },
20928 "cyls" : {
20929 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
20930 "optional" : 1,
20931 "type" : "integer"
20932 },
20933 "detect_zeroes" : {
20934 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20935 "optional" : 1,
20936 "type" : "boolean"
20937 },
20938 "discard" : {
20939 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20940 "enum" : [
20941 "ignore",
20942 "on"
20943 ],
20944 "optional" : 1,
20945 "type" : "string"
20946 },
20947 "file" : {
20948 "default_key" : 1,
20949 "description" : "The drive's backing volume.",
20950 "format" : "pve-volume-id-or-qm-path",
20951 "format_description" : "volume",
20952 "type" : "string"
20953 },
20954 "format" : {
20955 "description" : "The drive's backing file's data format.",
20956 "enum" : [
20957 "raw",
20958 "cow",
20959 "qcow",
20960 "qed",
20961 "qcow2",
20962 "vmdk",
20963 "cloop"
20964 ],
20965 "optional" : 1,
20966 "type" : "string"
20967 },
20968 "heads" : {
20969 "description" : "Force the drive's physical geometry to have a specific head count.",
20970 "optional" : 1,
20971 "type" : "integer"
20972 },
7af2edf9
TL
20973 "import-from" : {
20974 "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!",
20975 "format" : "pve-volume-id-or-absolute-path",
20976 "format_description" : "source volume",
20977 "optional" : 1,
20978 "type" : "string"
20979 },
4d47f125
TL
20980 "iops" : {
20981 "description" : "Maximum r/w I/O in operations per second.",
20982 "format_description" : "iops",
20983 "optional" : 1,
20984 "type" : "integer"
20985 },
20986 "iops_max" : {
20987 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
20988 "format_description" : "iops",
20989 "optional" : 1,
20990 "type" : "integer"
20991 },
20992 "iops_max_length" : {
20993 "description" : "Maximum length of I/O bursts in seconds.",
20994 "format_description" : "seconds",
20995 "minimum" : 1,
20996 "optional" : 1,
20997 "type" : "integer"
20998 },
20999 "iops_rd" : {
21000 "description" : "Maximum read I/O in operations per second.",
21001 "format_description" : "iops",
21002 "optional" : 1,
21003 "type" : "integer"
21004 },
21005 "iops_rd_length" : {
21006 "alias" : "iops_rd_max_length"
21007 },
21008 "iops_rd_max" : {
21009 "description" : "Maximum unthrottled read I/O pool in operations per second.",
21010 "format_description" : "iops",
21011 "optional" : 1,
21012 "type" : "integer"
21013 },
21014 "iops_rd_max_length" : {
21015 "description" : "Maximum length of read I/O bursts in seconds.",
21016 "format_description" : "seconds",
21017 "minimum" : 1,
21018 "optional" : 1,
21019 "type" : "integer"
21020 },
21021 "iops_wr" : {
21022 "description" : "Maximum write I/O in operations per second.",
21023 "format_description" : "iops",
21024 "optional" : 1,
21025 "type" : "integer"
21026 },
21027 "iops_wr_length" : {
21028 "alias" : "iops_wr_max_length"
21029 },
21030 "iops_wr_max" : {
21031 "description" : "Maximum unthrottled write I/O pool in operations per second.",
21032 "format_description" : "iops",
21033 "optional" : 1,
21034 "type" : "integer"
21035 },
21036 "iops_wr_max_length" : {
21037 "description" : "Maximum length of write I/O bursts in seconds.",
21038 "format_description" : "seconds",
21039 "minimum" : 1,
21040 "optional" : 1,
21041 "type" : "integer"
21042 },
21043 "iothread" : {
21044 "description" : "Whether to use iothreads for this drive",
21045 "optional" : 1,
21046 "type" : "boolean"
21047 },
21048 "mbps" : {
21049 "description" : "Maximum r/w speed in megabytes per second.",
21050 "format_description" : "mbps",
21051 "optional" : 1,
21052 "type" : "number"
21053 },
21054 "mbps_max" : {
21055 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
21056 "format_description" : "mbps",
21057 "optional" : 1,
21058 "type" : "number"
21059 },
21060 "mbps_rd" : {
21061 "description" : "Maximum read speed in megabytes per second.",
21062 "format_description" : "mbps",
21063 "optional" : 1,
21064 "type" : "number"
21065 },
21066 "mbps_rd_max" : {
21067 "description" : "Maximum unthrottled read pool in megabytes per second.",
21068 "format_description" : "mbps",
21069 "optional" : 1,
21070 "type" : "number"
21071 },
21072 "mbps_wr" : {
21073 "description" : "Maximum write speed in megabytes per second.",
21074 "format_description" : "mbps",
21075 "optional" : 1,
21076 "type" : "number"
21077 },
21078 "mbps_wr_max" : {
21079 "description" : "Maximum unthrottled write pool in megabytes per second.",
21080 "format_description" : "mbps",
21081 "optional" : 1,
21082 "type" : "number"
21083 },
21084 "media" : {
21085 "default" : "disk",
21086 "description" : "The drive's media type.",
21087 "enum" : [
21088 "cdrom",
21089 "disk"
21090 ],
21091 "optional" : 1,
21092 "type" : "string"
21093 },
21094 "replicate" : {
21095 "default" : 1,
21096 "description" : "Whether the drive should considered for replication jobs.",
21097 "optional" : 1,
21098 "type" : "boolean"
21099 },
21100 "rerror" : {
21101 "description" : "Read error action.",
21102 "enum" : [
21103 "ignore",
21104 "report",
21105 "stop"
21106 ],
21107 "optional" : 1,
21108 "type" : "string"
21109 },
5370fa8c
TL
21110 "ro" : {
21111 "description" : "Whether the drive is read-only.",
21112 "optional" : 1,
21113 "type" : "boolean"
21114 },
4d47f125
TL
21115 "secs" : {
21116 "description" : "Force the drive's physical geometry to have a specific sector count.",
21117 "optional" : 1,
21118 "type" : "integer"
21119 },
21120 "serial" : {
21121 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
21122 "format" : "urlencoded",
21123 "format_description" : "serial",
21124 "maxLength" : 60,
21125 "optional" : 1,
21126 "type" : "string"
21127 },
21128 "shared" : {
21129 "default" : 0,
21130 "description" : "Mark this locally-managed volume as available on all nodes",
21131 "optional" : 1,
21132 "type" : "boolean",
21133 "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!"
21134 },
21135 "size" : {
21136 "description" : "Disk size. This is purely informational and has no effect.",
21137 "format" : "disk-size",
21138 "format_description" : "DiskSize",
21139 "optional" : 1,
21140 "type" : "string"
21141 },
21142 "snapshot" : {
21143 "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.",
21144 "optional" : 1,
21145 "type" : "boolean"
21146 },
21147 "trans" : {
21148 "description" : "Force disk geometry bios translation mode.",
21149 "enum" : [
21150 "none",
21151 "lba",
21152 "auto"
21153 ],
21154 "optional" : 1,
21155 "type" : "string"
21156 },
21157 "volume" : {
21158 "alias" : "file"
21159 },
21160 "werror" : {
21161 "description" : "Write error action.",
21162 "enum" : [
21163 "enospc",
21164 "ignore",
21165 "report",
21166 "stop"
21167 ],
21168 "optional" : 1,
21169 "type" : "string"
21170 }
21171 },
21172 "optional" : 1,
21173 "type" : "string",
7af2edf9 21174 "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
21175 },
21176 "vmgenid" : {
21177 "default" : "1 (autogenerated)",
21178 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
21179 "format_description" : "UUID",
21180 "optional" : 1,
21181 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
21182 "type" : "string",
4772952b 21183 "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
21184 },
21185 "vmid" : {
21186 "description" : "The (unique) ID of the VM.",
21187 "format" : "pve-vmid",
8dd66e12
TL
21188 "maximum" : 999999999,
21189 "minimum" : 100,
4d47f125 21190 "type" : "integer",
8dd66e12 21191 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21192 },
21193 "vmstatestorage" : {
21194 "description" : "Default storage for VM state volumes/files.",
21195 "format" : "pve-storage-id",
21196 "optional" : 1,
21197 "type" : "string",
21198 "typetext" : "<string>"
21199 },
21200 "watchdog" : {
21201 "description" : "Create a virtual hardware watchdog device.",
21202 "format" : "pve-qm-watchdog",
21203 "optional" : 1,
21204 "type" : "string",
21205 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
21206 "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)"
21207 }
21208 }
21209 },
21210 "permissions" : {
21211 "check" : [
21212 "perm",
21213 "/vms/{vmid}",
21214 [
21215 "VM.Config.Disk",
21216 "VM.Config.CDROM",
21217 "VM.Config.CPU",
21218 "VM.Config.Memory",
21219 "VM.Config.Network",
21220 "VM.Config.HWType",
ac70d7d1
TL
21221 "VM.Config.Options",
21222 "VM.Config.Cloudinit"
4d47f125
TL
21223 ],
21224 "any",
21225 1
21226 ]
21227 },
21228 "protected" : 1,
21229 "proxyto" : "node",
21230 "returns" : {
21231 "type" : "null"
21232 }
21233 }
21234 },
21235 "leaf" : 1,
21236 "path" : "/nodes/{node}/qemu/{vmid}/config",
21237 "text" : "config"
21238 },
21239 {
21240 "info" : {
21241 "GET" : {
e9cd3bd4
TL
21242 "allowtoken" : 1,
21243 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
21244 "method" : "GET",
21245 "name" : "vm_pending",
21246 "parameters" : {
21247 "additionalProperties" : 0,
21248 "properties" : {
21249 "node" : {
21250 "description" : "The cluster node name.",
21251 "format" : "pve-node",
21252 "type" : "string",
21253 "typetext" : "<string>"
21254 },
21255 "vmid" : {
21256 "description" : "The (unique) ID of the VM.",
21257 "format" : "pve-vmid",
8dd66e12
TL
21258 "maximum" : 999999999,
21259 "minimum" : 100,
4d47f125 21260 "type" : "integer",
8dd66e12 21261 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21262 }
21263 }
21264 },
21265 "permissions" : {
21266 "check" : [
21267 "perm",
21268 "/vms/{vmid}",
21269 [
21270 "VM.Audit"
21271 ]
21272 ]
21273 },
21274 "proxyto" : "node",
21275 "returns" : {
21276 "items" : {
21277 "properties" : {
21278 "delete" : {
21279 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
21280 "maximum" : 2,
21281 "minimum" : 0,
21282 "optional" : 1,
21283 "type" : "integer"
21284 },
21285 "key" : {
21286 "description" : "Configuration option name.",
21287 "type" : "string"
21288 },
21289 "pending" : {
21290 "description" : "Pending value.",
21291 "optional" : 1,
21292 "type" : "string"
21293 },
21294 "value" : {
21295 "description" : "Current value.",
21296 "optional" : 1,
21297 "type" : "string"
21298 }
21299 },
21300 "type" : "object"
21301 },
21302 "type" : "array"
21303 }
21304 }
21305 },
21306 "leaf" : 1,
21307 "path" : "/nodes/{node}/qemu/{vmid}/pending",
21308 "text" : "pending"
21309 },
4e7f60c2
TL
21310 {
21311 "children" : [
21312 {
21313 "info" : {
21314 "GET" : {
21315 "allowtoken" : 1,
21316 "description" : "Get automatically generated cloudinit config.",
21317 "method" : "GET",
21318 "name" : "cloudinit_generated_config_dump",
21319 "parameters" : {
21320 "additionalProperties" : 0,
21321 "properties" : {
21322 "node" : {
21323 "description" : "The cluster node name.",
21324 "format" : "pve-node",
21325 "type" : "string",
21326 "typetext" : "<string>"
21327 },
21328 "type" : {
21329 "description" : "Config type.",
21330 "enum" : [
21331 "user",
21332 "network",
21333 "meta"
21334 ],
21335 "type" : "string"
21336 },
21337 "vmid" : {
21338 "description" : "The (unique) ID of the VM.",
21339 "format" : "pve-vmid",
8dd66e12
TL
21340 "maximum" : 999999999,
21341 "minimum" : 100,
4e7f60c2 21342 "type" : "integer",
8dd66e12 21343 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
21344 }
21345 }
21346 },
21347 "permissions" : {
21348 "check" : [
21349 "perm",
21350 "/vms/{vmid}",
21351 [
21352 "VM.Audit"
21353 ]
21354 ]
21355 },
21356 "proxyto" : "node",
21357 "returns" : {
21358 "type" : "string"
21359 }
21360 }
21361 },
21362 "leaf" : 1,
21363 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
21364 "text" : "dump"
21365 }
21366 ],
21367 "info" : {
21368 "GET" : {
21369 "allowtoken" : 1,
21370 "description" : "Get the cloudinit configuration with both current and pending values.",
21371 "method" : "GET",
21372 "name" : "cloudinit_pending",
21373 "parameters" : {
21374 "additionalProperties" : 0,
21375 "properties" : {
21376 "node" : {
21377 "description" : "The cluster node name.",
21378 "format" : "pve-node",
21379 "type" : "string",
21380 "typetext" : "<string>"
21381 },
21382 "vmid" : {
21383 "description" : "The (unique) ID of the VM.",
21384 "format" : "pve-vmid",
8dd66e12
TL
21385 "maximum" : 999999999,
21386 "minimum" : 100,
4e7f60c2 21387 "type" : "integer",
8dd66e12 21388 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
21389 }
21390 }
21391 },
21392 "permissions" : {
21393 "check" : [
21394 "perm",
21395 "/vms/{vmid}",
21396 [
21397 "VM.Audit"
21398 ]
21399 ]
21400 },
21401 "proxyto" : "node",
21402 "returns" : {
21403 "items" : {
21404 "properties" : {
159464a9
TL
21405 "delete" : {
21406 "description" : "Indicates a pending delete request if present and not 0. ",
21407 "maximum" : 1,
21408 "minimum" : 0,
21409 "optional" : 1,
21410 "type" : "integer"
21411 },
4e7f60c2
TL
21412 "key" : {
21413 "description" : "Configuration option name.",
21414 "type" : "string"
21415 },
159464a9 21416 "pending" : {
81a3384d 21417 "description" : "The new pending value.",
4e7f60c2
TL
21418 "optional" : 1,
21419 "type" : "string"
21420 },
159464a9 21421 "value" : {
81a3384d 21422 "description" : "Value as it was used to generate the current cloudinit image.",
4e7f60c2
TL
21423 "optional" : 1,
21424 "type" : "string"
21425 }
21426 },
21427 "type" : "object"
21428 },
21429 "type" : "array"
21430 }
21431 },
21432 "PUT" : {
21433 "allowtoken" : 1,
21434 "description" : "Regenerate and change cloudinit config drive.",
21435 "method" : "PUT",
21436 "name" : "cloudinit_update",
21437 "parameters" : {
21438 "additionalProperties" : 0,
21439 "properties" : {
21440 "node" : {
21441 "description" : "The cluster node name.",
21442 "format" : "pve-node",
21443 "type" : "string",
21444 "typetext" : "<string>"
21445 },
21446 "vmid" : {
21447 "description" : "The (unique) ID of the VM.",
21448 "format" : "pve-vmid",
8dd66e12
TL
21449 "maximum" : 999999999,
21450 "minimum" : 100,
4e7f60c2 21451 "type" : "integer",
8dd66e12 21452 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
21453 }
21454 }
21455 },
21456 "permissions" : {
21457 "check" : [
21458 "perm",
21459 "/vms/{vmid}",
21460 "VM.Config.Cloudinit"
21461 ]
21462 },
21463 "protected" : 1,
21464 "proxyto" : "node",
21465 "returns" : {
21466 "type" : "null"
21467 }
21468 }
21469 },
21470 "leaf" : 0,
21471 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
21472 "text" : "cloudinit"
21473 },
4d47f125
TL
21474 {
21475 "info" : {
21476 "PUT" : {
e9cd3bd4 21477 "allowtoken" : 1,
4d47f125
TL
21478 "description" : "Unlink/delete disk images.",
21479 "method" : "PUT",
21480 "name" : "unlink",
21481 "parameters" : {
21482 "additionalProperties" : 0,
21483 "properties" : {
21484 "force" : {
21485 "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.",
21486 "optional" : 1,
21487 "type" : "boolean",
21488 "typetext" : "<boolean>"
21489 },
21490 "idlist" : {
21491 "description" : "A list of disk IDs you want to delete.",
21492 "format" : "pve-configid-list",
21493 "type" : "string",
21494 "typetext" : "<string>"
21495 },
21496 "node" : {
21497 "description" : "The cluster node name.",
21498 "format" : "pve-node",
21499 "type" : "string",
21500 "typetext" : "<string>"
21501 },
21502 "vmid" : {
21503 "description" : "The (unique) ID of the VM.",
21504 "format" : "pve-vmid",
8dd66e12
TL
21505 "maximum" : 999999999,
21506 "minimum" : 100,
4d47f125 21507 "type" : "integer",
8dd66e12 21508 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21509 }
21510 }
21511 },
21512 "permissions" : {
21513 "check" : [
21514 "perm",
21515 "/vms/{vmid}",
21516 [
21517 "VM.Config.Disk"
21518 ]
21519 ]
21520 },
21521 "protected" : 1,
21522 "proxyto" : "node",
21523 "returns" : {
21524 "type" : "null"
21525 }
21526 }
21527 },
21528 "leaf" : 1,
21529 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
21530 "text" : "unlink"
21531 },
21532 {
21533 "info" : {
21534 "POST" : {
e9cd3bd4 21535 "allowtoken" : 1,
4d47f125
TL
21536 "description" : "Creates a TCP VNC proxy connections.",
21537 "method" : "POST",
21538 "name" : "vncproxy",
21539 "parameters" : {
21540 "additionalProperties" : 0,
21541 "properties" : {
ac70d7d1
TL
21542 "generate-password" : {
21543 "default" : 0,
21544 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
21545 "optional" : 1,
21546 "type" : "boolean",
21547 "typetext" : "<boolean>"
21548 },
4d47f125
TL
21549 "node" : {
21550 "description" : "The cluster node name.",
21551 "format" : "pve-node",
21552 "type" : "string",
21553 "typetext" : "<string>"
21554 },
21555 "vmid" : {
21556 "description" : "The (unique) ID of the VM.",
21557 "format" : "pve-vmid",
8dd66e12
TL
21558 "maximum" : 999999999,
21559 "minimum" : 100,
4d47f125 21560 "type" : "integer",
8dd66e12 21561 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21562 },
21563 "websocket" : {
21564 "description" : "starts websockify instead of vncproxy",
21565 "optional" : 1,
21566 "type" : "boolean",
21567 "typetext" : "<boolean>"
21568 }
21569 }
21570 },
21571 "permissions" : {
21572 "check" : [
21573 "perm",
21574 "/vms/{vmid}",
21575 [
21576 "VM.Console"
21577 ]
21578 ]
21579 },
21580 "protected" : 1,
21581 "returns" : {
21582 "additionalProperties" : 0,
21583 "properties" : {
21584 "cert" : {
21585 "type" : "string"
21586 },
ac70d7d1
TL
21587 "password" : {
21588 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
21589 "optional" : 1,
21590 "type" : "string"
21591 },
4d47f125
TL
21592 "port" : {
21593 "type" : "integer"
21594 },
21595 "ticket" : {
21596 "type" : "string"
21597 },
21598 "upid" : {
21599 "type" : "string"
21600 },
21601 "user" : {
21602 "type" : "string"
21603 }
21604 }
21605 }
21606 }
21607 },
21608 "leaf" : 1,
21609 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
21610 "text" : "vncproxy"
21611 },
21612 {
21613 "info" : {
21614 "POST" : {
e9cd3bd4 21615 "allowtoken" : 1,
4d47f125
TL
21616 "description" : "Creates a TCP proxy connections.",
21617 "method" : "POST",
21618 "name" : "termproxy",
21619 "parameters" : {
21620 "additionalProperties" : 0,
21621 "properties" : {
21622 "node" : {
21623 "description" : "The cluster node name.",
21624 "format" : "pve-node",
21625 "type" : "string",
21626 "typetext" : "<string>"
21627 },
21628 "serial" : {
21629 "description" : "opens a serial terminal (defaults to display)",
21630 "enum" : [
21631 "serial0",
21632 "serial1",
21633 "serial2",
21634 "serial3"
21635 ],
21636 "optional" : 1,
21637 "type" : "string"
21638 },
21639 "vmid" : {
21640 "description" : "The (unique) ID of the VM.",
21641 "format" : "pve-vmid",
8dd66e12
TL
21642 "maximum" : 999999999,
21643 "minimum" : 100,
4d47f125 21644 "type" : "integer",
8dd66e12 21645 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21646 }
21647 }
21648 },
21649 "permissions" : {
21650 "check" : [
21651 "perm",
21652 "/vms/{vmid}",
21653 [
21654 "VM.Console"
21655 ]
21656 ]
21657 },
21658 "protected" : 1,
21659 "returns" : {
21660 "additionalProperties" : 0,
21661 "properties" : {
21662 "port" : {
21663 "type" : "integer"
21664 },
21665 "ticket" : {
21666 "type" : "string"
21667 },
21668 "upid" : {
21669 "type" : "string"
21670 },
21671 "user" : {
21672 "type" : "string"
21673 }
21674 }
21675 }
21676 }
21677 },
21678 "leaf" : 1,
21679 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
21680 "text" : "termproxy"
21681 },
21682 {
21683 "info" : {
21684 "GET" : {
e9cd3bd4 21685 "allowtoken" : 1,
4d47f125
TL
21686 "description" : "Opens a weksocket for VNC traffic.",
21687 "method" : "GET",
21688 "name" : "vncwebsocket",
21689 "parameters" : {
21690 "additionalProperties" : 0,
21691 "properties" : {
21692 "node" : {
21693 "description" : "The cluster node name.",
21694 "format" : "pve-node",
21695 "type" : "string",
21696 "typetext" : "<string>"
21697 },
21698 "port" : {
21699 "description" : "Port number returned by previous vncproxy call.",
21700 "maximum" : 5999,
21701 "minimum" : 5900,
21702 "type" : "integer",
21703 "typetext" : "<integer> (5900 - 5999)"
21704 },
21705 "vmid" : {
21706 "description" : "The (unique) ID of the VM.",
21707 "format" : "pve-vmid",
8dd66e12
TL
21708 "maximum" : 999999999,
21709 "minimum" : 100,
4d47f125 21710 "type" : "integer",
8dd66e12 21711 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21712 },
21713 "vncticket" : {
21714 "description" : "Ticket from previous call to vncproxy.",
21715 "maxLength" : 512,
21716 "type" : "string",
21717 "typetext" : "<string>"
21718 }
21719 }
21720 },
21721 "permissions" : {
21722 "check" : [
21723 "perm",
21724 "/vms/{vmid}",
21725 [
21726 "VM.Console"
21727 ]
21728 ],
21729 "description" : "You also need to pass a valid ticket (vncticket)."
21730 },
21731 "returns" : {
21732 "properties" : {
21733 "port" : {
21734 "type" : "string"
21735 }
21736 },
21737 "type" : "object"
21738 }
21739 }
21740 },
21741 "leaf" : 1,
21742 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
21743 "text" : "vncwebsocket"
21744 },
21745 {
21746 "info" : {
21747 "POST" : {
e9cd3bd4 21748 "allowtoken" : 1,
4d47f125
TL
21749 "description" : "Returns a SPICE configuration to connect to the VM.",
21750 "method" : "POST",
21751 "name" : "spiceproxy",
21752 "parameters" : {
21753 "additionalProperties" : 0,
21754 "properties" : {
21755 "node" : {
21756 "description" : "The cluster node name.",
21757 "format" : "pve-node",
21758 "type" : "string",
21759 "typetext" : "<string>"
21760 },
21761 "proxy" : {
21762 "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).",
21763 "format" : "address",
21764 "optional" : 1,
21765 "type" : "string",
21766 "typetext" : "<string>"
21767 },
21768 "vmid" : {
21769 "description" : "The (unique) ID of the VM.",
21770 "format" : "pve-vmid",
8dd66e12
TL
21771 "maximum" : 999999999,
21772 "minimum" : 100,
4d47f125 21773 "type" : "integer",
8dd66e12 21774 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21775 }
21776 }
21777 },
21778 "permissions" : {
21779 "check" : [
21780 "perm",
21781 "/vms/{vmid}",
21782 [
21783 "VM.Console"
21784 ]
21785 ]
21786 },
21787 "protected" : 1,
21788 "proxyto" : "node",
21789 "returns" : {
21790 "additionalProperties" : 1,
21791 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
21792 "properties" : {
21793 "host" : {
21794 "type" : "string"
21795 },
21796 "password" : {
21797 "type" : "string"
21798 },
21799 "proxy" : {
21800 "type" : "string"
21801 },
21802 "tls-port" : {
21803 "type" : "integer"
21804 },
21805 "type" : {
21806 "type" : "string"
21807 }
21808 }
21809 }
21810 }
21811 },
21812 "leaf" : 1,
21813 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
21814 "text" : "spiceproxy"
21815 },
21816 {
21817 "children" : [
21818 {
21819 "info" : {
21820 "GET" : {
e9cd3bd4 21821 "allowtoken" : 1,
4d47f125
TL
21822 "description" : "Get virtual machine status.",
21823 "method" : "GET",
21824 "name" : "vm_status",
21825 "parameters" : {
21826 "additionalProperties" : 0,
21827 "properties" : {
21828 "node" : {
21829 "description" : "The cluster node name.",
21830 "format" : "pve-node",
21831 "type" : "string",
21832 "typetext" : "<string>"
21833 },
21834 "vmid" : {
21835 "description" : "The (unique) ID of the VM.",
21836 "format" : "pve-vmid",
8dd66e12
TL
21837 "maximum" : 999999999,
21838 "minimum" : 100,
4d47f125 21839 "type" : "integer",
8dd66e12 21840 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21841 }
21842 }
21843 },
21844 "permissions" : {
21845 "check" : [
21846 "perm",
21847 "/vms/{vmid}",
21848 [
21849 "VM.Audit"
21850 ]
21851 ]
21852 },
21853 "protected" : 1,
21854 "proxyto" : "node",
21855 "returns" : {
21856 "properties" : {
21857 "agent" : {
9d2e98ed 21858 "description" : "QEMU Guest Agent is enabled in config.",
4d47f125
TL
21859 "optional" : 1,
21860 "type" : "boolean"
21861 },
21862 "cpus" : {
21863 "description" : "Maximum usable CPUs.",
21864 "optional" : 1,
21865 "type" : "number"
21866 },
21867 "ha" : {
21868 "description" : "HA manager service status.",
21869 "type" : "object"
21870 },
95895385
TL
21871 "lock" : {
21872 "description" : "The current config lock, if any.",
21873 "optional" : 1,
21874 "type" : "string"
21875 },
4d47f125
TL
21876 "maxdisk" : {
21877 "description" : "Root disk size in bytes.",
21878 "optional" : 1,
21879 "renderer" : "bytes",
21880 "type" : "integer"
21881 },
21882 "maxmem" : {
21883 "description" : "Maximum memory in bytes.",
21884 "optional" : 1,
21885 "renderer" : "bytes",
21886 "type" : "integer"
21887 },
21888 "name" : {
21889 "description" : "VM name.",
21890 "optional" : 1,
21891 "type" : "string"
21892 },
21893 "pid" : {
21894 "description" : "PID of running qemu process.",
21895 "optional" : 1,
21896 "type" : "integer"
21897 },
21898 "qmpstatus" : {
499c9b7f 21899 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
21900 "optional" : 1,
21901 "type" : "string"
21902 },
d2656385
TL
21903 "running-machine" : {
21904 "description" : "The currently running machine type (if running).",
21905 "optional" : 1,
21906 "type" : "string"
21907 },
21908 "running-qemu" : {
21909 "description" : "The currently running QEMU version (if running).",
21910 "optional" : 1,
21911 "type" : "string"
21912 },
4d47f125 21913 "spice" : {
9d2e98ed 21914 "description" : "QEMU VGA configuration supports spice.",
4d47f125
TL
21915 "optional" : 1,
21916 "type" : "boolean"
21917 },
21918 "status" : {
9d2e98ed 21919 "description" : "QEMU process status.",
4d47f125
TL
21920 "enum" : [
21921 "stopped",
21922 "running"
21923 ],
21924 "type" : "string"
21925 },
5c1699e5
TL
21926 "tags" : {
21927 "description" : "The current configured tags, if any",
21928 "optional" : 1,
21929 "type" : "string"
21930 },
4d47f125
TL
21931 "uptime" : {
21932 "description" : "Uptime.",
21933 "optional" : 1,
21934 "renderer" : "duration",
21935 "type" : "integer"
21936 },
21937 "vmid" : {
21938 "description" : "The (unique) ID of the VM.",
21939 "format" : "pve-vmid",
8dd66e12
TL
21940 "maximum" : 999999999,
21941 "minimum" : 100,
4d47f125
TL
21942 "type" : "integer"
21943 }
21944 },
21945 "type" : "object"
21946 }
21947 }
21948 },
21949 "leaf" : 1,
21950 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
21951 "text" : "current"
21952 },
21953 {
21954 "info" : {
21955 "POST" : {
e9cd3bd4 21956 "allowtoken" : 1,
4d47f125
TL
21957 "description" : "Start virtual machine.",
21958 "method" : "POST",
21959 "name" : "vm_start",
21960 "parameters" : {
21961 "additionalProperties" : 0,
21962 "properties" : {
c5aa7e14
TL
21963 "force-cpu" : {
21964 "description" : "Override QEMU's -cpu argument with the given string.",
21965 "optional" : 1,
21966 "type" : "string",
21967 "typetext" : "<string>"
21968 },
4d47f125 21969 "machine" : {
9d2e98ed 21970 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
21971 "maxLength" : 40,
21972 "optional" : 1,
5c1699e5 21973 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
21974 "type" : "string"
21975 },
21976 "migratedfrom" : {
21977 "description" : "The cluster node name.",
21978 "format" : "pve-node",
21979 "optional" : 1,
21980 "type" : "string",
21981 "typetext" : "<string>"
21982 },
21983 "migration_network" : {
21984 "description" : "CIDR of the (sub) network that is used for migration.",
21985 "format" : "CIDR",
21986 "optional" : 1,
21987 "type" : "string",
21988 "typetext" : "<string>"
21989 },
21990 "migration_type" : {
21991 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
21992 "enum" : [
21993 "secure",
21994 "insecure"
21995 ],
21996 "optional" : 1,
21997 "type" : "string"
21998 },
21999 "node" : {
22000 "description" : "The cluster node name.",
22001 "format" : "pve-node",
22002 "type" : "string",
22003 "typetext" : "<string>"
22004 },
22005 "skiplock" : {
22006 "description" : "Ignore locks - only root is allowed to use this option.",
22007 "optional" : 1,
22008 "type" : "boolean",
22009 "typetext" : "<boolean>"
22010 },
22011 "stateuri" : {
22012 "description" : "Some command save/restore state from this location.",
22013 "maxLength" : 128,
22014 "optional" : 1,
22015 "type" : "string",
22016 "typetext" : "<string>"
22017 },
22018 "targetstorage" : {
c5aa7e14 22019 "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 22020 "format" : "storage-pair-list",
4d47f125
TL
22021 "optional" : 1,
22022 "type" : "string",
22023 "typetext" : "<string>"
22024 },
e9cd3bd4
TL
22025 "timeout" : {
22026 "default" : "max(30, vm memory in GiB)",
22027 "description" : "Wait maximal timeout seconds.",
22028 "minimum" : 0,
22029 "optional" : 1,
22030 "type" : "integer",
22031 "typetext" : "<integer> (0 - N)"
22032 },
4d47f125
TL
22033 "vmid" : {
22034 "description" : "The (unique) ID of the VM.",
22035 "format" : "pve-vmid",
8dd66e12
TL
22036 "maximum" : 999999999,
22037 "minimum" : 100,
4d47f125 22038 "type" : "integer",
8dd66e12 22039 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22040 }
22041 }
22042 },
22043 "permissions" : {
22044 "check" : [
22045 "perm",
22046 "/vms/{vmid}",
22047 [
22048 "VM.PowerMgmt"
22049 ]
22050 ]
22051 },
22052 "protected" : 1,
22053 "proxyto" : "node",
22054 "returns" : {
22055 "type" : "string"
22056 }
22057 }
22058 },
22059 "leaf" : 1,
22060 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
22061 "text" : "start"
22062 },
22063 {
22064 "info" : {
22065 "POST" : {
e9cd3bd4 22066 "allowtoken" : 1,
4d47f125
TL
22067 "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",
22068 "method" : "POST",
22069 "name" : "vm_stop",
22070 "parameters" : {
22071 "additionalProperties" : 0,
22072 "properties" : {
22073 "keepActive" : {
22074 "default" : 0,
22075 "description" : "Do not deactivate storage volumes.",
22076 "optional" : 1,
22077 "type" : "boolean",
22078 "typetext" : "<boolean>"
22079 },
22080 "migratedfrom" : {
22081 "description" : "The cluster node name.",
22082 "format" : "pve-node",
22083 "optional" : 1,
22084 "type" : "string",
22085 "typetext" : "<string>"
22086 },
22087 "node" : {
22088 "description" : "The cluster node name.",
22089 "format" : "pve-node",
22090 "type" : "string",
22091 "typetext" : "<string>"
22092 },
22093 "skiplock" : {
22094 "description" : "Ignore locks - only root is allowed to use this option.",
22095 "optional" : 1,
22096 "type" : "boolean",
22097 "typetext" : "<boolean>"
22098 },
22099 "timeout" : {
22100 "description" : "Wait maximal timeout seconds.",
22101 "minimum" : 0,
22102 "optional" : 1,
22103 "type" : "integer",
22104 "typetext" : "<integer> (0 - N)"
22105 },
22106 "vmid" : {
22107 "description" : "The (unique) ID of the VM.",
22108 "format" : "pve-vmid",
8dd66e12
TL
22109 "maximum" : 999999999,
22110 "minimum" : 100,
4d47f125 22111 "type" : "integer",
8dd66e12 22112 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22113 }
22114 }
22115 },
22116 "permissions" : {
22117 "check" : [
22118 "perm",
22119 "/vms/{vmid}",
22120 [
22121 "VM.PowerMgmt"
22122 ]
22123 ]
22124 },
22125 "protected" : 1,
22126 "proxyto" : "node",
22127 "returns" : {
22128 "type" : "string"
22129 }
22130 }
22131 },
22132 "leaf" : 1,
22133 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
22134 "text" : "stop"
22135 },
22136 {
22137 "info" : {
22138 "POST" : {
e9cd3bd4 22139 "allowtoken" : 1,
4d47f125
TL
22140 "description" : "Reset virtual machine.",
22141 "method" : "POST",
22142 "name" : "vm_reset",
22143 "parameters" : {
22144 "additionalProperties" : 0,
22145 "properties" : {
22146 "node" : {
22147 "description" : "The cluster node name.",
22148 "format" : "pve-node",
22149 "type" : "string",
22150 "typetext" : "<string>"
22151 },
22152 "skiplock" : {
22153 "description" : "Ignore locks - only root is allowed to use this option.",
22154 "optional" : 1,
22155 "type" : "boolean",
22156 "typetext" : "<boolean>"
22157 },
22158 "vmid" : {
22159 "description" : "The (unique) ID of the VM.",
22160 "format" : "pve-vmid",
8dd66e12
TL
22161 "maximum" : 999999999,
22162 "minimum" : 100,
4d47f125 22163 "type" : "integer",
8dd66e12 22164 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22165 }
22166 }
22167 },
22168 "permissions" : {
22169 "check" : [
22170 "perm",
22171 "/vms/{vmid}",
22172 [
22173 "VM.PowerMgmt"
22174 ]
22175 ]
22176 },
22177 "protected" : 1,
22178 "proxyto" : "node",
22179 "returns" : {
22180 "type" : "string"
22181 }
22182 }
22183 },
22184 "leaf" : 1,
22185 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
22186 "text" : "reset"
22187 },
22188 {
22189 "info" : {
22190 "POST" : {
e9cd3bd4 22191 "allowtoken" : 1,
4d47f125
TL
22192 "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.",
22193 "method" : "POST",
22194 "name" : "vm_shutdown",
22195 "parameters" : {
22196 "additionalProperties" : 0,
22197 "properties" : {
22198 "forceStop" : {
22199 "default" : 0,
22200 "description" : "Make sure the VM stops.",
22201 "optional" : 1,
22202 "type" : "boolean",
22203 "typetext" : "<boolean>"
22204 },
22205 "keepActive" : {
22206 "default" : 0,
22207 "description" : "Do not deactivate storage volumes.",
22208 "optional" : 1,
22209 "type" : "boolean",
22210 "typetext" : "<boolean>"
22211 },
22212 "node" : {
22213 "description" : "The cluster node name.",
22214 "format" : "pve-node",
22215 "type" : "string",
22216 "typetext" : "<string>"
22217 },
22218 "skiplock" : {
22219 "description" : "Ignore locks - only root is allowed to use this option.",
22220 "optional" : 1,
22221 "type" : "boolean",
22222 "typetext" : "<boolean>"
22223 },
22224 "timeout" : {
22225 "description" : "Wait maximal timeout seconds.",
22226 "minimum" : 0,
22227 "optional" : 1,
22228 "type" : "integer",
22229 "typetext" : "<integer> (0 - N)"
22230 },
22231 "vmid" : {
22232 "description" : "The (unique) ID of the VM.",
22233 "format" : "pve-vmid",
8dd66e12
TL
22234 "maximum" : 999999999,
22235 "minimum" : 100,
4d47f125 22236 "type" : "integer",
8dd66e12 22237 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22238 }
22239 }
22240 },
22241 "permissions" : {
22242 "check" : [
22243 "perm",
22244 "/vms/{vmid}",
22245 [
22246 "VM.PowerMgmt"
22247 ]
22248 ]
22249 },
22250 "protected" : 1,
22251 "proxyto" : "node",
22252 "returns" : {
22253 "type" : "string"
22254 }
22255 }
22256 },
22257 "leaf" : 1,
22258 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
22259 "text" : "shutdown"
22260 },
1c532546
TL
22261 {
22262 "info" : {
22263 "POST" : {
e9cd3bd4 22264 "allowtoken" : 1,
1c532546
TL
22265 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
22266 "method" : "POST",
22267 "name" : "vm_reboot",
22268 "parameters" : {
22269 "additionalProperties" : 0,
22270 "properties" : {
22271 "node" : {
22272 "description" : "The cluster node name.",
22273 "format" : "pve-node",
22274 "type" : "string",
22275 "typetext" : "<string>"
22276 },
22277 "timeout" : {
22278 "description" : "Wait maximal timeout seconds for the shutdown.",
22279 "minimum" : 0,
22280 "optional" : 1,
22281 "type" : "integer",
22282 "typetext" : "<integer> (0 - N)"
22283 },
22284 "vmid" : {
22285 "description" : "The (unique) ID of the VM.",
22286 "format" : "pve-vmid",
8dd66e12
TL
22287 "maximum" : 999999999,
22288 "minimum" : 100,
1c532546 22289 "type" : "integer",
8dd66e12 22290 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
22291 }
22292 }
22293 },
22294 "permissions" : {
22295 "check" : [
22296 "perm",
22297 "/vms/{vmid}",
22298 [
22299 "VM.PowerMgmt"
22300 ]
22301 ]
22302 },
22303 "protected" : 1,
22304 "proxyto" : "node",
22305 "returns" : {
22306 "type" : "string"
22307 }
22308 }
22309 },
22310 "leaf" : 1,
22311 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
22312 "text" : "reboot"
22313 },
4d47f125
TL
22314 {
22315 "info" : {
22316 "POST" : {
e9cd3bd4 22317 "allowtoken" : 1,
4d47f125
TL
22318 "description" : "Suspend virtual machine.",
22319 "method" : "POST",
22320 "name" : "vm_suspend",
22321 "parameters" : {
22322 "additionalProperties" : 0,
22323 "properties" : {
22324 "node" : {
22325 "description" : "The cluster node name.",
22326 "format" : "pve-node",
22327 "type" : "string",
22328 "typetext" : "<string>"
22329 },
22330 "skiplock" : {
22331 "description" : "Ignore locks - only root is allowed to use this option.",
22332 "optional" : 1,
22333 "type" : "boolean",
22334 "typetext" : "<boolean>"
22335 },
95895385
TL
22336 "statestorage" : {
22337 "description" : "The storage for the VM state",
22338 "format" : "pve-storage-id",
22339 "optional" : 1,
22340 "requires" : "todisk",
22341 "type" : "string",
22342 "typetext" : "<string>"
22343 },
22344 "todisk" : {
22345 "default" : 0,
22346 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
22347 "optional" : 1,
22348 "type" : "boolean",
22349 "typetext" : "<boolean>"
22350 },
4d47f125
TL
22351 "vmid" : {
22352 "description" : "The (unique) ID of the VM.",
22353 "format" : "pve-vmid",
8dd66e12
TL
22354 "maximum" : 999999999,
22355 "minimum" : 100,
4d47f125 22356 "type" : "integer",
8dd66e12 22357 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22358 }
22359 }
22360 },
22361 "permissions" : {
22362 "check" : [
22363 "perm",
22364 "/vms/{vmid}",
22365 [
22366 "VM.PowerMgmt"
22367 ]
e9cd3bd4
TL
22368 ],
22369 "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
22370 },
22371 "protected" : 1,
22372 "proxyto" : "node",
22373 "returns" : {
22374 "type" : "string"
22375 }
22376 }
22377 },
22378 "leaf" : 1,
22379 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
22380 "text" : "suspend"
22381 },
22382 {
22383 "info" : {
22384 "POST" : {
e9cd3bd4 22385 "allowtoken" : 1,
4d47f125
TL
22386 "description" : "Resume virtual machine.",
22387 "method" : "POST",
22388 "name" : "vm_resume",
22389 "parameters" : {
22390 "additionalProperties" : 0,
22391 "properties" : {
22392 "nocheck" : {
22393 "optional" : 1,
22394 "type" : "boolean",
22395 "typetext" : "<boolean>"
22396 },
22397 "node" : {
22398 "description" : "The cluster node name.",
22399 "format" : "pve-node",
22400 "type" : "string",
22401 "typetext" : "<string>"
22402 },
22403 "skiplock" : {
22404 "description" : "Ignore locks - only root is allowed to use this option.",
22405 "optional" : 1,
22406 "type" : "boolean",
22407 "typetext" : "<boolean>"
22408 },
22409 "vmid" : {
22410 "description" : "The (unique) ID of the VM.",
22411 "format" : "pve-vmid",
8dd66e12
TL
22412 "maximum" : 999999999,
22413 "minimum" : 100,
4d47f125 22414 "type" : "integer",
8dd66e12 22415 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22416 }
22417 }
22418 },
22419 "permissions" : {
22420 "check" : [
22421 "perm",
22422 "/vms/{vmid}",
22423 [
22424 "VM.PowerMgmt"
22425 ]
22426 ]
22427 },
22428 "protected" : 1,
22429 "proxyto" : "node",
22430 "returns" : {
22431 "type" : "string"
22432 }
22433 }
22434 },
22435 "leaf" : 1,
22436 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
22437 "text" : "resume"
22438 }
22439 ],
22440 "info" : {
22441 "GET" : {
e9cd3bd4 22442 "allowtoken" : 1,
4d47f125
TL
22443 "description" : "Directory index",
22444 "method" : "GET",
22445 "name" : "vmcmdidx",
22446 "parameters" : {
22447 "additionalProperties" : 0,
22448 "properties" : {
22449 "node" : {
22450 "description" : "The cluster node name.",
22451 "format" : "pve-node",
22452 "type" : "string",
22453 "typetext" : "<string>"
22454 },
22455 "vmid" : {
22456 "description" : "The (unique) ID of the VM.",
22457 "format" : "pve-vmid",
8dd66e12
TL
22458 "maximum" : 999999999,
22459 "minimum" : 100,
4d47f125 22460 "type" : "integer",
8dd66e12 22461 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22462 }
22463 }
22464 },
22465 "permissions" : {
22466 "user" : "all"
22467 },
22468 "proxyto" : "node",
22469 "returns" : {
22470 "items" : {
22471 "properties" : {
22472 "subdir" : {
22473 "type" : "string"
22474 }
22475 },
22476 "type" : "object"
22477 },
22478 "links" : [
22479 {
22480 "href" : "{subdir}",
22481 "rel" : "child"
22482 }
22483 ],
22484 "type" : "array"
22485 }
22486 }
22487 },
22488 "leaf" : 0,
22489 "path" : "/nodes/{node}/qemu/{vmid}/status",
22490 "text" : "status"
22491 },
22492 {
22493 "info" : {
22494 "PUT" : {
e9cd3bd4 22495 "allowtoken" : 1,
4d47f125
TL
22496 "description" : "Send key event to virtual machine.",
22497 "method" : "PUT",
22498 "name" : "vm_sendkey",
22499 "parameters" : {
22500 "additionalProperties" : 0,
22501 "properties" : {
22502 "key" : {
22503 "description" : "The key (qemu monitor encoding).",
22504 "type" : "string",
22505 "typetext" : "<string>"
22506 },
22507 "node" : {
22508 "description" : "The cluster node name.",
22509 "format" : "pve-node",
22510 "type" : "string",
22511 "typetext" : "<string>"
22512 },
22513 "skiplock" : {
22514 "description" : "Ignore locks - only root is allowed to use this option.",
22515 "optional" : 1,
22516 "type" : "boolean",
22517 "typetext" : "<boolean>"
22518 },
22519 "vmid" : {
22520 "description" : "The (unique) ID of the VM.",
22521 "format" : "pve-vmid",
8dd66e12
TL
22522 "maximum" : 999999999,
22523 "minimum" : 100,
4d47f125 22524 "type" : "integer",
8dd66e12 22525 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22526 }
22527 }
22528 },
22529 "permissions" : {
22530 "check" : [
22531 "perm",
22532 "/vms/{vmid}",
22533 [
22534 "VM.Console"
22535 ]
22536 ]
22537 },
22538 "protected" : 1,
22539 "proxyto" : "node",
22540 "returns" : {
22541 "type" : "null"
22542 }
22543 }
22544 },
22545 "leaf" : 1,
22546 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
22547 "text" : "sendkey"
22548 },
22549 {
22550 "info" : {
22551 "GET" : {
e9cd3bd4 22552 "allowtoken" : 1,
4d47f125
TL
22553 "description" : "Check if feature for virtual machine is available.",
22554 "method" : "GET",
22555 "name" : "vm_feature",
22556 "parameters" : {
22557 "additionalProperties" : 0,
22558 "properties" : {
22559 "feature" : {
22560 "description" : "Feature to check.",
22561 "enum" : [
22562 "snapshot",
22563 "clone",
22564 "copy"
22565 ],
22566 "type" : "string"
22567 },
22568 "node" : {
22569 "description" : "The cluster node name.",
22570 "format" : "pve-node",
22571 "type" : "string",
22572 "typetext" : "<string>"
22573 },
22574 "snapname" : {
22575 "description" : "The name of the snapshot.",
22576 "format" : "pve-configid",
22577 "maxLength" : 40,
22578 "optional" : 1,
22579 "type" : "string",
22580 "typetext" : "<string>"
22581 },
22582 "vmid" : {
22583 "description" : "The (unique) ID of the VM.",
22584 "format" : "pve-vmid",
8dd66e12
TL
22585 "maximum" : 999999999,
22586 "minimum" : 100,
4d47f125 22587 "type" : "integer",
8dd66e12 22588 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22589 }
22590 }
22591 },
22592 "permissions" : {
22593 "check" : [
22594 "perm",
22595 "/vms/{vmid}",
22596 [
22597 "VM.Audit"
22598 ]
22599 ]
22600 },
22601 "protected" : 1,
22602 "proxyto" : "node",
22603 "returns" : {
22604 "properties" : {
22605 "hasFeature" : {
22606 "type" : "boolean"
22607 },
22608 "nodes" : {
22609 "items" : {
22610 "type" : "string"
22611 },
22612 "type" : "array"
22613 }
22614 },
22615 "type" : "object"
22616 }
22617 }
22618 },
22619 "leaf" : 1,
22620 "path" : "/nodes/{node}/qemu/{vmid}/feature",
22621 "text" : "feature"
22622 },
22623 {
22624 "info" : {
22625 "POST" : {
e9cd3bd4 22626 "allowtoken" : 1,
4d47f125
TL
22627 "description" : "Create a copy of virtual machine/template.",
22628 "method" : "POST",
22629 "name" : "clone_vm",
22630 "parameters" : {
22631 "additionalProperties" : 0,
22632 "properties" : {
95895385
TL
22633 "bwlimit" : {
22634 "default" : "clone limit from datacenter or storage config",
22635 "description" : "Override I/O bandwidth limit (in KiB/s).",
22636 "minimum" : "0",
22637 "optional" : 1,
22638 "type" : "integer",
22639 "typetext" : "<integer> (0 - N)"
22640 },
4d47f125
TL
22641 "description" : {
22642 "description" : "Description for the new VM.",
22643 "optional" : 1,
22644 "type" : "string",
22645 "typetext" : "<string>"
22646 },
22647 "format" : {
22648 "description" : "Target format for file storage. Only valid for full clone.",
22649 "enum" : [
22650 "raw",
22651 "qcow2",
22652 "vmdk"
22653 ],
22654 "optional" : 1,
22655 "type" : "string"
22656 },
22657 "full" : {
22658 "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.",
22659 "optional" : 1,
22660 "type" : "boolean",
22661 "typetext" : "<boolean>"
22662 },
22663 "name" : {
22664 "description" : "Set a name for the new VM.",
22665 "format" : "dns-name",
22666 "optional" : 1,
22667 "type" : "string",
22668 "typetext" : "<string>"
22669 },
22670 "newid" : {
22671 "description" : "VMID for the clone.",
22672 "format" : "pve-vmid",
8dd66e12
TL
22673 "maximum" : 999999999,
22674 "minimum" : 100,
4d47f125 22675 "type" : "integer",
8dd66e12 22676 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22677 },
22678 "node" : {
22679 "description" : "The cluster node name.",
22680 "format" : "pve-node",
22681 "type" : "string",
22682 "typetext" : "<string>"
22683 },
22684 "pool" : {
22685 "description" : "Add the new VM to the specified pool.",
22686 "format" : "pve-poolid",
22687 "optional" : 1,
22688 "type" : "string",
22689 "typetext" : "<string>"
22690 },
22691 "snapname" : {
22692 "description" : "The name of the snapshot.",
22693 "format" : "pve-configid",
22694 "maxLength" : 40,
22695 "optional" : 1,
22696 "type" : "string",
22697 "typetext" : "<string>"
22698 },
22699 "storage" : {
22700 "description" : "Target storage for full clone.",
22701 "format" : "pve-storage-id",
22702 "optional" : 1,
22703 "type" : "string",
22704 "typetext" : "<string>"
22705 },
22706 "target" : {
22707 "description" : "Target node. Only allowed if the original VM is on shared storage.",
22708 "format" : "pve-node",
22709 "optional" : 1,
22710 "type" : "string",
22711 "typetext" : "<string>"
22712 },
22713 "vmid" : {
22714 "description" : "The (unique) ID of the VM.",
22715 "format" : "pve-vmid",
8dd66e12
TL
22716 "maximum" : 999999999,
22717 "minimum" : 100,
4d47f125 22718 "type" : "integer",
8dd66e12 22719 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22720 }
22721 }
22722 },
22723 "permissions" : {
22724 "check" : [
22725 "and",
22726 [
22727 "perm",
22728 "/vms/{vmid}",
22729 [
22730 "VM.Clone"
22731 ]
22732 ],
22733 [
22734 "or",
22735 [
22736 "perm",
22737 "/vms/{newid}",
22738 [
22739 "VM.Allocate"
22740 ]
22741 ],
22742 [
22743 "perm",
22744 "/pool/{pool}",
22745 [
22746 "VM.Allocate"
22747 ],
22748 "require_param",
22749 "pool"
22750 ]
22751 ]
22752 ],
159464a9 22753 "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
22754 },
22755 "protected" : 1,
22756 "proxyto" : "node",
22757 "returns" : {
22758 "type" : "string"
22759 }
22760 }
22761 },
22762 "leaf" : 1,
22763 "path" : "/nodes/{node}/qemu/{vmid}/clone",
22764 "text" : "clone"
22765 },
22766 {
22767 "info" : {
22768 "POST" : {
e9cd3bd4 22769 "allowtoken" : 1,
5370fa8c 22770 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
22771 "method" : "POST",
22772 "name" : "move_vm_disk",
22773 "parameters" : {
22774 "additionalProperties" : 0,
22775 "properties" : {
95895385
TL
22776 "bwlimit" : {
22777 "default" : "move limit from datacenter or storage config",
22778 "description" : "Override I/O bandwidth limit (in KiB/s).",
22779 "minimum" : "0",
22780 "optional" : 1,
22781 "type" : "integer",
22782 "typetext" : "<integer> (0 - N)"
22783 },
4d47f125
TL
22784 "delete" : {
22785 "default" : 0,
22786 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
22787 "optional" : 1,
22788 "type" : "boolean",
22789 "typetext" : "<boolean>"
22790 },
22791 "digest" : {
5370fa8c 22792 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
22793 "maxLength" : 40,
22794 "optional" : 1,
22795 "type" : "string",
22796 "typetext" : "<string>"
22797 },
22798 "disk" : {
22799 "description" : "The disk you want to move.",
22800 "enum" : [
22801 "ide0",
22802 "ide1",
22803 "ide2",
22804 "ide3",
22805 "scsi0",
22806 "scsi1",
22807 "scsi2",
22808 "scsi3",
22809 "scsi4",
22810 "scsi5",
22811 "scsi6",
22812 "scsi7",
22813 "scsi8",
22814 "scsi9",
22815 "scsi10",
22816 "scsi11",
22817 "scsi12",
22818 "scsi13",
e9cd3bd4
TL
22819 "scsi14",
22820 "scsi15",
22821 "scsi16",
22822 "scsi17",
22823 "scsi18",
22824 "scsi19",
22825 "scsi20",
22826 "scsi21",
22827 "scsi22",
22828 "scsi23",
22829 "scsi24",
22830 "scsi25",
22831 "scsi26",
22832 "scsi27",
22833 "scsi28",
22834 "scsi29",
22835 "scsi30",
4d47f125
TL
22836 "virtio0",
22837 "virtio1",
22838 "virtio2",
22839 "virtio3",
22840 "virtio4",
22841 "virtio5",
22842 "virtio6",
22843 "virtio7",
22844 "virtio8",
22845 "virtio9",
22846 "virtio10",
22847 "virtio11",
22848 "virtio12",
22849 "virtio13",
22850 "virtio14",
22851 "virtio15",
22852 "sata0",
22853 "sata1",
22854 "sata2",
22855 "sata3",
22856 "sata4",
22857 "sata5",
5370fa8c
TL
22858 "efidisk0",
22859 "tpmstate0",
22860 "unused0",
22861 "unused1",
22862 "unused2",
22863 "unused3",
22864 "unused4",
22865 "unused5",
22866 "unused6",
22867 "unused7",
22868 "unused8",
22869 "unused9",
22870 "unused10",
22871 "unused11",
22872 "unused12",
22873 "unused13",
22874 "unused14",
22875 "unused15",
22876 "unused16",
22877 "unused17",
22878 "unused18",
22879 "unused19",
22880 "unused20",
22881 "unused21",
22882 "unused22",
22883 "unused23",
22884 "unused24",
22885 "unused25",
22886 "unused26",
22887 "unused27",
22888 "unused28",
22889 "unused29",
22890 "unused30",
22891 "unused31",
22892 "unused32",
22893 "unused33",
22894 "unused34",
22895 "unused35",
22896 "unused36",
22897 "unused37",
22898 "unused38",
22899 "unused39",
22900 "unused40",
22901 "unused41",
22902 "unused42",
22903 "unused43",
22904 "unused44",
22905 "unused45",
22906 "unused46",
22907 "unused47",
22908 "unused48",
22909 "unused49",
22910 "unused50",
22911 "unused51",
22912 "unused52",
22913 "unused53",
22914 "unused54",
22915 "unused55",
22916 "unused56",
22917 "unused57",
22918 "unused58",
22919 "unused59",
22920 "unused60",
22921 "unused61",
22922 "unused62",
22923 "unused63",
22924 "unused64",
22925 "unused65",
22926 "unused66",
22927 "unused67",
22928 "unused68",
22929 "unused69",
22930 "unused70",
22931 "unused71",
22932 "unused72",
22933 "unused73",
22934 "unused74",
22935 "unused75",
22936 "unused76",
22937 "unused77",
22938 "unused78",
22939 "unused79",
22940 "unused80",
22941 "unused81",
22942 "unused82",
22943 "unused83",
22944 "unused84",
22945 "unused85",
22946 "unused86",
22947 "unused87",
22948 "unused88",
22949 "unused89",
22950 "unused90",
22951 "unused91",
22952 "unused92",
22953 "unused93",
22954 "unused94",
22955 "unused95",
22956 "unused96",
22957 "unused97",
22958 "unused98",
22959 "unused99",
22960 "unused100",
22961 "unused101",
22962 "unused102",
22963 "unused103",
22964 "unused104",
22965 "unused105",
22966 "unused106",
22967 "unused107",
22968 "unused108",
22969 "unused109",
22970 "unused110",
22971 "unused111",
22972 "unused112",
22973 "unused113",
22974 "unused114",
22975 "unused115",
22976 "unused116",
22977 "unused117",
22978 "unused118",
22979 "unused119",
22980 "unused120",
22981 "unused121",
22982 "unused122",
22983 "unused123",
22984 "unused124",
22985 "unused125",
22986 "unused126",
22987 "unused127",
22988 "unused128",
22989 "unused129",
22990 "unused130",
22991 "unused131",
22992 "unused132",
22993 "unused133",
22994 "unused134",
22995 "unused135",
22996 "unused136",
22997 "unused137",
22998 "unused138",
22999 "unused139",
23000 "unused140",
23001 "unused141",
23002 "unused142",
23003 "unused143",
23004 "unused144",
23005 "unused145",
23006 "unused146",
23007 "unused147",
23008 "unused148",
23009 "unused149",
23010 "unused150",
23011 "unused151",
23012 "unused152",
23013 "unused153",
23014 "unused154",
23015 "unused155",
23016 "unused156",
23017 "unused157",
23018 "unused158",
23019 "unused159",
23020 "unused160",
23021 "unused161",
23022 "unused162",
23023 "unused163",
23024 "unused164",
23025 "unused165",
23026 "unused166",
23027 "unused167",
23028 "unused168",
23029 "unused169",
23030 "unused170",
23031 "unused171",
23032 "unused172",
23033 "unused173",
23034 "unused174",
23035 "unused175",
23036 "unused176",
23037 "unused177",
23038 "unused178",
23039 "unused179",
23040 "unused180",
23041 "unused181",
23042 "unused182",
23043 "unused183",
23044 "unused184",
23045 "unused185",
23046 "unused186",
23047 "unused187",
23048 "unused188",
23049 "unused189",
23050 "unused190",
23051 "unused191",
23052 "unused192",
23053 "unused193",
23054 "unused194",
23055 "unused195",
23056 "unused196",
23057 "unused197",
23058 "unused198",
23059 "unused199",
23060 "unused200",
23061 "unused201",
23062 "unused202",
23063 "unused203",
23064 "unused204",
23065 "unused205",
23066 "unused206",
23067 "unused207",
23068 "unused208",
23069 "unused209",
23070 "unused210",
23071 "unused211",
23072 "unused212",
23073 "unused213",
23074 "unused214",
23075 "unused215",
23076 "unused216",
23077 "unused217",
23078 "unused218",
23079 "unused219",
23080 "unused220",
23081 "unused221",
23082 "unused222",
23083 "unused223",
23084 "unused224",
23085 "unused225",
23086 "unused226",
23087 "unused227",
23088 "unused228",
23089 "unused229",
23090 "unused230",
23091 "unused231",
23092 "unused232",
23093 "unused233",
23094 "unused234",
23095 "unused235",
23096 "unused236",
23097 "unused237",
23098 "unused238",
23099 "unused239",
23100 "unused240",
23101 "unused241",
23102 "unused242",
23103 "unused243",
23104 "unused244",
23105 "unused245",
23106 "unused246",
23107 "unused247",
23108 "unused248",
23109 "unused249",
23110 "unused250",
23111 "unused251",
23112 "unused252",
23113 "unused253",
23114 "unused254",
23115 "unused255"
4d47f125
TL
23116 ],
23117 "type" : "string"
23118 },
23119 "format" : {
23120 "description" : "Target Format.",
23121 "enum" : [
23122 "raw",
23123 "qcow2",
23124 "vmdk"
23125 ],
23126 "optional" : 1,
23127 "type" : "string"
23128 },
23129 "node" : {
23130 "description" : "The cluster node name.",
23131 "format" : "pve-node",
23132 "type" : "string",
23133 "typetext" : "<string>"
23134 },
23135 "storage" : {
23136 "description" : "Target storage.",
23137 "format" : "pve-storage-id",
5370fa8c 23138 "optional" : 1,
4d47f125
TL
23139 "type" : "string",
23140 "typetext" : "<string>"
23141 },
5370fa8c
TL
23142 "target-digest" : {
23143 "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.",
23144 "maxLength" : 40,
23145 "optional" : 1,
23146 "type" : "string",
23147 "typetext" : "<string>"
23148 },
23149 "target-disk" : {
23150 "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.",
23151 "enum" : [
23152 "ide0",
23153 "ide1",
23154 "ide2",
23155 "ide3",
23156 "scsi0",
23157 "scsi1",
23158 "scsi2",
23159 "scsi3",
23160 "scsi4",
23161 "scsi5",
23162 "scsi6",
23163 "scsi7",
23164 "scsi8",
23165 "scsi9",
23166 "scsi10",
23167 "scsi11",
23168 "scsi12",
23169 "scsi13",
23170 "scsi14",
23171 "scsi15",
23172 "scsi16",
23173 "scsi17",
23174 "scsi18",
23175 "scsi19",
23176 "scsi20",
23177 "scsi21",
23178 "scsi22",
23179 "scsi23",
23180 "scsi24",
23181 "scsi25",
23182 "scsi26",
23183 "scsi27",
23184 "scsi28",
23185 "scsi29",
23186 "scsi30",
23187 "virtio0",
23188 "virtio1",
23189 "virtio2",
23190 "virtio3",
23191 "virtio4",
23192 "virtio5",
23193 "virtio6",
23194 "virtio7",
23195 "virtio8",
23196 "virtio9",
23197 "virtio10",
23198 "virtio11",
23199 "virtio12",
23200 "virtio13",
23201 "virtio14",
23202 "virtio15",
23203 "sata0",
23204 "sata1",
23205 "sata2",
23206 "sata3",
23207 "sata4",
23208 "sata5",
23209 "efidisk0",
23210 "tpmstate0",
23211 "unused0",
23212 "unused1",
23213 "unused2",
23214 "unused3",
23215 "unused4",
23216 "unused5",
23217 "unused6",
23218 "unused7",
23219 "unused8",
23220 "unused9",
23221 "unused10",
23222 "unused11",
23223 "unused12",
23224 "unused13",
23225 "unused14",
23226 "unused15",
23227 "unused16",
23228 "unused17",
23229 "unused18",
23230 "unused19",
23231 "unused20",
23232 "unused21",
23233 "unused22",
23234 "unused23",
23235 "unused24",
23236 "unused25",
23237 "unused26",
23238 "unused27",
23239 "unused28",
23240 "unused29",
23241 "unused30",
23242 "unused31",
23243 "unused32",
23244 "unused33",
23245 "unused34",
23246 "unused35",
23247 "unused36",
23248 "unused37",
23249 "unused38",
23250 "unused39",
23251 "unused40",
23252 "unused41",
23253 "unused42",
23254 "unused43",
23255 "unused44",
23256 "unused45",
23257 "unused46",
23258 "unused47",
23259 "unused48",
23260 "unused49",
23261 "unused50",
23262 "unused51",
23263 "unused52",
23264 "unused53",
23265 "unused54",
23266 "unused55",
23267 "unused56",
23268 "unused57",
23269 "unused58",
23270 "unused59",
23271 "unused60",
23272 "unused61",
23273 "unused62",
23274 "unused63",
23275 "unused64",
23276 "unused65",
23277 "unused66",
23278 "unused67",
23279 "unused68",
23280 "unused69",
23281 "unused70",
23282 "unused71",
23283 "unused72",
23284 "unused73",
23285 "unused74",
23286 "unused75",
23287 "unused76",
23288 "unused77",
23289 "unused78",
23290 "unused79",
23291 "unused80",
23292 "unused81",
23293 "unused82",
23294 "unused83",
23295 "unused84",
23296 "unused85",
23297 "unused86",
23298 "unused87",
23299 "unused88",
23300 "unused89",
23301 "unused90",
23302 "unused91",
23303 "unused92",
23304 "unused93",
23305 "unused94",
23306 "unused95",
23307 "unused96",
23308 "unused97",
23309 "unused98",
23310 "unused99",
23311 "unused100",
23312 "unused101",
23313 "unused102",
23314 "unused103",
23315 "unused104",
23316 "unused105",
23317 "unused106",
23318 "unused107",
23319 "unused108",
23320 "unused109",
23321 "unused110",
23322 "unused111",
23323 "unused112",
23324 "unused113",
23325 "unused114",
23326 "unused115",
23327 "unused116",
23328 "unused117",
23329 "unused118",
23330 "unused119",
23331 "unused120",
23332 "unused121",
23333 "unused122",
23334 "unused123",
23335 "unused124",
23336 "unused125",
23337 "unused126",
23338 "unused127",
23339 "unused128",
23340 "unused129",
23341 "unused130",
23342 "unused131",
23343 "unused132",
23344 "unused133",
23345 "unused134",
23346 "unused135",
23347 "unused136",
23348 "unused137",
23349 "unused138",
23350 "unused139",
23351 "unused140",
23352 "unused141",
23353 "unused142",
23354 "unused143",
23355 "unused144",
23356 "unused145",
23357 "unused146",
23358 "unused147",
23359 "unused148",
23360 "unused149",
23361 "unused150",
23362 "unused151",
23363 "unused152",
23364 "unused153",
23365 "unused154",
23366 "unused155",
23367 "unused156",
23368 "unused157",
23369 "unused158",
23370 "unused159",
23371 "unused160",
23372 "unused161",
23373 "unused162",
23374 "unused163",
23375 "unused164",
23376 "unused165",
23377 "unused166",
23378 "unused167",
23379 "unused168",
23380 "unused169",
23381 "unused170",
23382 "unused171",
23383 "unused172",
23384 "unused173",
23385 "unused174",
23386 "unused175",
23387 "unused176",
23388 "unused177",
23389 "unused178",
23390 "unused179",
23391 "unused180",
23392 "unused181",
23393 "unused182",
23394 "unused183",
23395 "unused184",
23396 "unused185",
23397 "unused186",
23398 "unused187",
23399 "unused188",
23400 "unused189",
23401 "unused190",
23402 "unused191",
23403 "unused192",
23404 "unused193",
23405 "unused194",
23406 "unused195",
23407 "unused196",
23408 "unused197",
23409 "unused198",
23410 "unused199",
23411 "unused200",
23412 "unused201",
23413 "unused202",
23414 "unused203",
23415 "unused204",
23416 "unused205",
23417 "unused206",
23418 "unused207",
23419 "unused208",
23420 "unused209",
23421 "unused210",
23422 "unused211",
23423 "unused212",
23424 "unused213",
23425 "unused214",
23426 "unused215",
23427 "unused216",
23428 "unused217",
23429 "unused218",
23430 "unused219",
23431 "unused220",
23432 "unused221",
23433 "unused222",
23434 "unused223",
23435 "unused224",
23436 "unused225",
23437 "unused226",
23438 "unused227",
23439 "unused228",
23440 "unused229",
23441 "unused230",
23442 "unused231",
23443 "unused232",
23444 "unused233",
23445 "unused234",
23446 "unused235",
23447 "unused236",
23448 "unused237",
23449 "unused238",
23450 "unused239",
23451 "unused240",
23452 "unused241",
23453 "unused242",
23454 "unused243",
23455 "unused244",
23456 "unused245",
23457 "unused246",
23458 "unused247",
23459 "unused248",
23460 "unused249",
23461 "unused250",
23462 "unused251",
23463 "unused252",
23464 "unused253",
23465 "unused254",
23466 "unused255"
23467 ],
23468 "optional" : 1,
23469 "type" : "string"
23470 },
23471 "target-vmid" : {
23472 "description" : "The (unique) ID of the VM.",
23473 "format" : "pve-vmid",
8dd66e12
TL
23474 "maximum" : 999999999,
23475 "minimum" : 100,
5370fa8c
TL
23476 "optional" : 1,
23477 "type" : "integer",
8dd66e12 23478 "typetext" : "<integer> (100 - 999999999)"
5370fa8c 23479 },
4d47f125
TL
23480 "vmid" : {
23481 "description" : "The (unique) ID of the VM.",
23482 "format" : "pve-vmid",
8dd66e12
TL
23483 "maximum" : 999999999,
23484 "minimum" : 100,
4d47f125 23485 "type" : "integer",
8dd66e12 23486 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23487 }
23488 }
23489 },
23490 "permissions" : {
23491 "check" : [
5370fa8c
TL
23492 "perm",
23493 "/vms/{vmid}",
4d47f125 23494 [
5370fa8c 23495 "VM.Config.Disk"
4d47f125
TL
23496 ]
23497 ],
5370fa8c 23498 "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
23499 },
23500 "protected" : 1,
23501 "proxyto" : "node",
23502 "returns" : {
23503 "description" : "the task ID.",
23504 "type" : "string"
23505 }
23506 }
23507 },
23508 "leaf" : 1,
23509 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
23510 "text" : "move_disk"
23511 },
23512 {
23513 "info" : {
1e3f8156 23514 "GET" : {
e9cd3bd4 23515 "allowtoken" : 1,
1e3f8156
TL
23516 "description" : "Get preconditions for migration.",
23517 "method" : "GET",
23518 "name" : "migrate_vm_precondition",
23519 "parameters" : {
23520 "additionalProperties" : 0,
23521 "properties" : {
23522 "node" : {
23523 "description" : "The cluster node name.",
23524 "format" : "pve-node",
23525 "type" : "string",
23526 "typetext" : "<string>"
23527 },
23528 "target" : {
23529 "description" : "Target node.",
23530 "format" : "pve-node",
23531 "optional" : 1,
23532 "type" : "string",
23533 "typetext" : "<string>"
23534 },
23535 "vmid" : {
23536 "description" : "The (unique) ID of the VM.",
23537 "format" : "pve-vmid",
8dd66e12
TL
23538 "maximum" : 999999999,
23539 "minimum" : 100,
1e3f8156 23540 "type" : "integer",
8dd66e12 23541 "typetext" : "<integer> (100 - 999999999)"
1e3f8156
TL
23542 }
23543 }
23544 },
23545 "permissions" : {
23546 "check" : [
23547 "perm",
23548 "/vms/{vmid}",
23549 [
23550 "VM.Migrate"
23551 ]
23552 ]
23553 },
23554 "protected" : 1,
23555 "proxyto" : "node",
23556 "returns" : {
23557 "properties" : {
23558 "allowed_nodes" : {
9226ccbc 23559 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
23560 "optional" : 1,
23561 "type" : "array"
23562 },
23563 "local_disks" : {
23564 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
23565 "type" : "array"
23566 },
23567 "local_resources" : {
23568 "description" : "List local resources e.g. pci, usb",
23569 "type" : "array"
23570 },
499c9b7f
TL
23571 "mapped-resources" : {
23572 "description" : "List of mapped resources e.g. pci, usb",
23573 "type" : "array"
23574 },
9226ccbc
TL
23575 "not_allowed_nodes" : {
23576 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
23577 "optional" : 1,
23578 "type" : "object"
23579 },
1e3f8156
TL
23580 "running" : {
23581 "type" : "boolean"
23582 }
23583 },
23584 "type" : "object"
23585 }
23586 },
4d47f125 23587 "POST" : {
e9cd3bd4 23588 "allowtoken" : 1,
4d47f125
TL
23589 "description" : "Migrate virtual machine. Creates a new migration task.",
23590 "method" : "POST",
23591 "name" : "migrate_vm",
23592 "parameters" : {
23593 "additionalProperties" : 0,
23594 "properties" : {
95895385
TL
23595 "bwlimit" : {
23596 "default" : "migrate limit from datacenter or storage config",
23597 "description" : "Override I/O bandwidth limit (in KiB/s).",
23598 "minimum" : "0",
23599 "optional" : 1,
23600 "type" : "integer",
23601 "typetext" : "<integer> (0 - N)"
23602 },
4d47f125
TL
23603 "force" : {
23604 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
23605 "optional" : 1,
23606 "type" : "boolean",
23607 "typetext" : "<boolean>"
23608 },
23609 "migration_network" : {
23610 "description" : "CIDR of the (sub) network that is used for migration.",
23611 "format" : "CIDR",
23612 "optional" : 1,
23613 "type" : "string",
23614 "typetext" : "<string>"
23615 },
23616 "migration_type" : {
23617 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
23618 "enum" : [
23619 "secure",
23620 "insecure"
23621 ],
23622 "optional" : 1,
23623 "type" : "string"
23624 },
23625 "node" : {
23626 "description" : "The cluster node name.",
23627 "format" : "pve-node",
23628 "type" : "string",
23629 "typetext" : "<string>"
23630 },
23631 "online" : {
1c532546 23632 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
23633 "optional" : 1,
23634 "type" : "boolean",
23635 "typetext" : "<boolean>"
23636 },
23637 "target" : {
23638 "description" : "Target node.",
23639 "format" : "pve-node",
23640 "type" : "string",
23641 "typetext" : "<string>"
23642 },
23643 "targetstorage" : {
c5aa7e14 23644 "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 23645 "format" : "storage-pair-list",
4d47f125 23646 "optional" : 1,
52e44c50
FG
23647 "type" : "string",
23648 "typetext" : "<string>"
23649 },
7aacca6f 23650 "vmid" : {
7aacca6f 23651 "description" : "The (unique) ID of the VM.",
44660702 23652 "format" : "pve-vmid",
8dd66e12
TL
23653 "maximum" : 999999999,
23654 "minimum" : 100,
4bd7df8b 23655 "type" : "integer",
8dd66e12 23656 "typetext" : "<integer> (100 - 999999999)"
52e44c50
FG
23657 },
23658 "with-local-disks" : {
23659 "description" : "Enable live storage migration for local disk",
23660 "optional" : 1,
23661 "type" : "boolean",
23662 "typetext" : "<boolean>"
56122987 23663 }
44660702
DM
23664 }
23665 },
23666 "permissions" : {
23667 "check" : [
23668 "perm",
23669 "/vms/{vmid}",
23670 [
23671 "VM.Migrate"
23672 ]
23673 ]
56122987
DM
23674 },
23675 "protected" : 1,
44660702
DM
23676 "proxyto" : "node",
23677 "returns" : {
23678 "description" : "the task ID.",
23679 "type" : "string"
23680 }
56122987 23681 }
7aacca6f 23682 },
44660702
DM
23683 "leaf" : 1,
23684 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 23685 "text" : "migrate"
56122987 23686 },
81a3384d
TL
23687 {
23688 "info" : {
23689 "POST" : {
23690 "allowtoken" : 1,
23691 "description" : "Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!",
23692 "method" : "POST",
23693 "name" : "remote_migrate_vm",
23694 "parameters" : {
23695 "additionalProperties" : 0,
23696 "properties" : {
23697 "bwlimit" : {
23698 "default" : "migrate limit from datacenter or storage config",
23699 "description" : "Override I/O bandwidth limit (in KiB/s).",
23700 "minimum" : "0",
23701 "optional" : 1,
23702 "type" : "integer",
23703 "typetext" : "<integer> (0 - N)"
23704 },
23705 "delete" : {
23706 "default" : 0,
23707 "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.",
23708 "optional" : 1,
23709 "type" : "boolean",
23710 "typetext" : "<boolean>"
23711 },
23712 "node" : {
23713 "description" : "The cluster node name.",
23714 "format" : "pve-node",
23715 "type" : "string",
23716 "typetext" : "<string>"
23717 },
23718 "online" : {
23719 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
23720 "optional" : 1,
23721 "type" : "boolean",
23722 "typetext" : "<boolean>"
23723 },
23724 "target-bridge" : {
23725 "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.",
23726 "format" : "bridge-pair-list",
23727 "type" : "string",
23728 "typetext" : "<string>"
23729 },
23730 "target-endpoint" : {
23731 "description" : "Remote target endpoint",
23732 "format" : "proxmox-remote",
23733 "type" : "string",
23734 "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>]"
23735 },
23736 "target-storage" : {
23737 "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.",
23738 "format" : "storage-pair-list",
23739 "optional" : 0,
23740 "type" : "string",
23741 "typetext" : "<string>"
23742 },
23743 "target-vmid" : {
23744 "description" : "The (unique) ID of the VM.",
23745 "format" : "pve-vmid",
8dd66e12
TL
23746 "maximum" : 999999999,
23747 "minimum" : 100,
81a3384d
TL
23748 "optional" : 1,
23749 "type" : "integer",
8dd66e12 23750 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
23751 },
23752 "vmid" : {
23753 "description" : "The (unique) ID of the VM.",
23754 "format" : "pve-vmid",
8dd66e12
TL
23755 "maximum" : 999999999,
23756 "minimum" : 100,
81a3384d 23757 "type" : "integer",
8dd66e12 23758 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
23759 }
23760 }
23761 },
23762 "permissions" : {
23763 "check" : [
23764 "perm",
23765 "/vms/{vmid}",
23766 [
23767 "VM.Migrate"
23768 ]
23769 ]
23770 },
23771 "protected" : 1,
23772 "proxyto" : "node",
23773 "returns" : {
23774 "description" : "the task ID.",
23775 "type" : "string"
23776 }
23777 }
23778 },
23779 "leaf" : 1,
23780 "path" : "/nodes/{node}/qemu/{vmid}/remote_migrate",
23781 "text" : "remote_migrate"
23782 },
56122987
DM
23783 {
23784 "info" : {
23785 "POST" : {
e9cd3bd4 23786 "allowtoken" : 1,
9d2e98ed 23787 "description" : "Execute QEMU monitor commands.",
56122987 23788 "method" : "POST",
44660702 23789 "name" : "monitor",
56122987 23790 "parameters" : {
7aacca6f 23791 "additionalProperties" : 0,
56122987 23792 "properties" : {
44660702
DM
23793 "command" : {
23794 "description" : "The monitor command.",
013dc89f
DM
23795 "type" : "string",
23796 "typetext" : "<string>"
44660702 23797 },
56122987 23798 "node" : {
44660702 23799 "description" : "The cluster node name.",
7aacca6f 23800 "format" : "pve-node",
013dc89f
DM
23801 "type" : "string",
23802 "typetext" : "<string>"
56122987
DM
23803 },
23804 "vmid" : {
44660702 23805 "description" : "The (unique) ID of the VM.",
56122987 23806 "format" : "pve-vmid",
8dd66e12
TL
23807 "maximum" : 999999999,
23808 "minimum" : 100,
4bd7df8b 23809 "type" : "integer",
8dd66e12 23810 "typetext" : "<integer> (100 - 999999999)"
56122987 23811 }
7aacca6f 23812 }
56122987 23813 },
56122987
DM
23814 "permissions" : {
23815 "check" : [
23816 "perm",
23817 "/vms/{vmid}",
23818 [
23819 "VM.Monitor"
23820 ]
32d876b5
DM
23821 ],
23822 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 23823 },
44660702
DM
23824 "protected" : 1,
23825 "proxyto" : "node",
23826 "returns" : {
23827 "type" : "string"
23828 }
56122987 23829 }
44660702
DM
23830 },
23831 "leaf" : 1,
23832 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
23833 "text" : "monitor"
56122987
DM
23834 },
23835 {
56122987
DM
23836 "info" : {
23837 "PUT" : {
e9cd3bd4 23838 "allowtoken" : 1,
44660702
DM
23839 "description" : "Extend volume size.",
23840 "method" : "PUT",
23841 "name" : "resize_vm",
56122987 23842 "parameters" : {
44660702 23843 "additionalProperties" : 0,
56122987 23844 "properties" : {
44660702
DM
23845 "digest" : {
23846 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
23847 "maxLength" : 40,
23848 "optional" : 1,
013dc89f
DM
23849 "type" : "string",
23850 "typetext" : "<string>"
56122987 23851 },
56122987
DM
23852 "disk" : {
23853 "description" : "The disk you want to resize.",
23854 "enum" : [
23855 "ide0",
23856 "ide1",
23857 "ide2",
23858 "ide3",
23859 "scsi0",
23860 "scsi1",
23861 "scsi2",
23862 "scsi3",
23863 "scsi4",
23864 "scsi5",
23865 "scsi6",
23866 "scsi7",
23867 "scsi8",
23868 "scsi9",
23869 "scsi10",
23870 "scsi11",
23871 "scsi12",
23872 "scsi13",
e9cd3bd4
TL
23873 "scsi14",
23874 "scsi15",
23875 "scsi16",
23876 "scsi17",
23877 "scsi18",
23878 "scsi19",
23879 "scsi20",
23880 "scsi21",
23881 "scsi22",
23882 "scsi23",
23883 "scsi24",
23884 "scsi25",
23885 "scsi26",
23886 "scsi27",
23887 "scsi28",
23888 "scsi29",
23889 "scsi30",
56122987
DM
23890 "virtio0",
23891 "virtio1",
23892 "virtio2",
23893 "virtio3",
23894 "virtio4",
23895 "virtio5",
23896 "virtio6",
23897 "virtio7",
23898 "virtio8",
23899 "virtio9",
23900 "virtio10",
23901 "virtio11",
23902 "virtio12",
23903 "virtio13",
23904 "virtio14",
23905 "virtio15",
23906 "sata0",
23907 "sata1",
23908 "sata2",
23909 "sata3",
23910 "sata4",
2c0dde61 23911 "sata5",
5370fa8c
TL
23912 "efidisk0",
23913 "tpmstate0"
44660702
DM
23914 ],
23915 "type" : "string"
56122987 23916 },
44660702
DM
23917 "node" : {
23918 "description" : "The cluster node name.",
23919 "format" : "pve-node",
013dc89f
DM
23920 "type" : "string",
23921 "typetext" : "<string>"
7aacca6f 23922 },
44660702 23923 "size" : {
5d9c884c 23924 "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
23925 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
23926 "type" : "string"
56122987
DM
23927 },
23928 "skiplock" : {
23929 "description" : "Ignore locks - only root is allowed to use this option.",
23930 "optional" : 1,
013dc89f
DM
23931 "type" : "boolean",
23932 "typetext" : "<boolean>"
56122987
DM
23933 },
23934 "vmid" : {
7aacca6f 23935 "description" : "The (unique) ID of the VM.",
56122987 23936 "format" : "pve-vmid",
8dd66e12
TL
23937 "maximum" : 999999999,
23938 "minimum" : 100,
4bd7df8b 23939 "type" : "integer",
8dd66e12 23940 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
23941 }
23942 }
23943 },
23944 "permissions" : {
23945 "check" : [
23946 "perm",
23947 "/vms/{vmid}",
23948 [
44660702 23949 "VM.Config.Disk"
56122987
DM
23950 ]
23951 ]
23952 },
7aacca6f 23953 "protected" : 1,
7aacca6f 23954 "proxyto" : "node",
44660702 23955 "returns" : {
159464a9
TL
23956 "description" : "the task ID.",
23957 "type" : "string"
44660702 23958 }
7aacca6f
DM
23959 }
23960 },
44660702
DM
23961 "leaf" : 1,
23962 "path" : "/nodes/{node}/qemu/{vmid}/resize",
23963 "text" : "resize"
23964 },
23965 {
56122987
DM
23966 "children" : [
23967 {
23968 "children" : [
23969 {
56122987 23970 "info" : {
44660702 23971 "GET" : {
e9cd3bd4 23972 "allowtoken" : 1,
44660702
DM
23973 "description" : "Get snapshot configuration",
23974 "method" : "GET",
23975 "name" : "get_snapshot_config",
56122987 23976 "parameters" : {
44660702 23977 "additionalProperties" : 0,
56122987 23978 "properties" : {
56122987 23979 "node" : {
44660702 23980 "description" : "The cluster node name.",
56122987 23981 "format" : "pve-node",
013dc89f
DM
23982 "type" : "string",
23983 "typetext" : "<string>"
7aacca6f
DM
23984 },
23985 "snapname" : {
44660702 23986 "description" : "The name of the snapshot.",
7aacca6f 23987 "format" : "pve-configid",
44660702 23988 "maxLength" : 40,
013dc89f
DM
23989 "type" : "string",
23990 "typetext" : "<string>"
7aacca6f
DM
23991 },
23992 "vmid" : {
44660702 23993 "description" : "The (unique) ID of the VM.",
7aacca6f 23994 "format" : "pve-vmid",
8dd66e12
TL
23995 "maximum" : 999999999,
23996 "minimum" : 100,
4bd7df8b 23997 "type" : "integer",
8dd66e12 23998 "typetext" : "<integer> (100 - 999999999)"
56122987 23999 }
44660702 24000 }
56122987
DM
24001 },
24002 "permissions" : {
24003 "check" : [
24004 "perm",
24005 "/vms/{vmid}",
24006 [
2489d6df 24007 "VM.Snapshot",
e9cd3bd4
TL
24008 "VM.Snapshot.Rollback",
24009 "VM.Audit"
2489d6df
WB
24010 ],
24011 "any",
24012 1
56122987
DM
24013 ]
24014 },
44660702 24015 "proxyto" : "node",
56122987 24016 "returns" : {
44660702 24017 "type" : "object"
7aacca6f
DM
24018 }
24019 },
44660702 24020 "PUT" : {
e9cd3bd4 24021 "allowtoken" : 1,
44660702
DM
24022 "description" : "Update snapshot metadata.",
24023 "method" : "PUT",
24024 "name" : "update_snapshot_config",
56122987 24025 "parameters" : {
44660702 24026 "additionalProperties" : 0,
56122987 24027 "properties" : {
44660702
DM
24028 "description" : {
24029 "description" : "A textual description or comment.",
24030 "optional" : 1,
013dc89f
DM
24031 "type" : "string",
24032 "typetext" : "<string>"
44660702 24033 },
56122987 24034 "node" : {
7aacca6f 24035 "description" : "The cluster node name.",
44660702 24036 "format" : "pve-node",
013dc89f
DM
24037 "type" : "string",
24038 "typetext" : "<string>"
56122987 24039 },
56122987
DM
24040 "snapname" : {
24041 "description" : "The name of the snapshot.",
44660702 24042 "format" : "pve-configid",
7aacca6f 24043 "maxLength" : 40,
013dc89f
DM
24044 "type" : "string",
24045 "typetext" : "<string>"
7aacca6f
DM
24046 },
24047 "vmid" : {
24048 "description" : "The (unique) ID of the VM.",
44660702 24049 "format" : "pve-vmid",
8dd66e12
TL
24050 "maximum" : 999999999,
24051 "minimum" : 100,
4bd7df8b 24052 "type" : "integer",
8dd66e12 24053 "typetext" : "<integer> (100 - 999999999)"
56122987 24054 }
44660702 24055 }
56122987 24056 },
7aacca6f
DM
24057 "permissions" : {
24058 "check" : [
24059 "perm",
24060 "/vms/{vmid}",
24061 [
24062 "VM.Snapshot"
24063 ]
24064 ]
44660702
DM
24065 },
24066 "protected" : 1,
24067 "proxyto" : "node",
24068 "returns" : {
24069 "type" : "null"
7aacca6f 24070 }
56122987
DM
24071 }
24072 },
44660702 24073 "leaf" : 1,
7aacca6f 24074 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 24075 "text" : "config"
56122987
DM
24076 },
24077 {
56122987
DM
24078 "info" : {
24079 "POST" : {
e9cd3bd4 24080 "allowtoken" : 1,
44660702 24081 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 24082 "method" : "POST",
44660702 24083 "name" : "rollback",
56122987
DM
24084 "parameters" : {
24085 "additionalProperties" : 0,
24086 "properties" : {
44660702
DM
24087 "node" : {
24088 "description" : "The cluster node name.",
24089 "format" : "pve-node",
013dc89f
DM
24090 "type" : "string",
24091 "typetext" : "<string>"
44660702 24092 },
56122987 24093 "snapname" : {
44660702 24094 "description" : "The name of the snapshot.",
56122987
DM
24095 "format" : "pve-configid",
24096 "maxLength" : 40,
013dc89f
DM
24097 "type" : "string",
24098 "typetext" : "<string>"
7aacca6f 24099 },
4e7f60c2
TL
24100 "start" : {
24101 "default" : 0,
9d2e98ed 24102 "description" : "Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.)",
4e7f60c2
TL
24103 "optional" : 1,
24104 "type" : "boolean",
24105 "typetext" : "<boolean>"
24106 },
56122987 24107 "vmid" : {
7aacca6f 24108 "description" : "The (unique) ID of the VM.",
44660702 24109 "format" : "pve-vmid",
8dd66e12
TL
24110 "maximum" : 999999999,
24111 "minimum" : 100,
4bd7df8b 24112 "type" : "integer",
8dd66e12 24113 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
24114 }
24115 }
24116 },
7aacca6f 24117 "permissions" : {
56122987
DM
24118 "check" : [
24119 "perm",
24120 "/vms/{vmid}",
24121 [
2489d6df
WB
24122 "VM.Snapshot",
24123 "VM.Snapshot.Rollback"
24124 ],
24125 "any",
24126 1
56122987
DM
24127 ]
24128 },
44660702 24129 "protected" : 1,
7aacca6f 24130 "proxyto" : "node",
44660702
DM
24131 "returns" : {
24132 "description" : "the task ID.",
24133 "type" : "string"
24134 }
56122987
DM
24135 }
24136 },
44660702
DM
24137 "leaf" : 1,
24138 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 24139 "text" : "rollback"
56122987 24140 }
44660702
DM
24141 ],
24142 "info" : {
24143 "DELETE" : {
e9cd3bd4 24144 "allowtoken" : 1,
44660702
DM
24145 "description" : "Delete a VM snapshot.",
24146 "method" : "DELETE",
24147 "name" : "delsnapshot",
24148 "parameters" : {
24149 "additionalProperties" : 0,
24150 "properties" : {
24151 "force" : {
24152 "description" : "For removal from config file, even if removing disk snapshots fails.",
24153 "optional" : 1,
013dc89f
DM
24154 "type" : "boolean",
24155 "typetext" : "<boolean>"
44660702
DM
24156 },
24157 "node" : {
24158 "description" : "The cluster node name.",
24159 "format" : "pve-node",
013dc89f
DM
24160 "type" : "string",
24161 "typetext" : "<string>"
44660702
DM
24162 },
24163 "snapname" : {
24164 "description" : "The name of the snapshot.",
24165 "format" : "pve-configid",
24166 "maxLength" : 40,
013dc89f
DM
24167 "type" : "string",
24168 "typetext" : "<string>"
44660702
DM
24169 },
24170 "vmid" : {
24171 "description" : "The (unique) ID of the VM.",
24172 "format" : "pve-vmid",
8dd66e12
TL
24173 "maximum" : 999999999,
24174 "minimum" : 100,
4bd7df8b 24175 "type" : "integer",
8dd66e12 24176 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
24177 }
24178 }
24179 },
24180 "permissions" : {
24181 "check" : [
24182 "perm",
24183 "/vms/{vmid}",
24184 [
24185 "VM.Snapshot"
24186 ]
24187 ]
24188 },
24189 "protected" : 1,
24190 "proxyto" : "node",
24191 "returns" : {
24192 "description" : "the task ID.",
24193 "type" : "string"
24194 }
24195 },
24196 "GET" : {
e9cd3bd4 24197 "allowtoken" : 1,
44660702
DM
24198 "description" : "",
24199 "method" : "GET",
24200 "name" : "snapshot_cmd_idx",
24201 "parameters" : {
24202 "additionalProperties" : 0,
24203 "properties" : {
24204 "node" : {
24205 "description" : "The cluster node name.",
24206 "format" : "pve-node",
013dc89f
DM
24207 "type" : "string",
24208 "typetext" : "<string>"
44660702
DM
24209 },
24210 "snapname" : {
24211 "description" : "The name of the snapshot.",
24212 "format" : "pve-configid",
24213 "maxLength" : 40,
013dc89f
DM
24214 "type" : "string",
24215 "typetext" : "<string>"
44660702
DM
24216 },
24217 "vmid" : {
24218 "description" : "The (unique) ID of the VM.",
24219 "format" : "pve-vmid",
8dd66e12
TL
24220 "maximum" : 999999999,
24221 "minimum" : 100,
4bd7df8b 24222 "type" : "integer",
8dd66e12 24223 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
24224 }
24225 }
24226 },
24227 "permissions" : {
24228 "user" : "all"
24229 },
24230 "returns" : {
24231 "items" : {
24232 "properties" : {},
24233 "type" : "object"
24234 },
24235 "links" : [
24236 {
24237 "href" : "{cmd}",
24238 "rel" : "child"
24239 }
24240 ],
24241 "type" : "array"
24242 }
24243 }
24244 },
24245 "leaf" : 0,
24246 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
24247 "text" : "{snapname}"
56122987
DM
24248 }
24249 ],
44660702
DM
24250 "info" : {
24251 "GET" : {
e9cd3bd4 24252 "allowtoken" : 1,
44660702
DM
24253 "description" : "List all snapshots.",
24254 "method" : "GET",
24255 "name" : "snapshot_list",
24256 "parameters" : {
24257 "additionalProperties" : 0,
24258 "properties" : {
24259 "node" : {
24260 "description" : "The cluster node name.",
24261 "format" : "pve-node",
013dc89f
DM
24262 "type" : "string",
24263 "typetext" : "<string>"
44660702
DM
24264 },
24265 "vmid" : {
24266 "description" : "The (unique) ID of the VM.",
24267 "format" : "pve-vmid",
8dd66e12
TL
24268 "maximum" : 999999999,
24269 "minimum" : 100,
4bd7df8b 24270 "type" : "integer",
8dd66e12 24271 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
24272 }
24273 }
24274 },
24275 "permissions" : {
24276 "check" : [
24277 "perm",
24278 "/vms/{vmid}",
24279 [
24280 "VM.Audit"
24281 ]
24282 ]
24283 },
24284 "protected" : 1,
24285 "proxyto" : "node",
24286 "returns" : {
24287 "items" : {
4d47f125
TL
24288 "properties" : {
24289 "description" : {
24290 "description" : "Snapshot description.",
24291 "type" : "string"
24292 },
24293 "name" : {
24294 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
24295 "type" : "string"
24296 },
24297 "parent" : {
24298 "description" : "Parent snapshot identifier.",
24299 "optional" : 1,
24300 "type" : "string"
24301 },
24302 "snaptime" : {
24303 "description" : "Snapshot creation time",
24304 "optional" : 1,
24305 "renderer" : "timestamp",
24306 "type" : "integer"
24307 },
24308 "vmstate" : {
24309 "description" : "Snapshot includes RAM.",
24310 "optional" : 1,
24311 "type" : "boolean"
24312 }
24313 },
44660702
DM
24314 "type" : "object"
24315 },
24316 "links" : [
24317 {
24318 "href" : "{name}",
24319 "rel" : "child"
24320 }
24321 ],
24322 "type" : "array"
24323 }
24324 },
24325 "POST" : {
e9cd3bd4 24326 "allowtoken" : 1,
44660702
DM
24327 "description" : "Snapshot a VM.",
24328 "method" : "POST",
24329 "name" : "snapshot",
24330 "parameters" : {
24331 "additionalProperties" : 0,
24332 "properties" : {
24333 "description" : {
24334 "description" : "A textual description or comment.",
24335 "optional" : 1,
013dc89f
DM
24336 "type" : "string",
24337 "typetext" : "<string>"
44660702
DM
24338 },
24339 "node" : {
24340 "description" : "The cluster node name.",
24341 "format" : "pve-node",
013dc89f
DM
24342 "type" : "string",
24343 "typetext" : "<string>"
44660702
DM
24344 },
24345 "snapname" : {
24346 "description" : "The name of the snapshot.",
24347 "format" : "pve-configid",
24348 "maxLength" : 40,
013dc89f
DM
24349 "type" : "string",
24350 "typetext" : "<string>"
44660702
DM
24351 },
24352 "vmid" : {
24353 "description" : "The (unique) ID of the VM.",
24354 "format" : "pve-vmid",
8dd66e12
TL
24355 "maximum" : 999999999,
24356 "minimum" : 100,
4bd7df8b 24357 "type" : "integer",
8dd66e12 24358 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
24359 },
24360 "vmstate" : {
24361 "description" : "Save the vmstate",
24362 "optional" : 1,
013dc89f
DM
24363 "type" : "boolean",
24364 "typetext" : "<boolean>"
44660702
DM
24365 }
24366 }
24367 },
24368 "permissions" : {
24369 "check" : [
24370 "perm",
24371 "/vms/{vmid}",
24372 [
24373 "VM.Snapshot"
24374 ]
24375 ]
24376 },
24377 "protected" : 1,
24378 "proxyto" : "node",
24379 "returns" : {
24380 "description" : "the task ID.",
24381 "type" : "string"
24382 }
24383 }
24384 },
24385 "leaf" : 0,
24386 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 24387 "text" : "snapshot"
56122987
DM
24388 },
24389 {
56122987
DM
24390 "info" : {
24391 "POST" : {
e9cd3bd4 24392 "allowtoken" : 1,
44660702
DM
24393 "description" : "Create a Template.",
24394 "method" : "POST",
56122987 24395 "name" : "template",
56122987 24396 "parameters" : {
7aacca6f 24397 "additionalProperties" : 0,
56122987 24398 "properties" : {
56122987 24399 "disk" : {
56122987
DM
24400 "description" : "If you want to convert only 1 disk to base image.",
24401 "enum" : [
24402 "ide0",
24403 "ide1",
24404 "ide2",
24405 "ide3",
24406 "scsi0",
24407 "scsi1",
24408 "scsi2",
24409 "scsi3",
24410 "scsi4",
24411 "scsi5",
24412 "scsi6",
24413 "scsi7",
24414 "scsi8",
24415 "scsi9",
24416 "scsi10",
24417 "scsi11",
24418 "scsi12",
24419 "scsi13",
e9cd3bd4
TL
24420 "scsi14",
24421 "scsi15",
24422 "scsi16",
24423 "scsi17",
24424 "scsi18",
24425 "scsi19",
24426 "scsi20",
24427 "scsi21",
24428 "scsi22",
24429 "scsi23",
24430 "scsi24",
24431 "scsi25",
24432 "scsi26",
24433 "scsi27",
24434 "scsi28",
24435 "scsi29",
24436 "scsi30",
56122987
DM
24437 "virtio0",
24438 "virtio1",
24439 "virtio2",
24440 "virtio3",
24441 "virtio4",
24442 "virtio5",
24443 "virtio6",
24444 "virtio7",
24445 "virtio8",
24446 "virtio9",
24447 "virtio10",
24448 "virtio11",
24449 "virtio12",
24450 "virtio13",
24451 "virtio14",
24452 "virtio15",
24453 "sata0",
24454 "sata1",
24455 "sata2",
24456 "sata3",
24457 "sata4",
2c0dde61 24458 "sata5",
5370fa8c
TL
24459 "efidisk0",
24460 "tpmstate0"
56122987 24461 ],
7aacca6f 24462 "optional" : 1,
56122987
DM
24463 "type" : "string"
24464 },
44660702
DM
24465 "node" : {
24466 "description" : "The cluster node name.",
24467 "format" : "pve-node",
013dc89f
DM
24468 "type" : "string",
24469 "typetext" : "<string>"
44660702
DM
24470 },
24471 "vmid" : {
24472 "description" : "The (unique) ID of the VM.",
7aacca6f 24473 "format" : "pve-vmid",
8dd66e12
TL
24474 "maximum" : 999999999,
24475 "minimum" : 100,
4bd7df8b 24476 "type" : "integer",
8dd66e12 24477 "typetext" : "<integer> (100 - 999999999)"
56122987 24478 }
7aacca6f 24479 }
56122987 24480 },
7aacca6f
DM
24481 "permissions" : {
24482 "check" : [
24483 "perm",
24484 "/vms/{vmid}",
24485 [
24486 "VM.Allocate"
24487 ]
24488 ],
24489 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
24490 },
44660702 24491 "protected" : 1,
7aacca6f 24492 "proxyto" : "node",
7aacca6f 24493 "returns" : {
5370fa8c
TL
24494 "description" : "the task ID.",
24495 "type" : "string"
7aacca6f 24496 }
56122987
DM
24497 }
24498 },
44660702 24499 "leaf" : 1,
7aacca6f 24500 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 24501 "text" : "template"
81a3384d
TL
24502 },
24503 {
24504 "info" : {
24505 "POST" : {
24506 "allowtoken" : 1,
24507 "description" : "Migration tunnel endpoint - only for internal use by VM migration.",
24508 "method" : "POST",
24509 "name" : "mtunnel",
24510 "parameters" : {
24511 "additionalProperties" : 0,
24512 "properties" : {
24513 "bridges" : {
24514 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
24515 "format" : "pve-bridge-id-list",
24516 "optional" : 1,
24517 "type" : "string",
24518 "typetext" : "<string>"
24519 },
24520 "node" : {
24521 "description" : "The cluster node name.",
24522 "format" : "pve-node",
24523 "type" : "string",
24524 "typetext" : "<string>"
24525 },
24526 "storages" : {
24527 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
24528 "format" : "pve-storage-id-list",
24529 "optional" : 1,
24530 "type" : "string",
24531 "typetext" : "<string>"
24532 },
24533 "vmid" : {
24534 "description" : "The (unique) ID of the VM.",
24535 "format" : "pve-vmid",
8dd66e12
TL
24536 "maximum" : 999999999,
24537 "minimum" : 100,
81a3384d 24538 "type" : "integer",
8dd66e12 24539 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
24540 }
24541 }
24542 },
24543 "permissions" : {
24544 "check" : [
24545 "and",
24546 [
24547 "perm",
24548 "/vms/{vmid}",
24549 [
24550 "VM.Allocate"
24551 ]
24552 ],
24553 [
24554 "perm",
24555 "/",
24556 [
24557 "Sys.Incoming"
24558 ]
24559 ]
24560 ],
24561 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
24562 },
24563 "protected" : 1,
24564 "returns" : {
24565 "additionalProperties" : 0,
24566 "properties" : {
24567 "socket" : {
24568 "type" : "string"
24569 },
24570 "ticket" : {
24571 "type" : "string"
24572 },
24573 "upid" : {
24574 "type" : "string"
24575 }
24576 }
24577 }
24578 }
24579 },
24580 "leaf" : 1,
24581 "path" : "/nodes/{node}/qemu/{vmid}/mtunnel",
24582 "text" : "mtunnel"
24583 },
24584 {
24585 "info" : {
24586 "GET" : {
24587 "allowtoken" : 1,
24588 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
24589 "method" : "GET",
24590 "name" : "mtunnelwebsocket",
24591 "parameters" : {
24592 "additionalProperties" : 0,
24593 "properties" : {
24594 "node" : {
24595 "description" : "The cluster node name.",
24596 "format" : "pve-node",
24597 "type" : "string",
24598 "typetext" : "<string>"
24599 },
24600 "socket" : {
24601 "description" : "unix socket to forward to",
24602 "type" : "string",
24603 "typetext" : "<string>"
24604 },
24605 "ticket" : {
24606 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
24607 "type" : "string",
24608 "typetext" : "<string>"
24609 },
24610 "vmid" : {
24611 "description" : "The (unique) ID of the VM.",
24612 "format" : "pve-vmid",
8dd66e12
TL
24613 "maximum" : 999999999,
24614 "minimum" : 100,
81a3384d 24615 "type" : "integer",
8dd66e12 24616 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
24617 }
24618 }
24619 },
24620 "permissions" : {
24621 "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.",
24622 "user" : "all"
24623 },
24624 "returns" : {
24625 "properties" : {
24626 "port" : {
24627 "optional" : 1,
24628 "type" : "string"
24629 },
24630 "socket" : {
24631 "optional" : 1,
24632 "type" : "string"
24633 }
24634 },
24635 "type" : "object"
24636 }
24637 }
24638 },
24639 "leaf" : 1,
24640 "path" : "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket",
24641 "text" : "mtunnelwebsocket"
56122987
DM
24642 }
24643 ],
7aacca6f 24644 "info" : {
44660702 24645 "DELETE" : {
e9cd3bd4 24646 "allowtoken" : 1,
d2656385 24647 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
24648 "method" : "DELETE",
24649 "name" : "destroy_vm",
7aacca6f 24650 "parameters" : {
44660702 24651 "additionalProperties" : 0,
7aacca6f 24652 "properties" : {
d2656385 24653 "destroy-unreferenced-disks" : {
8f4d9c87 24654 "default" : 0,
d2656385
TL
24655 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
24656 "optional" : 1,
24657 "type" : "boolean",
24658 "typetext" : "<boolean>"
24659 },
7aacca6f 24660 "node" : {
44660702 24661 "description" : "The cluster node name.",
7aacca6f 24662 "format" : "pve-node",
013dc89f
DM
24663 "type" : "string",
24664 "typetext" : "<string>"
44660702 24665 },
1c532546 24666 "purge" : {
d2656385 24667 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
24668 "optional" : 1,
24669 "type" : "boolean",
24670 "typetext" : "<boolean>"
24671 },
44660702
DM
24672 "skiplock" : {
24673 "description" : "Ignore locks - only root is allowed to use this option.",
24674 "optional" : 1,
013dc89f
DM
24675 "type" : "boolean",
24676 "typetext" : "<boolean>"
7aacca6f
DM
24677 },
24678 "vmid" : {
44660702 24679 "description" : "The (unique) ID of the VM.",
7aacca6f 24680 "format" : "pve-vmid",
8dd66e12
TL
24681 "maximum" : 999999999,
24682 "minimum" : 100,
4bd7df8b 24683 "type" : "integer",
8dd66e12 24684 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 24685 }
44660702 24686 }
7aacca6f 24687 },
7aacca6f
DM
24688 "permissions" : {
24689 "check" : [
24690 "perm",
24691 "/vms/{vmid}",
24692 [
24693 "VM.Allocate"
24694 ]
24695 ]
24696 },
44660702
DM
24697 "protected" : 1,
24698 "proxyto" : "node",
7aacca6f
DM
24699 "returns" : {
24700 "type" : "string"
44660702
DM
24701 }
24702 },
24703 "GET" : {
e9cd3bd4 24704 "allowtoken" : 1,
44660702
DM
24705 "description" : "Directory index",
24706 "method" : "GET",
24707 "name" : "vmdiridx",
7aacca6f 24708 "parameters" : {
44660702 24709 "additionalProperties" : 0,
7aacca6f 24710 "properties" : {
7aacca6f 24711 "node" : {
7aacca6f 24712 "description" : "The cluster node name.",
44660702 24713 "format" : "pve-node",
013dc89f
DM
24714 "type" : "string",
24715 "typetext" : "<string>"
44660702
DM
24716 },
24717 "vmid" : {
24718 "description" : "The (unique) ID of the VM.",
24719 "format" : "pve-vmid",
8dd66e12
TL
24720 "maximum" : 999999999,
24721 "minimum" : 100,
4bd7df8b 24722 "type" : "integer",
8dd66e12 24723 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 24724 }
44660702 24725 }
7aacca6f 24726 },
44660702
DM
24727 "permissions" : {
24728 "user" : "all"
24729 },
24730 "proxyto" : "node",
24731 "returns" : {
24732 "items" : {
24733 "properties" : {
24734 "subdir" : {
24735 "type" : "string"
24736 }
24737 },
24738 "type" : "object"
24739 },
24740 "links" : [
24741 {
24742 "href" : "{subdir}",
24743 "rel" : "child"
24744 }
24745 ],
24746 "type" : "array"
24747 }
7aacca6f 24748 }
44660702
DM
24749 },
24750 "leaf" : 0,
24751 "path" : "/nodes/{node}/qemu/{vmid}",
24752 "text" : "{vmid}"
56122987
DM
24753 }
24754 ],
24755 "info" : {
44660702 24756 "GET" : {
e9cd3bd4 24757 "allowtoken" : 1,
44660702
DM
24758 "description" : "Virtual machine index (per node).",
24759 "method" : "GET",
24760 "name" : "vmlist",
56122987 24761 "parameters" : {
44660702 24762 "additionalProperties" : 0,
56122987 24763 "properties" : {
44660702
DM
24764 "full" : {
24765 "description" : "Determine the full status of active VMs.",
56122987 24766 "optional" : 1,
013dc89f
DM
24767 "type" : "boolean",
24768 "typetext" : "<boolean>"
56122987 24769 },
44660702
DM
24770 "node" : {
24771 "description" : "The cluster node name.",
24772 "format" : "pve-node",
013dc89f
DM
24773 "type" : "string",
24774 "typetext" : "<string>"
44660702
DM
24775 }
24776 }
24777 },
24778 "permissions" : {
24779 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
24780 "user" : "all"
24781 },
24782 "protected" : 1,
24783 "proxyto" : "node",
24784 "returns" : {
24785 "items" : {
4d47f125
TL
24786 "properties" : {
24787 "cpus" : {
24788 "description" : "Maximum usable CPUs.",
24789 "optional" : 1,
24790 "type" : "number"
24791 },
95895385
TL
24792 "lock" : {
24793 "description" : "The current config lock, if any.",
24794 "optional" : 1,
24795 "type" : "string"
24796 },
4d47f125
TL
24797 "maxdisk" : {
24798 "description" : "Root disk size in bytes.",
24799 "optional" : 1,
24800 "renderer" : "bytes",
24801 "type" : "integer"
24802 },
24803 "maxmem" : {
24804 "description" : "Maximum memory in bytes.",
24805 "optional" : 1,
24806 "renderer" : "bytes",
24807 "type" : "integer"
24808 },
24809 "name" : {
24810 "description" : "VM name.",
24811 "optional" : 1,
24812 "type" : "string"
24813 },
24814 "pid" : {
24815 "description" : "PID of running qemu process.",
24816 "optional" : 1,
24817 "type" : "integer"
24818 },
24819 "qmpstatus" : {
499c9b7f 24820 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
24821 "optional" : 1,
24822 "type" : "string"
24823 },
d2656385
TL
24824 "running-machine" : {
24825 "description" : "The currently running machine type (if running).",
24826 "optional" : 1,
24827 "type" : "string"
24828 },
24829 "running-qemu" : {
24830 "description" : "The currently running QEMU version (if running).",
24831 "optional" : 1,
24832 "type" : "string"
24833 },
4d47f125 24834 "status" : {
9d2e98ed 24835 "description" : "QEMU process status.",
4d47f125
TL
24836 "enum" : [
24837 "stopped",
24838 "running"
24839 ],
24840 "type" : "string"
24841 },
5c1699e5
TL
24842 "tags" : {
24843 "description" : "The current configured tags, if any",
24844 "optional" : 1,
24845 "type" : "string"
24846 },
4d47f125
TL
24847 "uptime" : {
24848 "description" : "Uptime.",
24849 "optional" : 1,
24850 "renderer" : "duration",
24851 "type" : "integer"
24852 },
24853 "vmid" : {
24854 "description" : "The (unique) ID of the VM.",
24855 "format" : "pve-vmid",
8dd66e12
TL
24856 "maximum" : 999999999,
24857 "minimum" : 100,
4d47f125
TL
24858 "type" : "integer"
24859 }
24860 },
44660702
DM
24861 "type" : "object"
24862 },
24863 "links" : [
24864 {
24865 "href" : "{vmid}",
24866 "rel" : "child"
24867 }
24868 ],
24869 "type" : "array"
24870 }
24871 },
24872 "POST" : {
e9cd3bd4 24873 "allowtoken" : 1,
44660702
DM
24874 "description" : "Create or restore a virtual machine.",
24875 "method" : "POST",
24876 "name" : "create_vm",
24877 "parameters" : {
24878 "additionalProperties" : 0,
24879 "properties" : {
7aacca6f 24880 "acpi" : {
7aacca6f 24881 "default" : 1,
44660702 24882 "description" : "Enable/disable ACPI.",
56122987 24883 "optional" : 1,
013dc89f
DM
24884 "type" : "boolean",
24885 "typetext" : "<boolean>"
56122987 24886 },
4e7f60c2 24887 "affinity" : {
81a3384d 24888 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
24889 "format" : "pve-cpuset",
24890 "optional" : 1,
24891 "type" : "string",
24892 "typetext" : "<string>"
24893 },
44660702 24894 "agent" : {
9d2e98ed 24895 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
24896 "format" : {
24897 "enabled" : {
24898 "default" : 0,
24899 "default_key" : 1,
9d2e98ed
TL
24900 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
24901 "type" : "boolean"
24902 },
24903 "freeze-fs-on-backup" : {
24904 "default" : 1,
24905 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
24906 "optional" : 1,
4d47f125
TL
24907 "type" : "boolean"
24908 },
24909 "fstrim_cloned_disks" : {
24910 "default" : 0,
d2656385 24911 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
24912 "optional" : 1,
24913 "type" : "boolean"
5c1699e5
TL
24914 },
24915 "type" : {
24916 "default" : "virtio",
24917 "description" : "Select the agent type",
24918 "enum" : [
24919 "virtio",
24920 "isa"
24921 ],
24922 "optional" : 1,
24923 "type" : "string"
4d47f125
TL
24924 }
24925 },
7aacca6f 24926 "optional" : 1,
4d47f125 24927 "type" : "string",
9d2e98ed 24928 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 24929 },
e2d681b3
TL
24930 "arch" : {
24931 "description" : "Virtual processor architecture. Defaults to the host.",
24932 "enum" : [
24933 "x86_64",
24934 "aarch64"
24935 ],
24936 "optional" : 1,
24937 "type" : "string"
24938 },
44660702 24939 "archive" : {
c5aa7e14 24940 "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 24941 "maxLength" : 255,
56122987 24942 "optional" : 1,
013dc89f
DM
24943 "type" : "string",
24944 "typetext" : "<string>"
56122987 24945 },
44660702 24946 "args" : {
c2993fe5 24947 "description" : "Arbitrary arguments passed to kvm.",
56122987 24948 "optional" : 1,
c2993fe5 24949 "type" : "string",
013dc89f 24950 "typetext" : "<string>",
159464a9 24951 "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 24952 },
1c532546
TL
24953 "audio0" : {
24954 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
24955 "format" : {
24956 "device" : {
24957 "description" : "Configure an audio device.",
24958 "enum" : [
24959 "ich9-intel-hda",
24960 "intel-hda",
24961 "AC97"
24962 ],
24963 "type" : "string"
24964 },
24965 "driver" : {
24966 "default" : "spice",
24967 "description" : "Driver backend for the audio device.",
24968 "enum" : [
d2656385
TL
24969 "spice",
24970 "none"
1c532546
TL
24971 ],
24972 "optional" : 1,
24973 "type" : "string"
24974 }
24975 },
24976 "optional" : 1,
24977 "type" : "string",
d2656385 24978 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 24979 },
44660702 24980 "autostart" : {
7aacca6f 24981 "default" : 0,
44660702
DM
24982 "description" : "Automatic restart after crash (currently ignored).",
24983 "optional" : 1,
013dc89f
DM
24984 "type" : "boolean",
24985 "typetext" : "<boolean>"
7aacca6f 24986 },
44660702 24987 "balloon" : {
9d2e98ed 24988 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702 24989 "minimum" : 0,
56122987 24990 "optional" : 1,
4bd7df8b 24991 "type" : "integer",
013dc89f 24992 "typetext" : "<integer> (0 - N)"
56122987 24993 },
44660702
DM
24994 "bios" : {
24995 "default" : "seabios",
24996 "description" : "Select BIOS implementation.",
24997 "enum" : [
24998 "seabios",
24999 "ovmf"
25000 ],
56122987 25001 "optional" : 1,
44660702 25002 "type" : "string"
56122987 25003 },
44660702 25004 "boot" : {
5370fa8c 25005 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 25006 "format" : "pve-qm-boot",
56122987 25007 "optional" : 1,
4772952b
TL
25008 "type" : "string",
25009 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 25010 },
7aacca6f 25011 "bootdisk" : {
4772952b 25012 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
25013 "format" : "pve-qm-bootdisk",
25014 "optional" : 1,
7aacca6f 25015 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
25016 "type" : "string"
25017 },
27a7acb2 25018 "bwlimit" : {
95895385
TL
25019 "default" : "restore limit from datacenter or storage config",
25020 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
25021 "minimum" : "0",
25022 "optional" : 1,
25023 "type" : "integer",
25024 "typetext" : "<integer> (0 - N)"
25025 },
44660702
DM
25026 "cdrom" : {
25027 "description" : "This is an alias for option -ide2",
de0983cb 25028 "format" : "pve-qm-ide",
56122987 25029 "optional" : 1,
44660702 25030 "type" : "string",
013dc89f 25031 "typetext" : "<volume>"
56122987 25032 },
95895385
TL
25033 "cicustom" : {
25034 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
25035 "format" : "pve-qm-cicustom",
25036 "optional" : 1,
25037 "type" : "string",
5370fa8c 25038 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 25039 },
27a7acb2
DM
25040 "cipassword" : {
25041 "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.",
25042 "optional" : 1,
25043 "type" : "string",
25044 "typetext" : "<string>"
25045 },
25046 "citype" : {
25047 "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.",
25048 "enum" : [
25049 "configdrive2",
d2656385
TL
25050 "nocloud",
25051 "opennebula"
27a7acb2
DM
25052 ],
25053 "optional" : 1,
25054 "type" : "string"
25055 },
159464a9
TL
25056 "ciupgrade" : {
25057 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
25058 "optional" : 1,
25059 "type" : "boolean",
25060 "typetext" : "<boolean>"
25061 },
27a7acb2
DM
25062 "ciuser" : {
25063 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
25064 "optional" : 1,
25065 "type" : "string",
25066 "typetext" : "<string>"
25067 },
44660702
DM
25068 "cores" : {
25069 "default" : 1,
25070 "description" : "The number of cores per socket.",
7aacca6f 25071 "minimum" : 1,
44660702 25072 "optional" : 1,
4bd7df8b 25073 "type" : "integer",
013dc89f 25074 "typetext" : "<integer> (1 - N)"
7aacca6f 25075 },
44660702
DM
25076 "cpu" : {
25077 "description" : "Emulated CPU type.",
c5aa7e14 25078 "format" : "pve-vm-cpu-conf",
56122987 25079 "optional" : 1,
4bd7df8b 25080 "type" : "string",
04d22a9f 25081 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 25082 },
44660702 25083 "cpulimit" : {
7aacca6f 25084 "default" : 0,
c2993fe5 25085 "description" : "Limit of CPU usage.",
44660702
DM
25086 "maximum" : 128,
25087 "minimum" : 0,
7aacca6f 25088 "optional" : 1,
c2993fe5 25089 "type" : "number",
013dc89f 25090 "typetext" : "<number> (0 - 128)",
c2993fe5 25091 "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
25092 },
25093 "cpuunits" : {
5370fa8c
TL
25094 "default" : "cgroup v1: 1024, cgroup v2: 100",
25095 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 25096 "maximum" : 262144,
7af2edf9 25097 "minimum" : 1,
44660702 25098 "optional" : 1,
c2993fe5 25099 "type" : "integer",
7af2edf9 25100 "typetext" : "<integer> (1 - 262144)",
2489d6df 25101 "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
25102 },
25103 "description" : {
8f4d9c87
TL
25104 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
25105 "maxLength" : 8192,
56122987 25106 "optional" : 1,
013dc89f
DM
25107 "type" : "string",
25108 "typetext" : "<string>"
44660702 25109 },
4d47f125 25110 "efidisk0" : {
9d2e98ed 25111 "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 25112 "format" : {
5370fa8c
TL
25113 "efitype" : {
25114 "default" : "2m",
9d2e98ed 25115 "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
25116 "enum" : [
25117 "2m",
25118 "4m"
25119 ],
25120 "optional" : 1,
25121 "type" : "string"
25122 },
4d47f125
TL
25123 "file" : {
25124 "default_key" : 1,
25125 "description" : "The drive's backing volume.",
25126 "format" : "pve-volume-id-or-qm-path",
25127 "format_description" : "volume",
25128 "type" : "string"
25129 },
25130 "format" : {
25131 "description" : "The drive's backing file's data format.",
25132 "enum" : [
25133 "raw",
25134 "cow",
25135 "qcow",
25136 "qed",
25137 "qcow2",
25138 "vmdk",
25139 "cloop"
25140 ],
25141 "optional" : 1,
25142 "type" : "string"
25143 },
7af2edf9
TL
25144 "import-from" : {
25145 "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!",
25146 "format" : "pve-volume-id-or-absolute-path",
25147 "format_description" : "source volume",
25148 "optional" : 1,
25149 "type" : "string"
25150 },
5370fa8c
TL
25151 "pre-enrolled-keys" : {
25152 "default" : 0,
25153 "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.",
25154 "optional" : 1,
25155 "type" : "boolean"
25156 },
4d47f125
TL
25157 "size" : {
25158 "description" : "Disk size. This is purely informational and has no effect.",
25159 "format" : "disk-size",
25160 "format_description" : "DiskSize",
25161 "optional" : 1,
25162 "type" : "string"
25163 },
25164 "volume" : {
25165 "alias" : "file"
25166 }
25167 },
25168 "optional" : 1,
25169 "type" : "string",
7af2edf9 25170 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 25171 },
44660702
DM
25172 "force" : {
25173 "description" : "Allow to overwrite existing VM.",
25174 "optional" : 1,
25175 "requires" : "archive",
013dc89f
DM
25176 "type" : "boolean",
25177 "typetext" : "<boolean>"
44660702
DM
25178 },
25179 "freeze" : {
25180 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
25181 "optional" : 1,
013dc89f
DM
25182 "type" : "boolean",
25183 "typetext" : "<boolean>"
44660702 25184 },
5f26e15b
TL
25185 "hookscript" : {
25186 "description" : "Script that will be executed during various steps in the vms lifetime.",
25187 "format" : "pve-volume-id",
25188 "optional" : 1,
25189 "type" : "string",
25190 "typetext" : "<string>"
25191 },
44660702 25192 "hostpci[n]" : {
c2993fe5 25193 "description" : "Map host PCI devices into guest.",
44660702
DM
25194 "format" : "pve-qm-hostpci",
25195 "optional" : 1,
57b78691 25196 "type" : "string",
499c9b7f 25197 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 25198 "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
25199 },
25200 "hotplug" : {
25201 "default" : "network,disk,usb",
4e7f60c2 25202 "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
25203 "format" : "pve-hotplug-features",
25204 "optional" : 1,
013dc89f
DM
25205 "type" : "string",
25206 "typetext" : "<string>"
7aacca6f 25207 },
4bd7df8b
DM
25208 "hugepages" : {
25209 "description" : "Enable/disable hugepages memory.",
25210 "enum" : [
25211 "any",
25212 "2",
25213 "1024"
25214 ],
25215 "optional" : 1,
25216 "type" : "string"
25217 },
7aacca6f 25218 "ide[n]" : {
7af2edf9 25219 "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 25220 "format" : {
44660702
DM
25221 "aio" : {
25222 "description" : "AIO type to use.",
25223 "enum" : [
25224 "native",
8f4d9c87
TL
25225 "threads",
25226 "io_uring"
44660702 25227 ],
44660702
DM
25228 "optional" : 1,
25229 "type" : "string"
25230 },
25231 "backup" : {
25232 "description" : "Whether the drive should be included when making backups.",
44660702
DM
25233 "optional" : 1,
25234 "type" : "boolean"
25235 },
25236 "bps" : {
de0983cb 25237 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 25238 "format_description" : "bps",
56122987 25239 "optional" : 1,
44660702 25240 "type" : "integer"
56122987 25241 },
de0983cb
DM
25242 "bps_max_length" : {
25243 "description" : "Maximum length of I/O bursts in seconds.",
25244 "format_description" : "seconds",
25245 "minimum" : 1,
25246 "optional" : 1,
25247 "type" : "integer"
25248 },
44660702 25249 "bps_rd" : {
de0983cb 25250 "description" : "Maximum read speed in bytes per second.",
44660702 25251 "format_description" : "bps",
56122987 25252 "optional" : 1,
44660702 25253 "type" : "integer"
56122987 25254 },
de0983cb 25255 "bps_rd_length" : {
5d9c884c
DM
25256 "alias" : "bps_rd_max_length"
25257 },
25258 "bps_rd_max_length" : {
de0983cb
DM
25259 "description" : "Maximum length of read I/O bursts in seconds.",
25260 "format_description" : "seconds",
25261 "minimum" : 1,
25262 "optional" : 1,
25263 "type" : "integer"
25264 },
44660702 25265 "bps_wr" : {
de0983cb 25266 "description" : "Maximum write speed in bytes per second.",
44660702 25267 "format_description" : "bps",
56122987 25268 "optional" : 1,
44660702 25269 "type" : "integer"
56122987 25270 },
de0983cb 25271 "bps_wr_length" : {
5d9c884c
DM
25272 "alias" : "bps_wr_max_length"
25273 },
25274 "bps_wr_max_length" : {
de0983cb
DM
25275 "description" : "Maximum length of write I/O bursts in seconds.",
25276 "format_description" : "seconds",
25277 "minimum" : 1,
25278 "optional" : 1,
25279 "type" : "integer"
25280 },
44660702
DM
25281 "cache" : {
25282 "description" : "The drive's cache mode",
56122987 25283 "enum" : [
7aacca6f 25284 "none",
44660702
DM
25285 "writethrough",
25286 "writeback",
25287 "unsafe",
25288 "directsync"
56122987 25289 ],
56122987 25290 "optional" : 1,
44660702 25291 "type" : "string"
56122987 25292 },
44660702
DM
25293 "cyls" : {
25294 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
25295 "optional" : 1,
25296 "type" : "integer"
7aacca6f 25297 },
44660702
DM
25298 "detect_zeroes" : {
25299 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 25300 "optional" : 1,
44660702 25301 "type" : "boolean"
56122987 25302 },
44660702
DM
25303 "discard" : {
25304 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
25305 "enum" : [
25306 "ignore",
25307 "on"
25308 ],
56122987 25309 "optional" : 1,
44660702 25310 "type" : "string"
56122987 25311 },
7aacca6f 25312 "file" : {
44660702 25313 "default_key" : 1,
7aacca6f 25314 "description" : "The drive's backing volume.",
7aacca6f
DM
25315 "format" : "pve-volume-id-or-qm-path",
25316 "format_description" : "volume",
7aacca6f 25317 "type" : "string"
56122987 25318 },
44660702
DM
25319 "format" : {
25320 "description" : "The drive's backing file's data format.",
56122987 25321 "enum" : [
44660702
DM
25322 "raw",
25323 "cow",
25324 "qcow",
25325 "qed",
25326 "qcow2",
25327 "vmdk",
25328 "cloop"
7aacca6f 25329 ],
7aacca6f
DM
25330 "optional" : 1,
25331 "type" : "string"
56122987 25332 },
44660702
DM
25333 "heads" : {
25334 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 25335 "optional" : 1,
44660702 25336 "type" : "integer"
56122987 25337 },
7af2edf9
TL
25338 "import-from" : {
25339 "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!",
25340 "format" : "pve-volume-id-or-absolute-path",
25341 "format_description" : "source volume",
25342 "optional" : 1,
25343 "type" : "string"
25344 },
44660702 25345 "iops" : {
de0983cb 25346 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 25347 "format_description" : "iops",
56122987 25348 "optional" : 1,
44660702 25349 "type" : "integer"
56122987 25350 },
44660702 25351 "iops_max" : {
de0983cb 25352 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 25353 "format_description" : "iops",
56122987 25354 "optional" : 1,
44660702 25355 "type" : "integer"
56122987 25356 },
de0983cb
DM
25357 "iops_max_length" : {
25358 "description" : "Maximum length of I/O bursts in seconds.",
25359 "format_description" : "seconds",
25360 "minimum" : 1,
25361 "optional" : 1,
25362 "type" : "integer"
25363 },
7aacca6f 25364 "iops_rd" : {
de0983cb 25365 "description" : "Maximum read I/O in operations per second.",
44660702
DM
25366 "format_description" : "iops",
25367 "optional" : 1,
25368 "type" : "integer"
7aacca6f 25369 },
de0983cb 25370 "iops_rd_length" : {
5d9c884c 25371 "alias" : "iops_rd_max_length"
de0983cb 25372 },
44660702 25373 "iops_rd_max" : {
de0983cb 25374 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 25375 "format_description" : "iops",
56122987 25376 "optional" : 1,
44660702 25377 "type" : "integer"
56122987 25378 },
5d9c884c
DM
25379 "iops_rd_max_length" : {
25380 "description" : "Maximum length of read I/O bursts in seconds.",
25381 "format_description" : "seconds",
25382 "minimum" : 1,
25383 "optional" : 1,
25384 "type" : "integer"
25385 },
44660702 25386 "iops_wr" : {
de0983cb 25387 "description" : "Maximum write I/O in operations per second.",
44660702 25388 "format_description" : "iops",
56122987 25389 "optional" : 1,
44660702 25390 "type" : "integer"
7aacca6f 25391 },
de0983cb 25392 "iops_wr_length" : {
5d9c884c 25393 "alias" : "iops_wr_max_length"
de0983cb 25394 },
44660702 25395 "iops_wr_max" : {
de0983cb 25396 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 25397 "format_description" : "iops",
7aacca6f 25398 "optional" : 1,
44660702 25399 "type" : "integer"
56122987 25400 },
5d9c884c
DM
25401 "iops_wr_max_length" : {
25402 "description" : "Maximum length of write I/O bursts in seconds.",
25403 "format_description" : "seconds",
25404 "minimum" : 1,
25405 "optional" : 1,
25406 "type" : "integer"
25407 },
44660702 25408 "mbps" : {
de0983cb 25409 "description" : "Maximum r/w speed in megabytes per second.",
44660702 25410 "format_description" : "mbps",
7aacca6f 25411 "optional" : 1,
44660702 25412 "type" : "number"
56122987 25413 },
44660702 25414 "mbps_max" : {
de0983cb 25415 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 25416 "format_description" : "mbps",
56122987 25417 "optional" : 1,
44660702 25418 "type" : "number"
56122987 25419 },
44660702 25420 "mbps_rd" : {
de0983cb 25421 "description" : "Maximum read speed in megabytes per second.",
44660702 25422 "format_description" : "mbps",
7aacca6f 25423 "optional" : 1,
44660702 25424 "type" : "number"
7aacca6f 25425 },
44660702 25426 "mbps_rd_max" : {
de0983cb 25427 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 25428 "format_description" : "mbps",
56122987 25429 "optional" : 1,
44660702 25430 "type" : "number"
56122987 25431 },
44660702 25432 "mbps_wr" : {
de0983cb 25433 "description" : "Maximum write speed in megabytes per second.",
44660702 25434 "format_description" : "mbps",
7aacca6f 25435 "optional" : 1,
44660702 25436 "type" : "number"
56122987 25437 },
44660702 25438 "mbps_wr_max" : {
de0983cb 25439 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 25440 "format_description" : "mbps",
56122987 25441 "optional" : 1,
44660702 25442 "type" : "number"
7aacca6f
DM
25443 },
25444 "media" : {
44660702
DM
25445 "default" : "disk",
25446 "description" : "The drive's media type.",
56122987 25447 "enum" : [
7aacca6f
DM
25448 "cdrom",
25449 "disk"
56122987 25450 ],
56122987 25451 "optional" : 1,
44660702 25452 "type" : "string"
56122987 25453 },
44660702
DM
25454 "model" : {
25455 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
25456 "format" : "urlencoded",
25457 "format_description" : "model",
25458 "maxLength" : 120,
56122987 25459 "optional" : 1,
44660702 25460 "type" : "string"
56122987 25461 },
5d9c884c
DM
25462 "replicate" : {
25463 "default" : 1,
25464 "description" : "Whether the drive should considered for replication jobs.",
25465 "optional" : 1,
25466 "type" : "boolean"
25467 },
7aacca6f 25468 "rerror" : {
7aacca6f
DM
25469 "description" : "Read error action.",
25470 "enum" : [
25471 "ignore",
25472 "report",
25473 "stop"
44660702 25474 ],
44660702
DM
25475 "optional" : 1,
25476 "type" : "string"
56122987 25477 },
44660702
DM
25478 "secs" : {
25479 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 25480 "optional" : 1,
44660702
DM
25481 "type" : "integer"
25482 },
25483 "serial" : {
25484 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
25485 "format" : "urlencoded",
25486 "format_description" : "serial",
25487 "maxLength" : 60,
25488 "optional" : 1,
25489 "type" : "string"
25490 },
27a7acb2
DM
25491 "shared" : {
25492 "default" : 0,
25493 "description" : "Mark this locally-managed volume as available on all nodes",
25494 "optional" : 1,
25495 "type" : "boolean",
25496 "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!"
25497 },
44660702
DM
25498 "size" : {
25499 "description" : "Disk size. This is purely informational and has no effect.",
25500 "format" : "disk-size",
f004f5b9 25501 "format_description" : "DiskSize",
44660702
DM
25502 "optional" : 1,
25503 "type" : "string"
7aacca6f
DM
25504 },
25505 "snapshot" : {
27a7acb2 25506 "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 25507 "optional" : 1,
44660702 25508 "type" : "boolean"
7aacca6f 25509 },
25203dc1
NC
25510 "ssd" : {
25511 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
25512 "optional" : 1,
25513 "type" : "boolean"
25514 },
44660702
DM
25515 "trans" : {
25516 "description" : "Force disk geometry bios translation mode.",
25517 "enum" : [
25518 "none",
25519 "lba",
25520 "auto"
25521 ],
7aacca6f 25522 "optional" : 1,
44660702
DM
25523 "type" : "string"
25524 },
25525 "volume" : {
25526 "alias" : "file"
25527 },
25528 "werror" : {
25529 "description" : "Write error action.",
25530 "enum" : [
25531 "enospc",
25532 "ignore",
25533 "report",
25534 "stop"
25535 ],
44660702
DM
25536 "optional" : 1,
25537 "type" : "string"
95895385
TL
25538 },
25539 "wwn" : {
25540 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
25541 "format_description" : "wwn",
25542 "optional" : 1,
25543 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
25544 "type" : "string"
56122987
DM
25545 }
25546 },
56122987 25547 "optional" : 1,
4bd7df8b 25548 "type" : "string",
7af2edf9 25549 "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
25550 },
25551 "ipconfig[n]" : {
d2656385 25552 "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
25553 "format" : "pve-qm-ipconfig",
25554 "optional" : 1,
25555 "type" : "string",
25556 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 25557 },
95895385
TL
25558 "ivshmem" : {
25559 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
25560 "format" : {
25561 "name" : {
25562 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
25563 "format_description" : "string",
25564 "optional" : 1,
25565 "pattern" : "[a-zA-Z0-9\\-]+",
25566 "type" : "string"
25567 },
25568 "size" : {
25569 "description" : "The size of the file in MB.",
25570 "minimum" : 1,
25571 "type" : "integer"
25572 }
25573 },
25574 "optional" : 1,
25575 "type" : "string",
25576 "typetext" : "size=<integer> [,name=<string>]"
25577 },
4772952b
TL
25578 "keephugepages" : {
25579 "default" : 0,
25580 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
25581 "optional" : 1,
25582 "type" : "boolean",
25583 "typetext" : "<boolean>"
25584 },
56122987 25585 "keyboard" : {
35a75dd3 25586 "default" : null,
7af2edf9 25587 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 25588 "enum" : [
44660702
DM
25589 "de",
25590 "de-ch",
7aacca6f 25591 "da",
56122987 25592 "en-gb",
44660702
DM
25593 "en-us",
25594 "es",
25595 "fi",
25596 "fr",
25597 "fr-be",
25598 "fr-ca",
25599 "fr-ch",
25600 "hu",
7aacca6f 25601 "is",
44660702
DM
25602 "it",
25603 "ja",
25604 "lt",
56122987 25605 "mk",
7aacca6f 25606 "nl",
56122987 25607 "no",
44660702 25608 "pl",
7aacca6f 25609 "pt",
44660702
DM
25610 "pt-br",
25611 "sv",
25612 "sl",
25613 "tr"
56122987 25614 ],
44660702
DM
25615 "optional" : 1,
25616 "type" : "string"
56122987 25617 },
44660702
DM
25618 "kvm" : {
25619 "default" : 1,
25620 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 25621 "optional" : 1,
013dc89f
DM
25622 "type" : "boolean",
25623 "typetext" : "<boolean>"
7aacca6f 25624 },
d2656385
TL
25625 "live-restore" : {
25626 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
25627 "optional" : 1,
25628 "requires" : "archive",
25629 "type" : "boolean",
25630 "typetext" : "<boolean>"
25631 },
44660702 25632 "localtime" : {
5370fa8c 25633 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 25634 "optional" : 1,
013dc89f
DM
25635 "type" : "boolean",
25636 "typetext" : "<boolean>"
44660702
DM
25637 },
25638 "lock" : {
25639 "description" : "Lock/unlock the VM.",
7aacca6f 25640 "enum" : [
7aacca6f 25641 "backup",
5f26e15b
TL
25642 "clone",
25643 "create",
25644 "migrate",
25645 "rollback",
7aacca6f 25646 "snapshot",
95895385
TL
25647 "snapshot-delete",
25648 "suspending",
25649 "suspended"
7aacca6f 25650 ],
44660702
DM
25651 "optional" : 1,
25652 "type" : "string"
56122987 25653 },
44660702 25654 "machine" : {
9d2e98ed 25655 "description" : "Specifies the QEMU machine type.",
44660702
DM
25656 "maxLength" : 40,
25657 "optional" : 1,
5c1699e5 25658 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
25659 "type" : "string"
25660 },
25661 "memory" : {
25662 "default" : 512,
9d2e98ed 25663 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702
DM
25664 "minimum" : 16,
25665 "optional" : 1,
4bd7df8b 25666 "type" : "integer",
013dc89f 25667 "typetext" : "<integer> (16 - N)"
44660702
DM
25668 },
25669 "migrate_downtime" : {
25670 "default" : 0.1,
25671 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
25672 "minimum" : 0,
25673 "optional" : 1,
4bd7df8b 25674 "type" : "number",
013dc89f 25675 "typetext" : "<number> (0 - N)"
44660702
DM
25676 },
25677 "migrate_speed" : {
56122987 25678 "default" : 0,
44660702
DM
25679 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
25680 "minimum" : 0,
56122987 25681 "optional" : 1,
4bd7df8b 25682 "type" : "integer",
013dc89f 25683 "typetext" : "<integer> (0 - N)"
56122987 25684 },
27a7acb2
DM
25685 "name" : {
25686 "description" : "Set a name for the VM. Only used on the configuration web interface.",
25687 "format" : "dns-name",
25688 "optional" : 1,
25689 "type" : "string",
25690 "typetext" : "<string>"
25691 },
25692 "nameserver" : {
de786b48 25693 "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 25694 "format" : "address-list",
44660702 25695 "optional" : 1,
013dc89f
DM
25696 "type" : "string",
25697 "typetext" : "<string>"
44660702
DM
25698 },
25699 "net[n]" : {
c2993fe5 25700 "description" : "Specify network devices.",
f004f5b9
DM
25701 "format" : {
25702 "bridge" : {
c2993fe5 25703 "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 25704 "format" : "pve-bridge-id",
f004f5b9
DM
25705 "format_description" : "bridge",
25706 "optional" : 1,
25707 "type" : "string"
25708 },
25709 "e1000" : {
25710 "alias" : "macaddr",
25711 "keyAlias" : "model"
25712 },
25713 "e1000-82540em" : {
25714 "alias" : "macaddr",
25715 "keyAlias" : "model"
25716 },
25717 "e1000-82544gc" : {
25718 "alias" : "macaddr",
25719 "keyAlias" : "model"
25720 },
25721 "e1000-82545em" : {
25722 "alias" : "macaddr",
25723 "keyAlias" : "model"
25724 },
5370fa8c
TL
25725 "e1000e" : {
25726 "alias" : "macaddr",
25727 "keyAlias" : "model"
25728 },
f004f5b9
DM
25729 "firewall" : {
25730 "description" : "Whether this interface should be protected by the firewall.",
25731 "optional" : 1,
25732 "type" : "boolean"
25733 },
25734 "i82551" : {
25735 "alias" : "macaddr",
25736 "keyAlias" : "model"
25737 },
25738 "i82557b" : {
25739 "alias" : "macaddr",
25740 "keyAlias" : "model"
25741 },
25742 "i82559er" : {
25743 "alias" : "macaddr",
25744 "keyAlias" : "model"
25745 },
25746 "link_down" : {
c2993fe5 25747 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
25748 "optional" : 1,
25749 "type" : "boolean"
25750 },
25751 "macaddr" : {
c2993fe5 25752 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 25753 "format" : "mac-addr",
f004f5b9 25754 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 25755 "optional" : 1,
95895385
TL
25756 "type" : "string",
25757 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
25758 },
25759 "model" : {
25760 "default_key" : 1,
c2993fe5 25761 "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 25762 "enum" : [
f004f5b9 25763 "e1000",
5370fa8c
TL
25764 "e1000-82540em",
25765 "e1000-82544gc",
25766 "e1000-82545em",
25767 "e1000e",
f004f5b9
DM
25768 "i82551",
25769 "i82557b",
25770 "i82559er",
5370fa8c
TL
25771 "ne2k_isa",
25772 "ne2k_pci",
25773 "pcnet",
25774 "rtl8139",
25775 "virtio",
25776 "vmxnet3"
f004f5b9 25777 ],
f004f5b9
DM
25778 "type" : "string"
25779 },
ac70d7d1
TL
25780 "mtu" : {
25781 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
25782 "maximum" : 65520,
25783 "minimum" : 1,
25784 "optional" : 1,
25785 "type" : "integer"
25786 },
f004f5b9
DM
25787 "ne2k_isa" : {
25788 "alias" : "macaddr",
25789 "keyAlias" : "model"
25790 },
25791 "ne2k_pci" : {
25792 "alias" : "macaddr",
25793 "keyAlias" : "model"
25794 },
25795 "pcnet" : {
25796 "alias" : "macaddr",
25797 "keyAlias" : "model"
25798 },
25799 "queues" : {
25800 "description" : "Number of packet queues to be used on the device.",
81a3384d 25801 "maximum" : 64,
f004f5b9
DM
25802 "minimum" : 0,
25803 "optional" : 1,
25804 "type" : "integer"
25805 },
25806 "rate" : {
c2993fe5 25807 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
25808 "minimum" : 0,
25809 "optional" : 1,
25810 "type" : "number"
25811 },
25812 "rtl8139" : {
25813 "alias" : "macaddr",
25814 "keyAlias" : "model"
25815 },
25816 "tag" : {
25817 "description" : "VLAN tag to apply to packets on this interface.",
25818 "maximum" : 4094,
c2993fe5 25819 "minimum" : 1,
f004f5b9
DM
25820 "optional" : 1,
25821 "type" : "integer"
25822 },
25823 "trunks" : {
25824 "description" : "VLAN trunks to pass through this interface.",
25825 "format_description" : "vlanid[;vlanid...]",
25826 "optional" : 1,
25827 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
25828 "type" : "string"
25829 },
25830 "virtio" : {
25831 "alias" : "macaddr",
25832 "keyAlias" : "model"
25833 },
25834 "vmxnet3" : {
25835 "alias" : "macaddr",
25836 "keyAlias" : "model"
25837 }
25838 },
44660702 25839 "optional" : 1,
4bd7df8b 25840 "type" : "string",
ac70d7d1 25841 "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
25842 },
25843 "node" : {
25844 "description" : "The cluster node name.",
25845 "format" : "pve-node",
013dc89f
DM
25846 "type" : "string",
25847 "typetext" : "<string>"
44660702
DM
25848 },
25849 "numa" : {
7aacca6f 25850 "default" : 0,
44660702
DM
25851 "description" : "Enable/disable NUMA.",
25852 "optional" : 1,
013dc89f
DM
25853 "type" : "boolean",
25854 "typetext" : "<boolean>"
56122987 25855 },
7aacca6f 25856 "numa[n]" : {
c2993fe5 25857 "description" : "NUMA topology.",
7aacca6f 25858 "format" : {
44660702 25859 "cpus" : {
c2993fe5 25860 "description" : "CPUs accessing this NUMA node.",
44660702
DM
25861 "format_description" : "id[-id];...",
25862 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
25863 "type" : "string"
25864 },
7aacca6f 25865 "hostnodes" : {
c2993fe5 25866 "description" : "Host NUMA nodes to use.",
44660702 25867 "format_description" : "id[-id];...",
7aacca6f 25868 "optional" : 1,
44660702
DM
25869 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
25870 "type" : "string"
7aacca6f 25871 },
44660702 25872 "memory" : {
c2993fe5 25873 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
25874 "optional" : 1,
25875 "type" : "number"
7aacca6f
DM
25876 },
25877 "policy" : {
c2993fe5 25878 "description" : "NUMA allocation policy.",
7aacca6f
DM
25879 "enum" : [
25880 "preferred",
25881 "bind",
25882 "interleave"
25883 ],
7aacca6f 25884 "optional" : 1,
44660702 25885 "type" : "string"
7aacca6f
DM
25886 }
25887 },
56122987 25888 "optional" : 1,
4bd7df8b
DM
25889 "type" : "string",
25890 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 25891 },
44660702
DM
25892 "onboot" : {
25893 "default" : 0,
25894 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 25895 "optional" : 1,
013dc89f
DM
25896 "type" : "boolean",
25897 "typetext" : "<boolean>"
56122987
DM
25898 },
25899 "ostype" : {
c2993fe5 25900 "description" : "Specify guest operating system.",
56122987
DM
25901 "enum" : [
25902 "other",
25903 "wxp",
25904 "w2k",
25905 "w2k3",
25906 "w2k8",
25907 "wvista",
25908 "win7",
25909 "win8",
32d876b5 25910 "win10",
5370fa8c 25911 "win11",
56122987
DM
25912 "l24",
25913 "l26",
25914 "solaris"
44660702 25915 ],
56122987 25916 "optional" : 1,
c2993fe5 25917 "type" : "string",
9d2e98ed 25918 "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 25919 },
44660702 25920 "parallel[n]" : {
c2993fe5 25921 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 25922 "optional" : 1,
44660702 25923 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 25924 "type" : "string",
4772952b 25925 "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 25926 },
44660702
DM
25927 "pool" : {
25928 "description" : "Add the VM to the specified pool.",
25929 "format" : "pve-poolid",
56122987 25930 "optional" : 1,
013dc89f
DM
25931 "type" : "string",
25932 "typetext" : "<string>"
56122987 25933 },
44660702
DM
25934 "protection" : {
25935 "default" : 0,
c2993fe5 25936 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 25937 "optional" : 1,
013dc89f
DM
25938 "type" : "boolean",
25939 "typetext" : "<boolean>"
56122987 25940 },
44660702 25941 "reboot" : {
7aacca6f 25942 "default" : 1,
44660702
DM
25943 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
25944 "optional" : 1,
013dc89f
DM
25945 "type" : "boolean",
25946 "typetext" : "<boolean>"
56122987 25947 },
c5aa7e14
TL
25948 "rng0" : {
25949 "description" : "Configure a VirtIO-based Random Number Generator.",
25950 "format" : {
25951 "max_bytes" : {
25952 "default" : 1024,
5370fa8c 25953 "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
25954 "optional" : 1,
25955 "type" : "integer"
25956 },
25957 "period" : {
25958 "default" : 1000,
25959 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
25960 "optional" : 1,
25961 "type" : "integer"
25962 },
25963 "source" : {
25964 "default_key" : 1,
5370fa8c 25965 "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
25966 "enum" : [
25967 "/dev/urandom",
25968 "/dev/random",
25969 "/dev/hwrng"
25970 ],
25971 "type" : "string"
25972 }
25973 },
25974 "optional" : 1,
25975 "type" : "string",
25976 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
25977 },
56122987 25978 "sata[n]" : {
7af2edf9 25979 "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 25980 "format" : {
7aacca6f 25981 "aio" : {
44660702 25982 "description" : "AIO type to use.",
56122987 25983 "enum" : [
7aacca6f 25984 "native",
8f4d9c87
TL
25985 "threads",
25986 "io_uring"
56122987 25987 ],
7aacca6f 25988 "optional" : 1,
44660702 25989 "type" : "string"
7aacca6f
DM
25990 },
25991 "backup" : {
7aacca6f 25992 "description" : "Whether the drive should be included when making backups.",
7aacca6f 25993 "optional" : 1,
44660702 25994 "type" : "boolean"
56122987 25995 },
44660702 25996 "bps" : {
de0983cb 25997 "description" : "Maximum r/w speed in bytes per second.",
44660702 25998 "format_description" : "bps",
7aacca6f 25999 "optional" : 1,
44660702 26000 "type" : "integer"
56122987 26001 },
de0983cb
DM
26002 "bps_max_length" : {
26003 "description" : "Maximum length of I/O bursts in seconds.",
26004 "format_description" : "seconds",
26005 "minimum" : 1,
26006 "optional" : 1,
26007 "type" : "integer"
26008 },
44660702 26009 "bps_rd" : {
de0983cb 26010 "description" : "Maximum read speed in bytes per second.",
44660702 26011 "format_description" : "bps",
56122987 26012 "optional" : 1,
44660702 26013 "type" : "integer"
7aacca6f 26014 },
de0983cb 26015 "bps_rd_length" : {
5d9c884c
DM
26016 "alias" : "bps_rd_max_length"
26017 },
26018 "bps_rd_max_length" : {
de0983cb
DM
26019 "description" : "Maximum length of read I/O bursts in seconds.",
26020 "format_description" : "seconds",
26021 "minimum" : 1,
26022 "optional" : 1,
26023 "type" : "integer"
26024 },
44660702 26025 "bps_wr" : {
de0983cb 26026 "description" : "Maximum write speed in bytes per second.",
44660702 26027 "format_description" : "bps",
56122987 26028 "optional" : 1,
44660702 26029 "type" : "integer"
56122987 26030 },
de0983cb 26031 "bps_wr_length" : {
5d9c884c
DM
26032 "alias" : "bps_wr_max_length"
26033 },
26034 "bps_wr_max_length" : {
de0983cb
DM
26035 "description" : "Maximum length of write I/O bursts in seconds.",
26036 "format_description" : "seconds",
26037 "minimum" : 1,
26038 "optional" : 1,
26039 "type" : "integer"
26040 },
7aacca6f 26041 "cache" : {
7aacca6f
DM
26042 "description" : "The drive's cache mode",
26043 "enum" : [
26044 "none",
26045 "writethrough",
26046 "writeback",
26047 "unsafe",
26048 "directsync"
26049 ],
44660702
DM
26050 "optional" : 1,
26051 "type" : "string"
56122987 26052 },
44660702
DM
26053 "cyls" : {
26054 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 26055 "optional" : 1,
7aacca6f 26056 "type" : "integer"
56122987 26057 },
7aacca6f
DM
26058 "detect_zeroes" : {
26059 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 26060 "optional" : 1,
7aacca6f 26061 "type" : "boolean"
56122987 26062 },
44660702
DM
26063 "discard" : {
26064 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
26065 "enum" : [
26066 "ignore",
26067 "on"
26068 ],
56122987 26069 "optional" : 1,
44660702 26070 "type" : "string"
56122987 26071 },
44660702
DM
26072 "file" : {
26073 "default_key" : 1,
26074 "description" : "The drive's backing volume.",
26075 "format" : "pve-volume-id-or-qm-path",
26076 "format_description" : "volume",
26077 "type" : "string"
56122987
DM
26078 },
26079 "format" : {
44660702 26080 "description" : "The drive's backing file's data format.",
56122987
DM
26081 "enum" : [
26082 "raw",
26083 "cow",
26084 "qcow",
26085 "qed",
26086 "qcow2",
26087 "vmdk",
26088 "cloop"
26089 ],
56122987 26090 "optional" : 1,
44660702 26091 "type" : "string"
56122987 26092 },
7aacca6f 26093 "heads" : {
7aacca6f 26094 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
26095 "optional" : 1,
26096 "type" : "integer"
56122987 26097 },
7af2edf9
TL
26098 "import-from" : {
26099 "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!",
26100 "format" : "pve-volume-id-or-absolute-path",
26101 "format_description" : "source volume",
26102 "optional" : 1,
26103 "type" : "string"
26104 },
44660702 26105 "iops" : {
de0983cb 26106 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
26107 "format_description" : "iops",
26108 "optional" : 1,
26109 "type" : "integer"
56122987 26110 },
44660702 26111 "iops_max" : {
de0983cb 26112 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 26113 "format_description" : "iops",
56122987 26114 "optional" : 1,
44660702 26115 "type" : "integer"
56122987 26116 },
de0983cb
DM
26117 "iops_max_length" : {
26118 "description" : "Maximum length of I/O bursts in seconds.",
26119 "format_description" : "seconds",
26120 "minimum" : 1,
26121 "optional" : 1,
26122 "type" : "integer"
26123 },
44660702 26124 "iops_rd" : {
de0983cb 26125 "description" : "Maximum read I/O in operations per second.",
44660702 26126 "format_description" : "iops",
56122987 26127 "optional" : 1,
44660702 26128 "type" : "integer"
56122987 26129 },
de0983cb 26130 "iops_rd_length" : {
5d9c884c 26131 "alias" : "iops_rd_max_length"
de0983cb 26132 },
44660702 26133 "iops_rd_max" : {
de0983cb 26134 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 26135 "format_description" : "iops",
56122987 26136 "optional" : 1,
44660702 26137 "type" : "integer"
56122987 26138 },
5d9c884c
DM
26139 "iops_rd_max_length" : {
26140 "description" : "Maximum length of read I/O bursts in seconds.",
26141 "format_description" : "seconds",
26142 "minimum" : 1,
26143 "optional" : 1,
26144 "type" : "integer"
26145 },
44660702 26146 "iops_wr" : {
de0983cb 26147 "description" : "Maximum write I/O in operations per second.",
44660702 26148 "format_description" : "iops",
7aacca6f 26149 "optional" : 1,
44660702 26150 "type" : "integer"
7aacca6f 26151 },
de0983cb 26152 "iops_wr_length" : {
5d9c884c 26153 "alias" : "iops_wr_max_length"
de0983cb 26154 },
44660702 26155 "iops_wr_max" : {
de0983cb 26156 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 26157 "format_description" : "iops",
56122987 26158 "optional" : 1,
7aacca6f 26159 "type" : "integer"
56122987 26160 },
5d9c884c
DM
26161 "iops_wr_max_length" : {
26162 "description" : "Maximum length of write I/O bursts in seconds.",
26163 "format_description" : "seconds",
26164 "minimum" : 1,
26165 "optional" : 1,
26166 "type" : "integer"
26167 },
44660702 26168 "mbps" : {
de0983cb 26169 "description" : "Maximum r/w speed in megabytes per second.",
44660702 26170 "format_description" : "mbps",
56122987 26171 "optional" : 1,
44660702 26172 "type" : "number"
56122987 26173 },
44660702 26174 "mbps_max" : {
de0983cb 26175 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 26176 "format_description" : "mbps",
7aacca6f 26177 "optional" : 1,
44660702 26178 "type" : "number"
7aacca6f 26179 },
44660702 26180 "mbps_rd" : {
de0983cb 26181 "description" : "Maximum read speed in megabytes per second.",
44660702 26182 "format_description" : "mbps",
7aacca6f 26183 "optional" : 1,
44660702 26184 "type" : "number"
7aacca6f 26185 },
44660702 26186 "mbps_rd_max" : {
de0983cb 26187 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 26188 "format_description" : "mbps",
7aacca6f 26189 "optional" : 1,
44660702 26190 "type" : "number"
7aacca6f 26191 },
44660702 26192 "mbps_wr" : {
de0983cb 26193 "description" : "Maximum write speed in megabytes per second.",
44660702 26194 "format_description" : "mbps",
7aacca6f 26195 "optional" : 1,
44660702 26196 "type" : "number"
7aacca6f
DM
26197 },
26198 "mbps_wr_max" : {
de0983cb 26199 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 26200 "format_description" : "mbps",
7aacca6f 26201 "optional" : 1,
44660702 26202 "type" : "number"
7aacca6f 26203 },
44660702
DM
26204 "media" : {
26205 "default" : "disk",
26206 "description" : "The drive's media type.",
56122987 26207 "enum" : [
44660702
DM
26208 "cdrom",
26209 "disk"
56122987 26210 ],
56122987 26211 "optional" : 1,
44660702 26212 "type" : "string"
56122987 26213 },
5d9c884c
DM
26214 "replicate" : {
26215 "default" : 1,
26216 "description" : "Whether the drive should considered for replication jobs.",
26217 "optional" : 1,
26218 "type" : "boolean"
26219 },
44660702
DM
26220 "rerror" : {
26221 "description" : "Read error action.",
7aacca6f
DM
26222 "enum" : [
26223 "ignore",
44660702
DM
26224 "report",
26225 "stop"
7aacca6f 26226 ],
56122987 26227 "optional" : 1,
44660702 26228 "type" : "string"
56122987 26229 },
44660702
DM
26230 "secs" : {
26231 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 26232 "optional" : 1,
44660702 26233 "type" : "integer"
56122987 26234 },
44660702
DM
26235 "serial" : {
26236 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
26237 "format" : "urlencoded",
26238 "format_description" : "serial",
26239 "maxLength" : 60,
26240 "optional" : 1,
26241 "type" : "string"
7aacca6f 26242 },
27a7acb2
DM
26243 "shared" : {
26244 "default" : 0,
26245 "description" : "Mark this locally-managed volume as available on all nodes",
26246 "optional" : 1,
26247 "type" : "boolean",
26248 "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!"
26249 },
7aacca6f
DM
26250 "size" : {
26251 "description" : "Disk size. This is purely informational and has no effect.",
44660702 26252 "format" : "disk-size",
f004f5b9 26253 "format_description" : "DiskSize",
56122987 26254 "optional" : 1,
44660702 26255 "type" : "string"
56122987 26256 },
44660702 26257 "snapshot" : {
27a7acb2 26258 "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 26259 "optional" : 1,
44660702 26260 "type" : "boolean"
56122987 26261 },
25203dc1
NC
26262 "ssd" : {
26263 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
26264 "optional" : 1,
26265 "type" : "boolean"
26266 },
44660702
DM
26267 "trans" : {
26268 "description" : "Force disk geometry bios translation mode.",
56122987 26269 "enum" : [
44660702
DM
26270 "none",
26271 "lba",
26272 "auto"
7aacca6f 26273 ],
44660702
DM
26274 "optional" : 1,
26275 "type" : "string"
26276 },
26277 "volume" : {
26278 "alias" : "file"
56122987
DM
26279 },
26280 "werror" : {
56122987
DM
26281 "description" : "Write error action.",
26282 "enum" : [
26283 "enospc",
26284 "ignore",
26285 "report",
26286 "stop"
26287 ],
56122987 26288 "optional" : 1,
44660702 26289 "type" : "string"
95895385
TL
26290 },
26291 "wwn" : {
26292 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
26293 "format_description" : "wwn",
26294 "optional" : 1,
26295 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
26296 "type" : "string"
44660702
DM
26297 }
26298 },
26299 "optional" : 1,
4bd7df8b 26300 "type" : "string",
7af2edf9 26301 "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
26302 },
26303 "scsi[n]" : {
7af2edf9 26304 "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
26305 "format" : {
26306 "aio" : {
26307 "description" : "AIO type to use.",
26308 "enum" : [
26309 "native",
8f4d9c87
TL
26310 "threads",
26311 "io_uring"
44660702 26312 ],
44660702
DM
26313 "optional" : 1,
26314 "type" : "string"
56122987 26315 },
7aacca6f 26316 "backup" : {
44660702 26317 "description" : "Whether the drive should be included when making backups.",
7aacca6f 26318 "optional" : 1,
44660702 26319 "type" : "boolean"
7aacca6f 26320 },
44660702 26321 "bps" : {
de0983cb 26322 "description" : "Maximum r/w speed in bytes per second.",
44660702 26323 "format_description" : "bps",
7aacca6f 26324 "optional" : 1,
44660702 26325 "type" : "integer"
7aacca6f 26326 },
de0983cb
DM
26327 "bps_max_length" : {
26328 "description" : "Maximum length of I/O bursts in seconds.",
26329 "format_description" : "seconds",
26330 "minimum" : 1,
26331 "optional" : 1,
26332 "type" : "integer"
26333 },
44660702 26334 "bps_rd" : {
de0983cb 26335 "description" : "Maximum read speed in bytes per second.",
44660702 26336 "format_description" : "bps",
56122987 26337 "optional" : 1,
44660702 26338 "type" : "integer"
56122987 26339 },
de0983cb 26340 "bps_rd_length" : {
5d9c884c
DM
26341 "alias" : "bps_rd_max_length"
26342 },
26343 "bps_rd_max_length" : {
de0983cb
DM
26344 "description" : "Maximum length of read I/O bursts in seconds.",
26345 "format_description" : "seconds",
26346 "minimum" : 1,
26347 "optional" : 1,
26348 "type" : "integer"
26349 },
44660702 26350 "bps_wr" : {
de0983cb 26351 "description" : "Maximum write speed in bytes per second.",
44660702 26352 "format_description" : "bps",
7aacca6f 26353 "optional" : 1,
44660702 26354 "type" : "integer"
56122987 26355 },
de0983cb 26356 "bps_wr_length" : {
5d9c884c
DM
26357 "alias" : "bps_wr_max_length"
26358 },
26359 "bps_wr_max_length" : {
de0983cb
DM
26360 "description" : "Maximum length of write I/O bursts in seconds.",
26361 "format_description" : "seconds",
26362 "minimum" : 1,
26363 "optional" : 1,
26364 "type" : "integer"
26365 },
44660702
DM
26366 "cache" : {
26367 "description" : "The drive's cache mode",
7aacca6f
DM
26368 "enum" : [
26369 "none",
44660702
DM
26370 "writethrough",
26371 "writeback",
26372 "unsafe",
26373 "directsync"
7aacca6f 26374 ],
56122987 26375 "optional" : 1,
44660702 26376 "type" : "string"
56122987 26377 },
7aacca6f
DM
26378 "cyls" : {
26379 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
26380 "optional" : 1,
44660702 26381 "type" : "integer"
7aacca6f 26382 },
44660702
DM
26383 "detect_zeroes" : {
26384 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 26385 "optional" : 1,
44660702 26386 "type" : "boolean"
56122987 26387 },
44660702
DM
26388 "discard" : {
26389 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 26390 "enum" : [
44660702
DM
26391 "ignore",
26392 "on"
7aacca6f 26393 ],
7aacca6f 26394 "optional" : 1,
44660702 26395 "type" : "string"
56122987
DM
26396 },
26397 "file" : {
7aacca6f
DM
26398 "default_key" : 1,
26399 "description" : "The drive's backing volume.",
44660702
DM
26400 "format" : "pve-volume-id-or-qm-path",
26401 "format_description" : "volume",
7aacca6f 26402 "type" : "string"
56122987 26403 },
7aacca6f 26404 "format" : {
44660702 26405 "description" : "The drive's backing file's data format.",
56122987 26406 "enum" : [
7aacca6f
DM
26407 "raw",
26408 "cow",
26409 "qcow",
26410 "qed",
26411 "qcow2",
26412 "vmdk",
26413 "cloop"
56122987 26414 ],
44660702
DM
26415 "optional" : 1,
26416 "type" : "string"
56122987 26417 },
44660702
DM
26418 "heads" : {
26419 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
26420 "optional" : 1,
26421 "type" : "integer"
26422 },
7af2edf9
TL
26423 "import-from" : {
26424 "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!",
26425 "format" : "pve-volume-id-or-absolute-path",
26426 "format_description" : "source volume",
26427 "optional" : 1,
26428 "type" : "string"
26429 },
44660702 26430 "iops" : {
de0983cb 26431 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 26432 "format_description" : "iops",
56122987 26433 "optional" : 1,
44660702 26434 "type" : "integer"
56122987 26435 },
44660702 26436 "iops_max" : {
de0983cb 26437 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 26438 "format_description" : "iops",
7aacca6f 26439 "optional" : 1,
44660702 26440 "type" : "integer"
56122987 26441 },
de0983cb
DM
26442 "iops_max_length" : {
26443 "description" : "Maximum length of I/O bursts in seconds.",
26444 "format_description" : "seconds",
26445 "minimum" : 1,
26446 "optional" : 1,
26447 "type" : "integer"
26448 },
44660702 26449 "iops_rd" : {
de0983cb 26450 "description" : "Maximum read I/O in operations per second.",
44660702 26451 "format_description" : "iops",
56122987 26452 "optional" : 1,
44660702 26453 "type" : "integer"
56122987 26454 },
de0983cb 26455 "iops_rd_length" : {
5d9c884c 26456 "alias" : "iops_rd_max_length"
de0983cb 26457 },
44660702 26458 "iops_rd_max" : {
de0983cb 26459 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
26460 "format_description" : "iops",
26461 "optional" : 1,
26462 "type" : "integer"
56122987 26463 },
5d9c884c
DM
26464 "iops_rd_max_length" : {
26465 "description" : "Maximum length of read I/O bursts in seconds.",
26466 "format_description" : "seconds",
26467 "minimum" : 1,
26468 "optional" : 1,
26469 "type" : "integer"
26470 },
44660702 26471 "iops_wr" : {
de0983cb 26472 "description" : "Maximum write I/O in operations per second.",
44660702 26473 "format_description" : "iops",
56122987 26474 "optional" : 1,
44660702 26475 "type" : "integer"
56122987 26476 },
de0983cb 26477 "iops_wr_length" : {
5d9c884c 26478 "alias" : "iops_wr_max_length"
de0983cb 26479 },
44660702 26480 "iops_wr_max" : {
de0983cb 26481 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 26482 "format_description" : "iops",
56122987 26483 "optional" : 1,
56122987
DM
26484 "type" : "integer"
26485 },
5d9c884c
DM
26486 "iops_wr_max_length" : {
26487 "description" : "Maximum length of write I/O bursts in seconds.",
26488 "format_description" : "seconds",
26489 "minimum" : 1,
26490 "optional" : 1,
26491 "type" : "integer"
26492 },
44660702
DM
26493 "iothread" : {
26494 "description" : "Whether to use iothreads for this drive",
44660702
DM
26495 "optional" : 1,
26496 "type" : "boolean"
26497 },
26498 "mbps" : {
de0983cb 26499 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
26500 "format_description" : "mbps",
26501 "optional" : 1,
26502 "type" : "number"
26503 },
7aacca6f 26504 "mbps_max" : {
de0983cb 26505 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 26506 "format_description" : "mbps",
56122987 26507 "optional" : 1,
44660702 26508 "type" : "number"
56122987 26509 },
44660702 26510 "mbps_rd" : {
de0983cb 26511 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
26512 "format_description" : "mbps",
26513 "optional" : 1,
26514 "type" : "number"
56122987 26515 },
44660702 26516 "mbps_rd_max" : {
de0983cb 26517 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 26518 "format_description" : "mbps",
56122987 26519 "optional" : 1,
44660702 26520 "type" : "number"
56122987 26521 },
44660702 26522 "mbps_wr" : {
de0983cb 26523 "description" : "Maximum write speed in megabytes per second.",
44660702 26524 "format_description" : "mbps",
56122987 26525 "optional" : 1,
44660702 26526 "type" : "number"
56122987 26527 },
44660702 26528 "mbps_wr_max" : {
de0983cb 26529 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 26530 "format_description" : "mbps",
7aacca6f 26531 "optional" : 1,
44660702 26532 "type" : "number"
56122987 26533 },
7aacca6f 26534 "media" : {
44660702 26535 "default" : "disk",
7aacca6f
DM
26536 "description" : "The drive's media type.",
26537 "enum" : [
26538 "cdrom",
26539 "disk"
26540 ],
56122987 26541 "optional" : 1,
44660702 26542 "type" : "string"
56122987 26543 },
44660702
DM
26544 "queues" : {
26545 "description" : "Number of queues.",
44660702
DM
26546 "minimum" : 2,
26547 "optional" : 1,
26548 "type" : "integer"
56122987 26549 },
5d9c884c
DM
26550 "replicate" : {
26551 "default" : 1,
26552 "description" : "Whether the drive should considered for replication jobs.",
26553 "optional" : 1,
26554 "type" : "boolean"
26555 },
26556 "rerror" : {
26557 "description" : "Read error action.",
26558 "enum" : [
26559 "ignore",
26560 "report",
26561 "stop"
26562 ],
26563 "optional" : 1,
26564 "type" : "string"
26565 },
5370fa8c
TL
26566 "ro" : {
26567 "description" : "Whether the drive is read-only.",
26568 "optional" : 1,
26569 "type" : "boolean"
26570 },
52e44c50
FG
26571 "scsiblock" : {
26572 "default" : 0,
26573 "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",
26574 "optional" : 1,
26575 "type" : "boolean"
26576 },
7aacca6f 26577 "secs" : {
7aacca6f 26578 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
26579 "optional" : 1,
26580 "type" : "integer"
26581 },
26582 "serial" : {
26583 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
26584 "format" : "urlencoded",
26585 "format_description" : "serial",
26586 "maxLength" : 60,
26587 "optional" : 1,
26588 "type" : "string"
26589 },
27a7acb2
DM
26590 "shared" : {
26591 "default" : 0,
26592 "description" : "Mark this locally-managed volume as available on all nodes",
26593 "optional" : 1,
26594 "type" : "boolean",
26595 "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!"
26596 },
44660702
DM
26597 "size" : {
26598 "description" : "Disk size. This is purely informational and has no effect.",
26599 "format" : "disk-size",
f004f5b9 26600 "format_description" : "DiskSize",
44660702
DM
26601 "optional" : 1,
26602 "type" : "string"
26603 },
26604 "snapshot" : {
27a7acb2 26605 "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
26606 "optional" : 1,
26607 "type" : "boolean"
26608 },
25203dc1
NC
26609 "ssd" : {
26610 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
26611 "optional" : 1,
26612 "type" : "boolean"
26613 },
44660702
DM
26614 "trans" : {
26615 "description" : "Force disk geometry bios translation mode.",
26616 "enum" : [
26617 "none",
26618 "lba",
26619 "auto"
26620 ],
44660702
DM
26621 "optional" : 1,
26622 "type" : "string"
26623 },
26624 "volume" : {
26625 "alias" : "file"
26626 },
26627 "werror" : {
26628 "description" : "Write error action.",
26629 "enum" : [
26630 "enospc",
26631 "ignore",
26632 "report",
26633 "stop"
26634 ],
44660702
DM
26635 "optional" : 1,
26636 "type" : "string"
95895385
TL
26637 },
26638 "wwn" : {
26639 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
26640 "format_description" : "wwn",
26641 "optional" : 1,
26642 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
26643 "type" : "string"
56122987
DM
26644 }
26645 },
7aacca6f 26646 "optional" : 1,
4bd7df8b 26647 "type" : "string",
7af2edf9 26648 "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 26649 },
44660702
DM
26650 "scsihw" : {
26651 "default" : "lsi",
c2993fe5 26652 "description" : "SCSI controller model",
44660702
DM
26653 "enum" : [
26654 "lsi",
26655 "lsi53c810",
26656 "virtio-scsi-pci",
26657 "virtio-scsi-single",
26658 "megasas",
26659 "pvscsi"
26660 ],
7aacca6f 26661 "optional" : 1,
44660702 26662 "type" : "string"
7aacca6f 26663 },
27a7acb2 26664 "searchdomain" : {
de786b48 26665 "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
26666 "optional" : 1,
26667 "type" : "string",
26668 "typetext" : "<string>"
26669 },
44660702 26670 "serial[n]" : {
c2993fe5 26671 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
26672 "optional" : 1,
26673 "pattern" : "(/dev/.+|socket)",
c2993fe5 26674 "type" : "string",
4772952b 26675 "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
26676 },
26677 "shares" : {
26678 "default" : 1000,
5da3d723 26679 "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
26680 "maximum" : 50000,
26681 "minimum" : 0,
26682 "optional" : 1,
4bd7df8b 26683 "type" : "integer",
013dc89f 26684 "typetext" : "<integer> (0 - 50000)"
44660702
DM
26685 },
26686 "smbios1" : {
26687 "description" : "Specify SMBIOS type 1 fields.",
26688 "format" : "pve-qm-smbios1",
1e3f8156 26689 "maxLength" : 512,
7aacca6f 26690 "optional" : 1,
4bd7df8b 26691 "type" : "string",
1e3f8156 26692 "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
26693 },
26694 "smp" : {
44660702 26695 "default" : 1,
7aacca6f 26696 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 26697 "minimum" : 1,
56122987 26698 "optional" : 1,
4bd7df8b 26699 "type" : "integer",
013dc89f 26700 "typetext" : "<integer> (1 - N)"
44660702
DM
26701 },
26702 "sockets" : {
7aacca6f 26703 "default" : 1,
44660702
DM
26704 "description" : "The number of CPU sockets.",
26705 "minimum" : 1,
26706 "optional" : 1,
4bd7df8b 26707 "type" : "integer",
013dc89f 26708 "typetext" : "<integer> (1 - N)"
7aacca6f 26709 },
1c532546
TL
26710 "spice_enhancements" : {
26711 "description" : "Configure additional enhancements for SPICE.",
26712 "format" : {
26713 "foldersharing" : {
26714 "default" : "0",
26715 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
26716 "optional" : 1,
26717 "type" : "boolean"
26718 },
26719 "videostreaming" : {
26720 "default" : "off",
26721 "description" : "Enable video streaming. Uses compression for detected video streams.",
26722 "enum" : [
26723 "off",
26724 "all",
26725 "filter"
26726 ],
26727 "optional" : 1,
26728 "type" : "string"
26729 }
26730 },
26731 "optional" : 1,
26732 "type" : "string",
26733 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
26734 },
27a7acb2
DM
26735 "sshkeys" : {
26736 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
26737 "format" : "urlencoded",
26738 "optional" : 1,
26739 "type" : "string",
26740 "typetext" : "<string>"
26741 },
5da3d723
TL
26742 "start" : {
26743 "default" : 0,
26744 "description" : "Start VM after it was created successfully.",
26745 "optional" : 1,
26746 "type" : "boolean",
26747 "typetext" : "<boolean>"
26748 },
44660702
DM
26749 "startdate" : {
26750 "default" : "now",
4772952b 26751 "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
26752 "optional" : 1,
26753 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
26754 "type" : "string",
26755 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
26756 },
26757 "startup" : {
26758 "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.",
26759 "format" : "pve-startup-order",
26760 "optional" : 1,
26761 "type" : "string",
26762 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
26763 },
26764 "storage" : {
26765 "description" : "Default storage.",
26766 "format" : "pve-storage-id",
7aacca6f 26767 "optional" : 1,
013dc89f
DM
26768 "type" : "string",
26769 "typetext" : "<string>"
56122987 26770 },
44660702
DM
26771 "tablet" : {
26772 "default" : 1,
c2993fe5 26773 "description" : "Enable/disable the USB tablet device.",
56122987 26774 "optional" : 1,
c2993fe5 26775 "type" : "boolean",
013dc89f 26776 "typetext" : "<boolean>",
4772952b 26777 "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 26778 },
5c1699e5
TL
26779 "tags" : {
26780 "description" : "Tags of the VM. This is only meta information.",
26781 "format" : "pve-tag-list",
26782 "optional" : 1,
26783 "type" : "string",
26784 "typetext" : "<string>"
26785 },
44660702
DM
26786 "tdf" : {
26787 "default" : 0,
26788 "description" : "Enable/disable time drift fix.",
26789 "optional" : 1,
013dc89f
DM
26790 "type" : "boolean",
26791 "typetext" : "<boolean>"
7aacca6f
DM
26792 },
26793 "template" : {
7aacca6f 26794 "default" : 0,
44660702 26795 "description" : "Enable/disable Template.",
7aacca6f 26796 "optional" : 1,
013dc89f
DM
26797 "type" : "boolean",
26798 "typetext" : "<boolean>"
7aacca6f 26799 },
5370fa8c 26800 "tpmstate0" : {
7af2edf9 26801 "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
26802 "format" : {
26803 "file" : {
26804 "default_key" : 1,
26805 "description" : "The drive's backing volume.",
26806 "format" : "pve-volume-id-or-qm-path",
26807 "format_description" : "volume",
26808 "type" : "string"
26809 },
7af2edf9
TL
26810 "import-from" : {
26811 "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!",
26812 "format" : "pve-volume-id-or-absolute-path",
26813 "format_description" : "source volume",
26814 "optional" : 1,
26815 "type" : "string"
26816 },
5370fa8c
TL
26817 "size" : {
26818 "description" : "Disk size. This is purely informational and has no effect.",
26819 "format" : "disk-size",
26820 "format_description" : "DiskSize",
26821 "optional" : 1,
26822 "type" : "string"
26823 },
26824 "version" : {
26825 "default" : "v2.0",
26826 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
26827 "enum" : [
26828 "v1.2",
26829 "v2.0"
26830 ],
26831 "optional" : 1,
26832 "type" : "string"
26833 },
26834 "volume" : {
26835 "alias" : "file"
26836 }
26837 },
26838 "optional" : 1,
26839 "type" : "string",
7af2edf9 26840 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 26841 },
44660702
DM
26842 "unique" : {
26843 "description" : "Assign a unique random ethernet address.",
7aacca6f 26844 "optional" : 1,
44660702 26845 "requires" : "archive",
013dc89f
DM
26846 "type" : "boolean",
26847 "typetext" : "<boolean>"
56122987 26848 },
44660702 26849 "unused[n]" : {
c2993fe5 26850 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
26851 "format" : {
26852 "file" : {
26853 "default_key" : 1,
26854 "description" : "The drive's backing volume.",
26855 "format" : "pve-volume-id",
26856 "format_description" : "volume",
26857 "type" : "string"
26858 },
26859 "volume" : {
26860 "alias" : "file"
26861 }
26862 },
7aacca6f 26863 "optional" : 1,
013dc89f 26864 "type" : "string",
c5aa7e14 26865 "typetext" : "[file=]<volume>"
44660702
DM
26866 },
26867 "usb[n]" : {
4e7f60c2 26868 "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 26869 "format" : {
7aacca6f
DM
26870 "host" : {
26871 "default_key" : 1,
499c9b7f 26872 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 26873 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
26874 "optional" : 1,
26875 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
26876 "type" : "string"
26877 },
26878 "mapping" : {
26879 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
26880 "format" : "pve-configid",
26881 "format_description" : "mapping-id",
26882 "optional" : 1,
44660702 26883 "type" : "string"
7aacca6f 26884 },
56122987 26885 "usb3" : {
c2993fe5 26886 "default" : 0,
4e7f60c2 26887 "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 26888 "optional" : 1,
56122987 26889 "type" : "boolean"
7aacca6f 26890 }
56122987 26891 },
56122987 26892 "optional" : 1,
4bd7df8b 26893 "type" : "string",
499c9b7f 26894 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
56122987 26895 },
44660702
DM
26896 "vcpus" : {
26897 "default" : 0,
26898 "description" : "Number of hotplugged vcpus.",
26899 "minimum" : 1,
56122987 26900 "optional" : 1,
4bd7df8b 26901 "type" : "integer",
013dc89f 26902 "typetext" : "<integer> (1 - N)"
7aacca6f 26903 },
44660702 26904 "vga" : {
e2d681b3
TL
26905 "description" : "Configure the VGA hardware.",
26906 "format" : {
26907 "memory" : {
26908 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
26909 "maximum" : 512,
26910 "minimum" : 4,
26911 "optional" : 1,
26912 "type" : "integer"
26913 },
26914 "type" : {
26915 "default" : "std",
26916 "default_key" : 1,
26917 "description" : "Select the VGA type.",
26918 "enum" : [
26919 "cirrus",
26920 "qxl",
26921 "qxl2",
26922 "qxl3",
26923 "qxl4",
5f26e15b 26924 "none",
e2d681b3
TL
26925 "serial0",
26926 "serial1",
26927 "serial2",
26928 "serial3",
26929 "std",
26930 "virtio",
7af2edf9 26931 "virtio-gl",
e2d681b3
TL
26932 "vmware"
26933 ],
26934 "optional" : 1,
26935 "type" : "string"
26936 }
26937 },
44660702 26938 "optional" : 1,
c2993fe5 26939 "type" : "string",
e2d681b3
TL
26940 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
26941 "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 26942 },
44660702 26943 "virtio[n]" : {
7af2edf9 26944 "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
26945 "format" : {
26946 "aio" : {
26947 "description" : "AIO type to use.",
26948 "enum" : [
26949 "native",
8f4d9c87
TL
26950 "threads",
26951 "io_uring"
44660702 26952 ],
44660702
DM
26953 "optional" : 1,
26954 "type" : "string"
26955 },
26956 "backup" : {
26957 "description" : "Whether the drive should be included when making backups.",
44660702
DM
26958 "optional" : 1,
26959 "type" : "boolean"
26960 },
26961 "bps" : {
de0983cb 26962 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
26963 "format_description" : "bps",
26964 "optional" : 1,
26965 "type" : "integer"
26966 },
de0983cb
DM
26967 "bps_max_length" : {
26968 "description" : "Maximum length of I/O bursts in seconds.",
26969 "format_description" : "seconds",
26970 "minimum" : 1,
26971 "optional" : 1,
26972 "type" : "integer"
26973 },
44660702 26974 "bps_rd" : {
de0983cb 26975 "description" : "Maximum read speed in bytes per second.",
44660702
DM
26976 "format_description" : "bps",
26977 "optional" : 1,
26978 "type" : "integer"
26979 },
de0983cb 26980 "bps_rd_length" : {
5d9c884c
DM
26981 "alias" : "bps_rd_max_length"
26982 },
26983 "bps_rd_max_length" : {
de0983cb
DM
26984 "description" : "Maximum length of read I/O bursts in seconds.",
26985 "format_description" : "seconds",
26986 "minimum" : 1,
26987 "optional" : 1,
26988 "type" : "integer"
26989 },
44660702 26990 "bps_wr" : {
de0983cb 26991 "description" : "Maximum write speed in bytes per second.",
44660702
DM
26992 "format_description" : "bps",
26993 "optional" : 1,
26994 "type" : "integer"
26995 },
de0983cb 26996 "bps_wr_length" : {
5d9c884c
DM
26997 "alias" : "bps_wr_max_length"
26998 },
26999 "bps_wr_max_length" : {
de0983cb
DM
27000 "description" : "Maximum length of write I/O bursts in seconds.",
27001 "format_description" : "seconds",
27002 "minimum" : 1,
27003 "optional" : 1,
27004 "type" : "integer"
27005 },
44660702
DM
27006 "cache" : {
27007 "description" : "The drive's cache mode",
27008 "enum" : [
27009 "none",
27010 "writethrough",
27011 "writeback",
27012 "unsafe",
27013 "directsync"
27014 ],
44660702
DM
27015 "optional" : 1,
27016 "type" : "string"
27017 },
27018 "cyls" : {
27019 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
27020 "optional" : 1,
27021 "type" : "integer"
27022 },
27023 "detect_zeroes" : {
27024 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
27025 "optional" : 1,
27026 "type" : "boolean"
27027 },
27028 "discard" : {
27029 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
27030 "enum" : [
27031 "ignore",
27032 "on"
27033 ],
44660702
DM
27034 "optional" : 1,
27035 "type" : "string"
27036 },
27037 "file" : {
27038 "default_key" : 1,
27039 "description" : "The drive's backing volume.",
27040 "format" : "pve-volume-id-or-qm-path",
27041 "format_description" : "volume",
27042 "type" : "string"
27043 },
27044 "format" : {
27045 "description" : "The drive's backing file's data format.",
27046 "enum" : [
27047 "raw",
27048 "cow",
27049 "qcow",
27050 "qed",
27051 "qcow2",
27052 "vmdk",
27053 "cloop"
27054 ],
44660702
DM
27055 "optional" : 1,
27056 "type" : "string"
27057 },
27058 "heads" : {
27059 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
27060 "optional" : 1,
27061 "type" : "integer"
27062 },
7af2edf9
TL
27063 "import-from" : {
27064 "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!",
27065 "format" : "pve-volume-id-or-absolute-path",
27066 "format_description" : "source volume",
27067 "optional" : 1,
27068 "type" : "string"
27069 },
44660702 27070 "iops" : {
de0983cb 27071 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
27072 "format_description" : "iops",
27073 "optional" : 1,
27074 "type" : "integer"
27075 },
27076 "iops_max" : {
de0983cb 27077 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
27078 "format_description" : "iops",
27079 "optional" : 1,
27080 "type" : "integer"
27081 },
de0983cb
DM
27082 "iops_max_length" : {
27083 "description" : "Maximum length of I/O bursts in seconds.",
27084 "format_description" : "seconds",
27085 "minimum" : 1,
27086 "optional" : 1,
27087 "type" : "integer"
27088 },
44660702 27089 "iops_rd" : {
de0983cb 27090 "description" : "Maximum read I/O in operations per second.",
44660702
DM
27091 "format_description" : "iops",
27092 "optional" : 1,
27093 "type" : "integer"
27094 },
de0983cb 27095 "iops_rd_length" : {
5d9c884c 27096 "alias" : "iops_rd_max_length"
de0983cb 27097 },
44660702 27098 "iops_rd_max" : {
de0983cb 27099 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
27100 "format_description" : "iops",
27101 "optional" : 1,
27102 "type" : "integer"
27103 },
5d9c884c
DM
27104 "iops_rd_max_length" : {
27105 "description" : "Maximum length of read I/O bursts in seconds.",
27106 "format_description" : "seconds",
27107 "minimum" : 1,
27108 "optional" : 1,
27109 "type" : "integer"
27110 },
44660702 27111 "iops_wr" : {
de0983cb 27112 "description" : "Maximum write I/O in operations per second.",
44660702
DM
27113 "format_description" : "iops",
27114 "optional" : 1,
27115 "type" : "integer"
27116 },
de0983cb 27117 "iops_wr_length" : {
5d9c884c 27118 "alias" : "iops_wr_max_length"
de0983cb 27119 },
44660702 27120 "iops_wr_max" : {
de0983cb 27121 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
27122 "format_description" : "iops",
27123 "optional" : 1,
27124 "type" : "integer"
27125 },
5d9c884c
DM
27126 "iops_wr_max_length" : {
27127 "description" : "Maximum length of write I/O bursts in seconds.",
27128 "format_description" : "seconds",
27129 "minimum" : 1,
27130 "optional" : 1,
27131 "type" : "integer"
27132 },
44660702
DM
27133 "iothread" : {
27134 "description" : "Whether to use iothreads for this drive",
44660702
DM
27135 "optional" : 1,
27136 "type" : "boolean"
27137 },
27138 "mbps" : {
de0983cb 27139 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
27140 "format_description" : "mbps",
27141 "optional" : 1,
27142 "type" : "number"
27143 },
27144 "mbps_max" : {
de0983cb 27145 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
27146 "format_description" : "mbps",
27147 "optional" : 1,
27148 "type" : "number"
27149 },
27150 "mbps_rd" : {
de0983cb 27151 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
27152 "format_description" : "mbps",
27153 "optional" : 1,
27154 "type" : "number"
27155 },
27156 "mbps_rd_max" : {
de0983cb 27157 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
27158 "format_description" : "mbps",
27159 "optional" : 1,
27160 "type" : "number"
27161 },
27162 "mbps_wr" : {
de0983cb 27163 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
27164 "format_description" : "mbps",
27165 "optional" : 1,
27166 "type" : "number"
27167 },
27168 "mbps_wr_max" : {
de0983cb 27169 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
27170 "format_description" : "mbps",
27171 "optional" : 1,
27172 "type" : "number"
27173 },
27174 "media" : {
27175 "default" : "disk",
27176 "description" : "The drive's media type.",
27177 "enum" : [
27178 "cdrom",
27179 "disk"
27180 ],
44660702
DM
27181 "optional" : 1,
27182 "type" : "string"
27183 },
5d9c884c
DM
27184 "replicate" : {
27185 "default" : 1,
27186 "description" : "Whether the drive should considered for replication jobs.",
27187 "optional" : 1,
27188 "type" : "boolean"
27189 },
44660702
DM
27190 "rerror" : {
27191 "description" : "Read error action.",
27192 "enum" : [
27193 "ignore",
27194 "report",
27195 "stop"
27196 ],
44660702
DM
27197 "optional" : 1,
27198 "type" : "string"
27199 },
5370fa8c
TL
27200 "ro" : {
27201 "description" : "Whether the drive is read-only.",
27202 "optional" : 1,
27203 "type" : "boolean"
27204 },
44660702
DM
27205 "secs" : {
27206 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
27207 "optional" : 1,
27208 "type" : "integer"
27209 },
27210 "serial" : {
27211 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
27212 "format" : "urlencoded",
27213 "format_description" : "serial",
27214 "maxLength" : 60,
27215 "optional" : 1,
27216 "type" : "string"
27217 },
27a7acb2
DM
27218 "shared" : {
27219 "default" : 0,
27220 "description" : "Mark this locally-managed volume as available on all nodes",
27221 "optional" : 1,
27222 "type" : "boolean",
27223 "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!"
27224 },
44660702
DM
27225 "size" : {
27226 "description" : "Disk size. This is purely informational and has no effect.",
27227 "format" : "disk-size",
f004f5b9 27228 "format_description" : "DiskSize",
44660702
DM
27229 "optional" : 1,
27230 "type" : "string"
27231 },
27232 "snapshot" : {
27a7acb2 27233 "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
27234 "optional" : 1,
27235 "type" : "boolean"
27236 },
27237 "trans" : {
27238 "description" : "Force disk geometry bios translation mode.",
27239 "enum" : [
27240 "none",
27241 "lba",
27242 "auto"
27243 ],
44660702
DM
27244 "optional" : 1,
27245 "type" : "string"
27246 },
27247 "volume" : {
27248 "alias" : "file"
27249 },
27250 "werror" : {
27251 "description" : "Write error action.",
27252 "enum" : [
27253 "enospc",
27254 "ignore",
27255 "report",
27256 "stop"
27257 ],
44660702
DM
27258 "optional" : 1,
27259 "type" : "string"
27260 }
27261 },
27262 "optional" : 1,
4bd7df8b 27263 "type" : "string",
7af2edf9 27264 "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 27265 },
4d47f125
TL
27266 "vmgenid" : {
27267 "default" : "1 (autogenerated)",
27268 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
27269 "format_description" : "UUID",
27270 "optional" : 1,
27271 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
27272 "type" : "string",
4772952b 27273 "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 27274 },
44660702
DM
27275 "vmid" : {
27276 "description" : "The (unique) ID of the VM.",
27277 "format" : "pve-vmid",
8dd66e12
TL
27278 "maximum" : 999999999,
27279 "minimum" : 100,
4bd7df8b 27280 "type" : "integer",
8dd66e12 27281 "typetext" : "<integer> (100 - 999999999)"
44660702 27282 },
2489d6df
WB
27283 "vmstatestorage" : {
27284 "description" : "Default storage for VM state volumes/files.",
27285 "format" : "pve-storage-id",
27286 "optional" : 1,
27287 "type" : "string",
27288 "typetext" : "<string>"
27289 },
44660702 27290 "watchdog" : {
c2993fe5 27291 "description" : "Create a virtual hardware watchdog device.",
44660702 27292 "format" : "pve-qm-watchdog",
7aacca6f 27293 "optional" : 1,
c2993fe5 27294 "type" : "string",
013dc89f 27295 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 27296 "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 27297 }
44660702 27298 }
56122987 27299 },
56122987 27300 "permissions" : {
159464a9 27301 "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 27302 "user" : "all"
56122987 27303 },
44660702
DM
27304 "protected" : 1,
27305 "proxyto" : "node",
56122987 27306 "returns" : {
44660702 27307 "type" : "string"
7aacca6f 27308 }
56122987 27309 }
7aacca6f 27310 },
44660702 27311 "leaf" : 0,
7aacca6f 27312 "path" : "/nodes/{node}/qemu",
44660702 27313 "text" : "qemu"
56122987
DM
27314 },
27315 {
27316 "children" : [
27317 {
56122987
DM
27318 "children" : [
27319 {
56122987 27320 "info" : {
44660702 27321 "GET" : {
e9cd3bd4 27322 "allowtoken" : 1,
44660702
DM
27323 "description" : "Get container configuration.",
27324 "method" : "GET",
27325 "name" : "vm_config",
27326 "parameters" : {
27327 "additionalProperties" : 0,
27328 "properties" : {
1c532546
TL
27329 "current" : {
27330 "default" : 0,
27331 "description" : "Get current values (instead of pending values).",
27332 "optional" : 1,
27333 "type" : "boolean",
27334 "typetext" : "<boolean>"
27335 },
44660702
DM
27336 "node" : {
27337 "description" : "The cluster node name.",
27338 "format" : "pve-node",
013dc89f 27339 "type" : "string",
4d47f125
TL
27340 "typetext" : "<string>"
27341 },
5f26e15b
TL
27342 "snapshot" : {
27343 "description" : "Fetch config values from given snapshot.",
27344 "format" : "pve-configid",
27345 "maxLength" : 40,
27346 "optional" : 1,
27347 "type" : "string",
27348 "typetext" : "<string>"
27349 },
4d47f125
TL
27350 "vmid" : {
27351 "description" : "The (unique) ID of the VM.",
27352 "format" : "pve-vmid",
8dd66e12
TL
27353 "maximum" : 999999999,
27354 "minimum" : 100,
4d47f125 27355 "type" : "integer",
8dd66e12 27356 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
27357 }
27358 }
27359 },
27360 "permissions" : {
27361 "check" : [
27362 "perm",
27363 "/vms/{vmid}",
27364 [
27365 "VM.Audit"
27366 ]
27367 ]
27368 },
27369 "proxyto" : "node",
27370 "returns" : {
27371 "properties" : {
27372 "arch" : {
27373 "default" : "amd64",
27374 "description" : "OS architecture type.",
27375 "enum" : [
27376 "amd64",
27377 "i386",
27378 "arm64",
9d2e98ed
TL
27379 "armhf",
27380 "riscv32",
27381 "riscv64"
4d47f125
TL
27382 ],
27383 "optional" : 1,
27384 "type" : "string"
27385 },
27386 "cmode" : {
27387 "default" : "tty",
27388 "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).",
27389 "enum" : [
27390 "shell",
27391 "console",
27392 "tty"
27393 ],
27394 "optional" : 1,
27395 "type" : "string"
27396 },
27397 "console" : {
27398 "default" : 1,
27399 "description" : "Attach a console device (/dev/console) to the container.",
27400 "optional" : 1,
27401 "type" : "boolean"
27402 },
27403 "cores" : {
27404 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 27405 "maximum" : 8192,
4d47f125
TL
27406 "minimum" : 1,
27407 "optional" : 1,
27408 "type" : "integer"
27409 },
27410 "cpulimit" : {
27411 "default" : 0,
27412 "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 27413 "maximum" : 8192,
4d47f125
TL
27414 "minimum" : 0,
27415 "optional" : 1,
27416 "type" : "number"
27417 },
27418 "cpuunits" : {
4e7f60c2
TL
27419 "default" : "cgroup v1: 1024, cgroup v2: 100",
27420 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
27421 "maximum" : 500000,
27422 "minimum" : 0,
27423 "optional" : 1,
4e7f60c2
TL
27424 "type" : "integer",
27425 "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 27426 },
739d4d64
TL
27427 "debug" : {
27428 "default" : 0,
27429 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
27430 "optional" : 1,
27431 "type" : "boolean"
27432 },
4d47f125 27433 "description" : {
8f4d9c87
TL
27434 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
27435 "maxLength" : 8192,
4d47f125
TL
27436 "optional" : 1,
27437 "type" : "string"
27438 },
27439 "digest" : {
27440 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
27441 "type" : "string"
27442 },
27443 "features" : {
27444 "description" : "Allow containers access to advanced features.",
27445 "format" : {
c5aa7e14
TL
27446 "force_rw_sys" : {
27447 "default" : 0,
27448 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
27449 "optional" : 1,
27450 "type" : "boolean"
27451 },
e2d681b3
TL
27452 "fuse" : {
27453 "default" : 0,
27454 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
27455 "optional" : 1,
27456 "type" : "boolean"
27457 },
4d47f125
TL
27458 "keyctl" : {
27459 "default" : 0,
27460 "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.",
27461 "optional" : 1,
27462 "type" : "boolean"
27463 },
c5aa7e14
TL
27464 "mknod" : {
27465 "default" : 0,
27466 "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.",
27467 "optional" : 1,
27468 "type" : "boolean"
27469 },
4d47f125
TL
27470 "mount" : {
27471 "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.",
27472 "format_description" : "fstype;fstype;...",
27473 "optional" : 1,
95895385 27474 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
27475 "type" : "string"
27476 },
27477 "nesting" : {
27478 "default" : 0,
27479 "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.",
27480 "optional" : 1,
27481 "type" : "boolean"
27482 }
27483 },
27484 "optional" : 1,
27485 "type" : "string"
27486 },
5f26e15b
TL
27487 "hookscript" : {
27488 "description" : "Script that will be exectued during various steps in the containers lifetime.",
27489 "format" : "pve-volume-id",
27490 "optional" : 1,
27491 "type" : "string"
27492 },
4d47f125
TL
27493 "hostname" : {
27494 "description" : "Set a host name for the container.",
27495 "format" : "dns-name",
27496 "maxLength" : 255,
27497 "optional" : 1,
27498 "type" : "string"
27499 },
27500 "lock" : {
4e7f60c2 27501 "description" : "Lock/unlock the container.",
4d47f125
TL
27502 "enum" : [
27503 "backup",
bb4c8cf8 27504 "create",
1c532546 27505 "destroyed",
4d47f125 27506 "disk",
bb4c8cf8 27507 "fstrim",
4d47f125
TL
27508 "migrate",
27509 "mounted",
27510 "rollback",
27511 "snapshot",
27512 "snapshot-delete"
27513 ],
27514 "optional" : 1,
27515 "type" : "string"
27516 },
27517 "lxc" : {
27518 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
27519 "items" : {
27520 "items" : {
27521 "type" : "string"
27522 },
27523 "type" : "array"
27524 },
27525 "optional" : 1,
27526 "type" : "array"
27527 },
27528 "memory" : {
27529 "default" : 512,
4e7f60c2 27530 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
27531 "minimum" : 16,
27532 "optional" : 1,
27533 "type" : "integer"
27534 },
27535 "mp[n]" : {
d2656385 27536 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
27537 "format" : {
27538 "acl" : {
27539 "description" : "Explicitly enable or disable ACL support.",
27540 "optional" : 1,
27541 "type" : "boolean"
27542 },
27543 "backup" : {
27544 "description" : "Whether to include the mount point in backups.",
27545 "optional" : 1,
27546 "type" : "boolean",
27547 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
27548 },
7cbed89a
TL
27549 "mountoptions" : {
27550 "description" : "Extra mount options for rootfs/mps.",
27551 "format_description" : "opt[;opt...]",
27552 "optional" : 1,
c30bb419 27553 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
27554 "type" : "string"
27555 },
4d47f125
TL
27556 "mp" : {
27557 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
27558 "format" : "pve-lxc-mp-string",
27559 "format_description" : "Path",
27560 "type" : "string",
27561 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
27562 },
27563 "quota" : {
27564 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
27565 "optional" : 1,
27566 "type" : "boolean"
27567 },
27568 "replicate" : {
27569 "default" : 1,
27570 "description" : "Will include this volume to a storage replica job.",
27571 "optional" : 1,
27572 "type" : "boolean"
27573 },
27574 "ro" : {
27575 "description" : "Read-only mount point",
27576 "optional" : 1,
27577 "type" : "boolean"
27578 },
27579 "shared" : {
27580 "default" : 0,
27581 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
27582 "optional" : 1,
27583 "type" : "boolean",
27584 "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!"
27585 },
27586 "size" : {
27587 "description" : "Volume size (read only value).",
27588 "format" : "disk-size",
27589 "format_description" : "DiskSize",
27590 "optional" : 1,
27591 "type" : "string"
27592 },
27593 "volume" : {
27594 "default_key" : 1,
27595 "description" : "Volume, device or directory to mount into the container.",
27596 "format" : "pve-lxc-mp-string",
27597 "format_description" : "volume",
27598 "type" : "string"
27599 }
27600 },
27601 "optional" : 1,
27602 "type" : "string"
27603 },
27604 "nameserver" : {
27605 "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 27606 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
27607 "optional" : 1,
27608 "type" : "string"
27609 },
27610 "net[n]" : {
27611 "description" : "Specifies network interfaces for the container.",
27612 "format" : {
27613 "bridge" : {
27614 "description" : "Bridge to attach the network device to.",
27615 "format_description" : "bridge",
27616 "optional" : 1,
27617 "pattern" : "[-_.\\w\\d]+",
27618 "type" : "string"
27619 },
27620 "firewall" : {
27621 "description" : "Controls whether this interface's firewall rules should be used.",
27622 "optional" : 1,
27623 "type" : "boolean"
27624 },
27625 "gw" : {
27626 "description" : "Default gateway for IPv4 traffic.",
27627 "format" : "ipv4",
27628 "format_description" : "GatewayIPv4",
27629 "optional" : 1,
27630 "type" : "string"
27631 },
27632 "gw6" : {
27633 "description" : "Default gateway for IPv6 traffic.",
27634 "format" : "ipv6",
27635 "format_description" : "GatewayIPv6",
27636 "optional" : 1,
27637 "type" : "string"
27638 },
27639 "hwaddr" : {
27640 "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 27641 "format" : "mac-addr",
4d47f125
TL
27642 "format_description" : "XX:XX:XX:XX:XX:XX",
27643 "optional" : 1,
95895385
TL
27644 "type" : "string",
27645 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
27646 },
27647 "ip" : {
27648 "description" : "IPv4 address in CIDR format.",
27649 "format" : "pve-ipv4-config",
27650 "format_description" : "(IPv4/CIDR|dhcp|manual)",
27651 "optional" : 1,
27652 "type" : "string"
27653 },
27654 "ip6" : {
27655 "description" : "IPv6 address in CIDR format.",
27656 "format" : "pve-ipv6-config",
27657 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
27658 "optional" : 1,
27659 "type" : "string"
27660 },
9d2e98ed
TL
27661 "link_down" : {
27662 "description" : "Whether this interface should be disconnected (like pulling the plug).",
27663 "optional" : 1,
27664 "type" : "boolean"
27665 },
4d47f125
TL
27666 "mtu" : {
27667 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 27668 "maximum" : 65535,
4d47f125
TL
27669 "minimum" : 64,
27670 "optional" : 1,
27671 "type" : "integer"
27672 },
27673 "name" : {
27674 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
27675 "format_description" : "string",
27676 "pattern" : "[-_.\\w\\d]+",
27677 "type" : "string"
27678 },
27679 "rate" : {
27680 "description" : "Apply rate limiting to the interface",
27681 "format_description" : "mbps",
27682 "optional" : 1,
27683 "type" : "number"
27684 },
27685 "tag" : {
27686 "description" : "VLAN tag for this interface.",
27687 "maximum" : 4094,
27688 "minimum" : 1,
27689 "optional" : 1,
27690 "type" : "integer"
27691 },
27692 "trunks" : {
27693 "description" : "VLAN ids to pass through the interface",
27694 "format_description" : "vlanid[;vlanid...]",
27695 "optional" : 1,
27696 "pattern" : "(?^:\\d+(?:;\\d+)*)",
27697 "type" : "string"
27698 },
27699 "type" : {
27700 "description" : "Network interface type.",
27701 "enum" : [
27702 "veth"
27703 ],
27704 "optional" : 1,
27705 "type" : "string"
27706 }
27707 },
27708 "optional" : 1,
27709 "type" : "string"
27710 },
27711 "onboot" : {
27712 "default" : 0,
4e7f60c2 27713 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
27714 "optional" : 1,
27715 "type" : "boolean"
27716 },
27717 "ostype" : {
27718 "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.",
27719 "enum" : [
27720 "debian",
d2656385 27721 "devuan",
4d47f125
TL
27722 "ubuntu",
27723 "centos",
27724 "fedora",
27725 "opensuse",
27726 "archlinux",
27727 "alpine",
27728 "gentoo",
7af2edf9 27729 "nixos",
4d47f125
TL
27730 "unmanaged"
27731 ],
27732 "optional" : 1,
27733 "type" : "string"
27734 },
27735 "protection" : {
27736 "default" : 0,
27737 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
27738 "optional" : 1,
27739 "type" : "boolean"
27740 },
27741 "rootfs" : {
27742 "description" : "Use volume as container root.",
27743 "format" : {
27744 "acl" : {
27745 "description" : "Explicitly enable or disable ACL support.",
27746 "optional" : 1,
27747 "type" : "boolean"
27748 },
7cbed89a
TL
27749 "mountoptions" : {
27750 "description" : "Extra mount options for rootfs/mps.",
27751 "format_description" : "opt[;opt...]",
27752 "optional" : 1,
c30bb419 27753 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
27754 "type" : "string"
27755 },
4d47f125
TL
27756 "quota" : {
27757 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
27758 "optional" : 1,
27759 "type" : "boolean"
27760 },
27761 "replicate" : {
27762 "default" : 1,
27763 "description" : "Will include this volume to a storage replica job.",
27764 "optional" : 1,
27765 "type" : "boolean"
27766 },
27767 "ro" : {
27768 "description" : "Read-only mount point",
27769 "optional" : 1,
27770 "type" : "boolean"
27771 },
27772 "shared" : {
27773 "default" : 0,
27774 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
27775 "optional" : 1,
27776 "type" : "boolean",
27777 "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!"
27778 },
27779 "size" : {
27780 "description" : "Volume size (read only value).",
27781 "format" : "disk-size",
27782 "format_description" : "DiskSize",
27783 "optional" : 1,
27784 "type" : "string"
27785 },
27786 "volume" : {
27787 "default_key" : 1,
27788 "description" : "Volume, device or directory to mount into the container.",
27789 "format" : "pve-lxc-mp-string",
27790 "format_description" : "volume",
27791 "type" : "string"
27792 }
27793 },
27794 "optional" : 1,
27795 "type" : "string"
27796 },
27797 "searchdomain" : {
27798 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
27799 "format" : "dns-name-list",
27800 "optional" : 1,
27801 "type" : "string"
27802 },
27803 "startup" : {
27804 "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.",
27805 "format" : "pve-startup-order",
27806 "optional" : 1,
27807 "type" : "string",
27808 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
27809 },
27810 "swap" : {
27811 "default" : 512,
4e7f60c2 27812 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
27813 "minimum" : 0,
27814 "optional" : 1,
27815 "type" : "integer"
27816 },
5c1699e5
TL
27817 "tags" : {
27818 "description" : "Tags of the Container. This is only meta information.",
27819 "format" : "pve-tag-list",
27820 "optional" : 1,
27821 "type" : "string"
27822 },
4d47f125
TL
27823 "template" : {
27824 "default" : 0,
27825 "description" : "Enable/disable Template.",
27826 "optional" : 1,
27827 "type" : "boolean"
44660702 27828 },
04d22a9f
TL
27829 "timezone" : {
27830 "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",
27831 "format" : "pve-ct-timezone",
27832 "optional" : 1,
27833 "type" : "string"
27834 },
4d47f125
TL
27835 "tty" : {
27836 "default" : 2,
27837 "description" : "Specify the number of tty available to the container",
27838 "maximum" : 6,
27839 "minimum" : 0,
27840 "optional" : 1,
27841 "type" : "integer"
27842 },
27843 "unprivileged" : {
27844 "default" : 0,
27845 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
27846 "optional" : 1,
27847 "type" : "boolean"
27848 },
27849 "unused[n]" : {
27850 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
27851 "format" : {
27852 "volume" : {
27853 "default_key" : 1,
27854 "description" : "The volume that is not used currently.",
27855 "format" : "pve-volume-id",
27856 "format_description" : "volume",
27857 "type" : "string"
27858 }
27859 },
4d47f125 27860 "optional" : 1,
44660702
DM
27861 "type" : "string"
27862 }
27863 },
27864 "type" : "object"
27865 }
27866 },
56122987 27867 "PUT" : {
e9cd3bd4 27868 "allowtoken" : 1,
44660702
DM
27869 "description" : "Set container options.",
27870 "method" : "PUT",
27871 "name" : "update_vm",
56122987 27872 "parameters" : {
44660702 27873 "additionalProperties" : 0,
56122987 27874 "properties" : {
44660702
DM
27875 "arch" : {
27876 "default" : "amd64",
27877 "description" : "OS architecture type.",
27878 "enum" : [
27879 "amd64",
4d47f125
TL
27880 "i386",
27881 "arm64",
9d2e98ed
TL
27882 "armhf",
27883 "riscv32",
27884 "riscv64"
44660702 27885 ],
7aacca6f 27886 "optional" : 1,
44660702
DM
27887 "type" : "string"
27888 },
27889 "cmode" : {
7aacca6f 27890 "default" : "tty",
44660702 27891 "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
27892 "enum" : [
27893 "shell",
27894 "console",
27895 "tty"
27896 ],
44660702
DM
27897 "optional" : 1,
27898 "type" : "string"
7aacca6f 27899 },
44660702
DM
27900 "console" : {
27901 "default" : 1,
27902 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 27903 "optional" : 1,
013dc89f
DM
27904 "type" : "boolean",
27905 "typetext" : "<boolean>"
7aacca6f 27906 },
de0983cb
DM
27907 "cores" : {
27908 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 27909 "maximum" : 8192,
de0983cb
DM
27910 "minimum" : 1,
27911 "optional" : 1,
27912 "type" : "integer",
4772952b 27913 "typetext" : "<integer> (1 - 8192)"
de0983cb 27914 },
44660702
DM
27915 "cpulimit" : {
27916 "default" : 0,
27917 "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 27918 "maximum" : 8192,
7aacca6f 27919 "minimum" : 0,
7aacca6f 27920 "optional" : 1,
4bd7df8b 27921 "type" : "number",
4772952b 27922 "typetext" : "<number> (0 - 8192)"
7aacca6f 27923 },
44660702 27924 "cpuunits" : {
4e7f60c2
TL
27925 "default" : "cgroup v1: 1024, cgroup v2: 100",
27926 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
44660702
DM
27927 "maximum" : 500000,
27928 "minimum" : 0,
27929 "optional" : 1,
4bd7df8b 27930 "type" : "integer",
4e7f60c2
TL
27931 "typetext" : "<integer> (0 - 500000)",
27932 "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 27933 },
739d4d64
TL
27934 "debug" : {
27935 "default" : 0,
27936 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
27937 "optional" : 1,
27938 "type" : "boolean",
27939 "typetext" : "<boolean>"
27940 },
44660702
DM
27941 "delete" : {
27942 "description" : "A list of settings you want to delete.",
27943 "format" : "pve-configid-list",
7aacca6f 27944 "optional" : 1,
013dc89f
DM
27945 "type" : "string",
27946 "typetext" : "<string>"
7aacca6f 27947 },
44660702 27948 "description" : {
8f4d9c87
TL
27949 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
27950 "maxLength" : 8192,
7aacca6f 27951 "optional" : 1,
013dc89f
DM
27952 "type" : "string",
27953 "typetext" : "<string>"
7aacca6f 27954 },
44660702
DM
27955 "digest" : {
27956 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27957 "maxLength" : 40,
7aacca6f 27958 "optional" : 1,
013dc89f
DM
27959 "type" : "string",
27960 "typetext" : "<string>"
7aacca6f 27961 },
4d47f125
TL
27962 "features" : {
27963 "description" : "Allow containers access to advanced features.",
27964 "format" : {
c5aa7e14
TL
27965 "force_rw_sys" : {
27966 "default" : 0,
27967 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
27968 "optional" : 1,
27969 "type" : "boolean"
27970 },
e2d681b3
TL
27971 "fuse" : {
27972 "default" : 0,
27973 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
27974 "optional" : 1,
27975 "type" : "boolean"
27976 },
4d47f125
TL
27977 "keyctl" : {
27978 "default" : 0,
27979 "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.",
27980 "optional" : 1,
27981 "type" : "boolean"
27982 },
c5aa7e14
TL
27983 "mknod" : {
27984 "default" : 0,
27985 "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.",
27986 "optional" : 1,
27987 "type" : "boolean"
27988 },
4d47f125
TL
27989 "mount" : {
27990 "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.",
27991 "format_description" : "fstype;fstype;...",
27992 "optional" : 1,
95895385 27993 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
27994 "type" : "string"
27995 },
27996 "nesting" : {
27997 "default" : 0,
27998 "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.",
27999 "optional" : 1,
28000 "type" : "boolean"
28001 }
28002 },
28003 "optional" : 1,
28004 "type" : "string",
c5aa7e14 28005 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 28006 },
5f26e15b
TL
28007 "hookscript" : {
28008 "description" : "Script that will be exectued during various steps in the containers lifetime.",
28009 "format" : "pve-volume-id",
28010 "optional" : 1,
28011 "type" : "string",
28012 "typetext" : "<string>"
28013 },
44660702
DM
28014 "hostname" : {
28015 "description" : "Set a host name for the container.",
28016 "format" : "dns-name",
28017 "maxLength" : 255,
56122987 28018 "optional" : 1,
013dc89f
DM
28019 "type" : "string",
28020 "typetext" : "<string>"
44660702
DM
28021 },
28022 "lock" : {
4e7f60c2 28023 "description" : "Lock/unlock the container.",
44660702 28024 "enum" : [
44660702 28025 "backup",
bb4c8cf8 28026 "create",
1c532546 28027 "destroyed",
4d47f125 28028 "disk",
bb4c8cf8 28029 "fstrim",
4d47f125
TL
28030 "migrate",
28031 "mounted",
28032 "rollback",
44660702 28033 "snapshot",
4d47f125 28034 "snapshot-delete"
44660702
DM
28035 ],
28036 "optional" : 1,
28037 "type" : "string"
28038 },
28039 "memory" : {
28040 "default" : 512,
4e7f60c2 28041 "description" : "Amount of RAM for the container in MB.",
44660702
DM
28042 "minimum" : 16,
28043 "optional" : 1,
4bd7df8b 28044 "type" : "integer",
013dc89f 28045 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
28046 },
28047 "mp[n]" : {
d2656385 28048 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 28049 "format" : {
7aacca6f
DM
28050 "acl" : {
28051 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 28052 "optional" : 1,
44660702 28053 "type" : "boolean"
7aacca6f
DM
28054 },
28055 "backup" : {
de0983cb 28056 "description" : "Whether to include the mount point in backups.",
7aacca6f 28057 "optional" : 1,
4bd7df8b 28058 "type" : "boolean",
de0983cb 28059 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 28060 },
7cbed89a
TL
28061 "mountoptions" : {
28062 "description" : "Extra mount options for rootfs/mps.",
28063 "format_description" : "opt[;opt...]",
28064 "optional" : 1,
c30bb419 28065 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
28066 "type" : "string"
28067 },
7aacca6f 28068 "mp" : {
de0983cb 28069 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 28070 "format" : "pve-lxc-mp-string",
44660702 28071 "format_description" : "Path",
4bd7df8b 28072 "type" : "string",
de0983cb 28073 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 28074 },
5d9c884c
DM
28075 "quota" : {
28076 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
28077 "optional" : 1,
28078 "type" : "boolean"
28079 },
28080 "replicate" : {
28081 "default" : 1,
28082 "description" : "Will include this volume to a storage replica job.",
44660702
DM
28083 "optional" : 1,
28084 "type" : "boolean"
28085 },
28086 "ro" : {
de0983cb 28087 "description" : "Read-only mount point",
44660702
DM
28088 "optional" : 1,
28089 "type" : "boolean"
28090 },
de0983cb
DM
28091 "shared" : {
28092 "default" : 0,
28093 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
28094 "optional" : 1,
28095 "type" : "boolean",
28096 "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!"
28097 },
44660702
DM
28098 "size" : {
28099 "description" : "Volume size (read only value).",
28100 "format" : "disk-size",
28101 "format_description" : "DiskSize",
28102 "optional" : 1,
28103 "type" : "string"
28104 },
28105 "volume" : {
28106 "default_key" : 1,
28107 "description" : "Volume, device or directory to mount into the container.",
28108 "format" : "pve-lxc-mp-string",
28109 "format_description" : "volume",
28110 "type" : "string"
28111 }
28112 },
7aacca6f 28113 "optional" : 1,
4bd7df8b 28114 "type" : "string",
7cbed89a 28115 "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 28116 },
44660702
DM
28117 "nameserver" : {
28118 "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 28119 "format" : "lxc-ip-with-ll-iface-list",
56122987 28120 "optional" : 1,
013dc89f
DM
28121 "type" : "string",
28122 "typetext" : "<string>"
56122987
DM
28123 },
28124 "net[n]" : {
44660702 28125 "description" : "Specifies network interfaces for the container.",
56122987 28126 "format" : {
44660702
DM
28127 "bridge" : {
28128 "description" : "Bridge to attach the network device to.",
f004f5b9 28129 "format_description" : "bridge",
56122987 28130 "optional" : 1,
44660702
DM
28131 "pattern" : "[-_.\\w\\d]+",
28132 "type" : "string"
56122987 28133 },
44660702
DM
28134 "firewall" : {
28135 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 28136 "optional" : 1,
44660702 28137 "type" : "boolean"
56122987 28138 },
44660702
DM
28139 "gw" : {
28140 "description" : "Default gateway for IPv4 traffic.",
28141 "format" : "ipv4",
28142 "format_description" : "GatewayIPv4",
56122987 28143 "optional" : 1,
44660702 28144 "type" : "string"
56122987
DM
28145 },
28146 "gw6" : {
7aacca6f 28147 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
28148 "format" : "ipv6",
28149 "format_description" : "GatewayIPv6",
7aacca6f 28150 "optional" : 1,
56122987
DM
28151 "type" : "string"
28152 },
44660702 28153 "hwaddr" : {
f004f5b9 28154 "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 28155 "format" : "mac-addr",
f004f5b9 28156 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 28157 "optional" : 1,
95895385
TL
28158 "type" : "string",
28159 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
28160 },
28161 "ip" : {
28162 "description" : "IPv4 address in CIDR format.",
28163 "format" : "pve-ipv4-config",
2489d6df 28164 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 28165 "optional" : 1,
44660702 28166 "type" : "string"
56122987 28167 },
7aacca6f 28168 "ip6" : {
7aacca6f
DM
28169 "description" : "IPv6 address in CIDR format.",
28170 "format" : "pve-ipv6-config",
2489d6df 28171 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 28172 "optional" : 1,
44660702 28173 "type" : "string"
56122987 28174 },
9d2e98ed
TL
28175 "link_down" : {
28176 "description" : "Whether this interface should be disconnected (like pulling the plug).",
28177 "optional" : 1,
28178 "type" : "boolean"
28179 },
44660702
DM
28180 "mtu" : {
28181 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 28182 "maximum" : 65535,
44660702 28183 "minimum" : 64,
56122987 28184 "optional" : 1,
44660702 28185 "type" : "integer"
56122987
DM
28186 },
28187 "name" : {
44660702 28188 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 28189 "format_description" : "string",
56122987 28190 "pattern" : "[-_.\\w\\d]+",
44660702 28191 "type" : "string"
56122987 28192 },
44660702
DM
28193 "rate" : {
28194 "description" : "Apply rate limiting to the interface",
28195 "format_description" : "mbps",
56122987 28196 "optional" : 1,
44660702 28197 "type" : "number"
7aacca6f 28198 },
44660702
DM
28199 "tag" : {
28200 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
28201 "maximum" : 4094,
28202 "minimum" : 1,
56122987 28203 "optional" : 1,
7aacca6f 28204 "type" : "integer"
56122987 28205 },
44660702
DM
28206 "trunks" : {
28207 "description" : "VLAN ids to pass through the interface",
28208 "format_description" : "vlanid[;vlanid...]",
28209 "optional" : 1,
28210 "pattern" : "(?^:\\d+(?:;\\d+)*)",
28211 "type" : "string"
28212 },
28213 "type" : {
28214 "description" : "Network interface type.",
28215 "enum" : [
28216 "veth"
28217 ],
56122987 28218 "optional" : 1,
44660702 28219 "type" : "string"
56122987
DM
28220 }
28221 },
7aacca6f 28222 "optional" : 1,
4bd7df8b 28223 "type" : "string",
9d2e98ed 28224 "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 28225 },
44660702
DM
28226 "node" : {
28227 "description" : "The cluster node name.",
28228 "format" : "pve-node",
013dc89f
DM
28229 "type" : "string",
28230 "typetext" : "<string>"
56122987 28231 },
44660702
DM
28232 "onboot" : {
28233 "default" : 0,
4e7f60c2 28234 "description" : "Specifies whether a container will be started during system bootup.",
56122987 28235 "optional" : 1,
013dc89f
DM
28236 "type" : "boolean",
28237 "typetext" : "<boolean>"
56122987 28238 },
44660702
DM
28239 "ostype" : {
28240 "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.",
28241 "enum" : [
28242 "debian",
d2656385 28243 "devuan",
44660702
DM
28244 "ubuntu",
28245 "centos",
28246 "fedora",
28247 "opensuse",
28248 "archlinux",
28249 "alpine",
57b78691 28250 "gentoo",
7af2edf9 28251 "nixos",
44660702
DM
28252 "unmanaged"
28253 ],
56122987 28254 "optional" : 1,
44660702 28255 "type" : "string"
56122987 28256 },
44660702
DM
28257 "protection" : {
28258 "default" : 0,
28259 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 28260 "optional" : 1,
013dc89f
DM
28261 "type" : "boolean",
28262 "typetext" : "<boolean>"
56122987 28263 },
1c532546
TL
28264 "revert" : {
28265 "description" : "Revert a pending change.",
28266 "format" : "pve-configid-list",
28267 "optional" : 1,
28268 "type" : "string",
28269 "typetext" : "<string>"
28270 },
7aacca6f
DM
28271 "rootfs" : {
28272 "description" : "Use volume as container root.",
56122987
DM
28273 "format" : {
28274 "acl" : {
44660702 28275 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
28276 "optional" : 1,
28277 "type" : "boolean"
56122987 28278 },
7cbed89a
TL
28279 "mountoptions" : {
28280 "description" : "Extra mount options for rootfs/mps.",
28281 "format_description" : "opt[;opt...]",
28282 "optional" : 1,
c30bb419 28283 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
28284 "type" : "string"
28285 },
44660702
DM
28286 "quota" : {
28287 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
28288 "optional" : 1,
28289 "type" : "boolean"
28290 },
5d9c884c
DM
28291 "replicate" : {
28292 "default" : 1,
28293 "description" : "Will include this volume to a storage replica job.",
28294 "optional" : 1,
28295 "type" : "boolean"
28296 },
44660702 28297 "ro" : {
de0983cb 28298 "description" : "Read-only mount point",
56122987 28299 "optional" : 1,
44660702
DM
28300 "type" : "boolean"
28301 },
de0983cb
DM
28302 "shared" : {
28303 "default" : 0,
28304 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
28305 "optional" : 1,
28306 "type" : "boolean",
28307 "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!"
28308 },
44660702 28309 "size" : {
7aacca6f 28310 "description" : "Volume size (read only value).",
44660702 28311 "format" : "disk-size",
56122987 28312 "format_description" : "DiskSize",
56122987 28313 "optional" : 1,
44660702 28314 "type" : "string"
7aacca6f
DM
28315 },
28316 "volume" : {
7aacca6f
DM
28317 "default_key" : 1,
28318 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
28319 "format" : "pve-lxc-mp-string",
28320 "format_description" : "volume",
7aacca6f 28321 "type" : "string"
56122987 28322 }
44660702
DM
28323 },
28324 "optional" : 1,
4bd7df8b 28325 "type" : "string",
7cbed89a 28326 "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
28327 },
28328 "searchdomain" : {
28329 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
28330 "format" : "dns-name-list",
28331 "optional" : 1,
013dc89f
DM
28332 "type" : "string",
28333 "typetext" : "<string>"
44660702
DM
28334 },
28335 "startup" : {
28336 "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.",
28337 "format" : "pve-startup-order",
28338 "optional" : 1,
28339 "type" : "string",
28340 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
28341 },
28342 "swap" : {
28343 "default" : 512,
4e7f60c2 28344 "description" : "Amount of SWAP for the container in MB.",
44660702
DM
28345 "minimum" : 0,
28346 "optional" : 1,
4bd7df8b 28347 "type" : "integer",
013dc89f 28348 "typetext" : "<integer> (0 - N)"
56122987 28349 },
5c1699e5
TL
28350 "tags" : {
28351 "description" : "Tags of the Container. This is only meta information.",
28352 "format" : "pve-tag-list",
28353 "optional" : 1,
28354 "type" : "string",
28355 "typetext" : "<string>"
28356 },
56122987 28357 "template" : {
44660702 28358 "default" : 0,
7aacca6f 28359 "description" : "Enable/disable Template.",
56122987 28360 "optional" : 1,
013dc89f
DM
28361 "type" : "boolean",
28362 "typetext" : "<boolean>"
56122987 28363 },
04d22a9f
TL
28364 "timezone" : {
28365 "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",
28366 "format" : "pve-ct-timezone",
28367 "optional" : 1,
28368 "type" : "string",
28369 "typetext" : "<string>"
28370 },
44660702
DM
28371 "tty" : {
28372 "default" : 2,
28373 "description" : "Specify the number of tty available to the container",
28374 "maximum" : 6,
28375 "minimum" : 0,
28376 "optional" : 1,
4bd7df8b 28377 "type" : "integer",
013dc89f 28378 "typetext" : "<integer> (0 - 6)"
56122987 28379 },
44660702
DM
28380 "unprivileged" : {
28381 "default" : 0,
28382 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 28383 "optional" : 1,
013dc89f
DM
28384 "type" : "boolean",
28385 "typetext" : "<boolean>"
56122987 28386 },
44660702 28387 "unused[n]" : {
c2993fe5 28388 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
28389 "format" : {
28390 "volume" : {
28391 "default_key" : 1,
28392 "description" : "The volume that is not used currently.",
28393 "format" : "pve-volume-id",
28394 "format_description" : "volume",
28395 "type" : "string"
28396 }
28397 },
56122987 28398 "optional" : 1,
013dc89f 28399 "type" : "string",
c5aa7e14 28400 "typetext" : "[volume=]<volume>"
44660702
DM
28401 },
28402 "vmid" : {
28403 "description" : "The (unique) ID of the VM.",
28404 "format" : "pve-vmid",
8dd66e12
TL
28405 "maximum" : 999999999,
28406 "minimum" : 100,
4bd7df8b 28407 "type" : "integer",
8dd66e12 28408 "typetext" : "<integer> (100 - 999999999)"
56122987 28409 }
44660702 28410 }
56122987 28411 },
56122987
DM
28412 "permissions" : {
28413 "check" : [
28414 "perm",
28415 "/vms/{vmid}",
28416 [
28417 "VM.Config.Disk",
28418 "VM.Config.CPU",
28419 "VM.Config.Memory",
28420 "VM.Config.Network",
28421 "VM.Config.Options"
28422 ],
28423 "any",
28424 1
52e44c50
FG
28425 ],
28426 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 28427 },
44660702
DM
28428 "protected" : 1,
28429 "proxyto" : "node",
56122987
DM
28430 "returns" : {
28431 "type" : "null"
7aacca6f 28432 }
56122987 28433 }
7aacca6f 28434 },
44660702 28435 "leaf" : 1,
7aacca6f 28436 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 28437 "text" : "config"
56122987
DM
28438 },
28439 {
56122987
DM
28440 "children" : [
28441 {
28442 "info" : {
28443 "GET" : {
e9cd3bd4 28444 "allowtoken" : 1,
44660702 28445 "description" : "Get virtual machine status.",
7aacca6f 28446 "method" : "GET",
44660702 28447 "name" : "vm_status",
56122987 28448 "parameters" : {
44660702 28449 "additionalProperties" : 0,
56122987 28450 "properties" : {
56122987 28451 "node" : {
44660702 28452 "description" : "The cluster node name.",
56122987 28453 "format" : "pve-node",
013dc89f
DM
28454 "type" : "string",
28455 "typetext" : "<string>"
7aacca6f
DM
28456 },
28457 "vmid" : {
28458 "description" : "The (unique) ID of the VM.",
44660702 28459 "format" : "pve-vmid",
8dd66e12
TL
28460 "maximum" : 999999999,
28461 "minimum" : 100,
4bd7df8b 28462 "type" : "integer",
8dd66e12 28463 "typetext" : "<integer> (100 - 999999999)"
56122987 28464 }
44660702 28465 }
7aacca6f
DM
28466 },
28467 "permissions" : {
28468 "check" : [
28469 "perm",
28470 "/vms/{vmid}",
28471 [
4d47f125
TL
28472 "VM.Audit"
28473 ]
28474 ]
28475 },
28476 "protected" : 1,
28477 "proxyto" : "node",
28478 "returns" : {
28479 "properties" : {
28480 "cpus" : {
28481 "description" : "Maximum usable CPUs.",
28482 "optional" : 1,
28483 "type" : "number"
28484 },
28485 "ha" : {
28486 "description" : "HA manager service status.",
28487 "type" : "object"
28488 },
95895385
TL
28489 "lock" : {
28490 "description" : "The current config lock, if any.",
28491 "optional" : 1,
28492 "type" : "string"
28493 },
4d47f125
TL
28494 "maxdisk" : {
28495 "description" : "Root disk size in bytes.",
28496 "optional" : 1,
28497 "renderer" : "bytes",
28498 "type" : "integer"
28499 },
28500 "maxmem" : {
28501 "description" : "Maximum memory in bytes.",
28502 "optional" : 1,
28503 "renderer" : "bytes",
28504 "type" : "integer"
28505 },
28506 "maxswap" : {
28507 "description" : "Maximum SWAP memory in bytes.",
28508 "optional" : 1,
28509 "renderer" : "bytes",
28510 "type" : "integer"
28511 },
28512 "name" : {
28513 "description" : "Container name.",
28514 "optional" : 1,
28515 "type" : "string"
28516 },
28517 "status" : {
28518 "description" : "LXC Container status.",
28519 "enum" : [
28520 "stopped",
28521 "running"
28522 ],
28523 "type" : "string"
28524 },
5c1699e5
TL
28525 "tags" : {
28526 "description" : "The current configured tags, if any.",
28527 "optional" : 1,
28528 "type" : "string"
28529 },
4d47f125
TL
28530 "uptime" : {
28531 "description" : "Uptime.",
28532 "optional" : 1,
28533 "renderer" : "duration",
28534 "type" : "integer"
28535 },
28536 "vmid" : {
28537 "description" : "The (unique) ID of the VM.",
28538 "format" : "pve-vmid",
8dd66e12
TL
28539 "maximum" : 999999999,
28540 "minimum" : 100,
4d47f125
TL
28541 "type" : "integer"
28542 }
28543 },
28544 "type" : "object"
28545 }
28546 }
28547 },
28548 "leaf" : 1,
28549 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
28550 "text" : "current"
28551 },
28552 {
28553 "info" : {
28554 "POST" : {
e9cd3bd4 28555 "allowtoken" : 1,
4d47f125
TL
28556 "description" : "Start the container.",
28557 "method" : "POST",
28558 "name" : "vm_start",
28559 "parameters" : {
28560 "additionalProperties" : 0,
28561 "properties" : {
739d4d64
TL
28562 "debug" : {
28563 "default" : 0,
28564 "description" : "If set, enables very verbose debug log-level on start.",
28565 "optional" : 1,
28566 "type" : "boolean",
28567 "typetext" : "<boolean>"
28568 },
4d47f125
TL
28569 "node" : {
28570 "description" : "The cluster node name.",
28571 "format" : "pve-node",
28572 "type" : "string",
28573 "typetext" : "<string>"
28574 },
28575 "skiplock" : {
28576 "description" : "Ignore locks - only root is allowed to use this option.",
28577 "optional" : 1,
28578 "type" : "boolean",
28579 "typetext" : "<boolean>"
28580 },
28581 "vmid" : {
28582 "description" : "The (unique) ID of the VM.",
28583 "format" : "pve-vmid",
8dd66e12
TL
28584 "maximum" : 999999999,
28585 "minimum" : 100,
4d47f125 28586 "type" : "integer",
8dd66e12 28587 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28588 }
28589 }
28590 },
28591 "permissions" : {
28592 "check" : [
28593 "perm",
28594 "/vms/{vmid}",
28595 [
28596 "VM.PowerMgmt"
28597 ]
28598 ]
28599 },
28600 "protected" : 1,
28601 "proxyto" : "node",
28602 "returns" : {
28603 "type" : "string"
28604 }
28605 }
28606 },
28607 "leaf" : 1,
28608 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
28609 "text" : "start"
28610 },
28611 {
28612 "info" : {
28613 "POST" : {
e9cd3bd4 28614 "allowtoken" : 1,
4d47f125
TL
28615 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
28616 "method" : "POST",
28617 "name" : "vm_stop",
28618 "parameters" : {
28619 "additionalProperties" : 0,
28620 "properties" : {
28621 "node" : {
28622 "description" : "The cluster node name.",
28623 "format" : "pve-node",
28624 "type" : "string",
28625 "typetext" : "<string>"
28626 },
28627 "skiplock" : {
28628 "description" : "Ignore locks - only root is allowed to use this option.",
28629 "optional" : 1,
28630 "type" : "boolean",
28631 "typetext" : "<boolean>"
28632 },
28633 "vmid" : {
28634 "description" : "The (unique) ID of the VM.",
28635 "format" : "pve-vmid",
8dd66e12
TL
28636 "maximum" : 999999999,
28637 "minimum" : 100,
4d47f125 28638 "type" : "integer",
8dd66e12 28639 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28640 }
28641 }
28642 },
28643 "permissions" : {
28644 "check" : [
28645 "perm",
28646 "/vms/{vmid}",
28647 [
28648 "VM.PowerMgmt"
28649 ]
28650 ]
28651 },
28652 "protected" : 1,
28653 "proxyto" : "node",
28654 "returns" : {
28655 "type" : "string"
28656 }
28657 }
28658 },
28659 "leaf" : 1,
28660 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
28661 "text" : "stop"
28662 },
28663 {
28664 "info" : {
28665 "POST" : {
e9cd3bd4 28666 "allowtoken" : 1,
4d47f125
TL
28667 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
28668 "method" : "POST",
28669 "name" : "vm_shutdown",
28670 "parameters" : {
28671 "additionalProperties" : 0,
28672 "properties" : {
28673 "forceStop" : {
28674 "default" : 0,
28675 "description" : "Make sure the Container stops.",
28676 "optional" : 1,
28677 "type" : "boolean",
28678 "typetext" : "<boolean>"
28679 },
28680 "node" : {
28681 "description" : "The cluster node name.",
28682 "format" : "pve-node",
28683 "type" : "string",
28684 "typetext" : "<string>"
28685 },
28686 "timeout" : {
28687 "default" : 60,
28688 "description" : "Wait maximal timeout seconds.",
28689 "minimum" : 0,
28690 "optional" : 1,
28691 "type" : "integer",
28692 "typetext" : "<integer> (0 - N)"
28693 },
28694 "vmid" : {
28695 "description" : "The (unique) ID of the VM.",
28696 "format" : "pve-vmid",
8dd66e12
TL
28697 "maximum" : 999999999,
28698 "minimum" : 100,
4d47f125 28699 "type" : "integer",
8dd66e12 28700 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28701 }
28702 }
28703 },
28704 "permissions" : {
28705 "check" : [
28706 "perm",
28707 "/vms/{vmid}",
28708 [
28709 "VM.PowerMgmt"
7aacca6f
DM
28710 ]
28711 ]
28712 },
44660702 28713 "protected" : 1,
7aacca6f 28714 "proxyto" : "node",
44660702 28715 "returns" : {
4d47f125 28716 "type" : "string"
44660702 28717 }
56122987
DM
28718 }
28719 },
44660702 28720 "leaf" : 1,
4d47f125
TL
28721 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
28722 "text" : "shutdown"
56122987
DM
28723 },
28724 {
56122987
DM
28725 "info" : {
28726 "POST" : {
e9cd3bd4 28727 "allowtoken" : 1,
5370fa8c 28728 "description" : "Suspend the container. This is experimental.",
44660702 28729 "method" : "POST",
4d47f125 28730 "name" : "vm_suspend",
56122987
DM
28731 "parameters" : {
28732 "additionalProperties" : 0,
28733 "properties" : {
56122987 28734 "node" : {
7aacca6f 28735 "description" : "The cluster node name.",
44660702 28736 "format" : "pve-node",
013dc89f
DM
28737 "type" : "string",
28738 "typetext" : "<string>"
56122987
DM
28739 },
28740 "vmid" : {
7aacca6f 28741 "description" : "The (unique) ID of the VM.",
44660702 28742 "format" : "pve-vmid",
8dd66e12
TL
28743 "maximum" : 999999999,
28744 "minimum" : 100,
4bd7df8b 28745 "type" : "integer",
8dd66e12 28746 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
28747 }
28748 }
28749 },
28750 "permissions" : {
28751 "check" : [
28752 "perm",
28753 "/vms/{vmid}",
28754 [
28755 "VM.PowerMgmt"
28756 ]
28757 ]
28758 },
44660702 28759 "protected" : 1,
7aacca6f 28760 "proxyto" : "node",
44660702
DM
28761 "returns" : {
28762 "type" : "string"
28763 }
28764 }
28765 },
28766 "leaf" : 1,
4d47f125
TL
28767 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
28768 "text" : "suspend"
44660702
DM
28769 },
28770 {
28771 "info" : {
28772 "POST" : {
e9cd3bd4 28773 "allowtoken" : 1,
4d47f125 28774 "description" : "Resume the container.",
7aacca6f 28775 "method" : "POST",
4d47f125 28776 "name" : "vm_resume",
7aacca6f 28777 "parameters" : {
44660702 28778 "additionalProperties" : 0,
7aacca6f 28779 "properties" : {
44660702
DM
28780 "node" : {
28781 "description" : "The cluster node name.",
28782 "format" : "pve-node",
013dc89f
DM
28783 "type" : "string",
28784 "typetext" : "<string>"
44660702 28785 },
7aacca6f 28786 "vmid" : {
44660702 28787 "description" : "The (unique) ID of the VM.",
7aacca6f 28788 "format" : "pve-vmid",
8dd66e12
TL
28789 "maximum" : 999999999,
28790 "minimum" : 100,
4bd7df8b 28791 "type" : "integer",
8dd66e12 28792 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 28793 }
44660702
DM
28794 }
28795 },
28796 "permissions" : {
28797 "check" : [
28798 "perm",
28799 "/vms/{vmid}",
28800 [
28801 "VM.PowerMgmt"
28802 ]
28803 ]
7aacca6f 28804 },
44660702
DM
28805 "protected" : 1,
28806 "proxyto" : "node",
28807 "returns" : {
28808 "type" : "string"
28809 }
56122987 28810 }
7aacca6f 28811 },
7aacca6f 28812 "leaf" : 1,
4d47f125
TL
28813 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
28814 "text" : "resume"
5c1699e5
TL
28815 },
28816 {
28817 "info" : {
28818 "POST" : {
e9cd3bd4 28819 "allowtoken" : 1,
5c1699e5
TL
28820 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
28821 "method" : "POST",
28822 "name" : "vm_reboot",
28823 "parameters" : {
28824 "additionalProperties" : 0,
28825 "properties" : {
28826 "node" : {
28827 "description" : "The cluster node name.",
28828 "format" : "pve-node",
28829 "type" : "string",
28830 "typetext" : "<string>"
28831 },
28832 "timeout" : {
28833 "description" : "Wait maximal timeout seconds for the shutdown.",
28834 "minimum" : 0,
28835 "optional" : 1,
28836 "type" : "integer",
28837 "typetext" : "<integer> (0 - N)"
28838 },
28839 "vmid" : {
28840 "description" : "The (unique) ID of the VM.",
28841 "format" : "pve-vmid",
8dd66e12
TL
28842 "maximum" : 999999999,
28843 "minimum" : 100,
5c1699e5 28844 "type" : "integer",
8dd66e12 28845 "typetext" : "<integer> (100 - 999999999)"
5c1699e5
TL
28846 }
28847 }
28848 },
28849 "permissions" : {
28850 "check" : [
28851 "perm",
28852 "/vms/{vmid}",
28853 [
28854 "VM.PowerMgmt"
28855 ]
28856 ]
28857 },
28858 "protected" : 1,
28859 "proxyto" : "node",
28860 "returns" : {
28861 "type" : "string"
28862 }
28863 }
28864 },
28865 "leaf" : 1,
28866 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
28867 "text" : "reboot"
4d47f125
TL
28868 }
28869 ],
28870 "info" : {
28871 "GET" : {
e9cd3bd4 28872 "allowtoken" : 1,
4d47f125
TL
28873 "description" : "Directory index",
28874 "method" : "GET",
28875 "name" : "vmcmdidx",
28876 "parameters" : {
28877 "additionalProperties" : 0,
28878 "properties" : {
28879 "node" : {
28880 "description" : "The cluster node name.",
28881 "format" : "pve-node",
28882 "type" : "string",
28883 "typetext" : "<string>"
28884 },
28885 "vmid" : {
28886 "description" : "The (unique) ID of the VM.",
28887 "format" : "pve-vmid",
8dd66e12
TL
28888 "maximum" : 999999999,
28889 "minimum" : 100,
4d47f125 28890 "type" : "integer",
8dd66e12 28891 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28892 }
28893 }
28894 },
28895 "permissions" : {
28896 "user" : "all"
28897 },
28898 "proxyto" : "node",
28899 "returns" : {
28900 "items" : {
28901 "properties" : {
28902 "subdir" : {
28903 "type" : "string"
28904 }
28905 },
28906 "type" : "object"
28907 },
28908 "links" : [
28909 {
28910 "href" : "{subdir}",
28911 "rel" : "child"
28912 }
28913 ],
28914 "type" : "array"
28915 }
28916 }
28917 },
28918 "leaf" : 0,
28919 "path" : "/nodes/{node}/lxc/{vmid}/status",
28920 "text" : "status"
28921 },
28922 {
28923 "children" : [
56122987 28924 {
4d47f125
TL
28925 "children" : [
28926 {
28927 "info" : {
28928 "POST" : {
e9cd3bd4 28929 "allowtoken" : 1,
4d47f125
TL
28930 "description" : "Rollback LXC state to specified snapshot.",
28931 "method" : "POST",
28932 "name" : "rollback",
28933 "parameters" : {
28934 "additionalProperties" : 0,
28935 "properties" : {
28936 "node" : {
28937 "description" : "The cluster node name.",
28938 "format" : "pve-node",
28939 "type" : "string",
28940 "typetext" : "<string>"
28941 },
28942 "snapname" : {
28943 "description" : "The name of the snapshot.",
28944 "format" : "pve-configid",
28945 "maxLength" : 40,
28946 "type" : "string",
28947 "typetext" : "<string>"
28948 },
4e7f60c2
TL
28949 "start" : {
28950 "default" : 0,
28951 "description" : "Whether the container should get started after rolling back successfully",
28952 "optional" : 1,
28953 "type" : "boolean",
28954 "typetext" : "<boolean>"
28955 },
4d47f125
TL
28956 "vmid" : {
28957 "description" : "The (unique) ID of the VM.",
28958 "format" : "pve-vmid",
8dd66e12
TL
28959 "maximum" : 999999999,
28960 "minimum" : 100,
4d47f125 28961 "type" : "integer",
8dd66e12 28962 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28963 }
28964 }
28965 },
28966 "permissions" : {
28967 "check" : [
28968 "perm",
28969 "/vms/{vmid}",
28970 [
28971 "VM.Snapshot",
28972 "VM.Snapshot.Rollback"
28973 ],
28974 "any",
28975 1
28976 ]
28977 },
28978 "protected" : 1,
28979 "proxyto" : "node",
28980 "returns" : {
28981 "description" : "the task ID.",
28982 "type" : "string"
28983 }
28984 }
28985 },
28986 "leaf" : 1,
28987 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
28988 "text" : "rollback"
28989 },
28990 {
28991 "info" : {
28992 "GET" : {
e9cd3bd4 28993 "allowtoken" : 1,
4d47f125
TL
28994 "description" : "Get snapshot configuration",
28995 "method" : "GET",
28996 "name" : "get_snapshot_config",
28997 "parameters" : {
28998 "additionalProperties" : 0,
28999 "properties" : {
29000 "node" : {
29001 "description" : "The cluster node name.",
29002 "format" : "pve-node",
29003 "type" : "string",
29004 "typetext" : "<string>"
29005 },
29006 "snapname" : {
29007 "description" : "The name of the snapshot.",
29008 "format" : "pve-configid",
29009 "maxLength" : 40,
29010 "type" : "string",
29011 "typetext" : "<string>"
29012 },
29013 "vmid" : {
29014 "description" : "The (unique) ID of the VM.",
29015 "format" : "pve-vmid",
8dd66e12
TL
29016 "maximum" : 999999999,
29017 "minimum" : 100,
4d47f125 29018 "type" : "integer",
8dd66e12 29019 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29020 }
29021 }
29022 },
29023 "permissions" : {
29024 "check" : [
29025 "perm",
29026 "/vms/{vmid}",
29027 [
29028 "VM.Snapshot",
c5aa7e14
TL
29029 "VM.Snapshot.Rollback",
29030 "VM.Audit"
4d47f125
TL
29031 ],
29032 "any",
29033 1
29034 ]
29035 },
29036 "proxyto" : "node",
29037 "returns" : {
29038 "type" : "object"
29039 }
29040 },
29041 "PUT" : {
e9cd3bd4 29042 "allowtoken" : 1,
4d47f125
TL
29043 "description" : "Update snapshot metadata.",
29044 "method" : "PUT",
29045 "name" : "update_snapshot_config",
29046 "parameters" : {
29047 "additionalProperties" : 0,
29048 "properties" : {
29049 "description" : {
29050 "description" : "A textual description or comment.",
29051 "optional" : 1,
29052 "type" : "string",
29053 "typetext" : "<string>"
29054 },
29055 "node" : {
29056 "description" : "The cluster node name.",
29057 "format" : "pve-node",
29058 "type" : "string",
29059 "typetext" : "<string>"
29060 },
29061 "snapname" : {
29062 "description" : "The name of the snapshot.",
29063 "format" : "pve-configid",
29064 "maxLength" : 40,
29065 "type" : "string",
29066 "typetext" : "<string>"
29067 },
29068 "vmid" : {
29069 "description" : "The (unique) ID of the VM.",
29070 "format" : "pve-vmid",
8dd66e12
TL
29071 "maximum" : 999999999,
29072 "minimum" : 100,
4d47f125 29073 "type" : "integer",
8dd66e12 29074 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29075 }
29076 }
29077 },
29078 "permissions" : {
29079 "check" : [
29080 "perm",
29081 "/vms/{vmid}",
29082 [
29083 "VM.Snapshot"
29084 ]
29085 ]
29086 },
29087 "protected" : 1,
29088 "proxyto" : "node",
29089 "returns" : {
29090 "type" : "null"
29091 }
29092 }
29093 },
29094 "leaf" : 1,
29095 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
29096 "text" : "config"
29097 }
29098 ],
56122987 29099 "info" : {
4d47f125 29100 "DELETE" : {
e9cd3bd4 29101 "allowtoken" : 1,
4d47f125
TL
29102 "description" : "Delete a LXC snapshot.",
29103 "method" : "DELETE",
29104 "name" : "delsnapshot",
56122987 29105 "parameters" : {
44660702 29106 "additionalProperties" : 0,
56122987 29107 "properties" : {
4d47f125
TL
29108 "force" : {
29109 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 29110 "optional" : 1,
013dc89f
DM
29111 "type" : "boolean",
29112 "typetext" : "<boolean>"
44660702
DM
29113 },
29114 "node" : {
29115 "description" : "The cluster node name.",
29116 "format" : "pve-node",
013dc89f
DM
29117 "type" : "string",
29118 "typetext" : "<string>"
7aacca6f 29119 },
4d47f125
TL
29120 "snapname" : {
29121 "description" : "The name of the snapshot.",
29122 "format" : "pve-configid",
29123 "maxLength" : 40,
29124 "type" : "string",
29125 "typetext" : "<string>"
56122987
DM
29126 },
29127 "vmid" : {
7aacca6f 29128 "description" : "The (unique) ID of the VM.",
44660702 29129 "format" : "pve-vmid",
8dd66e12
TL
29130 "maximum" : 999999999,
29131 "minimum" : 100,
4bd7df8b 29132 "type" : "integer",
8dd66e12 29133 "typetext" : "<integer> (100 - 999999999)"
56122987 29134 }
44660702 29135 }
56122987
DM
29136 },
29137 "permissions" : {
29138 "check" : [
29139 "perm",
29140 "/vms/{vmid}",
29141 [
4d47f125 29142 "VM.Snapshot"
56122987
DM
29143 ]
29144 ]
29145 },
44660702
DM
29146 "protected" : 1,
29147 "proxyto" : "node",
7aacca6f 29148 "returns" : {
4d47f125 29149 "description" : "the task ID.",
7aacca6f
DM
29150 "type" : "string"
29151 }
4d47f125
TL
29152 },
29153 "GET" : {
e9cd3bd4 29154 "allowtoken" : 1,
4d47f125
TL
29155 "description" : "",
29156 "method" : "GET",
29157 "name" : "snapshot_cmd_idx",
56122987
DM
29158 "parameters" : {
29159 "additionalProperties" : 0,
29160 "properties" : {
44660702
DM
29161 "node" : {
29162 "description" : "The cluster node name.",
29163 "format" : "pve-node",
013dc89f
DM
29164 "type" : "string",
29165 "typetext" : "<string>"
44660702 29166 },
4d47f125
TL
29167 "snapname" : {
29168 "description" : "The name of the snapshot.",
29169 "format" : "pve-configid",
29170 "maxLength" : 40,
013dc89f
DM
29171 "type" : "string",
29172 "typetext" : "<string>"
56122987
DM
29173 },
29174 "vmid" : {
7aacca6f 29175 "description" : "The (unique) ID of the VM.",
56122987 29176 "format" : "pve-vmid",
8dd66e12
TL
29177 "maximum" : 999999999,
29178 "minimum" : 100,
4bd7df8b 29179 "type" : "integer",
8dd66e12 29180 "typetext" : "<integer> (100 - 999999999)"
56122987 29181 }
44660702
DM
29182 }
29183 },
29184 "permissions" : {
4d47f125 29185 "user" : "all"
56122987 29186 },
44660702 29187 "returns" : {
4d47f125
TL
29188 "items" : {
29189 "properties" : {},
29190 "type" : "object"
29191 },
29192 "links" : [
29193 {
29194 "href" : "{cmd}",
29195 "rel" : "child"
29196 }
29197 ],
29198 "type" : "array"
44660702 29199 }
7aacca6f
DM
29200 }
29201 },
4d47f125
TL
29202 "leaf" : 0,
29203 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
29204 "text" : "{snapname}"
7aacca6f
DM
29205 }
29206 ],
29207 "info" : {
29208 "GET" : {
e9cd3bd4 29209 "allowtoken" : 1,
4d47f125 29210 "description" : "List all snapshots.",
44660702 29211 "method" : "GET",
4d47f125 29212 "name" : "list",
7aacca6f
DM
29213 "parameters" : {
29214 "additionalProperties" : 0,
29215 "properties" : {
29216 "node" : {
29217 "description" : "The cluster node name.",
44660702 29218 "format" : "pve-node",
013dc89f
DM
29219 "type" : "string",
29220 "typetext" : "<string>"
56122987 29221 },
7aacca6f 29222 "vmid" : {
44660702 29223 "description" : "The (unique) ID of the VM.",
7aacca6f 29224 "format" : "pve-vmid",
8dd66e12
TL
29225 "maximum" : 999999999,
29226 "minimum" : 100,
4bd7df8b 29227 "type" : "integer",
8dd66e12 29228 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 29229 }
56122987
DM
29230 }
29231 },
44660702 29232 "permissions" : {
4d47f125
TL
29233 "check" : [
29234 "perm",
29235 "/vms/{vmid}",
29236 [
29237 "VM.Audit"
29238 ]
29239 ]
44660702 29240 },
4d47f125 29241 "protected" : 1,
44660702 29242 "proxyto" : "node",
7aacca6f 29243 "returns" : {
7aacca6f
DM
29244 "items" : {
29245 "properties" : {
4d47f125
TL
29246 "description" : {
29247 "description" : "Snapshot description.",
7aacca6f 29248 "type" : "string"
4d47f125
TL
29249 },
29250 "name" : {
29251 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
29252 "type" : "string"
29253 },
29254 "parent" : {
29255 "description" : "Parent snapshot identifier.",
29256 "optional" : 1,
29257 "type" : "string"
29258 },
29259 "snaptime" : {
29260 "description" : "Snapshot creation time",
29261 "optional" : 1,
29262 "renderer" : "timestamp",
29263 "type" : "integer"
7aacca6f
DM
29264 }
29265 },
29266 "type" : "object"
29267 },
29268 "links" : [
29269 {
4d47f125 29270 "href" : "{name}",
44660702 29271 "rel" : "child"
7aacca6f 29272 }
44660702
DM
29273 ],
29274 "type" : "array"
7aacca6f 29275 }
4d47f125
TL
29276 },
29277 "POST" : {
e9cd3bd4 29278 "allowtoken" : 1,
4d47f125
TL
29279 "description" : "Snapshot a container.",
29280 "method" : "POST",
29281 "name" : "snapshot",
29282 "parameters" : {
29283 "additionalProperties" : 0,
29284 "properties" : {
29285 "description" : {
29286 "description" : "A textual description or comment.",
29287 "optional" : 1,
29288 "type" : "string",
29289 "typetext" : "<string>"
29290 },
29291 "node" : {
29292 "description" : "The cluster node name.",
29293 "format" : "pve-node",
29294 "type" : "string",
29295 "typetext" : "<string>"
29296 },
29297 "snapname" : {
29298 "description" : "The name of the snapshot.",
29299 "format" : "pve-configid",
29300 "maxLength" : 40,
29301 "type" : "string",
29302 "typetext" : "<string>"
29303 },
29304 "vmid" : {
29305 "description" : "The (unique) ID of the VM.",
29306 "format" : "pve-vmid",
8dd66e12
TL
29307 "maximum" : 999999999,
29308 "minimum" : 100,
4d47f125 29309 "type" : "integer",
8dd66e12 29310 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29311 }
29312 }
29313 },
29314 "permissions" : {
29315 "check" : [
29316 "perm",
29317 "/vms/{vmid}",
29318 [
29319 "VM.Snapshot"
29320 ]
29321 ]
29322 },
29323 "protected" : 1,
29324 "proxyto" : "node",
29325 "returns" : {
29326 "description" : "the task ID.",
29327 "type" : "string"
29328 }
7aacca6f 29329 }
44660702
DM
29330 },
29331 "leaf" : 0,
4d47f125
TL
29332 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
29333 "text" : "snapshot"
7aacca6f
DM
29334 },
29335 {
7aacca6f 29336 "children" : [
56122987 29337 {
7aacca6f
DM
29338 "children" : [
29339 {
29340 "info" : {
4d47f125 29341 "DELETE" : {
e9cd3bd4 29342 "allowtoken" : 1,
4d47f125
TL
29343 "description" : "Delete rule.",
29344 "method" : "DELETE",
29345 "name" : "delete_rule",
7aacca6f 29346 "parameters" : {
44660702 29347 "additionalProperties" : 0,
7aacca6f 29348 "properties" : {
4d47f125
TL
29349 "digest" : {
29350 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29351 "maxLength" : 40,
29352 "optional" : 1,
29353 "type" : "string",
29354 "typetext" : "<string>"
29355 },
44660702
DM
29356 "node" : {
29357 "description" : "The cluster node name.",
29358 "format" : "pve-node",
013dc89f
DM
29359 "type" : "string",
29360 "typetext" : "<string>"
44660702 29361 },
4d47f125
TL
29362 "pos" : {
29363 "description" : "Update rule at position <pos>.",
29364 "minimum" : 0,
29365 "optional" : 1,
29366 "type" : "integer",
29367 "typetext" : "<integer> (0 - N)"
7aacca6f 29368 },
7aacca6f 29369 "vmid" : {
44660702 29370 "description" : "The (unique) ID of the VM.",
7aacca6f 29371 "format" : "pve-vmid",
8dd66e12
TL
29372 "maximum" : 999999999,
29373 "minimum" : 100,
4bd7df8b 29374 "type" : "integer",
8dd66e12 29375 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 29376 }
44660702
DM
29377 }
29378 },
29379 "permissions" : {
29380 "check" : [
29381 "perm",
29382 "/vms/{vmid}",
29383 [
4d47f125
TL
29384 "VM.Config.Network"
29385 ]
44660702 29386 ]
7aacca6f 29387 },
44660702 29388 "protected" : 1,
4d47f125 29389 "proxyto" : null,
44660702 29390 "returns" : {
4d47f125 29391 "type" : "null"
44660702 29392 }
4d47f125 29393 },
7aacca6f 29394 "GET" : {
e9cd3bd4 29395 "allowtoken" : 1,
4d47f125 29396 "description" : "Get single rule data.",
44660702 29397 "method" : "GET",
4d47f125 29398 "name" : "get_rule",
7aacca6f
DM
29399 "parameters" : {
29400 "additionalProperties" : 0,
4d47f125
TL
29401 "properties" : {
29402 "node" : {
29403 "description" : "The cluster node name.",
29404 "format" : "pve-node",
013dc89f
DM
29405 "type" : "string",
29406 "typetext" : "<string>"
44660702 29407 },
4d47f125
TL
29408 "pos" : {
29409 "description" : "Update rule at position <pos>.",
29410 "minimum" : 0,
29411 "optional" : 1,
29412 "type" : "integer",
29413 "typetext" : "<integer> (0 - N)"
29414 },
44660702
DM
29415 "vmid" : {
29416 "description" : "The (unique) ID of the VM.",
29417 "format" : "pve-vmid",
8dd66e12
TL
29418 "maximum" : 999999999,
29419 "minimum" : 100,
4bd7df8b 29420 "type" : "integer",
8dd66e12 29421 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
29422 }
29423 }
29424 },
29425 "permissions" : {
29426 "check" : [
29427 "perm",
29428 "/vms/{vmid}",
29429 [
4d47f125
TL
29430 "VM.Audit"
29431 ]
7aacca6f
DM
29432 ]
29433 },
4d47f125 29434 "proxyto" : null,
44660702 29435 "returns" : {
4d47f125 29436 "properties" : {
e2d681b3
TL
29437 "action" : {
29438 "type" : "string"
29439 },
29440 "comment" : {
29441 "optional" : 1,
29442 "type" : "string"
29443 },
29444 "dest" : {
29445 "optional" : 1,
29446 "type" : "string"
29447 },
29448 "dport" : {
29449 "optional" : 1,
29450 "type" : "string"
29451 },
29452 "enable" : {
29453 "optional" : 1,
29454 "type" : "integer"
29455 },
4772952b
TL
29456 "icmp-type" : {
29457 "optional" : 1,
29458 "type" : "string"
29459 },
e2d681b3
TL
29460 "iface" : {
29461 "optional" : 1,
29462 "type" : "string"
29463 },
29464 "ipversion" : {
29465 "optional" : 1,
29466 "type" : "integer"
29467 },
95895385
TL
29468 "log" : {
29469 "description" : "Log level for firewall rule",
29470 "enum" : [
29471 "emerg",
29472 "alert",
29473 "crit",
29474 "err",
29475 "warning",
29476 "notice",
29477 "info",
29478 "debug",
29479 "nolog"
29480 ],
29481 "optional" : 1,
29482 "type" : "string"
29483 },
e2d681b3
TL
29484 "macro" : {
29485 "optional" : 1,
5f26e15b 29486 "type" : "string"
e2d681b3 29487 },
4d47f125
TL
29488 "pos" : {
29489 "type" : "integer"
e2d681b3
TL
29490 },
29491 "proto" : {
29492 "optional" : 1,
29493 "type" : "string"
29494 },
29495 "source" : {
29496 "optional" : 1,
29497 "type" : "string"
29498 },
29499 "sport" : {
29500 "optional" : 1,
29501 "type" : "string"
29502 },
29503 "type" : {
29504 "type" : "string"
4d47f125
TL
29505 }
29506 },
44660702
DM
29507 "type" : "object"
29508 }
7aacca6f
DM
29509 },
29510 "PUT" : {
e9cd3bd4 29511 "allowtoken" : 1,
4d47f125 29512 "description" : "Modify rule data.",
44660702 29513 "method" : "PUT",
4d47f125 29514 "name" : "update_rule",
7aacca6f
DM
29515 "parameters" : {
29516 "additionalProperties" : 0,
29517 "properties" : {
4d47f125
TL
29518 "action" : {
29519 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
29520 "maxLength" : 20,
29521 "minLength" : 2,
29522 "optional" : 1,
29523 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29524 "type" : "string"
29525 },
29526 "comment" : {
29527 "description" : "Descriptive comment.",
29528 "optional" : 1,
29529 "type" : "string",
29530 "typetext" : "<string>"
29531 },
29532 "delete" : {
29533 "description" : "A list of settings you want to delete.",
29534 "format" : "pve-configid-list",
29535 "optional" : 1,
29536 "type" : "string",
29537 "typetext" : "<string>"
29538 },
29539 "dest" : {
29540 "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.",
29541 "format" : "pve-fw-addr-spec",
0695fdaf 29542 "maxLength" : 512,
4d47f125
TL
29543 "optional" : 1,
29544 "type" : "string",
29545 "typetext" : "<string>"
29546 },
29547 "digest" : {
29548 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29549 "maxLength" : 40,
29550 "optional" : 1,
29551 "type" : "string",
29552 "typetext" : "<string>"
29553 },
29554 "dport" : {
29555 "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.",
29556 "format" : "pve-fw-dport-spec",
29557 "optional" : 1,
29558 "type" : "string",
29559 "typetext" : "<string>"
29560 },
29561 "enable" : {
29562 "description" : "Flag to enable/disable a rule.",
29563 "minimum" : 0,
29564 "optional" : 1,
29565 "type" : "integer",
29566 "typetext" : "<integer> (0 - N)"
29567 },
4772952b 29568 "icmp-type" : {
287a95cf 29569 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
29570 "format" : "pve-fw-icmp-type-spec",
29571 "optional" : 1,
29572 "type" : "string",
29573 "typetext" : "<string>"
29574 },
4d47f125
TL
29575 "iface" : {
29576 "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.",
29577 "format" : "pve-iface",
29578 "maxLength" : 20,
29579 "minLength" : 2,
29580 "optional" : 1,
29581 "type" : "string",
29582 "typetext" : "<string>"
29583 },
95895385
TL
29584 "log" : {
29585 "description" : "Log level for firewall rule.",
29586 "enum" : [
29587 "emerg",
29588 "alert",
29589 "crit",
29590 "err",
29591 "warning",
29592 "notice",
29593 "info",
29594 "debug",
29595 "nolog"
29596 ],
29597 "optional" : 1,
29598 "type" : "string"
29599 },
4d47f125
TL
29600 "macro" : {
29601 "description" : "Use predefined standard macro.",
29602 "maxLength" : 128,
44660702 29603 "optional" : 1,
013dc89f
DM
29604 "type" : "string",
29605 "typetext" : "<string>"
44660702 29606 },
4d47f125
TL
29607 "moveto" : {
29608 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
29609 "minimum" : 0,
29610 "optional" : 1,
29611 "type" : "integer",
29612 "typetext" : "<integer> (0 - N)"
29613 },
7aacca6f 29614 "node" : {
7aacca6f 29615 "description" : "The cluster node name.",
44660702 29616 "format" : "pve-node",
013dc89f
DM
29617 "type" : "string",
29618 "typetext" : "<string>"
7aacca6f 29619 },
4d47f125
TL
29620 "pos" : {
29621 "description" : "Update rule at position <pos>.",
29622 "minimum" : 0,
29623 "optional" : 1,
29624 "type" : "integer",
29625 "typetext" : "<integer> (0 - N)"
29626 },
29627 "proto" : {
29628 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
29629 "format" : "pve-fw-protocol-spec",
29630 "optional" : 1,
29631 "type" : "string",
29632 "typetext" : "<string>"
29633 },
29634 "source" : {
29635 "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.",
29636 "format" : "pve-fw-addr-spec",
0695fdaf 29637 "maxLength" : 512,
4d47f125
TL
29638 "optional" : 1,
29639 "type" : "string",
29640 "typetext" : "<string>"
29641 },
29642 "sport" : {
29643 "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.",
29644 "format" : "pve-fw-sport-spec",
29645 "optional" : 1,
013dc89f
DM
29646 "type" : "string",
29647 "typetext" : "<string>"
7aacca6f 29648 },
4d47f125
TL
29649 "type" : {
29650 "description" : "Rule type.",
29651 "enum" : [
29652 "in",
29653 "out",
29654 "group"
29655 ],
29656 "optional" : 1,
29657 "type" : "string"
29658 },
7aacca6f 29659 "vmid" : {
44660702 29660 "description" : "The (unique) ID of the VM.",
7aacca6f 29661 "format" : "pve-vmid",
8dd66e12
TL
29662 "maximum" : 999999999,
29663 "minimum" : 100,
4bd7df8b 29664 "type" : "integer",
8dd66e12 29665 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
29666 }
29667 }
29668 },
7aacca6f
DM
29669 "permissions" : {
29670 "check" : [
29671 "perm",
29672 "/vms/{vmid}",
29673 [
4d47f125 29674 "VM.Config.Network"
7aacca6f
DM
29675 ]
29676 ]
29677 },
4d47f125
TL
29678 "protected" : 1,
29679 "proxyto" : null,
29680 "returns" : {
29681 "type" : "null"
29682 }
29683 }
29684 },
29685 "leaf" : 1,
29686 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
29687 "text" : "{pos}"
29688 }
29689 ],
29690 "info" : {
29691 "GET" : {
e9cd3bd4 29692 "allowtoken" : 1,
4d47f125
TL
29693 "description" : "List rules.",
29694 "method" : "GET",
29695 "name" : "get_rules",
29696 "parameters" : {
29697 "additionalProperties" : 0,
29698 "properties" : {
29699 "node" : {
29700 "description" : "The cluster node name.",
29701 "format" : "pve-node",
29702 "type" : "string",
29703 "typetext" : "<string>"
29704 },
29705 "vmid" : {
29706 "description" : "The (unique) ID of the VM.",
29707 "format" : "pve-vmid",
8dd66e12
TL
29708 "maximum" : 999999999,
29709 "minimum" : 100,
4d47f125 29710 "type" : "integer",
8dd66e12 29711 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29712 }
29713 }
29714 },
29715 "permissions" : {
29716 "check" : [
29717 "perm",
29718 "/vms/{vmid}",
29719 [
29720 "VM.Audit"
29721 ]
29722 ]
29723 },
29724 "proxyto" : null,
29725 "returns" : {
29726 "items" : {
29727 "properties" : {
29728 "pos" : {
29729 "type" : "integer"
29730 }
29731 },
29732 "type" : "object"
29733 },
29734 "links" : [
29735 {
29736 "href" : "{pos}",
29737 "rel" : "child"
29738 }
29739 ],
29740 "type" : "array"
29741 }
29742 },
29743 "POST" : {
e9cd3bd4 29744 "allowtoken" : 1,
4d47f125
TL
29745 "description" : "Create new rule.",
29746 "method" : "POST",
29747 "name" : "create_rule",
29748 "parameters" : {
29749 "additionalProperties" : 0,
29750 "properties" : {
29751 "action" : {
29752 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
29753 "maxLength" : 20,
29754 "minLength" : 2,
29755 "optional" : 0,
29756 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29757 "type" : "string"
29758 },
29759 "comment" : {
29760 "description" : "Descriptive comment.",
29761 "optional" : 1,
29762 "type" : "string",
29763 "typetext" : "<string>"
29764 },
29765 "dest" : {
29766 "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.",
29767 "format" : "pve-fw-addr-spec",
0695fdaf 29768 "maxLength" : 512,
4d47f125
TL
29769 "optional" : 1,
29770 "type" : "string",
29771 "typetext" : "<string>"
29772 },
29773 "digest" : {
29774 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29775 "maxLength" : 40,
29776 "optional" : 1,
29777 "type" : "string",
29778 "typetext" : "<string>"
29779 },
29780 "dport" : {
29781 "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.",
29782 "format" : "pve-fw-dport-spec",
29783 "optional" : 1,
29784 "type" : "string",
29785 "typetext" : "<string>"
29786 },
29787 "enable" : {
29788 "description" : "Flag to enable/disable a rule.",
29789 "minimum" : 0,
29790 "optional" : 1,
29791 "type" : "integer",
29792 "typetext" : "<integer> (0 - N)"
29793 },
4772952b 29794 "icmp-type" : {
287a95cf 29795 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
29796 "format" : "pve-fw-icmp-type-spec",
29797 "optional" : 1,
29798 "type" : "string",
29799 "typetext" : "<string>"
29800 },
4d47f125
TL
29801 "iface" : {
29802 "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.",
29803 "format" : "pve-iface",
29804 "maxLength" : 20,
29805 "minLength" : 2,
29806 "optional" : 1,
29807 "type" : "string",
29808 "typetext" : "<string>"
29809 },
95895385
TL
29810 "log" : {
29811 "description" : "Log level for firewall rule.",
29812 "enum" : [
29813 "emerg",
29814 "alert",
29815 "crit",
29816 "err",
29817 "warning",
29818 "notice",
29819 "info",
29820 "debug",
29821 "nolog"
29822 ],
29823 "optional" : 1,
29824 "type" : "string"
29825 },
4d47f125
TL
29826 "macro" : {
29827 "description" : "Use predefined standard macro.",
29828 "maxLength" : 128,
44660702 29829 "optional" : 1,
4d47f125
TL
29830 "type" : "string",
29831 "typetext" : "<string>"
44660702
DM
29832 },
29833 "node" : {
29834 "description" : "The cluster node name.",
29835 "format" : "pve-node",
013dc89f
DM
29836 "type" : "string",
29837 "typetext" : "<string>"
7aacca6f 29838 },
4d47f125
TL
29839 "pos" : {
29840 "description" : "Update rule at position <pos>.",
29841 "minimum" : 0,
29842 "optional" : 1,
29843 "type" : "integer",
29844 "typetext" : "<integer> (0 - N)"
29845 },
29846 "proto" : {
29847 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
29848 "format" : "pve-fw-protocol-spec",
29849 "optional" : 1,
29850 "type" : "string",
29851 "typetext" : "<string>"
29852 },
29853 "source" : {
29854 "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.",
29855 "format" : "pve-fw-addr-spec",
0695fdaf 29856 "maxLength" : 512,
4d47f125 29857 "optional" : 1,
013dc89f
DM
29858 "type" : "string",
29859 "typetext" : "<string>"
44660702 29860 },
4d47f125
TL
29861 "sport" : {
29862 "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.",
29863 "format" : "pve-fw-sport-spec",
29864 "optional" : 1,
29865 "type" : "string",
29866 "typetext" : "<string>"
29867 },
29868 "type" : {
29869 "description" : "Rule type.",
29870 "enum" : [
29871 "in",
29872 "out",
29873 "group"
29874 ],
29875 "optional" : 0,
29876 "type" : "string"
29877 },
44660702
DM
29878 "vmid" : {
29879 "description" : "The (unique) ID of the VM.",
29880 "format" : "pve-vmid",
8dd66e12
TL
29881 "maximum" : 999999999,
29882 "minimum" : 100,
4bd7df8b 29883 "type" : "integer",
8dd66e12 29884 "typetext" : "<integer> (100 - 999999999)"
56122987 29885 }
44660702 29886 }
7aacca6f 29887 },
56122987
DM
29888 "permissions" : {
29889 "check" : [
29890 "perm",
29891 "/vms/{vmid}",
29892 [
4d47f125 29893 "VM.Config.Network"
56122987
DM
29894 ]
29895 ]
29896 },
44660702 29897 "protected" : 1,
4d47f125 29898 "proxyto" : null,
44660702 29899 "returns" : {
4d47f125 29900 "type" : "null"
44660702
DM
29901 }
29902 }
29903 },
29904 "leaf" : 0,
4d47f125
TL
29905 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
29906 "text" : "rules"
7aacca6f 29907 },
56122987 29908 {
56122987
DM
29909 "children" : [
29910 {
56122987 29911 "info" : {
44660702 29912 "DELETE" : {
e9cd3bd4 29913 "allowtoken" : 1,
4d47f125 29914 "description" : "Remove IP or Network alias.",
44660702 29915 "method" : "DELETE",
4d47f125 29916 "name" : "remove_alias",
56122987 29917 "parameters" : {
44660702 29918 "additionalProperties" : 0,
56122987 29919 "properties" : {
44660702
DM
29920 "digest" : {
29921 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29922 "maxLength" : 40,
7aacca6f 29923 "optional" : 1,
013dc89f
DM
29924 "type" : "string",
29925 "typetext" : "<string>"
7aacca6f 29926 },
4d47f125
TL
29927 "name" : {
29928 "description" : "Alias name.",
29929 "maxLength" : 64,
29930 "minLength" : 2,
29931 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29932 "type" : "string"
29933 },
7aacca6f 29934 "node" : {
44660702 29935 "description" : "The cluster node name.",
7aacca6f 29936 "format" : "pve-node",
013dc89f
DM
29937 "type" : "string",
29938 "typetext" : "<string>"
44660702 29939 },
44660702
DM
29940 "vmid" : {
29941 "description" : "The (unique) ID of the VM.",
29942 "format" : "pve-vmid",
8dd66e12
TL
29943 "maximum" : 999999999,
29944 "minimum" : 100,
4bd7df8b 29945 "type" : "integer",
8dd66e12 29946 "typetext" : "<integer> (100 - 999999999)"
56122987 29947 }
44660702 29948 }
56122987 29949 },
56122987
DM
29950 "permissions" : {
29951 "check" : [
29952 "perm",
29953 "/vms/{vmid}",
29954 [
44660702 29955 "VM.Config.Network"
56122987
DM
29956 ]
29957 ]
29958 },
44660702 29959 "protected" : 1,
44660702
DM
29960 "returns" : {
29961 "type" : "null"
29962 }
7aacca6f 29963 },
44660702 29964 "GET" : {
e9cd3bd4 29965 "allowtoken" : 1,
4d47f125 29966 "description" : "Read alias.",
44660702 29967 "method" : "GET",
4d47f125 29968 "name" : "read_alias",
56122987 29969 "parameters" : {
44660702 29970 "additionalProperties" : 0,
56122987 29971 "properties" : {
4d47f125
TL
29972 "name" : {
29973 "description" : "Alias name.",
29974 "maxLength" : 64,
29975 "minLength" : 2,
29976 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29977 "type" : "string"
29978 },
7aacca6f 29979 "node" : {
7aacca6f 29980 "description" : "The cluster node name.",
44660702 29981 "format" : "pve-node",
013dc89f
DM
29982 "type" : "string",
29983 "typetext" : "<string>"
56122987 29984 },
7aacca6f 29985 "vmid" : {
44660702 29986 "description" : "The (unique) ID of the VM.",
7aacca6f 29987 "format" : "pve-vmid",
8dd66e12
TL
29988 "maximum" : 999999999,
29989 "minimum" : 100,
4bd7df8b 29990 "type" : "integer",
8dd66e12 29991 "typetext" : "<integer> (100 - 999999999)"
56122987 29992 }
44660702 29993 }
56122987 29994 },
7aacca6f
DM
29995 "permissions" : {
29996 "check" : [
29997 "perm",
29998 "/vms/{vmid}",
29999 [
44660702 30000 "VM.Audit"
7aacca6f
DM
30001 ]
30002 ]
30003 },
7aacca6f 30004 "returns" : {
44660702 30005 "type" : "object"
7aacca6f 30006 }
56122987 30007 },
44660702 30008 "PUT" : {
e9cd3bd4 30009 "allowtoken" : 1,
4d47f125 30010 "description" : "Update IP or Network alias.",
44660702 30011 "method" : "PUT",
4d47f125 30012 "name" : "update_alias",
56122987
DM
30013 "parameters" : {
30014 "additionalProperties" : 0,
30015 "properties" : {
4d47f125
TL
30016 "cidr" : {
30017 "description" : "Network/IP specification in CIDR format.",
30018 "format" : "IPorCIDR",
013dc89f
DM
30019 "type" : "string",
30020 "typetext" : "<string>"
44660702 30021 },
4d47f125 30022 "comment" : {
44660702 30023 "optional" : 1,
013dc89f
DM
30024 "type" : "string",
30025 "typetext" : "<string>"
44660702
DM
30026 },
30027 "digest" : {
30028 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30029 "maxLength" : 40,
30030 "optional" : 1,
013dc89f
DM
30031 "type" : "string",
30032 "typetext" : "<string>"
44660702 30033 },
4d47f125
TL
30034 "name" : {
30035 "description" : "Alias name.",
30036 "maxLength" : 64,
44660702 30037 "minLength" : 2,
4d47f125
TL
30038 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30039 "type" : "string"
44660702 30040 },
7aacca6f
DM
30041 "node" : {
30042 "description" : "The cluster node name.",
44660702 30043 "format" : "pve-node",
013dc89f
DM
30044 "type" : "string",
30045 "typetext" : "<string>"
56122987 30046 },
4d47f125
TL
30047 "rename" : {
30048 "description" : "Rename an existing alias.",
30049 "maxLength" : 64,
30050 "minLength" : 2,
7aacca6f 30051 "optional" : 1,
4d47f125 30052 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
30053 "type" : "string"
30054 },
30055 "vmid" : {
30056 "description" : "The (unique) ID of the VM.",
30057 "format" : "pve-vmid",
8dd66e12
TL
30058 "maximum" : 999999999,
30059 "minimum" : 100,
4bd7df8b 30060 "type" : "integer",
8dd66e12 30061 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
30062 }
30063 }
30064 },
56122987
DM
30065 "permissions" : {
30066 "check" : [
30067 "perm",
30068 "/vms/{vmid}",
30069 [
7aacca6f 30070 "VM.Config.Network"
56122987
DM
30071 ]
30072 ]
30073 },
44660702 30074 "protected" : 1,
56122987 30075 "returns" : {
7aacca6f
DM
30076 "type" : "null"
30077 }
56122987 30078 }
44660702
DM
30079 },
30080 "leaf" : 1,
4d47f125
TL
30081 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
30082 "text" : "{name}"
56122987
DM
30083 }
30084 ],
30085 "info" : {
7aacca6f 30086 "GET" : {
e9cd3bd4 30087 "allowtoken" : 1,
4d47f125 30088 "description" : "List aliases",
44660702 30089 "method" : "GET",
4d47f125 30090 "name" : "get_aliases",
7aacca6f 30091 "parameters" : {
44660702 30092 "additionalProperties" : 0,
7aacca6f
DM
30093 "properties" : {
30094 "node" : {
7aacca6f 30095 "description" : "The cluster node name.",
44660702 30096 "format" : "pve-node",
013dc89f
DM
30097 "type" : "string",
30098 "typetext" : "<string>"
7aacca6f
DM
30099 },
30100 "vmid" : {
30101 "description" : "The (unique) ID of the VM.",
44660702 30102 "format" : "pve-vmid",
8dd66e12
TL
30103 "maximum" : 999999999,
30104 "minimum" : 100,
4bd7df8b 30105 "type" : "integer",
8dd66e12 30106 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 30107 }
44660702 30108 }
56122987 30109 },
56122987
DM
30110 "permissions" : {
30111 "check" : [
30112 "perm",
30113 "/vms/{vmid}",
30114 [
7aacca6f 30115 "VM.Audit"
56122987
DM
30116 ]
30117 ]
30118 },
7aacca6f 30119 "returns" : {
7aacca6f
DM
30120 "items" : {
30121 "properties" : {
4d47f125
TL
30122 "cidr" : {
30123 "type" : "string"
30124 },
30125 "comment" : {
30126 "optional" : 1,
30127 "type" : "string"
30128 },
30129 "digest" : {
30130 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30131 "maxLength" : 40,
30132 "optional" : 0,
30133 "type" : "string"
30134 },
30135 "name" : {
30136 "type" : "string"
7aacca6f
DM
30137 }
30138 },
30139 "type" : "object"
30140 },
30141 "links" : [
30142 {
4d47f125 30143 "href" : "{name}",
44660702 30144 "rel" : "child"
7aacca6f 30145 }
44660702
DM
30146 ],
30147 "type" : "array"
30148 }
7aacca6f
DM
30149 },
30150 "POST" : {
e9cd3bd4 30151 "allowtoken" : 1,
4d47f125 30152 "description" : "Create IP or Network Alias.",
44660702 30153 "method" : "POST",
4d47f125 30154 "name" : "create_alias",
56122987 30155 "parameters" : {
44660702 30156 "additionalProperties" : 0,
56122987 30157 "properties" : {
4d47f125
TL
30158 "cidr" : {
30159 "description" : "Network/IP specification in CIDR format.",
30160 "format" : "IPorCIDR",
013dc89f 30161 "type" : "string",
4d47f125
TL
30162 "typetext" : "<string>"
30163 },
30164 "comment" : {
44660702 30165 "optional" : 1,
013dc89f
DM
30166 "type" : "string",
30167 "typetext" : "<string>"
7aacca6f 30168 },
4d47f125
TL
30169 "name" : {
30170 "description" : "Alias name.",
30171 "maxLength" : 64,
30172 "minLength" : 2,
30173 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
30174 "type" : "string"
30175 },
4d47f125
TL
30176 "node" : {
30177 "description" : "The cluster node name.",
30178 "format" : "pve-node",
30179 "type" : "string",
30180 "typetext" : "<string>"
30181 },
44660702
DM
30182 "vmid" : {
30183 "description" : "The (unique) ID of the VM.",
30184 "format" : "pve-vmid",
8dd66e12
TL
30185 "maximum" : 999999999,
30186 "minimum" : 100,
4bd7df8b 30187 "type" : "integer",
8dd66e12 30188 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
30189 }
30190 }
30191 },
30192 "permissions" : {
30193 "check" : [
30194 "perm",
30195 "/vms/{vmid}",
30196 [
30197 "VM.Config.Network"
30198 ]
30199 ]
30200 },
30201 "protected" : 1,
44660702
DM
30202 "returns" : {
30203 "type" : "null"
30204 }
30205 }
30206 },
30207 "leaf" : 0,
4d47f125
TL
30208 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
30209 "text" : "aliases"
44660702
DM
30210 },
30211 {
30212 "children" : [
30213 {
4d47f125
TL
30214 "children" : [
30215 {
30216 "info" : {
30217 "DELETE" : {
e9cd3bd4 30218 "allowtoken" : 1,
4d47f125
TL
30219 "description" : "Remove IP or Network from IPSet.",
30220 "method" : "DELETE",
30221 "name" : "remove_ip",
30222 "parameters" : {
30223 "additionalProperties" : 0,
30224 "properties" : {
30225 "cidr" : {
30226 "description" : "Network/IP specification in CIDR format.",
30227 "format" : "IPorCIDRorAlias",
30228 "type" : "string",
30229 "typetext" : "<string>"
30230 },
30231 "digest" : {
30232 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30233 "maxLength" : 40,
30234 "optional" : 1,
30235 "type" : "string",
30236 "typetext" : "<string>"
30237 },
30238 "name" : {
30239 "description" : "IP set name.",
30240 "maxLength" : 64,
30241 "minLength" : 2,
30242 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30243 "type" : "string"
30244 },
30245 "node" : {
30246 "description" : "The cluster node name.",
30247 "format" : "pve-node",
30248 "type" : "string",
30249 "typetext" : "<string>"
30250 },
30251 "vmid" : {
30252 "description" : "The (unique) ID of the VM.",
30253 "format" : "pve-vmid",
8dd66e12
TL
30254 "maximum" : 999999999,
30255 "minimum" : 100,
4d47f125 30256 "type" : "integer",
8dd66e12 30257 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30258 }
30259 }
30260 },
30261 "permissions" : {
30262 "check" : [
30263 "perm",
30264 "/vms/{vmid}",
30265 [
30266 "VM.Config.Network"
30267 ]
30268 ]
30269 },
30270 "protected" : 1,
30271 "returns" : {
30272 "type" : "null"
30273 }
30274 },
30275 "GET" : {
e9cd3bd4 30276 "allowtoken" : 1,
4d47f125
TL
30277 "description" : "Read IP or Network settings from IPSet.",
30278 "method" : "GET",
30279 "name" : "read_ip",
30280 "parameters" : {
30281 "additionalProperties" : 0,
30282 "properties" : {
30283 "cidr" : {
30284 "description" : "Network/IP specification in CIDR format.",
30285 "format" : "IPorCIDRorAlias",
30286 "type" : "string",
30287 "typetext" : "<string>"
30288 },
30289 "name" : {
30290 "description" : "IP set name.",
30291 "maxLength" : 64,
30292 "minLength" : 2,
30293 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30294 "type" : "string"
30295 },
30296 "node" : {
30297 "description" : "The cluster node name.",
30298 "format" : "pve-node",
30299 "type" : "string",
30300 "typetext" : "<string>"
30301 },
30302 "vmid" : {
30303 "description" : "The (unique) ID of the VM.",
30304 "format" : "pve-vmid",
8dd66e12
TL
30305 "maximum" : 999999999,
30306 "minimum" : 100,
4d47f125 30307 "type" : "integer",
8dd66e12 30308 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30309 }
30310 }
30311 },
30312 "permissions" : {
30313 "check" : [
30314 "perm",
30315 "/vms/{vmid}",
30316 [
30317 "VM.Audit"
30318 ]
30319 ]
30320 },
30321 "protected" : 1,
30322 "returns" : {
30323 "type" : "object"
30324 }
30325 },
30326 "PUT" : {
e9cd3bd4 30327 "allowtoken" : 1,
4d47f125
TL
30328 "description" : "Update IP or Network settings",
30329 "method" : "PUT",
30330 "name" : "update_ip",
30331 "parameters" : {
30332 "additionalProperties" : 0,
30333 "properties" : {
30334 "cidr" : {
30335 "description" : "Network/IP specification in CIDR format.",
30336 "format" : "IPorCIDRorAlias",
30337 "type" : "string",
30338 "typetext" : "<string>"
30339 },
30340 "comment" : {
30341 "optional" : 1,
30342 "type" : "string",
30343 "typetext" : "<string>"
30344 },
30345 "digest" : {
30346 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30347 "maxLength" : 40,
30348 "optional" : 1,
30349 "type" : "string",
30350 "typetext" : "<string>"
30351 },
30352 "name" : {
30353 "description" : "IP set name.",
30354 "maxLength" : 64,
30355 "minLength" : 2,
30356 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30357 "type" : "string"
30358 },
30359 "node" : {
30360 "description" : "The cluster node name.",
30361 "format" : "pve-node",
30362 "type" : "string",
30363 "typetext" : "<string>"
30364 },
30365 "nomatch" : {
30366 "optional" : 1,
30367 "type" : "boolean",
30368 "typetext" : "<boolean>"
30369 },
30370 "vmid" : {
30371 "description" : "The (unique) ID of the VM.",
30372 "format" : "pve-vmid",
8dd66e12
TL
30373 "maximum" : 999999999,
30374 "minimum" : 100,
4d47f125 30375 "type" : "integer",
8dd66e12 30376 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30377 }
30378 }
30379 },
30380 "permissions" : {
30381 "check" : [
30382 "perm",
30383 "/vms/{vmid}",
30384 [
30385 "VM.Config.Network"
30386 ]
30387 ]
30388 },
30389 "protected" : 1,
30390 "returns" : {
30391 "type" : "null"
30392 }
30393 }
30394 },
30395 "leaf" : 1,
30396 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
30397 "text" : "{cidr}"
30398 }
30399 ],
44660702
DM
30400 "info" : {
30401 "DELETE" : {
e9cd3bd4 30402 "allowtoken" : 1,
4d47f125 30403 "description" : "Delete IPSet",
44660702 30404 "method" : "DELETE",
4d47f125 30405 "name" : "delete_ipset",
56122987 30406 "parameters" : {
44660702 30407 "additionalProperties" : 0,
56122987 30408 "properties" : {
81a3384d
TL
30409 "force" : {
30410 "description" : "Delete all members of the IPSet, if there are any.",
30411 "optional" : 1,
30412 "type" : "boolean",
30413 "typetext" : "<boolean>"
30414 },
7aacca6f 30415 "name" : {
4d47f125 30416 "description" : "IP set name.",
7aacca6f 30417 "maxLength" : 64,
7aacca6f
DM
30418 "minLength" : 2,
30419 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 30420 "type" : "string"
7aacca6f
DM
30421 },
30422 "node" : {
44660702 30423 "description" : "The cluster node name.",
56122987 30424 "format" : "pve-node",
013dc89f
DM
30425 "type" : "string",
30426 "typetext" : "<string>"
7aacca6f 30427 },
56122987 30428 "vmid" : {
44660702 30429 "description" : "The (unique) ID of the VM.",
56122987 30430 "format" : "pve-vmid",
8dd66e12
TL
30431 "maximum" : 999999999,
30432 "minimum" : 100,
4bd7df8b 30433 "type" : "integer",
8dd66e12 30434 "typetext" : "<integer> (100 - 999999999)"
56122987 30435 }
44660702 30436 }
56122987 30437 },
56122987
DM
30438 "permissions" : {
30439 "check" : [
30440 "perm",
30441 "/vms/{vmid}",
30442 [
7aacca6f 30443 "VM.Config.Network"
56122987
DM
30444 ]
30445 ]
30446 },
44660702 30447 "protected" : 1,
56122987 30448 "returns" : {
7aacca6f 30449 "type" : "null"
44660702 30450 }
56122987 30451 },
44660702 30452 "GET" : {
e9cd3bd4 30453 "allowtoken" : 1,
4d47f125 30454 "description" : "List IPSet content",
44660702 30455 "method" : "GET",
4d47f125 30456 "name" : "get_ipset",
44660702
DM
30457 "parameters" : {
30458 "additionalProperties" : 0,
30459 "properties" : {
30460 "name" : {
4d47f125 30461 "description" : "IP set name.",
44660702
DM
30462 "maxLength" : 64,
30463 "minLength" : 2,
30464 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30465 "type" : "string"
30466 },
30467 "node" : {
30468 "description" : "The cluster node name.",
30469 "format" : "pve-node",
013dc89f
DM
30470 "type" : "string",
30471 "typetext" : "<string>"
44660702
DM
30472 },
30473 "vmid" : {
30474 "description" : "The (unique) ID of the VM.",
30475 "format" : "pve-vmid",
8dd66e12
TL
30476 "maximum" : 999999999,
30477 "minimum" : 100,
4bd7df8b 30478 "type" : "integer",
8dd66e12 30479 "typetext" : "<integer> (100 - 999999999)"
44660702 30480 }
4d47f125
TL
30481 }
30482 },
30483 "permissions" : {
30484 "check" : [
30485 "perm",
30486 "/vms/{vmid}",
30487 [
30488 "VM.Audit"
30489 ]
30490 ]
30491 },
30492 "returns" : {
30493 "items" : {
30494 "properties" : {
30495 "cidr" : {
30496 "type" : "string"
30497 },
30498 "comment" : {
30499 "optional" : 1,
30500 "type" : "string"
30501 },
30502 "digest" : {
30503 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30504 "maxLength" : 40,
30505 "optional" : 0,
30506 "type" : "string"
30507 },
30508 "nomatch" : {
30509 "optional" : 1,
30510 "type" : "boolean"
30511 }
30512 },
30513 "type" : "object"
30514 },
30515 "links" : [
30516 {
30517 "href" : "{cidr}",
30518 "rel" : "child"
30519 }
30520 ],
30521 "type" : "array"
44660702
DM
30522 }
30523 },
4d47f125 30524 "POST" : {
e9cd3bd4 30525 "allowtoken" : 1,
4d47f125
TL
30526 "description" : "Add IP or Network to IPSet.",
30527 "method" : "POST",
30528 "name" : "create_ip",
56122987
DM
30529 "parameters" : {
30530 "additionalProperties" : 0,
30531 "properties" : {
44660702
DM
30532 "cidr" : {
30533 "description" : "Network/IP specification in CIDR format.",
4d47f125 30534 "format" : "IPorCIDRorAlias",
013dc89f
DM
30535 "type" : "string",
30536 "typetext" : "<string>"
44660702
DM
30537 },
30538 "comment" : {
30539 "optional" : 1,
013dc89f
DM
30540 "type" : "string",
30541 "typetext" : "<string>"
44660702 30542 },
56122987 30543 "name" : {
4d47f125 30544 "description" : "IP set name.",
44660702
DM
30545 "maxLength" : 64,
30546 "minLength" : 2,
7aacca6f 30547 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 30548 "type" : "string"
56122987
DM
30549 },
30550 "node" : {
30551 "description" : "The cluster node name.",
44660702 30552 "format" : "pve-node",
013dc89f
DM
30553 "type" : "string",
30554 "typetext" : "<string>"
44660702 30555 },
4d47f125 30556 "nomatch" : {
44660702 30557 "optional" : 1,
4d47f125
TL
30558 "type" : "boolean",
30559 "typetext" : "<boolean>"
56122987 30560 },
7aacca6f 30561 "vmid" : {
7aacca6f 30562 "description" : "The (unique) ID of the VM.",
44660702 30563 "format" : "pve-vmid",
8dd66e12
TL
30564 "maximum" : 999999999,
30565 "minimum" : 100,
4bd7df8b 30566 "type" : "integer",
8dd66e12 30567 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
30568 }
30569 }
30570 },
44660702
DM
30571 "permissions" : {
30572 "check" : [
30573 "perm",
30574 "/vms/{vmid}",
30575 [
30576 "VM.Config.Network"
30577 ]
30578 ]
7aacca6f 30579 },
44660702
DM
30580 "protected" : 1,
30581 "returns" : {
30582 "type" : "null"
7aacca6f
DM
30583 }
30584 }
30585 },
4d47f125
TL
30586 "leaf" : 0,
30587 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
30588 "text" : "{name}"
30589 }
30590 ],
30591 "info" : {
30592 "GET" : {
e9cd3bd4 30593 "allowtoken" : 1,
4d47f125 30594 "description" : "List IPSets",
44660702 30595 "method" : "GET",
4d47f125 30596 "name" : "ipset_index",
56122987
DM
30597 "parameters" : {
30598 "additionalProperties" : 0,
30599 "properties" : {
30600 "node" : {
44660702 30601 "description" : "The cluster node name.",
56122987 30602 "format" : "pve-node",
013dc89f
DM
30603 "type" : "string",
30604 "typetext" : "<string>"
56122987
DM
30605 },
30606 "vmid" : {
7aacca6f 30607 "description" : "The (unique) ID of the VM.",
44660702 30608 "format" : "pve-vmid",
8dd66e12
TL
30609 "maximum" : 999999999,
30610 "minimum" : 100,
4bd7df8b 30611 "type" : "integer",
8dd66e12 30612 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
30613 }
30614 }
30615 },
44660702
DM
30616 "permissions" : {
30617 "check" : [
30618 "perm",
30619 "/vms/{vmid}",
30620 [
30621 "VM.Audit"
30622 ]
30623 ]
30624 },
56122987
DM
30625 "returns" : {
30626 "items" : {
56122987 30627 "properties" : {
44660702
DM
30628 "comment" : {
30629 "optional" : 1,
56122987
DM
30630 "type" : "string"
30631 },
56122987 30632 "digest" : {
56122987 30633 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
30634 "maxLength" : 40,
30635 "optional" : 0,
30636 "type" : "string"
30637 },
30638 "name" : {
4d47f125
TL
30639 "description" : "IP set name.",
30640 "maxLength" : 64,
30641 "minLength" : 2,
30642 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 30643 "type" : "string"
56122987 30644 }
44660702
DM
30645 },
30646 "type" : "object"
30647 },
30648 "links" : [
30649 {
30650 "href" : "{name}",
30651 "rel" : "child"
56122987 30652 }
4d47f125
TL
30653 ],
30654 "type" : "array"
30655 }
30656 },
30657 "POST" : {
e9cd3bd4 30658 "allowtoken" : 1,
4d47f125
TL
30659 "description" : "Create new IPSet",
30660 "method" : "POST",
30661 "name" : "create_ipset",
30662 "parameters" : {
30663 "additionalProperties" : 0,
30664 "properties" : {
30665 "comment" : {
30666 "optional" : 1,
30667 "type" : "string",
30668 "typetext" : "<string>"
30669 },
30670 "digest" : {
30671 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30672 "maxLength" : 40,
30673 "optional" : 1,
30674 "type" : "string",
30675 "typetext" : "<string>"
30676 },
30677 "name" : {
30678 "description" : "IP set name.",
30679 "maxLength" : 64,
30680 "minLength" : 2,
30681 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30682 "type" : "string"
30683 },
30684 "node" : {
30685 "description" : "The cluster node name.",
30686 "format" : "pve-node",
30687 "type" : "string",
30688 "typetext" : "<string>"
30689 },
30690 "rename" : {
30691 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
30692 "maxLength" : 64,
30693 "minLength" : 2,
30694 "optional" : 1,
30695 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30696 "type" : "string"
30697 },
30698 "vmid" : {
30699 "description" : "The (unique) ID of the VM.",
30700 "format" : "pve-vmid",
8dd66e12
TL
30701 "maximum" : 999999999,
30702 "minimum" : 100,
4d47f125 30703 "type" : "integer",
8dd66e12 30704 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30705 }
30706 }
30707 },
30708 "permissions" : {
30709 "check" : [
30710 "perm",
30711 "/vms/{vmid}",
30712 [
30713 "VM.Config.Network"
30714 ]
30715 ]
30716 },
30717 "protected" : 1,
30718 "returns" : {
30719 "type" : "null"
30720 }
30721 }
30722 },
30723 "leaf" : 0,
30724 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
30725 "text" : "ipset"
30726 },
30727 {
30728 "info" : {
30729 "GET" : {
e9cd3bd4 30730 "allowtoken" : 1,
4d47f125
TL
30731 "description" : "Get VM firewall options.",
30732 "method" : "GET",
30733 "name" : "get_options",
30734 "parameters" : {
30735 "additionalProperties" : 0,
30736 "properties" : {
30737 "node" : {
30738 "description" : "The cluster node name.",
30739 "format" : "pve-node",
30740 "type" : "string",
30741 "typetext" : "<string>"
30742 },
30743 "vmid" : {
30744 "description" : "The (unique) ID of the VM.",
30745 "format" : "pve-vmid",
8dd66e12
TL
30746 "maximum" : 999999999,
30747 "minimum" : 100,
4d47f125 30748 "type" : "integer",
8dd66e12 30749 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30750 }
30751 }
30752 },
30753 "permissions" : {
30754 "check" : [
30755 "perm",
30756 "/vms/{vmid}",
30757 [
30758 "VM.Audit"
30759 ]
30760 ]
30761 },
30762 "proxyto" : "node",
30763 "returns" : {
30764 "properties" : {
30765 "dhcp" : {
5c1699e5 30766 "default" : 0,
4d47f125
TL
30767 "description" : "Enable DHCP.",
30768 "optional" : 1,
30769 "type" : "boolean"
30770 },
30771 "enable" : {
5c1699e5 30772 "default" : 0,
4d47f125
TL
30773 "description" : "Enable/disable firewall rules.",
30774 "optional" : 1,
30775 "type" : "boolean"
30776 },
30777 "ipfilter" : {
30778 "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.",
30779 "optional" : 1,
30780 "type" : "boolean"
30781 },
30782 "log_level_in" : {
30783 "description" : "Log level for incoming traffic.",
30784 "enum" : [
30785 "emerg",
30786 "alert",
30787 "crit",
30788 "err",
30789 "warning",
30790 "notice",
30791 "info",
30792 "debug",
30793 "nolog"
30794 ],
30795 "optional" : 1,
30796 "type" : "string"
30797 },
30798 "log_level_out" : {
30799 "description" : "Log level for outgoing traffic.",
30800 "enum" : [
30801 "emerg",
30802 "alert",
30803 "crit",
30804 "err",
30805 "warning",
30806 "notice",
30807 "info",
30808 "debug",
30809 "nolog"
30810 ],
30811 "optional" : 1,
30812 "type" : "string"
30813 },
30814 "macfilter" : {
de786b48 30815 "default" : 1,
4d47f125
TL
30816 "description" : "Enable/disable MAC address filter.",
30817 "optional" : 1,
30818 "type" : "boolean"
30819 },
30820 "ndp" : {
5c1699e5
TL
30821 "default" : 0,
30822 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
30823 "optional" : 1,
30824 "type" : "boolean"
30825 },
30826 "policy_in" : {
30827 "description" : "Input policy.",
30828 "enum" : [
30829 "ACCEPT",
30830 "REJECT",
30831 "DROP"
30832 ],
30833 "optional" : 1,
30834 "type" : "string"
30835 },
30836 "policy_out" : {
30837 "description" : "Output policy.",
30838 "enum" : [
30839 "ACCEPT",
30840 "REJECT",
30841 "DROP"
30842 ],
30843 "optional" : 1,
30844 "type" : "string"
30845 },
30846 "radv" : {
30847 "description" : "Allow sending Router Advertisement.",
30848 "optional" : 1,
30849 "type" : "boolean"
30850 }
30851 },
30852 "type" : "object"
7aacca6f
DM
30853 }
30854 },
4d47f125 30855 "PUT" : {
e9cd3bd4 30856 "allowtoken" : 1,
4d47f125
TL
30857 "description" : "Set Firewall options.",
30858 "method" : "PUT",
30859 "name" : "set_options",
7aacca6f
DM
30860 "parameters" : {
30861 "additionalProperties" : 0,
30862 "properties" : {
4d47f125
TL
30863 "delete" : {
30864 "description" : "A list of settings you want to delete.",
30865 "format" : "pve-configid-list",
7aacca6f 30866 "optional" : 1,
013dc89f
DM
30867 "type" : "string",
30868 "typetext" : "<string>"
7aacca6f 30869 },
4d47f125 30870 "dhcp" : {
5c1699e5 30871 "default" : 0,
4d47f125
TL
30872 "description" : "Enable DHCP.",
30873 "optional" : 1,
30874 "type" : "boolean",
30875 "typetext" : "<boolean>"
7aacca6f 30876 },
4d47f125
TL
30877 "digest" : {
30878 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30879 "maxLength" : 40,
30880 "optional" : 1,
013dc89f
DM
30881 "type" : "string",
30882 "typetext" : "<string>"
7aacca6f 30883 },
4d47f125 30884 "enable" : {
5c1699e5 30885 "default" : 0,
4d47f125
TL
30886 "description" : "Enable/disable firewall rules.",
30887 "optional" : 1,
30888 "type" : "boolean",
30889 "typetext" : "<boolean>"
30890 },
30891 "ipfilter" : {
30892 "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.",
30893 "optional" : 1,
30894 "type" : "boolean",
30895 "typetext" : "<boolean>"
56122987 30896 },
4d47f125
TL
30897 "log_level_in" : {
30898 "description" : "Log level for incoming traffic.",
30899 "enum" : [
30900 "emerg",
30901 "alert",
30902 "crit",
30903 "err",
30904 "warning",
30905 "notice",
30906 "info",
30907 "debug",
30908 "nolog"
30909 ],
30910 "optional" : 1,
30911 "type" : "string"
44660702 30912 },
4d47f125
TL
30913 "log_level_out" : {
30914 "description" : "Log level for outgoing traffic.",
30915 "enum" : [
30916 "emerg",
30917 "alert",
30918 "crit",
30919 "err",
30920 "warning",
30921 "notice",
30922 "info",
30923 "debug",
30924 "nolog"
30925 ],
30926 "optional" : 1,
30927 "type" : "string"
44660702 30928 },
4d47f125 30929 "macfilter" : {
de786b48 30930 "default" : 1,
4d47f125
TL
30931 "description" : "Enable/disable MAC address filter.",
30932 "optional" : 1,
30933 "type" : "boolean",
30934 "typetext" : "<boolean>"
7aacca6f 30935 },
4d47f125 30936 "ndp" : {
5c1699e5
TL
30937 "default" : 0,
30938 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
30939 "optional" : 1,
30940 "type" : "boolean",
30941 "typetext" : "<boolean>"
7aacca6f 30942 },
4d47f125
TL
30943 "node" : {
30944 "description" : "The cluster node name.",
30945 "format" : "pve-node",
30946 "type" : "string",
30947 "typetext" : "<string>"
30948 },
30949 "policy_in" : {
30950 "description" : "Input policy.",
30951 "enum" : [
30952 "ACCEPT",
30953 "REJECT",
30954 "DROP"
44660702 30955 ],
4d47f125
TL
30956 "optional" : 1,
30957 "type" : "string"
30958 },
30959 "policy_out" : {
30960 "description" : "Output policy.",
30961 "enum" : [
30962 "ACCEPT",
30963 "REJECT",
30964 "DROP"
30965 ],
30966 "optional" : 1,
30967 "type" : "string"
30968 },
30969 "radv" : {
30970 "description" : "Allow sending Router Advertisement.",
30971 "optional" : 1,
30972 "type" : "boolean",
30973 "typetext" : "<boolean>"
30974 },
30975 "vmid" : {
30976 "description" : "The (unique) ID of the VM.",
30977 "format" : "pve-vmid",
8dd66e12
TL
30978 "maximum" : 999999999,
30979 "minimum" : 100,
4d47f125 30980 "type" : "integer",
8dd66e12 30981 "typetext" : "<integer> (100 - 999999999)"
44660702 30982 }
4d47f125
TL
30983 }
30984 },
30985 "permissions" : {
30986 "check" : [
30987 "perm",
30988 "/vms/{vmid}",
30989 [
30990 "VM.Config.Network"
30991 ]
30992 ]
30993 },
30994 "protected" : 1,
30995 "proxyto" : "node",
30996 "returns" : {
30997 "type" : "null"
30998 }
30999 }
31000 },
31001 "leaf" : 1,
31002 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
31003 "text" : "options"
31004 },
31005 {
31006 "info" : {
31007 "GET" : {
e9cd3bd4 31008 "allowtoken" : 1,
4d47f125
TL
31009 "description" : "Read firewall log",
31010 "method" : "GET",
31011 "name" : "log",
31012 "parameters" : {
31013 "additionalProperties" : 0,
31014 "properties" : {
31015 "limit" : {
31016 "minimum" : 0,
31017 "optional" : 1,
31018 "type" : "integer",
31019 "typetext" : "<integer> (0 - N)"
44660702 31020 },
4d47f125
TL
31021 "node" : {
31022 "description" : "The cluster node name.",
31023 "format" : "pve-node",
31024 "type" : "string",
31025 "typetext" : "<string>"
44660702 31026 },
9d2e98ed
TL
31027 "since" : {
31028 "description" : "Display log since this UNIX epoch.",
31029 "minimum" : 0,
31030 "optional" : 1,
31031 "type" : "integer",
31032 "typetext" : "<integer> (0 - N)"
31033 },
4d47f125
TL
31034 "start" : {
31035 "minimum" : 0,
31036 "optional" : 1,
31037 "type" : "integer",
31038 "typetext" : "<integer> (0 - N)"
31039 },
9d2e98ed
TL
31040 "until" : {
31041 "description" : "Display log until this UNIX epoch.",
31042 "minimum" : 0,
31043 "optional" : 1,
31044 "type" : "integer",
31045 "typetext" : "<integer> (0 - N)"
31046 },
4d47f125
TL
31047 "vmid" : {
31048 "description" : "The (unique) ID of the VM.",
31049 "format" : "pve-vmid",
8dd66e12
TL
31050 "maximum" : 999999999,
31051 "minimum" : 100,
4d47f125 31052 "type" : "integer",
8dd66e12 31053 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
31054 }
31055 }
31056 },
4d47f125
TL
31057 "permissions" : {
31058 "check" : [
31059 "perm",
31060 "/vms/{vmid}",
31061 [
31062 "VM.Console"
31063 ]
31064 ]
31065 },
31066 "protected" : 1,
31067 "proxyto" : "node",
31068 "returns" : {
31069 "items" : {
31070 "properties" : {
31071 "n" : {
31072 "description" : "Line number",
31073 "type" : "integer"
31074 },
31075 "t" : {
31076 "description" : "Line text",
31077 "type" : "string"
31078 }
31079 },
31080 "type" : "object"
31081 },
31082 "type" : "array"
31083 }
44660702 31084 }
4d47f125
TL
31085 },
31086 "leaf" : 1,
31087 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
31088 "text" : "log"
31089 },
31090 {
44660702
DM
31091 "info" : {
31092 "GET" : {
e9cd3bd4 31093 "allowtoken" : 1,
4d47f125 31094 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 31095 "method" : "GET",
4d47f125 31096 "name" : "refs",
44660702
DM
31097 "parameters" : {
31098 "additionalProperties" : 0,
31099 "properties" : {
31100 "node" : {
31101 "description" : "The cluster node name.",
31102 "format" : "pve-node",
013dc89f
DM
31103 "type" : "string",
31104 "typetext" : "<string>"
44660702 31105 },
4d47f125
TL
31106 "type" : {
31107 "description" : "Only list references of specified type.",
31108 "enum" : [
31109 "alias",
31110 "ipset"
31111 ],
31112 "optional" : 1,
31113 "type" : "string"
31114 },
44660702
DM
31115 "vmid" : {
31116 "description" : "The (unique) ID of the VM.",
31117 "format" : "pve-vmid",
8dd66e12
TL
31118 "maximum" : 999999999,
31119 "minimum" : 100,
4bd7df8b 31120 "type" : "integer",
8dd66e12 31121 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
31122 }
31123 }
31124 },
4d47f125
TL
31125 "permissions" : {
31126 "check" : [
31127 "perm",
31128 "/vms/{vmid}",
31129 [
31130 "VM.Audit"
31131 ]
31132 ]
31133 },
31134 "returns" : {
31135 "items" : {
31136 "properties" : {
31137 "comment" : {
31138 "optional" : 1,
31139 "type" : "string"
31140 },
31141 "name" : {
31142 "type" : "string"
31143 },
31144 "type" : {
31145 "enum" : [
31146 "alias",
31147 "ipset"
31148 ],
31149 "type" : "string"
31150 }
31151 },
31152 "type" : "object"
31153 },
31154 "type" : "array"
31155 }
31156 }
31157 },
31158 "leaf" : 1,
31159 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
31160 "text" : "refs"
31161 }
31162 ],
31163 "info" : {
31164 "GET" : {
e9cd3bd4 31165 "allowtoken" : 1,
4d47f125
TL
31166 "description" : "Directory index.",
31167 "method" : "GET",
31168 "name" : "index",
31169 "parameters" : {
31170 "additionalProperties" : 0,
31171 "properties" : {
31172 "node" : {
31173 "description" : "The cluster node name.",
31174 "format" : "pve-node",
31175 "type" : "string",
31176 "typetext" : "<string>"
31177 },
31178 "vmid" : {
31179 "description" : "The (unique) ID of the VM.",
31180 "format" : "pve-vmid",
8dd66e12
TL
31181 "maximum" : 999999999,
31182 "minimum" : 100,
4d47f125 31183 "type" : "integer",
8dd66e12 31184 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31185 }
31186 }
31187 },
31188 "permissions" : {
31189 "user" : "all"
31190 },
31191 "returns" : {
31192 "items" : {
31193 "properties" : {},
31194 "type" : "object"
31195 },
31196 "links" : [
31197 {
31198 "href" : "{name}",
31199 "rel" : "child"
31200 }
31201 ],
31202 "type" : "array"
31203 }
31204 }
31205 },
31206 "leaf" : 0,
31207 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
31208 "text" : "firewall"
31209 },
31210 {
31211 "info" : {
31212 "GET" : {
e9cd3bd4 31213 "allowtoken" : 1,
4d47f125
TL
31214 "description" : "Read VM RRD statistics (returns PNG)",
31215 "method" : "GET",
31216 "name" : "rrd",
31217 "parameters" : {
31218 "additionalProperties" : 0,
31219 "properties" : {
31220 "cf" : {
31221 "description" : "The RRD consolidation function",
31222 "enum" : [
31223 "AVERAGE",
31224 "MAX"
31225 ],
31226 "optional" : 1,
31227 "type" : "string"
31228 },
31229 "ds" : {
31230 "description" : "The list of datasources you want to display.",
31231 "format" : "pve-configid-list",
31232 "type" : "string",
31233 "typetext" : "<string>"
31234 },
31235 "node" : {
31236 "description" : "The cluster node name.",
31237 "format" : "pve-node",
31238 "type" : "string",
31239 "typetext" : "<string>"
31240 },
31241 "timeframe" : {
31242 "description" : "Specify the time frame you are interested in.",
31243 "enum" : [
31244 "hour",
31245 "day",
31246 "week",
31247 "month",
31248 "year"
31249 ],
31250 "type" : "string"
31251 },
31252 "vmid" : {
31253 "description" : "The (unique) ID of the VM.",
31254 "format" : "pve-vmid",
8dd66e12
TL
31255 "maximum" : 999999999,
31256 "minimum" : 100,
4d47f125 31257 "type" : "integer",
8dd66e12 31258 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31259 }
31260 }
31261 },
31262 "permissions" : {
31263 "check" : [
31264 "perm",
31265 "/vms/{vmid}",
31266 [
31267 "VM.Audit"
31268 ]
31269 ]
31270 },
31271 "protected" : 1,
31272 "returns" : {
31273 "properties" : {
31274 "filename" : {
31275 "type" : "string"
31276 }
31277 },
31278 "type" : "object"
31279 }
31280 }
31281 },
31282 "leaf" : 1,
31283 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
31284 "text" : "rrd"
31285 },
31286 {
31287 "info" : {
31288 "GET" : {
e9cd3bd4 31289 "allowtoken" : 1,
4d47f125
TL
31290 "description" : "Read VM RRD statistics",
31291 "method" : "GET",
31292 "name" : "rrddata",
31293 "parameters" : {
31294 "additionalProperties" : 0,
31295 "properties" : {
31296 "cf" : {
31297 "description" : "The RRD consolidation function",
31298 "enum" : [
31299 "AVERAGE",
31300 "MAX"
31301 ],
31302 "optional" : 1,
31303 "type" : "string"
31304 },
31305 "node" : {
31306 "description" : "The cluster node name.",
31307 "format" : "pve-node",
31308 "type" : "string",
31309 "typetext" : "<string>"
44660702 31310 },
4d47f125
TL
31311 "timeframe" : {
31312 "description" : "Specify the time frame you are interested in.",
31313 "enum" : [
31314 "hour",
31315 "day",
31316 "week",
31317 "month",
31318 "year"
44660702 31319 ],
4d47f125
TL
31320 "type" : "string"
31321 },
31322 "vmid" : {
31323 "description" : "The (unique) ID of the VM.",
31324 "format" : "pve-vmid",
8dd66e12
TL
31325 "maximum" : 999999999,
31326 "minimum" : 100,
4d47f125 31327 "type" : "integer",
8dd66e12 31328 "typetext" : "<integer> (100 - 999999999)"
44660702 31329 }
4d47f125
TL
31330 }
31331 },
31332 "permissions" : {
31333 "check" : [
31334 "perm",
31335 "/vms/{vmid}",
31336 [
31337 "VM.Audit"
31338 ]
31339 ]
31340 },
31341 "protected" : 1,
31342 "returns" : {
31343 "items" : {
31344 "properties" : {},
31345 "type" : "object"
44660702 31346 },
4d47f125
TL
31347 "type" : "array"
31348 }
31349 }
31350 },
31351 "leaf" : 1,
31352 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
31353 "text" : "rrddata"
31354 },
31355 {
31356 "info" : {
31357 "POST" : {
e9cd3bd4 31358 "allowtoken" : 1,
4d47f125
TL
31359 "description" : "Creates a TCP VNC proxy connections.",
31360 "method" : "POST",
31361 "name" : "vncproxy",
31362 "parameters" : {
31363 "additionalProperties" : 0,
31364 "properties" : {
31365 "height" : {
31366 "description" : "sets the height of the console in pixels.",
31367 "maximum" : 2160,
31368 "minimum" : 16,
31369 "optional" : 1,
31370 "type" : "integer",
31371 "typetext" : "<integer> (16 - 2160)"
44660702 31372 },
4d47f125
TL
31373 "node" : {
31374 "description" : "The cluster node name.",
31375 "format" : "pve-node",
31376 "type" : "string",
31377 "typetext" : "<string>"
44660702 31378 },
4d47f125
TL
31379 "vmid" : {
31380 "description" : "The (unique) ID of the VM.",
31381 "format" : "pve-vmid",
8dd66e12
TL
31382 "maximum" : 999999999,
31383 "minimum" : 100,
4d47f125 31384 "type" : "integer",
8dd66e12 31385 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31386 },
31387 "websocket" : {
31388 "description" : "use websocket instead of standard VNC.",
31389 "optional" : 1,
31390 "type" : "boolean",
31391 "typetext" : "<boolean>"
31392 },
31393 "width" : {
31394 "description" : "sets the width of the console in pixels.",
31395 "maximum" : 4096,
31396 "minimum" : 16,
31397 "optional" : 1,
31398 "type" : "integer",
31399 "typetext" : "<integer> (16 - 4096)"
56122987
DM
31400 }
31401 }
44660702 31402 },
4d47f125
TL
31403 "permissions" : {
31404 "check" : [
31405 "perm",
31406 "/vms/{vmid}",
31407 [
31408 "VM.Console"
31409 ]
31410 ]
31411 },
31412 "protected" : 1,
31413 "returns" : {
31414 "additionalProperties" : 0,
31415 "properties" : {
31416 "cert" : {
31417 "type" : "string"
44660702 31418 },
4d47f125
TL
31419 "port" : {
31420 "type" : "integer"
31421 },
31422 "ticket" : {
31423 "type" : "string"
31424 },
31425 "upid" : {
31426 "type" : "string"
31427 },
31428 "user" : {
31429 "type" : "string"
31430 }
31431 }
31432 }
31433 }
31434 },
31435 "leaf" : 1,
31436 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
31437 "text" : "vncproxy"
31438 },
31439 {
31440 "info" : {
31441 "POST" : {
e9cd3bd4 31442 "allowtoken" : 1,
4d47f125
TL
31443 "description" : "Creates a TCP proxy connection.",
31444 "method" : "POST",
31445 "name" : "termproxy",
31446 "parameters" : {
31447 "additionalProperties" : 0,
31448 "properties" : {
31449 "node" : {
31450 "description" : "The cluster node name.",
31451 "format" : "pve-node",
31452 "type" : "string",
31453 "typetext" : "<string>"
44660702 31454 },
4d47f125
TL
31455 "vmid" : {
31456 "description" : "The (unique) ID of the VM.",
31457 "format" : "pve-vmid",
8dd66e12
TL
31458 "maximum" : 999999999,
31459 "minimum" : 100,
4d47f125 31460 "type" : "integer",
8dd66e12 31461 "typetext" : "<integer> (100 - 999999999)"
44660702 31462 }
4d47f125
TL
31463 }
31464 },
31465 "permissions" : {
31466 "check" : [
31467 "perm",
31468 "/vms/{vmid}",
31469 [
31470 "VM.Console"
31471 ]
31472 ]
31473 },
31474 "protected" : 1,
31475 "returns" : {
31476 "additionalProperties" : 0,
31477 "properties" : {
31478 "port" : {
31479 "type" : "integer"
56122987 31480 },
4d47f125
TL
31481 "ticket" : {
31482 "type" : "string"
7aacca6f 31483 },
4d47f125
TL
31484 "upid" : {
31485 "type" : "string"
31486 },
31487 "user" : {
31488 "type" : "string"
31489 }
31490 }
31491 }
31492 }
31493 },
31494 "leaf" : 1,
31495 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
31496 "text" : "termproxy"
31497 },
31498 {
31499 "info" : {
31500 "GET" : {
e9cd3bd4 31501 "allowtoken" : 1,
4d47f125
TL
31502 "description" : "Opens a weksocket for VNC traffic.",
31503 "method" : "GET",
31504 "name" : "vncwebsocket",
31505 "parameters" : {
31506 "additionalProperties" : 0,
31507 "properties" : {
31508 "node" : {
31509 "description" : "The cluster node name.",
31510 "format" : "pve-node",
31511 "type" : "string",
31512 "typetext" : "<string>"
31513 },
31514 "port" : {
31515 "description" : "Port number returned by previous vncproxy call.",
31516 "maximum" : 5999,
31517 "minimum" : 5900,
31518 "type" : "integer",
31519 "typetext" : "<integer> (5900 - 5999)"
31520 },
31521 "vmid" : {
31522 "description" : "The (unique) ID of the VM.",
31523 "format" : "pve-vmid",
8dd66e12
TL
31524 "maximum" : 999999999,
31525 "minimum" : 100,
4d47f125 31526 "type" : "integer",
8dd66e12 31527 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31528 },
31529 "vncticket" : {
31530 "description" : "Ticket from previous call to vncproxy.",
31531 "maxLength" : 512,
31532 "type" : "string",
31533 "typetext" : "<string>"
56122987
DM
31534 }
31535 }
31536 },
4d47f125
TL
31537 "permissions" : {
31538 "check" : [
31539 "perm",
31540 "/vms/{vmid}",
31541 [
31542 "VM.Console"
31543 ]
31544 ],
31545 "description" : "You also need to pass a valid ticket (vncticket)."
31546 },
31547 "returns" : {
31548 "properties" : {
31549 "port" : {
31550 "type" : "string"
31551 }
31552 },
31553 "type" : "object"
31554 }
31555 }
31556 },
31557 "leaf" : 1,
31558 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
31559 "text" : "vncwebsocket"
31560 },
31561 {
31562 "info" : {
31563 "POST" : {
e9cd3bd4 31564 "allowtoken" : 1,
4d47f125
TL
31565 "description" : "Returns a SPICE configuration to connect to the CT.",
31566 "method" : "POST",
31567 "name" : "spiceproxy",
31568 "parameters" : {
31569 "additionalProperties" : 0,
31570 "properties" : {
31571 "node" : {
31572 "description" : "The cluster node name.",
31573 "format" : "pve-node",
31574 "type" : "string",
31575 "typetext" : "<string>"
56122987 31576 },
4d47f125
TL
31577 "proxy" : {
31578 "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).",
31579 "format" : "address",
31580 "optional" : 1,
31581 "type" : "string",
31582 "typetext" : "<string>"
44660702 31583 },
4d47f125
TL
31584 "vmid" : {
31585 "description" : "The (unique) ID of the VM.",
31586 "format" : "pve-vmid",
8dd66e12
TL
31587 "maximum" : 999999999,
31588 "minimum" : 100,
4d47f125 31589 "type" : "integer",
8dd66e12 31590 "typetext" : "<integer> (100 - 999999999)"
44660702 31591 }
56122987
DM
31592 }
31593 },
4d47f125
TL
31594 "permissions" : {
31595 "check" : [
31596 "perm",
31597 "/vms/{vmid}",
31598 [
31599 "VM.Console"
31600 ]
31601 ]
31602 },
31603 "protected" : 1,
31604 "proxyto" : "node",
31605 "returns" : {
31606 "additionalProperties" : 1,
31607 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
31608 "properties" : {
31609 "host" : {
31610 "type" : "string"
31611 },
31612 "password" : {
31613 "type" : "string"
31614 },
31615 "proxy" : {
31616 "type" : "string"
31617 },
31618 "tls-port" : {
31619 "type" : "integer"
31620 },
31621 "type" : {
31622 "type" : "string"
31623 }
31624 }
31625 }
31626 }
31627 },
31628 "leaf" : 1,
31629 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
31630 "text" : "spiceproxy"
31631 },
81a3384d
TL
31632 {
31633 "info" : {
31634 "POST" : {
31635 "allowtoken" : 1,
31636 "description" : "Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!",
31637 "method" : "POST",
31638 "name" : "remote_migrate_vm",
31639 "parameters" : {
31640 "additionalProperties" : 0,
31641 "properties" : {
31642 "bwlimit" : {
31643 "default" : "migrate limit from datacenter or storage config",
31644 "description" : "Override I/O bandwidth limit (in KiB/s).",
31645 "minimum" : "0",
31646 "optional" : 1,
31647 "type" : "number",
31648 "typetext" : "<number> (0 - N)"
31649 },
31650 "delete" : {
31651 "default" : 0,
31652 "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.",
31653 "optional" : 1,
31654 "type" : "boolean",
31655 "typetext" : "<boolean>"
31656 },
31657 "node" : {
31658 "description" : "The cluster node name.",
31659 "format" : "pve-node",
31660 "type" : "string",
31661 "typetext" : "<string>"
31662 },
31663 "online" : {
31664 "description" : "Use online/live migration.",
31665 "optional" : 1,
31666 "type" : "boolean",
31667 "typetext" : "<boolean>"
31668 },
31669 "restart" : {
31670 "description" : "Use restart migration",
31671 "optional" : 1,
31672 "type" : "boolean",
31673 "typetext" : "<boolean>"
31674 },
31675 "target-bridge" : {
31676 "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.",
31677 "format" : "bridge-pair-list",
31678 "type" : "string",
31679 "typetext" : "<string>"
31680 },
31681 "target-endpoint" : {
31682 "description" : "Remote target endpoint",
31683 "format" : "proxmox-remote",
31684 "type" : "string",
31685 "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>]"
31686 },
31687 "target-storage" : {
31688 "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.",
31689 "format" : "storage-pair-list",
31690 "optional" : 0,
31691 "type" : "string",
31692 "typetext" : "<string>"
31693 },
31694 "target-vmid" : {
31695 "description" : "The (unique) ID of the VM.",
31696 "format" : "pve-vmid",
8dd66e12
TL
31697 "maximum" : 999999999,
31698 "minimum" : 100,
81a3384d
TL
31699 "optional" : 1,
31700 "type" : "integer",
8dd66e12 31701 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
31702 },
31703 "timeout" : {
31704 "default" : 180,
31705 "description" : "Timeout in seconds for shutdown for restart migration",
31706 "optional" : 1,
31707 "type" : "integer",
31708 "typetext" : "<integer>"
31709 },
31710 "vmid" : {
31711 "description" : "The (unique) ID of the VM.",
31712 "format" : "pve-vmid",
8dd66e12
TL
31713 "maximum" : 999999999,
31714 "minimum" : 100,
81a3384d 31715 "type" : "integer",
8dd66e12 31716 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
31717 }
31718 }
31719 },
31720 "permissions" : {
31721 "check" : [
31722 "perm",
31723 "/vms/{vmid}",
31724 [
31725 "VM.Migrate"
31726 ]
31727 ]
31728 },
31729 "protected" : 1,
31730 "proxyto" : "node",
31731 "returns" : {
31732 "description" : "the task ID.",
31733 "type" : "string"
31734 }
31735 }
31736 },
31737 "leaf" : 1,
31738 "path" : "/nodes/{node}/lxc/{vmid}/remote_migrate",
31739 "text" : "remote_migrate"
31740 },
4d47f125
TL
31741 {
31742 "info" : {
31743 "POST" : {
e9cd3bd4 31744 "allowtoken" : 1,
4d47f125
TL
31745 "description" : "Migrate the container to another node. Creates a new migration task.",
31746 "method" : "POST",
31747 "name" : "migrate_vm",
31748 "parameters" : {
31749 "additionalProperties" : 0,
31750 "properties" : {
95895385
TL
31751 "bwlimit" : {
31752 "default" : "migrate limit from datacenter or storage config",
31753 "description" : "Override I/O bandwidth limit (in KiB/s).",
31754 "minimum" : "0",
31755 "optional" : 1,
31756 "type" : "number",
31757 "typetext" : "<number> (0 - N)"
31758 },
4d47f125
TL
31759 "node" : {
31760 "description" : "The cluster node name.",
31761 "format" : "pve-node",
31762 "type" : "string",
31763 "typetext" : "<string>"
44660702 31764 },
4d47f125
TL
31765 "online" : {
31766 "description" : "Use online/live migration.",
31767 "optional" : 1,
31768 "type" : "boolean",
31769 "typetext" : "<boolean>"
31770 },
31771 "restart" : {
31772 "description" : "Use restart migration",
31773 "optional" : 1,
31774 "type" : "boolean",
31775 "typetext" : "<boolean>"
31776 },
31777 "target" : {
31778 "description" : "Target node.",
31779 "format" : "pve-node",
31780 "type" : "string",
31781 "typetext" : "<string>"
31782 },
c30bb419
TL
31783 "target-storage" : {
31784 "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.",
31785 "format" : "storage-pair-list",
31786 "optional" : 1,
31787 "type" : "string",
31788 "typetext" : "<string>"
31789 },
4d47f125
TL
31790 "timeout" : {
31791 "default" : 180,
31792 "description" : "Timeout in seconds for shutdown for restart migration",
31793 "optional" : 1,
31794 "type" : "integer",
31795 "typetext" : "<integer>"
31796 },
31797 "vmid" : {
31798 "description" : "The (unique) ID of the VM.",
31799 "format" : "pve-vmid",
8dd66e12
TL
31800 "maximum" : 999999999,
31801 "minimum" : 100,
4d47f125 31802 "type" : "integer",
8dd66e12 31803 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
31804 }
31805 }
31806 },
4d47f125
TL
31807 "permissions" : {
31808 "check" : [
31809 "perm",
31810 "/vms/{vmid}",
31811 [
31812 "VM.Migrate"
31813 ]
31814 ]
31815 },
31816 "protected" : 1,
31817 "proxyto" : "node",
31818 "returns" : {
31819 "description" : "the task ID.",
31820 "type" : "string"
31821 }
56122987 31822 }
4d47f125
TL
31823 },
31824 "leaf" : 1,
31825 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
31826 "text" : "migrate"
31827 },
31828 {
56122987
DM
31829 "info" : {
31830 "GET" : {
e9cd3bd4 31831 "allowtoken" : 1,
4d47f125 31832 "description" : "Check if feature for virtual machine is available.",
44660702 31833 "method" : "GET",
4d47f125 31834 "name" : "vm_feature",
56122987 31835 "parameters" : {
44660702 31836 "additionalProperties" : 0,
56122987 31837 "properties" : {
4d47f125
TL
31838 "feature" : {
31839 "description" : "Feature to check.",
31840 "enum" : [
31841 "snapshot",
31842 "clone",
31843 "copy"
31844 ],
31845 "type" : "string"
31846 },
56122987 31847 "node" : {
44660702 31848 "description" : "The cluster node name.",
56122987 31849 "format" : "pve-node",
013dc89f
DM
31850 "type" : "string",
31851 "typetext" : "<string>"
44660702 31852 },
4d47f125
TL
31853 "snapname" : {
31854 "description" : "The name of the snapshot.",
31855 "format" : "pve-configid",
31856 "maxLength" : 40,
31857 "optional" : 1,
31858 "type" : "string",
31859 "typetext" : "<string>"
31860 },
44660702
DM
31861 "vmid" : {
31862 "description" : "The (unique) ID of the VM.",
31863 "format" : "pve-vmid",
8dd66e12
TL
31864 "maximum" : 999999999,
31865 "minimum" : 100,
4bd7df8b 31866 "type" : "integer",
8dd66e12 31867 "typetext" : "<integer> (100 - 999999999)"
56122987 31868 }
44660702
DM
31869 }
31870 },
31871 "permissions" : {
4d47f125
TL
31872 "check" : [
31873 "perm",
31874 "/vms/{vmid}",
31875 [
31876 "VM.Audit"
31877 ]
31878 ]
56122987 31879 },
4d47f125
TL
31880 "protected" : 1,
31881 "proxyto" : "node",
56122987 31882 "returns" : {
4d47f125
TL
31883 "properties" : {
31884 "hasFeature" : {
31885 "type" : "boolean"
31886 }
7aacca6f 31887 },
4d47f125
TL
31888 "type" : "object"
31889 }
31890 }
31891 },
31892 "leaf" : 1,
31893 "path" : "/nodes/{node}/lxc/{vmid}/feature",
31894 "text" : "feature"
31895 },
31896 {
31897 "info" : {
31898 "POST" : {
e9cd3bd4 31899 "allowtoken" : 1,
4d47f125
TL
31900 "description" : "Create a Template.",
31901 "method" : "POST",
31902 "name" : "template",
31903 "parameters" : {
31904 "additionalProperties" : 0,
31905 "properties" : {
31906 "node" : {
31907 "description" : "The cluster node name.",
31908 "format" : "pve-node",
31909 "type" : "string",
31910 "typetext" : "<string>"
31911 },
31912 "vmid" : {
31913 "description" : "The (unique) ID of the VM.",
31914 "format" : "pve-vmid",
8dd66e12
TL
31915 "maximum" : 999999999,
31916 "minimum" : 100,
4d47f125 31917 "type" : "integer",
8dd66e12 31918 "typetext" : "<integer> (100 - 999999999)"
56122987 31919 }
4d47f125
TL
31920 }
31921 },
31922 "permissions" : {
31923 "check" : [
31924 "perm",
31925 "/vms/{vmid}",
31926 [
31927 "VM.Allocate"
31928 ]
44660702 31929 ],
4d47f125
TL
31930 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
31931 },
31932 "protected" : 1,
31933 "proxyto" : "node",
31934 "returns" : {
31935 "type" : "null"
56122987
DM
31936 }
31937 }
31938 },
4d47f125
TL
31939 "leaf" : 1,
31940 "path" : "/nodes/{node}/lxc/{vmid}/template",
31941 "text" : "template"
56122987
DM
31942 },
31943 {
56122987 31944 "info" : {
4d47f125 31945 "POST" : {
e9cd3bd4 31946 "allowtoken" : 1,
4d47f125
TL
31947 "description" : "Create a container clone/copy",
31948 "method" : "POST",
31949 "name" : "clone_vm",
56122987 31950 "parameters" : {
7aacca6f 31951 "additionalProperties" : 0,
56122987 31952 "properties" : {
95895385
TL
31953 "bwlimit" : {
31954 "default" : "clone limit from datacenter or storage config",
31955 "description" : "Override I/O bandwidth limit (in KiB/s).",
31956 "minimum" : "0",
31957 "optional" : 1,
31958 "type" : "number",
31959 "typetext" : "<number> (0 - N)"
31960 },
4d47f125
TL
31961 "description" : {
31962 "description" : "Description for the new CT.",
44660702 31963 "optional" : 1,
4d47f125
TL
31964 "type" : "string",
31965 "typetext" : "<string>"
44660702 31966 },
4d47f125
TL
31967 "full" : {
31968 "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.",
31969 "optional" : 1,
31970 "type" : "boolean",
31971 "typetext" : "<boolean>"
31972 },
31973 "hostname" : {
31974 "description" : "Set a hostname for the new CT.",
31975 "format" : "dns-name",
31976 "optional" : 1,
013dc89f
DM
31977 "type" : "string",
31978 "typetext" : "<string>"
44660702 31979 },
4d47f125
TL
31980 "newid" : {
31981 "description" : "VMID for the clone.",
31982 "format" : "pve-vmid",
8dd66e12
TL
31983 "maximum" : 999999999,
31984 "minimum" : 100,
4d47f125 31985 "type" : "integer",
8dd66e12 31986 "typetext" : "<integer> (100 - 999999999)"
4d47f125 31987 },
7aacca6f
DM
31988 "node" : {
31989 "description" : "The cluster node name.",
44660702 31990 "format" : "pve-node",
013dc89f
DM
31991 "type" : "string",
31992 "typetext" : "<string>"
56122987 31993 },
4d47f125
TL
31994 "pool" : {
31995 "description" : "Add the new CT to the specified pool.",
31996 "format" : "pve-poolid",
31997 "optional" : 1,
31998 "type" : "string",
31999 "typetext" : "<string>"
32000 },
32001 "snapname" : {
32002 "description" : "The name of the snapshot.",
32003 "format" : "pve-configid",
32004 "maxLength" : 40,
32005 "optional" : 1,
32006 "type" : "string",
32007 "typetext" : "<string>"
32008 },
32009 "storage" : {
32010 "description" : "Target storage for full clone.",
32011 "format" : "pve-storage-id",
32012 "optional" : 1,
32013 "type" : "string",
32014 "typetext" : "<string>"
32015 },
32016 "target" : {
32017 "description" : "Target node. Only allowed if the original VM is on shared storage.",
32018 "format" : "pve-node",
32019 "optional" : 1,
32020 "type" : "string",
32021 "typetext" : "<string>"
32022 },
7aacca6f 32023 "vmid" : {
44660702 32024 "description" : "The (unique) ID of the VM.",
7aacca6f 32025 "format" : "pve-vmid",
8dd66e12
TL
32026 "maximum" : 999999999,
32027 "minimum" : 100,
4bd7df8b 32028 "type" : "integer",
8dd66e12 32029 "typetext" : "<integer> (100 - 999999999)"
56122987 32030 }
7aacca6f
DM
32031 }
32032 },
32033 "permissions" : {
32034 "check" : [
4d47f125 32035 "and",
7aacca6f 32036 [
4d47f125
TL
32037 "perm",
32038 "/vms/{vmid}",
32039 [
32040 "VM.Clone"
32041 ]
32042 ],
32043 [
32044 "or",
32045 [
32046 "perm",
32047 "/vms/{newid}",
32048 [
32049 "VM.Allocate"
32050 ]
32051 ],
32052 [
32053 "perm",
32054 "/pool/{pool}",
32055 [
32056 "VM.Allocate"
32057 ],
32058 "require_param",
32059 "pool"
32060 ]
7aacca6f 32061 ]
4d47f125 32062 ],
159464a9 32063 "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 32064 },
44660702 32065 "protected" : 1,
4d47f125 32066 "proxyto" : "node",
7aacca6f 32067 "returns" : {
4d47f125 32068 "type" : "string"
7aacca6f 32069 }
56122987 32070 }
7aacca6f 32071 },
44660702 32072 "leaf" : 1,
4d47f125
TL
32073 "path" : "/nodes/{node}/lxc/{vmid}/clone",
32074 "text" : "clone"
56122987
DM
32075 },
32076 {
56122987 32077 "info" : {
4d47f125 32078 "PUT" : {
e9cd3bd4 32079 "allowtoken" : 1,
4d47f125
TL
32080 "description" : "Resize a container mount point.",
32081 "method" : "PUT",
32082 "name" : "resize_vm",
56122987 32083 "parameters" : {
7aacca6f 32084 "additionalProperties" : 0,
56122987 32085 "properties" : {
4d47f125
TL
32086 "digest" : {
32087 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
32088 "maxLength" : 40,
32089 "optional" : 1,
32090 "type" : "string",
32091 "typetext" : "<string>"
32092 },
32093 "disk" : {
32094 "description" : "The disk you want to resize.",
44660702 32095 "enum" : [
4d47f125
TL
32096 "rootfs",
32097 "mp0",
32098 "mp1",
32099 "mp2",
32100 "mp3",
32101 "mp4",
32102 "mp5",
32103 "mp6",
32104 "mp7",
32105 "mp8",
32106 "mp9",
32107 "mp10",
32108 "mp11",
32109 "mp12",
32110 "mp13",
32111 "mp14",
32112 "mp15",
32113 "mp16",
32114 "mp17",
32115 "mp18",
32116 "mp19",
32117 "mp20",
32118 "mp21",
32119 "mp22",
32120 "mp23",
32121 "mp24",
32122 "mp25",
32123 "mp26",
32124 "mp27",
32125 "mp28",
32126 "mp29",
32127 "mp30",
32128 "mp31",
32129 "mp32",
32130 "mp33",
32131 "mp34",
32132 "mp35",
32133 "mp36",
32134 "mp37",
32135 "mp38",
32136 "mp39",
32137 "mp40",
32138 "mp41",
32139 "mp42",
32140 "mp43",
32141 "mp44",
32142 "mp45",
32143 "mp46",
32144 "mp47",
32145 "mp48",
32146 "mp49",
32147 "mp50",
32148 "mp51",
32149 "mp52",
32150 "mp53",
32151 "mp54",
32152 "mp55",
32153 "mp56",
32154 "mp57",
32155 "mp58",
32156 "mp59",
32157 "mp60",
32158 "mp61",
32159 "mp62",
32160 "mp63",
32161 "mp64",
32162 "mp65",
32163 "mp66",
32164 "mp67",
32165 "mp68",
32166 "mp69",
32167 "mp70",
32168 "mp71",
32169 "mp72",
32170 "mp73",
32171 "mp74",
32172 "mp75",
32173 "mp76",
32174 "mp77",
32175 "mp78",
32176 "mp79",
32177 "mp80",
32178 "mp81",
32179 "mp82",
32180 "mp83",
32181 "mp84",
32182 "mp85",
32183 "mp86",
32184 "mp87",
32185 "mp88",
32186 "mp89",
32187 "mp90",
32188 "mp91",
32189 "mp92",
32190 "mp93",
32191 "mp94",
32192 "mp95",
32193 "mp96",
32194 "mp97",
32195 "mp98",
32196 "mp99",
32197 "mp100",
32198 "mp101",
32199 "mp102",
32200 "mp103",
32201 "mp104",
32202 "mp105",
32203 "mp106",
32204 "mp107",
32205 "mp108",
32206 "mp109",
32207 "mp110",
32208 "mp111",
32209 "mp112",
32210 "mp113",
32211 "mp114",
32212 "mp115",
32213 "mp116",
32214 "mp117",
32215 "mp118",
32216 "mp119",
32217 "mp120",
32218 "mp121",
32219 "mp122",
32220 "mp123",
32221 "mp124",
32222 "mp125",
32223 "mp126",
32224 "mp127",
32225 "mp128",
32226 "mp129",
32227 "mp130",
32228 "mp131",
32229 "mp132",
32230 "mp133",
32231 "mp134",
32232 "mp135",
32233 "mp136",
32234 "mp137",
32235 "mp138",
32236 "mp139",
32237 "mp140",
32238 "mp141",
32239 "mp142",
32240 "mp143",
32241 "mp144",
32242 "mp145",
32243 "mp146",
32244 "mp147",
32245 "mp148",
32246 "mp149",
32247 "mp150",
32248 "mp151",
32249 "mp152",
32250 "mp153",
32251 "mp154",
32252 "mp155",
32253 "mp156",
32254 "mp157",
32255 "mp158",
32256 "mp159",
32257 "mp160",
32258 "mp161",
32259 "mp162",
32260 "mp163",
32261 "mp164",
32262 "mp165",
32263 "mp166",
32264 "mp167",
32265 "mp168",
32266 "mp169",
32267 "mp170",
32268 "mp171",
32269 "mp172",
32270 "mp173",
32271 "mp174",
32272 "mp175",
32273 "mp176",
32274 "mp177",
32275 "mp178",
32276 "mp179",
32277 "mp180",
32278 "mp181",
32279 "mp182",
32280 "mp183",
32281 "mp184",
32282 "mp185",
32283 "mp186",
32284 "mp187",
32285 "mp188",
32286 "mp189",
32287 "mp190",
32288 "mp191",
32289 "mp192",
32290 "mp193",
32291 "mp194",
32292 "mp195",
32293 "mp196",
32294 "mp197",
32295 "mp198",
32296 "mp199",
32297 "mp200",
32298 "mp201",
32299 "mp202",
32300 "mp203",
32301 "mp204",
32302 "mp205",
32303 "mp206",
32304 "mp207",
32305 "mp208",
32306 "mp209",
32307 "mp210",
32308 "mp211",
32309 "mp212",
32310 "mp213",
32311 "mp214",
32312 "mp215",
32313 "mp216",
32314 "mp217",
32315 "mp218",
32316 "mp219",
32317 "mp220",
32318 "mp221",
32319 "mp222",
32320 "mp223",
32321 "mp224",
32322 "mp225",
32323 "mp226",
32324 "mp227",
32325 "mp228",
32326 "mp229",
32327 "mp230",
32328 "mp231",
32329 "mp232",
32330 "mp233",
32331 "mp234",
32332 "mp235",
32333 "mp236",
32334 "mp237",
32335 "mp238",
32336 "mp239",
32337 "mp240",
32338 "mp241",
32339 "mp242",
32340 "mp243",
32341 "mp244",
32342 "mp245",
32343 "mp246",
32344 "mp247",
32345 "mp248",
32346 "mp249",
32347 "mp250",
32348 "mp251",
32349 "mp252",
32350 "mp253",
32351 "mp254",
32352 "mp255"
44660702 32353 ],
44660702
DM
32354 "type" : "string"
32355 },
7aacca6f 32356 "node" : {
44660702 32357 "description" : "The cluster node name.",
7aacca6f 32358 "format" : "pve-node",
013dc89f
DM
32359 "type" : "string",
32360 "typetext" : "<string>"
7aacca6f 32361 },
4d47f125
TL
32362 "size" : {
32363 "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.",
32364 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 32365 "type" : "string"
7aacca6f
DM
32366 },
32367 "vmid" : {
32368 "description" : "The (unique) ID of the VM.",
44660702 32369 "format" : "pve-vmid",
8dd66e12
TL
32370 "maximum" : 999999999,
32371 "minimum" : 100,
4bd7df8b 32372 "type" : "integer",
8dd66e12 32373 "typetext" : "<integer> (100 - 999999999)"
56122987 32374 }
56122987
DM
32375 }
32376 },
56122987
DM
32377 "permissions" : {
32378 "check" : [
32379 "perm",
32380 "/vms/{vmid}",
32381 [
4d47f125
TL
32382 "VM.Config.Disk"
32383 ],
32384 "any",
32385 1
56122987
DM
32386 ]
32387 },
7aacca6f 32388 "protected" : 1,
4d47f125 32389 "proxyto" : "node",
7aacca6f 32390 "returns" : {
4d47f125
TL
32391 "description" : "the task ID.",
32392 "type" : "string"
44660702 32393 }
56122987
DM
32394 }
32395 },
44660702 32396 "leaf" : 1,
4d47f125
TL
32397 "path" : "/nodes/{node}/lxc/{vmid}/resize",
32398 "text" : "resize"
56122987
DM
32399 },
32400 {
32401 "info" : {
32402 "POST" : {
e9cd3bd4 32403 "allowtoken" : 1,
5370fa8c 32404 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 32405 "method" : "POST",
4d47f125 32406 "name" : "move_volume",
7aacca6f 32407 "parameters" : {
44660702 32408 "additionalProperties" : 0,
7aacca6f 32409 "properties" : {
95895385
TL
32410 "bwlimit" : {
32411 "default" : "clone limit from datacenter or storage config",
32412 "description" : "Override I/O bandwidth limit (in KiB/s).",
32413 "minimum" : "0",
32414 "optional" : 1,
32415 "type" : "number",
32416 "typetext" : "<number> (0 - N)"
32417 },
4d47f125
TL
32418 "delete" : {
32419 "default" : 0,
32420 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 32421 "optional" : 1,
4d47f125
TL
32422 "type" : "boolean",
32423 "typetext" : "<boolean>"
32424 },
32425 "digest" : {
5370fa8c 32426 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
32427 "maxLength" : 40,
32428 "optional" : 1,
32429 "type" : "string",
32430 "typetext" : "<string>"
5d9c884c 32431 },
44660702
DM
32432 "node" : {
32433 "description" : "The cluster node name.",
32434 "format" : "pve-node",
013dc89f
DM
32435 "type" : "string",
32436 "typetext" : "<string>"
44660702 32437 },
4d47f125
TL
32438 "storage" : {
32439 "description" : "Target Storage.",
32440 "format" : "pve-storage-id",
5370fa8c 32441 "optional" : 1,
4d47f125
TL
32442 "type" : "string",
32443 "typetext" : "<string>"
32444 },
5370fa8c
TL
32445 "target-digest" : {
32446 "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.",
32447 "maxLength" : 40,
32448 "optional" : 1,
32449 "type" : "string",
32450 "typetext" : "<string>"
32451 },
32452 "target-vmid" : {
44660702 32453 "description" : "The (unique) ID of the VM.",
7aacca6f 32454 "format" : "pve-vmid",
8dd66e12
TL
32455 "maximum" : 999999999,
32456 "minimum" : 100,
5370fa8c 32457 "optional" : 1,
4bd7df8b 32458 "type" : "integer",
8dd66e12 32459 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 32460 },
5370fa8c
TL
32461 "target-volume" : {
32462 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
32463 "enum" : [
32464 "rootfs",
32465 "mp0",
32466 "mp1",
32467 "mp2",
32468 "mp3",
32469 "mp4",
32470 "mp5",
32471 "mp6",
32472 "mp7",
32473 "mp8",
32474 "mp9",
32475 "mp10",
32476 "mp11",
32477 "mp12",
32478 "mp13",
32479 "mp14",
32480 "mp15",
32481 "mp16",
32482 "mp17",
32483 "mp18",
32484 "mp19",
32485 "mp20",
32486 "mp21",
32487 "mp22",
32488 "mp23",
32489 "mp24",
32490 "mp25",
32491 "mp26",
32492 "mp27",
32493 "mp28",
32494 "mp29",
32495 "mp30",
32496 "mp31",
32497 "mp32",
32498 "mp33",
32499 "mp34",
32500 "mp35",
32501 "mp36",
32502 "mp37",
32503 "mp38",
32504 "mp39",
32505 "mp40",
32506 "mp41",
32507 "mp42",
32508 "mp43",
32509 "mp44",
32510 "mp45",
32511 "mp46",
32512 "mp47",
32513 "mp48",
32514 "mp49",
32515 "mp50",
32516 "mp51",
32517 "mp52",
32518 "mp53",
32519 "mp54",
32520 "mp55",
32521 "mp56",
32522 "mp57",
32523 "mp58",
32524 "mp59",
32525 "mp60",
32526 "mp61",
32527 "mp62",
32528 "mp63",
32529 "mp64",
32530 "mp65",
32531 "mp66",
32532 "mp67",
32533 "mp68",
32534 "mp69",
32535 "mp70",
32536 "mp71",
32537 "mp72",
32538 "mp73",
32539 "mp74",
32540 "mp75",
32541 "mp76",
32542 "mp77",
32543 "mp78",
32544 "mp79",
32545 "mp80",
32546 "mp81",
32547 "mp82",
32548 "mp83",
32549 "mp84",
32550 "mp85",
32551 "mp86",
32552 "mp87",
32553 "mp88",
32554 "mp89",
32555 "mp90",
32556 "mp91",
32557 "mp92",
32558 "mp93",
32559 "mp94",
32560 "mp95",
32561 "mp96",
32562 "mp97",
32563 "mp98",
32564 "mp99",
32565 "mp100",
32566 "mp101",
32567 "mp102",
32568 "mp103",
32569 "mp104",
32570 "mp105",
32571 "mp106",
32572 "mp107",
32573 "mp108",
32574 "mp109",
32575 "mp110",
32576 "mp111",
32577 "mp112",
32578 "mp113",
32579 "mp114",
32580 "mp115",
32581 "mp116",
32582 "mp117",
32583 "mp118",
32584 "mp119",
32585 "mp120",
32586 "mp121",
32587 "mp122",
32588 "mp123",
32589 "mp124",
32590 "mp125",
32591 "mp126",
32592 "mp127",
32593 "mp128",
32594 "mp129",
32595 "mp130",
32596 "mp131",
32597 "mp132",
32598 "mp133",
32599 "mp134",
32600 "mp135",
32601 "mp136",
32602 "mp137",
32603 "mp138",
32604 "mp139",
32605 "mp140",
32606 "mp141",
32607 "mp142",
32608 "mp143",
32609 "mp144",
32610 "mp145",
32611 "mp146",
32612 "mp147",
32613 "mp148",
32614 "mp149",
32615 "mp150",
32616 "mp151",
32617 "mp152",
32618 "mp153",
32619 "mp154",
32620 "mp155",
32621 "mp156",
32622 "mp157",
32623 "mp158",
32624 "mp159",
32625 "mp160",
32626 "mp161",
32627 "mp162",
32628 "mp163",
32629 "mp164",
32630 "mp165",
32631 "mp166",
32632 "mp167",
32633 "mp168",
32634 "mp169",
32635 "mp170",
32636 "mp171",
32637 "mp172",
32638 "mp173",
32639 "mp174",
32640 "mp175",
32641 "mp176",
32642 "mp177",
32643 "mp178",
32644 "mp179",
32645 "mp180",
32646 "mp181",
32647 "mp182",
32648 "mp183",
32649 "mp184",
32650 "mp185",
32651 "mp186",
32652 "mp187",
32653 "mp188",
32654 "mp189",
32655 "mp190",
32656 "mp191",
32657 "mp192",
32658 "mp193",
32659 "mp194",
32660 "mp195",
32661 "mp196",
32662 "mp197",
32663 "mp198",
32664 "mp199",
32665 "mp200",
32666 "mp201",
32667 "mp202",
32668 "mp203",
32669 "mp204",
32670 "mp205",
32671 "mp206",
32672 "mp207",
32673 "mp208",
32674 "mp209",
32675 "mp210",
32676 "mp211",
32677 "mp212",
32678 "mp213",
32679 "mp214",
32680 "mp215",
32681 "mp216",
32682 "mp217",
32683 "mp218",
32684 "mp219",
32685 "mp220",
32686 "mp221",
32687 "mp222",
32688 "mp223",
32689 "mp224",
32690 "mp225",
32691 "mp226",
32692 "mp227",
32693 "mp228",
32694 "mp229",
32695 "mp230",
32696 "mp231",
32697 "mp232",
32698 "mp233",
32699 "mp234",
32700 "mp235",
32701 "mp236",
32702 "mp237",
32703 "mp238",
32704 "mp239",
32705 "mp240",
32706 "mp241",
32707 "mp242",
32708 "mp243",
32709 "mp244",
32710 "mp245",
32711 "mp246",
32712 "mp247",
32713 "mp248",
32714 "mp249",
32715 "mp250",
32716 "mp251",
32717 "mp252",
32718 "mp253",
32719 "mp254",
5370fa8c
TL
32720 "mp255",
32721 "unused0",
32722 "unused1",
32723 "unused2",
32724 "unused3",
32725 "unused4",
32726 "unused5",
32727 "unused6",
32728 "unused7",
32729 "unused8",
32730 "unused9",
32731 "unused10",
32732 "unused11",
32733 "unused12",
32734 "unused13",
32735 "unused14",
32736 "unused15",
32737 "unused16",
32738 "unused17",
32739 "unused18",
32740 "unused19",
32741 "unused20",
32742 "unused21",
32743 "unused22",
32744 "unused23",
32745 "unused24",
32746 "unused25",
32747 "unused26",
32748 "unused27",
32749 "unused28",
32750 "unused29",
32751 "unused30",
32752 "unused31",
32753 "unused32",
32754 "unused33",
32755 "unused34",
32756 "unused35",
32757 "unused36",
32758 "unused37",
32759 "unused38",
32760 "unused39",
32761 "unused40",
32762 "unused41",
32763 "unused42",
32764 "unused43",
32765 "unused44",
32766 "unused45",
32767 "unused46",
32768 "unused47",
32769 "unused48",
32770 "unused49",
32771 "unused50",
32772 "unused51",
32773 "unused52",
32774 "unused53",
32775 "unused54",
32776 "unused55",
32777 "unused56",
32778 "unused57",
32779 "unused58",
32780 "unused59",
32781 "unused60",
32782 "unused61",
32783 "unused62",
32784 "unused63",
32785 "unused64",
32786 "unused65",
32787 "unused66",
32788 "unused67",
32789 "unused68",
32790 "unused69",
32791 "unused70",
32792 "unused71",
32793 "unused72",
32794 "unused73",
32795 "unused74",
32796 "unused75",
32797 "unused76",
32798 "unused77",
32799 "unused78",
32800 "unused79",
32801 "unused80",
32802 "unused81",
32803 "unused82",
32804 "unused83",
32805 "unused84",
32806 "unused85",
32807 "unused86",
32808 "unused87",
32809 "unused88",
32810 "unused89",
32811 "unused90",
32812 "unused91",
32813 "unused92",
32814 "unused93",
32815 "unused94",
32816 "unused95",
32817 "unused96",
32818 "unused97",
32819 "unused98",
32820 "unused99",
32821 "unused100",
32822 "unused101",
32823 "unused102",
32824 "unused103",
32825 "unused104",
32826 "unused105",
32827 "unused106",
32828 "unused107",
32829 "unused108",
32830 "unused109",
32831 "unused110",
32832 "unused111",
32833 "unused112",
32834 "unused113",
32835 "unused114",
32836 "unused115",
32837 "unused116",
32838 "unused117",
32839 "unused118",
32840 "unused119",
32841 "unused120",
32842 "unused121",
32843 "unused122",
32844 "unused123",
32845 "unused124",
32846 "unused125",
32847 "unused126",
32848 "unused127",
32849 "unused128",
32850 "unused129",
32851 "unused130",
32852 "unused131",
32853 "unused132",
32854 "unused133",
32855 "unused134",
32856 "unused135",
32857 "unused136",
32858 "unused137",
32859 "unused138",
32860 "unused139",
32861 "unused140",
32862 "unused141",
32863 "unused142",
32864 "unused143",
32865 "unused144",
32866 "unused145",
32867 "unused146",
32868 "unused147",
32869 "unused148",
32870 "unused149",
32871 "unused150",
32872 "unused151",
32873 "unused152",
32874 "unused153",
32875 "unused154",
32876 "unused155",
32877 "unused156",
32878 "unused157",
32879 "unused158",
32880 "unused159",
32881 "unused160",
32882 "unused161",
32883 "unused162",
32884 "unused163",
32885 "unused164",
32886 "unused165",
32887 "unused166",
32888 "unused167",
32889 "unused168",
32890 "unused169",
32891 "unused170",
32892 "unused171",
32893 "unused172",
32894 "unused173",
32895 "unused174",
32896 "unused175",
32897 "unused176",
32898 "unused177",
32899 "unused178",
32900 "unused179",
32901 "unused180",
32902 "unused181",
32903 "unused182",
32904 "unused183",
32905 "unused184",
32906 "unused185",
32907 "unused186",
32908 "unused187",
32909 "unused188",
32910 "unused189",
32911 "unused190",
32912 "unused191",
32913 "unused192",
32914 "unused193",
32915 "unused194",
32916 "unused195",
32917 "unused196",
32918 "unused197",
32919 "unused198",
32920 "unused199",
32921 "unused200",
32922 "unused201",
32923 "unused202",
32924 "unused203",
32925 "unused204",
32926 "unused205",
32927 "unused206",
32928 "unused207",
32929 "unused208",
32930 "unused209",
32931 "unused210",
32932 "unused211",
32933 "unused212",
32934 "unused213",
32935 "unused214",
32936 "unused215",
32937 "unused216",
32938 "unused217",
32939 "unused218",
32940 "unused219",
32941 "unused220",
32942 "unused221",
32943 "unused222",
32944 "unused223",
32945 "unused224",
32946 "unused225",
32947 "unused226",
32948 "unused227",
32949 "unused228",
32950 "unused229",
32951 "unused230",
32952 "unused231",
32953 "unused232",
32954 "unused233",
32955 "unused234",
32956 "unused235",
32957 "unused236",
32958 "unused237",
32959 "unused238",
32960 "unused239",
32961 "unused240",
32962 "unused241",
32963 "unused242",
32964 "unused243",
32965 "unused244",
32966 "unused245",
32967 "unused246",
32968 "unused247",
32969 "unused248",
32970 "unused249",
32971 "unused250",
32972 "unused251",
32973 "unused252",
32974 "unused253",
32975 "unused254",
32976 "unused255"
32977 ],
32978 "optional" : 1,
32979 "type" : "string"
32980 },
32981 "vmid" : {
32982 "description" : "The (unique) ID of the VM.",
32983 "format" : "pve-vmid",
8dd66e12
TL
32984 "maximum" : 999999999,
32985 "minimum" : 100,
5370fa8c 32986 "type" : "integer",
8dd66e12 32987 "typetext" : "<integer> (100 - 999999999)"
5370fa8c
TL
32988 },
32989 "volume" : {
32990 "description" : "Volume which will be moved.",
32991 "enum" : [
32992 "rootfs",
32993 "mp0",
32994 "mp1",
32995 "mp2",
32996 "mp3",
32997 "mp4",
32998 "mp5",
32999 "mp6",
33000 "mp7",
33001 "mp8",
33002 "mp9",
33003 "mp10",
33004 "mp11",
33005 "mp12",
33006 "mp13",
33007 "mp14",
33008 "mp15",
33009 "mp16",
33010 "mp17",
33011 "mp18",
33012 "mp19",
33013 "mp20",
33014 "mp21",
33015 "mp22",
33016 "mp23",
33017 "mp24",
33018 "mp25",
33019 "mp26",
33020 "mp27",
33021 "mp28",
33022 "mp29",
33023 "mp30",
33024 "mp31",
33025 "mp32",
33026 "mp33",
33027 "mp34",
33028 "mp35",
33029 "mp36",
33030 "mp37",
33031 "mp38",
33032 "mp39",
33033 "mp40",
33034 "mp41",
33035 "mp42",
33036 "mp43",
33037 "mp44",
33038 "mp45",
33039 "mp46",
33040 "mp47",
33041 "mp48",
33042 "mp49",
33043 "mp50",
33044 "mp51",
33045 "mp52",
33046 "mp53",
33047 "mp54",
33048 "mp55",
33049 "mp56",
33050 "mp57",
33051 "mp58",
33052 "mp59",
33053 "mp60",
33054 "mp61",
33055 "mp62",
33056 "mp63",
33057 "mp64",
33058 "mp65",
33059 "mp66",
33060 "mp67",
33061 "mp68",
33062 "mp69",
33063 "mp70",
33064 "mp71",
33065 "mp72",
33066 "mp73",
33067 "mp74",
33068 "mp75",
33069 "mp76",
33070 "mp77",
33071 "mp78",
33072 "mp79",
33073 "mp80",
33074 "mp81",
33075 "mp82",
33076 "mp83",
33077 "mp84",
33078 "mp85",
33079 "mp86",
33080 "mp87",
33081 "mp88",
33082 "mp89",
33083 "mp90",
33084 "mp91",
33085 "mp92",
33086 "mp93",
33087 "mp94",
33088 "mp95",
33089 "mp96",
33090 "mp97",
33091 "mp98",
33092 "mp99",
33093 "mp100",
33094 "mp101",
33095 "mp102",
33096 "mp103",
33097 "mp104",
33098 "mp105",
33099 "mp106",
33100 "mp107",
33101 "mp108",
33102 "mp109",
33103 "mp110",
33104 "mp111",
33105 "mp112",
33106 "mp113",
33107 "mp114",
33108 "mp115",
33109 "mp116",
33110 "mp117",
33111 "mp118",
33112 "mp119",
33113 "mp120",
33114 "mp121",
33115 "mp122",
33116 "mp123",
33117 "mp124",
33118 "mp125",
33119 "mp126",
33120 "mp127",
33121 "mp128",
33122 "mp129",
33123 "mp130",
33124 "mp131",
33125 "mp132",
33126 "mp133",
33127 "mp134",
33128 "mp135",
33129 "mp136",
33130 "mp137",
33131 "mp138",
33132 "mp139",
33133 "mp140",
33134 "mp141",
33135 "mp142",
33136 "mp143",
33137 "mp144",
33138 "mp145",
33139 "mp146",
33140 "mp147",
33141 "mp148",
33142 "mp149",
33143 "mp150",
33144 "mp151",
33145 "mp152",
33146 "mp153",
33147 "mp154",
33148 "mp155",
33149 "mp156",
33150 "mp157",
33151 "mp158",
33152 "mp159",
33153 "mp160",
33154 "mp161",
33155 "mp162",
33156 "mp163",
33157 "mp164",
33158 "mp165",
33159 "mp166",
33160 "mp167",
33161 "mp168",
33162 "mp169",
33163 "mp170",
33164 "mp171",
33165 "mp172",
33166 "mp173",
33167 "mp174",
33168 "mp175",
33169 "mp176",
33170 "mp177",
33171 "mp178",
33172 "mp179",
33173 "mp180",
33174 "mp181",
33175 "mp182",
33176 "mp183",
33177 "mp184",
33178 "mp185",
33179 "mp186",
33180 "mp187",
33181 "mp188",
33182 "mp189",
33183 "mp190",
33184 "mp191",
33185 "mp192",
33186 "mp193",
33187 "mp194",
33188 "mp195",
33189 "mp196",
33190 "mp197",
33191 "mp198",
33192 "mp199",
33193 "mp200",
33194 "mp201",
33195 "mp202",
33196 "mp203",
33197 "mp204",
33198 "mp205",
33199 "mp206",
33200 "mp207",
33201 "mp208",
33202 "mp209",
33203 "mp210",
33204 "mp211",
33205 "mp212",
33206 "mp213",
33207 "mp214",
33208 "mp215",
33209 "mp216",
33210 "mp217",
33211 "mp218",
33212 "mp219",
33213 "mp220",
33214 "mp221",
33215 "mp222",
33216 "mp223",
33217 "mp224",
33218 "mp225",
33219 "mp226",
33220 "mp227",
33221 "mp228",
33222 "mp229",
33223 "mp230",
33224 "mp231",
33225 "mp232",
33226 "mp233",
33227 "mp234",
33228 "mp235",
33229 "mp236",
33230 "mp237",
33231 "mp238",
33232 "mp239",
33233 "mp240",
33234 "mp241",
33235 "mp242",
33236 "mp243",
33237 "mp244",
33238 "mp245",
33239 "mp246",
33240 "mp247",
33241 "mp248",
33242 "mp249",
33243 "mp250",
33244 "mp251",
33245 "mp252",
33246 "mp253",
33247 "mp254",
33248 "mp255",
33249 "unused0",
33250 "unused1",
33251 "unused2",
33252 "unused3",
33253 "unused4",
33254 "unused5",
33255 "unused6",
33256 "unused7",
33257 "unused8",
33258 "unused9",
33259 "unused10",
33260 "unused11",
33261 "unused12",
33262 "unused13",
33263 "unused14",
33264 "unused15",
33265 "unused16",
33266 "unused17",
33267 "unused18",
33268 "unused19",
33269 "unused20",
33270 "unused21",
33271 "unused22",
33272 "unused23",
33273 "unused24",
33274 "unused25",
33275 "unused26",
33276 "unused27",
33277 "unused28",
33278 "unused29",
33279 "unused30",
33280 "unused31",
33281 "unused32",
33282 "unused33",
33283 "unused34",
33284 "unused35",
33285 "unused36",
33286 "unused37",
33287 "unused38",
33288 "unused39",
33289 "unused40",
33290 "unused41",
33291 "unused42",
33292 "unused43",
33293 "unused44",
33294 "unused45",
33295 "unused46",
33296 "unused47",
33297 "unused48",
33298 "unused49",
33299 "unused50",
33300 "unused51",
33301 "unused52",
33302 "unused53",
33303 "unused54",
33304 "unused55",
33305 "unused56",
33306 "unused57",
33307 "unused58",
33308 "unused59",
33309 "unused60",
33310 "unused61",
33311 "unused62",
33312 "unused63",
33313 "unused64",
33314 "unused65",
33315 "unused66",
33316 "unused67",
33317 "unused68",
33318 "unused69",
33319 "unused70",
33320 "unused71",
33321 "unused72",
33322 "unused73",
33323 "unused74",
33324 "unused75",
33325 "unused76",
33326 "unused77",
33327 "unused78",
33328 "unused79",
33329 "unused80",
33330 "unused81",
33331 "unused82",
33332 "unused83",
33333 "unused84",
33334 "unused85",
33335 "unused86",
33336 "unused87",
33337 "unused88",
33338 "unused89",
33339 "unused90",
33340 "unused91",
33341 "unused92",
33342 "unused93",
33343 "unused94",
33344 "unused95",
33345 "unused96",
33346 "unused97",
33347 "unused98",
33348 "unused99",
33349 "unused100",
33350 "unused101",
33351 "unused102",
33352 "unused103",
33353 "unused104",
33354 "unused105",
33355 "unused106",
33356 "unused107",
33357 "unused108",
33358 "unused109",
33359 "unused110",
33360 "unused111",
33361 "unused112",
33362 "unused113",
33363 "unused114",
33364 "unused115",
33365 "unused116",
33366 "unused117",
33367 "unused118",
33368 "unused119",
33369 "unused120",
33370 "unused121",
33371 "unused122",
33372 "unused123",
33373 "unused124",
33374 "unused125",
33375 "unused126",
33376 "unused127",
33377 "unused128",
33378 "unused129",
33379 "unused130",
33380 "unused131",
33381 "unused132",
33382 "unused133",
33383 "unused134",
33384 "unused135",
33385 "unused136",
33386 "unused137",
33387 "unused138",
33388 "unused139",
33389 "unused140",
33390 "unused141",
33391 "unused142",
33392 "unused143",
33393 "unused144",
33394 "unused145",
33395 "unused146",
33396 "unused147",
33397 "unused148",
33398 "unused149",
33399 "unused150",
33400 "unused151",
33401 "unused152",
33402 "unused153",
33403 "unused154",
33404 "unused155",
33405 "unused156",
33406 "unused157",
33407 "unused158",
33408 "unused159",
33409 "unused160",
33410 "unused161",
33411 "unused162",
33412 "unused163",
33413 "unused164",
33414 "unused165",
33415 "unused166",
33416 "unused167",
33417 "unused168",
33418 "unused169",
33419 "unused170",
33420 "unused171",
33421 "unused172",
33422 "unused173",
33423 "unused174",
33424 "unused175",
33425 "unused176",
33426 "unused177",
33427 "unused178",
33428 "unused179",
33429 "unused180",
33430 "unused181",
33431 "unused182",
33432 "unused183",
33433 "unused184",
33434 "unused185",
33435 "unused186",
33436 "unused187",
33437 "unused188",
33438 "unused189",
33439 "unused190",
33440 "unused191",
33441 "unused192",
33442 "unused193",
33443 "unused194",
33444 "unused195",
33445 "unused196",
33446 "unused197",
33447 "unused198",
33448 "unused199",
33449 "unused200",
33450 "unused201",
33451 "unused202",
33452 "unused203",
33453 "unused204",
33454 "unused205",
33455 "unused206",
33456 "unused207",
33457 "unused208",
33458 "unused209",
33459 "unused210",
33460 "unused211",
33461 "unused212",
33462 "unused213",
33463 "unused214",
33464 "unused215",
33465 "unused216",
33466 "unused217",
33467 "unused218",
33468 "unused219",
33469 "unused220",
33470 "unused221",
33471 "unused222",
33472 "unused223",
33473 "unused224",
33474 "unused225",
33475 "unused226",
33476 "unused227",
33477 "unused228",
33478 "unused229",
33479 "unused230",
33480 "unused231",
33481 "unused232",
33482 "unused233",
33483 "unused234",
33484 "unused235",
33485 "unused236",
33486 "unused237",
33487 "unused238",
33488 "unused239",
33489 "unused240",
33490 "unused241",
33491 "unused242",
33492 "unused243",
33493 "unused244",
33494 "unused245",
33495 "unused246",
33496 "unused247",
33497 "unused248",
33498 "unused249",
33499 "unused250",
33500 "unused251",
33501 "unused252",
33502 "unused253",
33503 "unused254",
33504 "unused255"
4d47f125
TL
33505 ],
33506 "type" : "string"
7aacca6f 33507 }
44660702 33508 }
7aacca6f 33509 },
56122987
DM
33510 "permissions" : {
33511 "check" : [
5370fa8c
TL
33512 "perm",
33513 "/vms/{vmid}",
4d47f125 33514 [
5370fa8c 33515 "VM.Config.Disk"
56122987 33516 ]
4d47f125 33517 ],
5370fa8c 33518 "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
33519 },
33520 "protected" : 1,
33521 "proxyto" : "node",
33522 "returns" : {
33523 "type" : "string"
33524 }
33525 }
33526 },
33527 "leaf" : 1,
33528 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
33529 "text" : "move_volume"
1c532546
TL
33530 },
33531 {
33532 "info" : {
33533 "GET" : {
e9cd3bd4 33534 "allowtoken" : 1,
1c532546
TL
33535 "description" : "Get container configuration, including pending changes.",
33536 "method" : "GET",
33537 "name" : "vm_pending",
33538 "parameters" : {
33539 "additionalProperties" : 0,
33540 "properties" : {
33541 "node" : {
33542 "description" : "The cluster node name.",
33543 "format" : "pve-node",
33544 "type" : "string",
33545 "typetext" : "<string>"
33546 },
33547 "vmid" : {
33548 "description" : "The (unique) ID of the VM.",
33549 "format" : "pve-vmid",
8dd66e12
TL
33550 "maximum" : 999999999,
33551 "minimum" : 100,
1c532546 33552 "type" : "integer",
8dd66e12 33553 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
33554 }
33555 }
33556 },
33557 "permissions" : {
33558 "check" : [
33559 "perm",
33560 "/vms/{vmid}",
33561 [
33562 "VM.Audit"
33563 ]
33564 ]
33565 },
33566 "proxyto" : "node",
33567 "returns" : {
33568 "items" : {
33569 "properties" : {
33570 "delete" : {
33571 "description" : "Indicates a pending delete request if present and not 0.",
33572 "maximum" : 2,
33573 "minimum" : 0,
33574 "optional" : 1,
33575 "type" : "integer"
33576 },
33577 "key" : {
33578 "description" : "Configuration option name.",
33579 "type" : "string"
33580 },
33581 "pending" : {
33582 "description" : "Pending value.",
33583 "optional" : 1,
33584 "type" : "string"
33585 },
33586 "value" : {
33587 "description" : "Current value.",
33588 "optional" : 1,
33589 "type" : "string"
33590 }
33591 },
33592 "type" : "object"
33593 },
33594 "type" : "array"
33595 }
33596 }
33597 },
33598 "leaf" : 1,
33599 "path" : "/nodes/{node}/lxc/{vmid}/pending",
33600 "text" : "pending"
81a3384d
TL
33601 },
33602 {
33603 "info" : {
33604 "POST" : {
33605 "allowtoken" : 1,
33606 "description" : "Migration tunnel endpoint - only for internal use by CT migration.",
33607 "method" : "POST",
33608 "name" : "mtunnel",
33609 "parameters" : {
33610 "additionalProperties" : 0,
33611 "properties" : {
33612 "bridges" : {
33613 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
33614 "format" : "pve-bridge-id-list",
33615 "optional" : 1,
33616 "type" : "string",
33617 "typetext" : "<string>"
33618 },
33619 "node" : {
33620 "description" : "The cluster node name.",
33621 "format" : "pve-node",
33622 "type" : "string",
33623 "typetext" : "<string>"
33624 },
33625 "storages" : {
33626 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
33627 "format" : "pve-storage-id-list",
33628 "optional" : 1,
33629 "type" : "string",
33630 "typetext" : "<string>"
33631 },
33632 "vmid" : {
33633 "description" : "The (unique) ID of the VM.",
33634 "format" : "pve-vmid",
8dd66e12
TL
33635 "maximum" : 999999999,
33636 "minimum" : 100,
81a3384d 33637 "type" : "integer",
8dd66e12 33638 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
33639 }
33640 }
33641 },
33642 "permissions" : {
33643 "check" : [
33644 "and",
33645 [
33646 "perm",
33647 "/vms/{vmid}",
33648 [
33649 "VM.Allocate"
33650 ]
33651 ],
33652 [
33653 "perm",
33654 "/",
33655 [
33656 "Sys.Incoming"
33657 ]
33658 ]
33659 ],
33660 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
33661 },
33662 "protected" : 1,
33663 "returns" : {
33664 "additionalProperties" : 0,
33665 "properties" : {
33666 "socket" : {
33667 "type" : "string"
33668 },
33669 "ticket" : {
33670 "type" : "string"
33671 },
33672 "upid" : {
33673 "type" : "string"
33674 }
33675 }
33676 }
33677 }
33678 },
33679 "leaf" : 1,
33680 "path" : "/nodes/{node}/lxc/{vmid}/mtunnel",
33681 "text" : "mtunnel"
33682 },
33683 {
33684 "info" : {
33685 "GET" : {
33686 "allowtoken" : 1,
33687 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
33688 "method" : "GET",
33689 "name" : "mtunnelwebsocket",
33690 "parameters" : {
33691 "additionalProperties" : 0,
33692 "properties" : {
33693 "node" : {
33694 "description" : "The cluster node name.",
33695 "format" : "pve-node",
33696 "type" : "string",
33697 "typetext" : "<string>"
33698 },
33699 "socket" : {
33700 "description" : "unix socket to forward to",
33701 "type" : "string",
33702 "typetext" : "<string>"
33703 },
33704 "ticket" : {
33705 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
33706 "type" : "string",
33707 "typetext" : "<string>"
33708 },
33709 "vmid" : {
33710 "description" : "The (unique) ID of the VM.",
33711 "format" : "pve-vmid",
8dd66e12
TL
33712 "maximum" : 999999999,
33713 "minimum" : 100,
81a3384d 33714 "type" : "integer",
8dd66e12 33715 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
33716 }
33717 }
33718 },
33719 "permissions" : {
33720 "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.",
33721 "user" : "all"
33722 },
33723 "returns" : {
33724 "properties" : {
33725 "port" : {
33726 "optional" : 1,
33727 "type" : "string"
33728 },
33729 "socket" : {
33730 "optional" : 1,
33731 "type" : "string"
33732 }
33733 },
33734 "type" : "object"
33735 }
33736 }
33737 },
33738 "leaf" : 1,
33739 "path" : "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket",
33740 "text" : "mtunnelwebsocket"
4d47f125
TL
33741 }
33742 ],
33743 "info" : {
33744 "DELETE" : {
e9cd3bd4 33745 "allowtoken" : 1,
4d47f125
TL
33746 "description" : "Destroy the container (also delete all uses files).",
33747 "method" : "DELETE",
33748 "name" : "destroy_vm",
33749 "parameters" : {
33750 "additionalProperties" : 0,
33751 "properties" : {
d2656385
TL
33752 "destroy-unreferenced-disks" : {
33753 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
33754 "optional" : 1,
33755 "type" : "boolean",
33756 "typetext" : "<boolean>"
33757 },
c5aa7e14
TL
33758 "force" : {
33759 "default" : 0,
33760 "description" : "Force destroy, even if running.",
33761 "optional" : 1,
33762 "type" : "boolean",
33763 "typetext" : "<boolean>"
33764 },
4d47f125
TL
33765 "node" : {
33766 "description" : "The cluster node name.",
33767 "format" : "pve-node",
33768 "type" : "string",
33769 "typetext" : "<string>"
33770 },
1c532546 33771 "purge" : {
c5aa7e14
TL
33772 "default" : 0,
33773 "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
33774 "optional" : 1,
33775 "type" : "boolean",
33776 "typetext" : "<boolean>"
33777 },
4d47f125
TL
33778 "vmid" : {
33779 "description" : "The (unique) ID of the VM.",
33780 "format" : "pve-vmid",
8dd66e12
TL
33781 "maximum" : 999999999,
33782 "minimum" : 100,
4d47f125 33783 "type" : "integer",
8dd66e12 33784 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33785 }
33786 }
33787 },
33788 "permissions" : {
33789 "check" : [
33790 "perm",
33791 "/vms/{vmid}",
33792 [
33793 "VM.Allocate"
33794 ]
33795 ]
33796 },
33797 "protected" : 1,
33798 "proxyto" : "node",
33799 "returns" : {
33800 "type" : "string"
33801 }
33802 },
33803 "GET" : {
e9cd3bd4 33804 "allowtoken" : 1,
4d47f125
TL
33805 "description" : "Directory index",
33806 "method" : "GET",
33807 "name" : "vmdiridx",
33808 "parameters" : {
33809 "additionalProperties" : 0,
33810 "properties" : {
33811 "node" : {
33812 "description" : "The cluster node name.",
33813 "format" : "pve-node",
33814 "type" : "string",
33815 "typetext" : "<string>"
56122987 33816 },
4d47f125
TL
33817 "vmid" : {
33818 "description" : "The (unique) ID of the VM.",
33819 "format" : "pve-vmid",
8dd66e12
TL
33820 "maximum" : 999999999,
33821 "minimum" : 100,
4d47f125 33822 "type" : "integer",
8dd66e12 33823 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
33824 }
33825 }
33826 },
4d47f125
TL
33827 "permissions" : {
33828 "user" : "all"
33829 },
33830 "proxyto" : "node",
33831 "returns" : {
33832 "items" : {
33833 "properties" : {
33834 "subdir" : {
33835 "type" : "string"
35a75dd3
DM
33836 }
33837 },
4d47f125
TL
33838 "type" : "object"
33839 },
33840 "links" : [
33841 {
33842 "href" : "{subdir}",
33843 "rel" : "child"
35a75dd3 33844 }
4d47f125
TL
33845 ],
33846 "type" : "array"
33847 }
33848 }
33849 },
33850 "leaf" : 0,
33851 "path" : "/nodes/{node}/lxc/{vmid}",
33852 "text" : "{vmid}"
33853 }
33854 ],
33855 "info" : {
33856 "GET" : {
e9cd3bd4 33857 "allowtoken" : 1,
4d47f125
TL
33858 "description" : "LXC container index (per node).",
33859 "method" : "GET",
33860 "name" : "vmlist",
33861 "parameters" : {
33862 "additionalProperties" : 0,
33863 "properties" : {
33864 "node" : {
33865 "description" : "The cluster node name.",
33866 "format" : "pve-node",
33867 "type" : "string",
33868 "typetext" : "<string>"
33869 }
33870 }
33871 },
33872 "permissions" : {
33873 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
33874 "user" : "all"
33875 },
33876 "protected" : 1,
33877 "proxyto" : "node",
33878 "returns" : {
33879 "items" : {
33880 "properties" : {
33881 "cpus" : {
33882 "description" : "Maximum usable CPUs.",
33883 "optional" : 1,
33884 "type" : "number"
33885 },
95895385
TL
33886 "lock" : {
33887 "description" : "The current config lock, if any.",
33888 "optional" : 1,
33889 "type" : "string"
33890 },
4d47f125
TL
33891 "maxdisk" : {
33892 "description" : "Root disk size in bytes.",
33893 "optional" : 1,
33894 "renderer" : "bytes",
33895 "type" : "integer"
33896 },
33897 "maxmem" : {
33898 "description" : "Maximum memory in bytes.",
33899 "optional" : 1,
33900 "renderer" : "bytes",
33901 "type" : "integer"
33902 },
33903 "maxswap" : {
33904 "description" : "Maximum SWAP memory in bytes.",
33905 "optional" : 1,
33906 "renderer" : "bytes",
33907 "type" : "integer"
33908 },
33909 "name" : {
33910 "description" : "Container name.",
33911 "optional" : 1,
33912 "type" : "string"
33913 },
33914 "status" : {
33915 "description" : "LXC Container status.",
33916 "enum" : [
33917 "stopped",
33918 "running"
33919 ],
33920 "type" : "string"
33921 },
5c1699e5
TL
33922 "tags" : {
33923 "description" : "The current configured tags, if any.",
33924 "optional" : 1,
33925 "type" : "string"
33926 },
4d47f125
TL
33927 "uptime" : {
33928 "description" : "Uptime.",
33929 "optional" : 1,
33930 "renderer" : "duration",
33931 "type" : "integer"
33932 },
33933 "vmid" : {
33934 "description" : "The (unique) ID of the VM.",
33935 "format" : "pve-vmid",
8dd66e12
TL
33936 "maximum" : 999999999,
33937 "minimum" : 100,
4d47f125 33938 "type" : "integer"
35a75dd3
DM
33939 }
33940 },
4d47f125 33941 "type" : "object"
35a75dd3 33942 },
4d47f125
TL
33943 "links" : [
33944 {
33945 "href" : "{vmid}",
33946 "rel" : "child"
33947 }
33948 ],
33949 "type" : "array"
33950 }
33951 },
33952 "POST" : {
e9cd3bd4 33953 "allowtoken" : 1,
4d47f125
TL
33954 "description" : "Create or restore a container.",
33955 "method" : "POST",
33956 "name" : "create_vm",
33957 "parameters" : {
33958 "additionalProperties" : 0,
33959 "properties" : {
33960 "arch" : {
33961 "default" : "amd64",
33962 "description" : "OS architecture type.",
33963 "enum" : [
33964 "amd64",
33965 "i386",
33966 "arm64",
9d2e98ed
TL
33967 "armhf",
33968 "riscv32",
33969 "riscv64"
4d47f125
TL
33970 ],
33971 "optional" : 1,
33972 "type" : "string"
33973 },
33974 "bwlimit" : {
95895385
TL
33975 "default" : "restore limit from datacenter or storage config",
33976 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
33977 "minimum" : "0",
33978 "optional" : 1,
33979 "type" : "number",
33980 "typetext" : "<number> (0 - N)"
33981 },
33982 "cmode" : {
33983 "default" : "tty",
33984 "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).",
33985 "enum" : [
33986 "shell",
33987 "console",
33988 "tty"
33989 ],
33990 "optional" : 1,
33991 "type" : "string"
33992 },
33993 "console" : {
33994 "default" : 1,
33995 "description" : "Attach a console device (/dev/console) to the container.",
33996 "optional" : 1,
33997 "type" : "boolean",
33998 "typetext" : "<boolean>"
33999 },
34000 "cores" : {
34001 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 34002 "maximum" : 8192,
4d47f125
TL
34003 "minimum" : 1,
34004 "optional" : 1,
34005 "type" : "integer",
4772952b 34006 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
34007 },
34008 "cpulimit" : {
34009 "default" : 0,
34010 "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 34011 "maximum" : 8192,
4d47f125
TL
34012 "minimum" : 0,
34013 "optional" : 1,
34014 "type" : "number",
4772952b 34015 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
34016 },
34017 "cpuunits" : {
4e7f60c2
TL
34018 "default" : "cgroup v1: 1024, cgroup v2: 100",
34019 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
34020 "maximum" : 500000,
34021 "minimum" : 0,
34022 "optional" : 1,
34023 "type" : "integer",
4e7f60c2
TL
34024 "typetext" : "<integer> (0 - 500000)",
34025 "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 34026 },
739d4d64
TL
34027 "debug" : {
34028 "default" : 0,
34029 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
34030 "optional" : 1,
34031 "type" : "boolean",
34032 "typetext" : "<boolean>"
34033 },
4d47f125 34034 "description" : {
8f4d9c87
TL
34035 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
34036 "maxLength" : 8192,
4d47f125
TL
34037 "optional" : 1,
34038 "type" : "string",
34039 "typetext" : "<string>"
34040 },
34041 "features" : {
34042 "description" : "Allow containers access to advanced features.",
34043 "format" : {
c5aa7e14
TL
34044 "force_rw_sys" : {
34045 "default" : 0,
34046 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
34047 "optional" : 1,
34048 "type" : "boolean"
34049 },
e2d681b3
TL
34050 "fuse" : {
34051 "default" : 0,
34052 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
34053 "optional" : 1,
34054 "type" : "boolean"
34055 },
4d47f125
TL
34056 "keyctl" : {
34057 "default" : 0,
34058 "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.",
34059 "optional" : 1,
34060 "type" : "boolean"
7aacca6f 34061 },
c5aa7e14
TL
34062 "mknod" : {
34063 "default" : 0,
34064 "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.",
34065 "optional" : 1,
34066 "type" : "boolean"
34067 },
4d47f125
TL
34068 "mount" : {
34069 "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.",
34070 "format_description" : "fstype;fstype;...",
34071 "optional" : 1,
95895385 34072 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 34073 "type" : "string"
56122987 34074 },
4d47f125
TL
34075 "nesting" : {
34076 "default" : 0,
34077 "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.",
34078 "optional" : 1,
34079 "type" : "boolean"
44660702 34080 }
4d47f125
TL
34081 },
34082 "optional" : 1,
34083 "type" : "string",
c5aa7e14 34084 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 34085 },
4d47f125
TL
34086 "force" : {
34087 "description" : "Allow to overwrite existing container.",
34088 "optional" : 1,
34089 "type" : "boolean",
34090 "typetext" : "<boolean>"
34091 },
5f26e15b
TL
34092 "hookscript" : {
34093 "description" : "Script that will be exectued during various steps in the containers lifetime.",
34094 "format" : "pve-volume-id",
34095 "optional" : 1,
34096 "type" : "string",
34097 "typetext" : "<string>"
34098 },
4d47f125
TL
34099 "hostname" : {
34100 "description" : "Set a host name for the container.",
34101 "format" : "dns-name",
34102 "maxLength" : 255,
34103 "optional" : 1,
34104 "type" : "string",
34105 "typetext" : "<string>"
34106 },
34107 "ignore-unpack-errors" : {
34108 "description" : "Ignore errors when extracting the template.",
34109 "optional" : 1,
34110 "type" : "boolean",
34111 "typetext" : "<boolean>"
34112 },
34113 "lock" : {
4e7f60c2 34114 "description" : "Lock/unlock the container.",
4d47f125
TL
34115 "enum" : [
34116 "backup",
bb4c8cf8 34117 "create",
1c532546 34118 "destroyed",
4d47f125 34119 "disk",
bb4c8cf8 34120 "fstrim",
4d47f125
TL
34121 "migrate",
34122 "mounted",
34123 "rollback",
34124 "snapshot",
34125 "snapshot-delete"
34126 ],
34127 "optional" : 1,
34128 "type" : "string"
34129 },
34130 "memory" : {
34131 "default" : 512,
4e7f60c2 34132 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
34133 "minimum" : 16,
34134 "optional" : 1,
34135 "type" : "integer",
34136 "typetext" : "<integer> (16 - N)"
34137 },
34138 "mp[n]" : {
d2656385 34139 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
34140 "format" : {
34141 "acl" : {
34142 "description" : "Explicitly enable or disable ACL support.",
34143 "optional" : 1,
34144 "type" : "boolean"
56122987 34145 },
4d47f125
TL
34146 "backup" : {
34147 "description" : "Whether to include the mount point in backups.",
34148 "optional" : 1,
34149 "type" : "boolean",
34150 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 34151 },
7cbed89a
TL
34152 "mountoptions" : {
34153 "description" : "Extra mount options for rootfs/mps.",
34154 "format_description" : "opt[;opt...]",
34155 "optional" : 1,
c30bb419 34156 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
34157 "type" : "string"
34158 },
4d47f125
TL
34159 "mp" : {
34160 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
34161 "format" : "pve-lxc-mp-string",
34162 "format_description" : "Path",
34163 "type" : "string",
34164 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 34165 },
4d47f125
TL
34166 "quota" : {
34167 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
34168 "optional" : 1,
34169 "type" : "boolean"
34170 },
34171 "replicate" : {
34172 "default" : 1,
34173 "description" : "Will include this volume to a storage replica job.",
34174 "optional" : 1,
34175 "type" : "boolean"
34176 },
34177 "ro" : {
34178 "description" : "Read-only mount point",
34179 "optional" : 1,
34180 "type" : "boolean"
34181 },
34182 "shared" : {
34183 "default" : 0,
34184 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
34185 "optional" : 1,
34186 "type" : "boolean",
34187 "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 34188 },
4d47f125
TL
34189 "size" : {
34190 "description" : "Volume size (read only value).",
34191 "format" : "disk-size",
34192 "format_description" : "DiskSize",
34193 "optional" : 1,
34194 "type" : "string"
34195 },
34196 "volume" : {
34197 "default_key" : 1,
34198 "description" : "Volume, device or directory to mount into the container.",
34199 "format" : "pve-lxc-mp-string",
34200 "format_description" : "volume",
44660702
DM
34201 "type" : "string"
34202 }
4d47f125
TL
34203 },
34204 "optional" : 1,
34205 "type" : "string",
7cbed89a 34206 "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 34207 },
4d47f125
TL
34208 "nameserver" : {
34209 "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 34210 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
34211 "optional" : 1,
34212 "type" : "string",
34213 "typetext" : "<string>"
34214 },
34215 "net[n]" : {
34216 "description" : "Specifies network interfaces for the container.",
34217 "format" : {
34218 "bridge" : {
34219 "description" : "Bridge to attach the network device to.",
34220 "format_description" : "bridge",
34221 "optional" : 1,
34222 "pattern" : "[-_.\\w\\d]+",
34223 "type" : "string"
56122987 34224 },
4d47f125
TL
34225 "firewall" : {
34226 "description" : "Controls whether this interface's firewall rules should be used.",
34227 "optional" : 1,
34228 "type" : "boolean"
56122987 34229 },
4d47f125
TL
34230 "gw" : {
34231 "description" : "Default gateway for IPv4 traffic.",
34232 "format" : "ipv4",
34233 "format_description" : "GatewayIPv4",
34234 "optional" : 1,
34235 "type" : "string"
34236 },
34237 "gw6" : {
34238 "description" : "Default gateway for IPv6 traffic.",
34239 "format" : "ipv6",
34240 "format_description" : "GatewayIPv6",
34241 "optional" : 1,
34242 "type" : "string"
34243 },
34244 "hwaddr" : {
34245 "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 34246 "format" : "mac-addr",
4d47f125
TL
34247 "format_description" : "XX:XX:XX:XX:XX:XX",
34248 "optional" : 1,
95895385
TL
34249 "type" : "string",
34250 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
34251 },
34252 "ip" : {
34253 "description" : "IPv4 address in CIDR format.",
34254 "format" : "pve-ipv4-config",
34255 "format_description" : "(IPv4/CIDR|dhcp|manual)",
34256 "optional" : 1,
34257 "type" : "string"
34258 },
34259 "ip6" : {
34260 "description" : "IPv6 address in CIDR format.",
34261 "format" : "pve-ipv6-config",
34262 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
34263 "optional" : 1,
34264 "type" : "string"
34265 },
9d2e98ed
TL
34266 "link_down" : {
34267 "description" : "Whether this interface should be disconnected (like pulling the plug).",
34268 "optional" : 1,
34269 "type" : "boolean"
34270 },
4d47f125
TL
34271 "mtu" : {
34272 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 34273 "maximum" : 65535,
4d47f125
TL
34274 "minimum" : 64,
34275 "optional" : 1,
34276 "type" : "integer"
34277 },
34278 "name" : {
34279 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
34280 "format_description" : "string",
34281 "pattern" : "[-_.\\w\\d]+",
34282 "type" : "string"
34283 },
34284 "rate" : {
34285 "description" : "Apply rate limiting to the interface",
34286 "format_description" : "mbps",
34287 "optional" : 1,
34288 "type" : "number"
34289 },
34290 "tag" : {
34291 "description" : "VLAN tag for this interface.",
34292 "maximum" : 4094,
34293 "minimum" : 1,
34294 "optional" : 1,
34295 "type" : "integer"
34296 },
34297 "trunks" : {
34298 "description" : "VLAN ids to pass through the interface",
34299 "format_description" : "vlanid[;vlanid...]",
34300 "optional" : 1,
34301 "pattern" : "(?^:\\d+(?:;\\d+)*)",
34302 "type" : "string"
34303 },
34304 "type" : {
34305 "description" : "Network interface type.",
34306 "enum" : [
34307 "veth"
34308 ],
34309 "optional" : 1,
34310 "type" : "string"
7aacca6f 34311 }
4d47f125
TL
34312 },
34313 "optional" : 1,
34314 "type" : "string",
9d2e98ed 34315 "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 34316 },
4d47f125
TL
34317 "node" : {
34318 "description" : "The cluster node name.",
34319 "format" : "pve-node",
34320 "type" : "string",
34321 "typetext" : "<string>"
34322 },
34323 "onboot" : {
34324 "default" : 0,
4e7f60c2 34325 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
34326 "optional" : 1,
34327 "type" : "boolean",
34328 "typetext" : "<boolean>"
34329 },
34330 "ostemplate" : {
34331 "description" : "The OS template or backup file.",
34332 "maxLength" : 255,
34333 "type" : "string",
34334 "typetext" : "<string>"
34335 },
34336 "ostype" : {
34337 "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.",
34338 "enum" : [
34339 "debian",
d2656385 34340 "devuan",
4d47f125
TL
34341 "ubuntu",
34342 "centos",
34343 "fedora",
34344 "opensuse",
34345 "archlinux",
34346 "alpine",
34347 "gentoo",
7af2edf9 34348 "nixos",
4d47f125
TL
34349 "unmanaged"
34350 ],
34351 "optional" : 1,
34352 "type" : "string"
34353 },
34354 "password" : {
34355 "description" : "Sets root password inside container.",
34356 "minLength" : 5,
34357 "optional" : 1,
34358 "type" : "string",
34359 "typetext" : "<string>"
34360 },
34361 "pool" : {
34362 "description" : "Add the VM to the specified pool.",
34363 "format" : "pve-poolid",
34364 "optional" : 1,
34365 "type" : "string",
34366 "typetext" : "<string>"
34367 },
34368 "protection" : {
34369 "default" : 0,
34370 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
34371 "optional" : 1,
34372 "type" : "boolean",
34373 "typetext" : "<boolean>"
34374 },
34375 "restore" : {
34376 "description" : "Mark this as restore task.",
34377 "optional" : 1,
34378 "type" : "boolean",
34379 "typetext" : "<boolean>"
34380 },
34381 "rootfs" : {
34382 "description" : "Use volume as container root.",
34383 "format" : {
34384 "acl" : {
34385 "description" : "Explicitly enable or disable ACL support.",
34386 "optional" : 1,
34387 "type" : "boolean"
56122987 34388 },
7cbed89a
TL
34389 "mountoptions" : {
34390 "description" : "Extra mount options for rootfs/mps.",
34391 "format_description" : "opt[;opt...]",
34392 "optional" : 1,
c30bb419 34393 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
34394 "type" : "string"
34395 },
4d47f125
TL
34396 "quota" : {
34397 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
34398 "optional" : 1,
34399 "type" : "boolean"
7aacca6f 34400 },
4d47f125
TL
34401 "replicate" : {
34402 "default" : 1,
34403 "description" : "Will include this volume to a storage replica job.",
34404 "optional" : 1,
34405 "type" : "boolean"
34406 },
34407 "ro" : {
34408 "description" : "Read-only mount point",
34409 "optional" : 1,
34410 "type" : "boolean"
34411 },
34412 "shared" : {
34413 "default" : 0,
34414 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
34415 "optional" : 1,
34416 "type" : "boolean",
34417 "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!"
34418 },
34419 "size" : {
34420 "description" : "Volume size (read only value).",
34421 "format" : "disk-size",
34422 "format_description" : "DiskSize",
34423 "optional" : 1,
34424 "type" : "string"
34425 },
34426 "volume" : {
34427 "default_key" : 1,
34428 "description" : "Volume, device or directory to mount into the container.",
34429 "format" : "pve-lxc-mp-string",
34430 "format_description" : "volume",
34431 "type" : "string"
56122987 34432 }
4d47f125
TL
34433 },
34434 "optional" : 1,
34435 "type" : "string",
7cbed89a 34436 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 34437 },
4d47f125
TL
34438 "searchdomain" : {
34439 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
34440 "format" : "dns-name-list",
34441 "optional" : 1,
34442 "type" : "string",
34443 "typetext" : "<string>"
34444 },
34445 "ssh-public-keys" : {
34446 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
34447 "optional" : 1,
34448 "type" : "string",
34449 "typetext" : "<string>"
34450 },
34451 "start" : {
34452 "default" : 0,
34453 "description" : "Start the CT after its creation finished successfully.",
34454 "optional" : 1,
34455 "type" : "boolean",
34456 "typetext" : "<boolean>"
34457 },
34458 "startup" : {
34459 "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.",
34460 "format" : "pve-startup-order",
34461 "optional" : 1,
34462 "type" : "string",
34463 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
34464 },
34465 "storage" : {
34466 "default" : "local",
34467 "description" : "Default Storage.",
34468 "format" : "pve-storage-id",
34469 "optional" : 1,
34470 "type" : "string",
34471 "typetext" : "<string>"
34472 },
34473 "swap" : {
34474 "default" : 512,
4e7f60c2 34475 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
34476 "minimum" : 0,
34477 "optional" : 1,
34478 "type" : "integer",
34479 "typetext" : "<integer> (0 - N)"
34480 },
5c1699e5
TL
34481 "tags" : {
34482 "description" : "Tags of the Container. This is only meta information.",
34483 "format" : "pve-tag-list",
34484 "optional" : 1,
34485 "type" : "string",
34486 "typetext" : "<string>"
34487 },
4d47f125
TL
34488 "template" : {
34489 "default" : 0,
34490 "description" : "Enable/disable Template.",
34491 "optional" : 1,
34492 "type" : "boolean",
34493 "typetext" : "<boolean>"
34494 },
04d22a9f
TL
34495 "timezone" : {
34496 "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",
34497 "format" : "pve-ct-timezone",
34498 "optional" : 1,
34499 "type" : "string",
34500 "typetext" : "<string>"
34501 },
4d47f125
TL
34502 "tty" : {
34503 "default" : 2,
34504 "description" : "Specify the number of tty available to the container",
34505 "maximum" : 6,
34506 "minimum" : 0,
34507 "optional" : 1,
34508 "type" : "integer",
34509 "typetext" : "<integer> (0 - 6)"
34510 },
95895385
TL
34511 "unique" : {
34512 "description" : "Assign a unique random ethernet address.",
34513 "optional" : 1,
34514 "requires" : "restore",
34515 "type" : "boolean",
34516 "typetext" : "<boolean>"
34517 },
4d47f125
TL
34518 "unprivileged" : {
34519 "default" : 0,
34520 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
34521 "optional" : 1,
34522 "type" : "boolean",
34523 "typetext" : "<boolean>"
34524 },
34525 "unused[n]" : {
34526 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
34527 "format" : {
34528 "volume" : {
34529 "default_key" : 1,
34530 "description" : "The volume that is not used currently.",
34531 "format" : "pve-volume-id",
34532 "format_description" : "volume",
34533 "type" : "string"
34534 }
34535 },
4d47f125
TL
34536 "optional" : 1,
34537 "type" : "string",
c5aa7e14 34538 "typetext" : "[volume=]<volume>"
4d47f125
TL
34539 },
34540 "vmid" : {
34541 "description" : "The (unique) ID of the VM.",
34542 "format" : "pve-vmid",
8dd66e12
TL
34543 "maximum" : 999999999,
34544 "minimum" : 100,
4d47f125 34545 "type" : "integer",
8dd66e12 34546 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
34547 }
34548 }
34549 },
34550 "permissions" : {
34551 "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.",
34552 "user" : "all"
34553 },
34554 "protected" : 1,
34555 "proxyto" : "node",
34556 "returns" : {
34557 "type" : "string"
34558 }
34559 }
34560 },
34561 "leaf" : 0,
34562 "path" : "/nodes/{node}/lxc",
34563 "text" : "lxc"
34564 },
34565 {
34566 "children" : [
9d2e98ed
TL
34567 {
34568 "children" : [
34569 {
34570 "info" : {
34571 "GET" : {
34572 "allowtoken" : 1,
34573 "description" : "Get the Ceph configuration file.",
34574 "method" : "GET",
34575 "name" : "raw",
34576 "parameters" : {
34577 "additionalProperties" : 0,
34578 "properties" : {
34579 "node" : {
34580 "description" : "The cluster node name.",
34581 "format" : "pve-node",
34582 "type" : "string",
34583 "typetext" : "<string>"
34584 }
34585 }
34586 },
34587 "permissions" : {
34588 "check" : [
34589 "perm",
34590 "/",
34591 [
34592 "Sys.Audit",
34593 "Datastore.Audit"
34594 ],
34595 "any",
34596 1
34597 ]
34598 },
34599 "proxyto" : "node",
34600 "returns" : {
34601 "type" : "string"
34602 }
34603 }
34604 },
34605 "leaf" : 1,
34606 "path" : "/nodes/{node}/ceph/cfg/raw",
34607 "text" : "raw"
34608 },
34609 {
34610 "info" : {
34611 "GET" : {
34612 "allowtoken" : 1,
34613 "description" : "Get the Ceph configuration database.",
34614 "method" : "GET",
34615 "name" : "db",
34616 "parameters" : {
34617 "additionalProperties" : 0,
34618 "properties" : {
34619 "node" : {
34620 "description" : "The cluster node name.",
34621 "format" : "pve-node",
34622 "type" : "string",
34623 "typetext" : "<string>"
34624 }
34625 }
34626 },
34627 "permissions" : {
34628 "check" : [
34629 "perm",
34630 "/",
34631 [
34632 "Sys.Audit",
34633 "Datastore.Audit"
34634 ],
34635 "any",
34636 1
34637 ]
34638 },
34639 "protected" : 1,
34640 "proxyto" : "node",
34641 "returns" : {
34642 "items" : {
34643 "properties" : {
34644 "can_update_at_runtime" : {
34645 "type" : "boolean"
34646 },
34647 "level" : {
34648 "type" : "string"
34649 },
34650 "mask" : {
34651 "type" : "string"
34652 },
34653 "name" : {
34654 "type" : "string"
34655 },
34656 "section" : {
34657 "type" : "string"
34658 },
34659 "value" : {
34660 "type" : "string"
34661 }
34662 },
34663 "type" : "object"
34664 },
34665 "type" : "array"
34666 }
34667 }
34668 },
34669 "leaf" : 1,
34670 "path" : "/nodes/{node}/ceph/cfg/db",
34671 "text" : "db"
34672 }
34673 ],
34674 "info" : {
34675 "GET" : {
34676 "allowtoken" : 1,
34677 "description" : "Directory index.",
34678 "method" : "GET",
34679 "name" : "index",
34680 "parameters" : {
34681 "additionalProperties" : 0,
34682 "properties" : {
34683 "node" : {
34684 "description" : "The cluster node name.",
34685 "format" : "pve-node",
34686 "type" : "string",
34687 "typetext" : "<string>"
34688 }
34689 }
34690 },
34691 "permissions" : {
34692 "user" : "all"
34693 },
34694 "returns" : {
34695 "items" : {
34696 "properties" : {},
34697 "type" : "object"
34698 },
34699 "links" : [
34700 {
34701 "href" : "{name}",
34702 "rel" : "child"
34703 }
34704 ],
34705 "type" : "array"
34706 }
34707 }
34708 },
34709 "leaf" : 0,
34710 "path" : "/nodes/{node}/ceph/cfg",
34711 "text" : "cfg"
34712 },
4d47f125
TL
34713 {
34714 "children" : [
56122987 34715 {
4d47f125
TL
34716 "children" : [
34717 {
34718 "info" : {
9d2e98ed 34719 "GET" : {
e9cd3bd4 34720 "allowtoken" : 1,
9d2e98ed
TL
34721 "description" : "Get OSD details",
34722 "method" : "GET",
34723 "name" : "osddetails",
34724 "parameters" : {
34725 "additionalProperties" : 0,
34726 "properties" : {
34727 "node" : {
34728 "description" : "The cluster node name.",
34729 "format" : "pve-node",
34730 "type" : "string",
34731 "typetext" : "<string>"
34732 },
34733 "osdid" : {
34734 "description" : "OSD ID",
34735 "type" : "integer",
34736 "typetext" : "<integer>"
34737 }
34738 }
34739 },
34740 "permissions" : {
34741 "check" : [
34742 "perm",
34743 "/",
34744 [
34745 "Sys.Audit"
34746 ],
34747 "any",
34748 1
34749 ]
34750 },
34751 "protected" : 1,
34752 "proxyto" : "node",
34753 "returns" : {
34754 "properties" : {
34755 "devices" : {
34756 "description" : "Array containing data about devices",
34757 "items" : {
34758 "properties" : {
34759 "dev_node" : {
34760 "description" : "Device node",
34761 "type" : "string"
34762 },
34763 "device" : {
34764 "description" : "Kind of OSD device",
34765 "enum" : [
34766 "block",
34767 "db",
34768 "wal"
34769 ],
34770 "type" : "string"
34771 },
34772 "devices" : {
34773 "description" : "Physical disks used",
34774 "type" : "string"
34775 },
34776 "size" : {
34777 "description" : "Size in bytes",
34778 "type" : "integer"
34779 },
34780 "support_discard" : {
34781 "description" : "Discard support of the physical device",
34782 "type" : "boolean"
34783 },
34784 "type" : {
34785 "description" : "Type of device. For example, hdd or ssd",
34786 "type" : "string"
34787 }
34788 },
34789 "type" : "object"
34790 },
34791 "type" : "array"
34792 },
34793 "osd" : {
34794 "description" : "General information about the OSD",
34795 "properties" : {
34796 "back_addr" : {
34797 "description" : "Address and port used to talk to other OSDs.",
34798 "type" : "string"
34799 },
34800 "front_addr" : {
34801 "description" : "Address and port used to talk to clients and monitors.",
34802 "type" : "string"
34803 },
34804 "hb_back_addr" : {
34805 "description" : "Heartbeat address and port for other OSDs.",
34806 "type" : "string"
34807 },
34808 "hb_front_addr" : {
34809 "description" : "Heartbeat address and port for clients and monitors.",
34810 "type" : "string"
34811 },
34812 "hostname" : {
34813 "description" : "Name of the host containing the OSD.",
34814 "type" : "string"
34815 },
34816 "id" : {
34817 "description" : "ID of the OSD.",
34818 "type" : "integer"
34819 },
34820 "mem_usage" : {
34821 "description" : "Memory usage of the OSD service.",
34822 "type" : "integer"
34823 },
34824 "osd_data" : {
34825 "description" : "Path to the OSD's data directory.",
34826 "type" : "string"
34827 },
34828 "osd_objectstore" : {
34829 "description" : "The type of object store used.",
34830 "type" : "string"
34831 },
34832 "pid" : {
34833 "description" : "OSD process ID.",
34834 "type" : "integer"
34835 },
34836 "version" : {
34837 "description" : "Ceph version of the OSD service.",
34838 "type" : "string"
34839 }
34840 },
34841 "type" : "object"
34842 }
34843 },
34844 "type" : "object"
34845 }
34846 }
34847 },
34848 "leaf" : 1,
34849 "path" : "/nodes/{node}/ceph/osd/{osdid}/metadata",
34850 "text" : "metadata"
34851 },
34852 {
34853 "info" : {
34854 "GET" : {
34855 "allowtoken" : 1,
34856 "description" : "Get OSD volume details",
34857 "method" : "GET",
34858 "name" : "osdvolume",
34859 "parameters" : {
34860 "additionalProperties" : 0,
34861 "properties" : {
34862 "node" : {
34863 "description" : "The cluster node name.",
34864 "format" : "pve-node",
34865 "type" : "string",
34866 "typetext" : "<string>"
34867 },
34868 "osdid" : {
34869 "description" : "OSD ID",
34870 "type" : "integer",
34871 "typetext" : "<integer>"
34872 },
34873 "type" : {
34874 "default" : "block",
34875 "description" : "OSD device type",
34876 "enum" : [
34877 "block",
34878 "db",
34879 "wal"
34880 ],
34881 "optional" : 1,
34882 "type" : "string"
34883 }
34884 }
34885 },
34886 "permissions" : {
34887 "check" : [
34888 "perm",
34889 "/",
34890 [
34891 "Sys.Audit"
34892 ],
34893 "any",
34894 1
34895 ]
34896 },
34897 "protected" : 1,
34898 "proxyto" : "node",
34899 "returns" : {
34900 "properties" : {
34901 "creation_time" : {
34902 "description" : "Creation time as reported by `lvs`.",
34903 "type" : "string"
34904 },
34905 "lv_name" : {
34906 "description" : "Name of the logical volume (LV).",
34907 "type" : "string"
34908 },
34909 "lv_path" : {
34910 "description" : "Path to the logical volume (LV).",
34911 "type" : "string"
34912 },
34913 "lv_size" : {
34914 "description" : "Size of the logical volume (LV).",
34915 "type" : "integer"
34916 },
34917 "lv_uuid" : {
34918 "description" : "UUID of the logical volume (LV).",
34919 "type" : "string"
34920 },
34921 "vg_name" : {
34922 "description" : "Name of the volume group (VG).",
34923 "type" : "string"
34924 }
34925 },
34926 "type" : "object"
34927 }
34928 }
34929 },
34930 "leaf" : 1,
34931 "path" : "/nodes/{node}/ceph/osd/{osdid}/lv-info",
34932 "text" : "lv-info"
34933 },
34934 {
34935 "info" : {
34936 "POST" : {
34937 "allowtoken" : 1,
34938 "description" : "ceph osd in",
34939 "method" : "POST",
34940 "name" : "in",
4d47f125
TL
34941 "parameters" : {
34942 "additionalProperties" : 0,
34943 "properties" : {
34944 "node" : {
34945 "description" : "The cluster node name.",
34946 "format" : "pve-node",
34947 "type" : "string",
34948 "typetext" : "<string>"
34949 },
34950 "osdid" : {
34951 "description" : "OSD ID",
34952 "type" : "integer",
34953 "typetext" : "<integer>"
34954 }
34955 }
27a7acb2 34956 },
4d47f125
TL
34957 "permissions" : {
34958 "check" : [
34959 "perm",
34960 "/",
34961 [
34962 "Sys.Modify"
34963 ]
34964 ]
44660702 34965 },
4d47f125
TL
34966 "protected" : 1,
34967 "proxyto" : "node",
34968 "returns" : {
34969 "type" : "null"
7aacca6f
DM
34970 }
34971 }
56122987 34972 },
4d47f125
TL
34973 "leaf" : 1,
34974 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
34975 "text" : "in"
34976 },
34977 {
34978 "info" : {
34979 "POST" : {
e9cd3bd4 34980 "allowtoken" : 1,
4d47f125
TL
34981 "description" : "ceph osd out",
34982 "method" : "POST",
34983 "name" : "out",
34984 "parameters" : {
34985 "additionalProperties" : 0,
34986 "properties" : {
34987 "node" : {
34988 "description" : "The cluster node name.",
34989 "format" : "pve-node",
34990 "type" : "string",
34991 "typetext" : "<string>"
34992 },
34993 "osdid" : {
34994 "description" : "OSD ID",
34995 "type" : "integer",
34996 "typetext" : "<integer>"
34997 }
34998 }
34999 },
35000 "permissions" : {
35001 "check" : [
56122987 35002 "perm",
4d47f125 35003 "/",
56122987 35004 [
4d47f125 35005 "Sys.Modify"
56122987 35006 ]
56122987 35007 ]
44660702 35008 },
4d47f125
TL
35009 "protected" : 1,
35010 "proxyto" : "node",
35011 "returns" : {
35012 "type" : "null"
56122987 35013 }
44660702 35014 }
56122987 35015 },
4d47f125
TL
35016 "leaf" : 1,
35017 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
35018 "text" : "out"
7cbed89a
TL
35019 },
35020 {
35021 "info" : {
35022 "POST" : {
e9cd3bd4 35023 "allowtoken" : 1,
7cbed89a
TL
35024 "description" : "Instruct the OSD to scrub.",
35025 "method" : "POST",
35026 "name" : "scrub",
35027 "parameters" : {
35028 "additionalProperties" : 0,
35029 "properties" : {
35030 "deep" : {
35031 "default" : 0,
35032 "description" : "If set, instructs a deep scrub instead of a normal one.",
35033 "optional" : 1,
35034 "type" : "boolean",
35035 "typetext" : "<boolean>"
35036 },
35037 "node" : {
35038 "description" : "The cluster node name.",
35039 "format" : "pve-node",
35040 "type" : "string",
35041 "typetext" : "<string>"
35042 },
35043 "osdid" : {
35044 "description" : "OSD ID",
35045 "type" : "integer",
35046 "typetext" : "<integer>"
35047 }
35048 }
35049 },
35050 "permissions" : {
35051 "check" : [
35052 "perm",
35053 "/",
35054 [
35055 "Sys.Modify"
35056 ]
35057 ]
35058 },
35059 "protected" : 1,
35060 "proxyto" : "node",
35061 "returns" : {
35062 "type" : "null"
35063 }
35064 }
35065 },
35066 "leaf" : 1,
35067 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
35068 "text" : "scrub"
56122987 35069 }
4d47f125 35070 ],
27a7acb2 35071 "info" : {
4d47f125 35072 "DELETE" : {
e9cd3bd4 35073 "allowtoken" : 1,
4d47f125
TL
35074 "description" : "Destroy OSD",
35075 "method" : "DELETE",
35076 "name" : "destroyosd",
27a7acb2
DM
35077 "parameters" : {
35078 "additionalProperties" : 0,
35079 "properties" : {
4d47f125 35080 "cleanup" : {
27a7acb2 35081 "default" : 0,
4d47f125 35082 "description" : "If set, we remove partition table entries.",
27a7acb2 35083 "optional" : 1,
4d47f125
TL
35084 "type" : "boolean",
35085 "typetext" : "<boolean>"
35086 },
35087 "node" : {
35088 "description" : "The cluster node name.",
35089 "format" : "pve-node",
35090 "type" : "string",
35091 "typetext" : "<string>"
35092 },
35093 "osdid" : {
35094 "description" : "OSD ID",
35095 "type" : "integer",
35096 "typetext" : "<integer>"
35097 }
35098 }
27a7acb2
DM
35099 },
35100 "protected" : 1,
35101 "proxyto" : "node",
35102 "returns" : {
35103 "type" : "string"
35104 }
9d2e98ed
TL
35105 },
35106 "GET" : {
35107 "allowtoken" : 1,
35108 "description" : "OSD index.",
35109 "method" : "GET",
35110 "name" : "osdindex",
35111 "parameters" : {
35112 "additionalProperties" : 0,
35113 "properties" : {
35114 "node" : {
35115 "description" : "The cluster node name.",
35116 "format" : "pve-node",
35117 "type" : "string",
35118 "typetext" : "<string>"
35119 },
35120 "osdid" : {
35121 "description" : "OSD ID",
35122 "type" : "integer",
35123 "typetext" : "<integer>"
35124 }
35125 }
35126 },
35127 "permissions" : {
35128 "user" : "all"
35129 },
35130 "returns" : {
35131 "items" : {
35132 "properties" : {},
35133 "type" : "object"
35134 },
35135 "links" : [
35136 {
35137 "href" : "{name}",
35138 "rel" : "child"
35139 }
35140 ],
35141 "type" : "array"
35142 }
27a7acb2
DM
35143 }
35144 },
4d47f125
TL
35145 "leaf" : 0,
35146 "path" : "/nodes/{node}/ceph/osd/{osdid}",
35147 "text" : "{osdid}"
56122987
DM
35148 }
35149 ],
35150 "info" : {
4d47f125 35151 "GET" : {
e9cd3bd4 35152 "allowtoken" : 1,
4d47f125
TL
35153 "description" : "Get Ceph osd list/tree.",
35154 "method" : "GET",
35155 "name" : "index",
44660702
DM
35156 "parameters" : {
35157 "additionalProperties" : 0,
35158 "properties" : {
35159 "node" : {
35160 "description" : "The cluster node name.",
35161 "format" : "pve-node",
013dc89f
DM
35162 "type" : "string",
35163 "typetext" : "<string>"
44660702
DM
35164 }
35165 }
35166 },
7aacca6f
DM
35167 "permissions" : {
35168 "check" : [
35169 "perm",
4d47f125 35170 "/",
7aacca6f 35171 [
4d47f125
TL
35172 "Sys.Audit",
35173 "Datastore.Audit"
35174 ],
35175 "any",
35176 1
35177 ]
35178 },
35179 "protected" : 1,
35180 "proxyto" : "node",
35181 "returns" : {
9d2e98ed
TL
35182 "items" : {
35183 "properties" : {
35184 "flags" : {
35185 "type" : "string"
35186 },
35187 "root" : {
35188 "description" : "Tree with OSDs in the CRUSH map structure.",
35189 "type" : "object"
35190 }
35191 },
35192 "type" : "object"
35193 },
4d47f125
TL
35194 "type" : "object"
35195 }
35196 },
35197 "POST" : {
e9cd3bd4 35198 "allowtoken" : 1,
4d47f125
TL
35199 "description" : "Create OSD",
35200 "method" : "POST",
35201 "name" : "createosd",
35202 "parameters" : {
35203 "additionalProperties" : 0,
35204 "properties" : {
739d4d64
TL
35205 "crush-device-class" : {
35206 "description" : "Set the device class of the OSD in crush.",
35207 "optional" : 1,
35208 "type" : "string",
35209 "typetext" : "<string>"
35210 },
1e3f8156
TL
35211 "db_dev" : {
35212 "description" : "Block device name for block.db.",
44660702 35213 "optional" : 1,
4bd7df8b 35214 "type" : "string",
4d47f125 35215 "typetext" : "<string>"
44660702 35216 },
0695fdaf 35217 "db_dev_size" : {
1e3f8156
TL
35218 "default" : "bluestore_block_db_size or 10% of OSD size",
35219 "description" : "Size in GiB for block.db.",
35220 "minimum" : 1,
7aacca6f 35221 "optional" : 1,
1e3f8156
TL
35222 "requires" : "db_dev",
35223 "type" : "number",
35224 "typetext" : "<number> (1 - N)",
35225 "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 35226 },
1e3f8156
TL
35227 "dev" : {
35228 "description" : "Block device name.",
4d47f125
TL
35229 "type" : "string",
35230 "typetext" : "<string>"
5d9c884c 35231 },
1e3f8156
TL
35232 "encrypted" : {
35233 "default" : 0,
35234 "description" : "Enables encryption of the OSD.",
35235 "optional" : 1,
35236 "type" : "boolean",
35237 "typetext" : "<boolean>"
35238 },
4d47f125
TL
35239 "node" : {
35240 "description" : "The cluster node name.",
35241 "format" : "pve-node",
35242 "type" : "string",
35243 "typetext" : "<string>"
7aacca6f 35244 },
4d47f125 35245 "wal_dev" : {
1e3f8156 35246 "description" : "Block device name for block.wal.",
de0983cb 35247 "optional" : 1,
4d47f125
TL
35248 "type" : "string",
35249 "typetext" : "<string>"
1e3f8156 35250 },
0695fdaf 35251 "wal_dev_size" : {
1e3f8156
TL
35252 "default" : "bluestore_block_wal_size or 1% of OSD size",
35253 "description" : "Size in GiB for block.wal.",
35254 "minimum" : 0.5,
35255 "optional" : 1,
35256 "requires" : "wal_dev",
35257 "type" : "number",
35258 "typetext" : "<number> (0.5 - N)",
35259 "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
35260 }
35261 }
35262 },
35263 "protected" : 1,
35264 "proxyto" : "node",
35265 "returns" : {
35266 "type" : "string"
35267 }
35268 }
35269 },
35270 "leaf" : 0,
35271 "path" : "/nodes/{node}/ceph/osd",
35272 "text" : "osd"
35273 },
e2d681b3
TL
35274 {
35275 "children" : [
35276 {
35277 "info" : {
35278 "DELETE" : {
e9cd3bd4 35279 "allowtoken" : 1,
e2d681b3
TL
35280 "description" : "Destroy Ceph Metadata Server",
35281 "method" : "DELETE",
35282 "name" : "destroymds",
35283 "parameters" : {
35284 "additionalProperties" : 0,
35285 "properties" : {
35286 "name" : {
35287 "description" : "The name (ID) of the mds",
35288 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35289 "type" : "string"
35290 },
35291 "node" : {
35292 "description" : "The cluster node name.",
35293 "format" : "pve-node",
35294 "type" : "string",
35295 "typetext" : "<string>"
35296 }
35297 }
35298 },
35299 "permissions" : {
35300 "check" : [
35301 "perm",
35302 "/",
35303 [
35304 "Sys.Modify"
35305 ]
35306 ]
35307 },
35308 "protected" : 1,
35309 "proxyto" : "node",
35310 "returns" : {
35311 "type" : "string"
35312 }
35313 },
35314 "POST" : {
e9cd3bd4 35315 "allowtoken" : 1,
e2d681b3
TL
35316 "description" : "Create Ceph Metadata Server (MDS)",
35317 "method" : "POST",
35318 "name" : "createmds",
35319 "parameters" : {
35320 "additionalProperties" : 0,
35321 "properties" : {
35322 "hotstandby" : {
35323 "default" : "0",
35324 "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.",
35325 "optional" : 1,
35326 "type" : "boolean",
35327 "typetext" : "<boolean>"
35328 },
35329 "name" : {
35330 "default" : "nodename",
35331 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 35332 "maxLength" : 200,
e2d681b3
TL
35333 "optional" : 1,
35334 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35335 "type" : "string"
35336 },
35337 "node" : {
35338 "description" : "The cluster node name.",
35339 "format" : "pve-node",
35340 "type" : "string",
35341 "typetext" : "<string>"
35342 }
35343 }
35344 },
35345 "permissions" : {
35346 "check" : [
35347 "perm",
35348 "/",
35349 [
35350 "Sys.Modify"
35351 ]
35352 ]
35353 },
35354 "protected" : 1,
35355 "proxyto" : "node",
35356 "returns" : {
35357 "type" : "string"
35358 }
35359 }
35360 },
35361 "leaf" : 1,
35362 "path" : "/nodes/{node}/ceph/mds/{name}",
35363 "text" : "{name}"
35364 }
35365 ],
35366 "info" : {
35367 "GET" : {
e9cd3bd4 35368 "allowtoken" : 1,
e2d681b3
TL
35369 "description" : "MDS directory index.",
35370 "method" : "GET",
35371 "name" : "index",
35372 "parameters" : {
35373 "additionalProperties" : 0,
35374 "properties" : {
35375 "node" : {
35376 "description" : "The cluster node name.",
35377 "format" : "pve-node",
35378 "type" : "string",
35379 "typetext" : "<string>"
35380 }
35381 }
35382 },
35383 "permissions" : {
35384 "check" : [
35385 "perm",
35386 "/",
35387 [
35388 "Sys.Audit",
35389 "Datastore.Audit"
35390 ],
35391 "any",
35392 1
35393 ]
35394 },
35395 "protected" : 1,
35396 "proxyto" : "node",
35397 "returns" : {
35398 "items" : {
35399 "properties" : {
35400 "addr" : {
35401 "optional" : 1,
35402 "type" : "string"
35403 },
35404 "host" : {
35405 "optional" : 1,
35406 "type" : "string"
35407 },
35408 "name" : {
35409 "description" : "The name (ID) for the MDS"
35410 },
35411 "rank" : {
35412 "optional" : 1,
35413 "type" : "integer"
35414 },
35415 "standby_replay" : {
35416 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
35417 "optional" : 1,
35418 "type" : "boolean"
35419 },
35420 "state" : {
35421 "description" : "State of the MDS",
35422 "type" : "string"
35423 }
35424 },
35425 "type" : "object"
35426 },
35427 "links" : [
35428 {
35429 "href" : "{name}",
35430 "rel" : "child"
35431 }
35432 ],
35433 "type" : "array"
35434 }
35435 }
35436 },
35437 "leaf" : 0,
35438 "path" : "/nodes/{node}/ceph/mds",
35439 "text" : "mds"
35440 },
35441 {
35442 "children" : [
35443 {
35444 "info" : {
5f26e15b 35445 "DELETE" : {
e9cd3bd4 35446 "allowtoken" : 1,
5f26e15b
TL
35447 "description" : "Destroy Ceph Manager.",
35448 "method" : "DELETE",
35449 "name" : "destroymgr",
e2d681b3
TL
35450 "parameters" : {
35451 "additionalProperties" : 0,
35452 "properties" : {
5f26e15b
TL
35453 "id" : {
35454 "description" : "The ID of the manager",
35455 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35456 "type" : "string"
e2d681b3
TL
35457 },
35458 "node" : {
35459 "description" : "The cluster node name.",
35460 "format" : "pve-node",
35461 "type" : "string",
35462 "typetext" : "<string>"
e2d681b3
TL
35463 }
35464 }
35465 },
35466 "permissions" : {
35467 "check" : [
35468 "perm",
35469 "/",
35470 [
35471 "Sys.Modify"
35472 ]
35473 ]
35474 },
35475 "protected" : 1,
35476 "proxyto" : "node",
35477 "returns" : {
35478 "type" : "string"
35479 }
1e3f8156
TL
35480 },
35481 "POST" : {
e9cd3bd4 35482 "allowtoken" : 1,
1e3f8156
TL
35483 "description" : "Create Ceph Manager",
35484 "method" : "POST",
35485 "name" : "createmgr",
35486 "parameters" : {
35487 "additionalProperties" : 0,
35488 "properties" : {
35489 "id" : {
35490 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 35491 "maxLength" : 200,
1e3f8156
TL
35492 "optional" : 1,
35493 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35494 "type" : "string"
35495 },
35496 "node" : {
35497 "description" : "The cluster node name.",
35498 "format" : "pve-node",
35499 "type" : "string",
35500 "typetext" : "<string>"
35501 }
35502 }
35503 },
35504 "permissions" : {
35505 "check" : [
35506 "perm",
35507 "/",
35508 [
35509 "Sys.Modify"
35510 ]
35511 ]
35512 },
35513 "protected" : 1,
35514 "proxyto" : "node",
35515 "returns" : {
35516 "type" : "string"
35517 }
e2d681b3
TL
35518 }
35519 },
35520 "leaf" : 1,
5f26e15b
TL
35521 "path" : "/nodes/{node}/ceph/mgr/{id}",
35522 "text" : "{id}"
e2d681b3
TL
35523 }
35524 ],
35525 "info" : {
1e3f8156 35526 "GET" : {
e9cd3bd4 35527 "allowtoken" : 1,
1e3f8156
TL
35528 "description" : "MGR directory index.",
35529 "method" : "GET",
35530 "name" : "index",
e2d681b3
TL
35531 "parameters" : {
35532 "additionalProperties" : 0,
35533 "properties" : {
35534 "node" : {
35535 "description" : "The cluster node name.",
35536 "format" : "pve-node",
35537 "type" : "string",
35538 "typetext" : "<string>"
35539 }
35540 }
35541 },
35542 "permissions" : {
35543 "check" : [
35544 "perm",
35545 "/",
35546 [
1e3f8156
TL
35547 "Sys.Audit",
35548 "Datastore.Audit"
35549 ],
35550 "any",
35551 1
e2d681b3
TL
35552 ]
35553 },
35554 "protected" : 1,
5f26e15b 35555 "proxyto" : "node",
e2d681b3 35556 "returns" : {
1e3f8156
TL
35557 "items" : {
35558 "properties" : {
35559 "addr" : {
35560 "optional" : 1,
35561 "type" : "string"
35562 },
35563 "host" : {
35564 "optional" : 1,
35565 "type" : "string"
35566 },
35567 "name" : {
35568 "description" : "The name (ID) for the MGR"
35569 },
35570 "state" : {
35571 "description" : "State of the MGR",
35572 "type" : "string"
35573 }
35574 },
35575 "type" : "object"
35576 },
35577 "links" : [
35578 {
35579 "href" : "{name}",
35580 "rel" : "child"
35581 }
35582 ],
35583 "type" : "array"
e2d681b3
TL
35584 }
35585 }
35586 },
35587 "leaf" : 0,
5f26e15b
TL
35588 "path" : "/nodes/{node}/ceph/mgr",
35589 "text" : "mgr"
e2d681b3 35590 },
4d47f125 35591 {
5f26e15b
TL
35592 "children" : [
35593 {
35594 "info" : {
35595 "DELETE" : {
e9cd3bd4 35596 "allowtoken" : 1,
5f26e15b
TL
35597 "description" : "Destroy Ceph Monitor and Manager.",
35598 "method" : "DELETE",
35599 "name" : "destroymon",
35600 "parameters" : {
35601 "additionalProperties" : 0,
35602 "properties" : {
1e3f8156
TL
35603 "monid" : {
35604 "description" : "Monitor ID",
35605 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35606 "type" : "string"
35607 },
35608 "node" : {
35609 "description" : "The cluster node name.",
35610 "format" : "pve-node",
35611 "type" : "string",
35612 "typetext" : "<string>"
35613 }
35614 }
35615 },
35616 "permissions" : {
35617 "check" : [
35618 "perm",
35619 "/",
35620 [
35621 "Sys.Modify"
35622 ]
35623 ]
35624 },
35625 "protected" : 1,
35626 "proxyto" : "node",
35627 "returns" : {
35628 "type" : "string"
35629 }
35630 },
35631 "POST" : {
e9cd3bd4 35632 "allowtoken" : 1,
1e3f8156
TL
35633 "description" : "Create Ceph Monitor and Manager",
35634 "method" : "POST",
35635 "name" : "createmon",
35636 "parameters" : {
35637 "additionalProperties" : 0,
35638 "properties" : {
35639 "mon-address" : {
0695fdaf
TL
35640 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
35641 "format" : "ip-list",
5f26e15b 35642 "optional" : 1,
1e3f8156
TL
35643 "type" : "string",
35644 "typetext" : "<string>"
5f26e15b
TL
35645 },
35646 "monid" : {
1e3f8156 35647 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 35648 "maxLength" : 200,
1e3f8156 35649 "optional" : 1,
5f26e15b
TL
35650 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35651 "type" : "string"
35652 },
35653 "node" : {
35654 "description" : "The cluster node name.",
35655 "format" : "pve-node",
35656 "type" : "string",
35657 "typetext" : "<string>"
35658 }
35659 }
35660 },
35661 "permissions" : {
35662 "check" : [
35663 "perm",
35664 "/",
35665 [
35666 "Sys.Modify"
35667 ]
35668 ]
35669 },
35670 "protected" : 1,
35671 "proxyto" : "node",
35672 "returns" : {
7aacca6f 35673 "type" : "string"
56122987 35674 }
4d47f125 35675 }
56122987 35676 },
5f26e15b
TL
35677 "leaf" : 1,
35678 "path" : "/nodes/{node}/ceph/mon/{monid}",
35679 "text" : "{monid}"
35680 }
35681 ],
35682 "info" : {
35683 "GET" : {
e9cd3bd4 35684 "allowtoken" : 1,
5f26e15b
TL
35685 "description" : "Get Ceph monitor list.",
35686 "method" : "GET",
35687 "name" : "listmon",
35688 "parameters" : {
35689 "additionalProperties" : 0,
35690 "properties" : {
35691 "node" : {
35692 "description" : "The cluster node name.",
35693 "format" : "pve-node",
35694 "type" : "string",
35695 "typetext" : "<string>"
35696 }
35697 }
35698 },
4d47f125
TL
35699 "permissions" : {
35700 "check" : [
35701 "perm",
35702 "/",
35703 [
35704 "Sys.Audit",
35705 "Datastore.Audit"
35706 ],
35707 "any",
35708 1
35709 ]
56122987 35710 },
4d47f125
TL
35711 "protected" : 1,
35712 "proxyto" : "node",
35713 "returns" : {
35714 "items" : {
35715 "properties" : {
5f26e15b 35716 "addr" : {
1e3f8156
TL
35717 "optional" : 1,
35718 "type" : "string"
35719 },
9d2e98ed
TL
35720 "ceph_version" : {
35721 "optional" : 1,
35722 "type" : "string"
35723 },
35724 "ceph_version_short" : {
35725 "optional" : 1,
35726 "type" : "string"
35727 },
35728 "direxists" : {
1e3f8156 35729 "optional" : 1,
4d47f125
TL
35730 "type" : "string"
35731 },
9d2e98ed
TL
35732 "host" : {
35733 "optional" : 1,
35734 "type" : "boolean"
35735 },
5f26e15b 35736 "name" : {
4d47f125 35737 "type" : "string"
9d2e98ed
TL
35738 },
35739 "quorum" : {
35740 "optional" : 1,
35741 "type" : "boolean"
35742 },
35743 "rank" : {
35744 "optional" : 1,
35745 "type" : "integer"
35746 },
35747 "service" : {
35748 "optional" : 1,
35749 "type" : "integer"
35750 },
35751 "state" : {
35752 "optional" : 1,
35753 "type" : "string"
4d47f125 35754 }
7aacca6f 35755 },
4d47f125
TL
35756 "type" : "object"
35757 },
5f26e15b
TL
35758 "links" : [
35759 {
35760 "href" : "{name}",
35761 "rel" : "child"
35762 }
35763 ],
4d47f125
TL
35764 "type" : "array"
35765 }
4d47f125
TL
35766 }
35767 },
5f26e15b
TL
35768 "leaf" : 0,
35769 "path" : "/nodes/{node}/ceph/mon",
35770 "text" : "mon"
4d47f125
TL
35771 },
35772 {
35773 "children" : [
35774 {
35775 "info" : {
5f26e15b 35776 "POST" : {
e9cd3bd4 35777 "allowtoken" : 1,
5f26e15b
TL
35778 "description" : "Create a Ceph filesystem",
35779 "method" : "POST",
35780 "name" : "createfs",
4d47f125
TL
35781 "parameters" : {
35782 "additionalProperties" : 0,
35783 "properties" : {
5f26e15b 35784 "add-storage" : {
4d47f125 35785 "default" : 0,
5f26e15b 35786 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
35787 "optional" : 1,
35788 "type" : "boolean",
35789 "typetext" : "<boolean>"
35790 },
5f26e15b
TL
35791 "name" : {
35792 "default" : "cephfs",
35793 "description" : "The ceph filesystem name.",
35794 "optional" : 1,
35795 "type" : "string",
35796 "typetext" : "<string>"
4d47f125
TL
35797 },
35798 "node" : {
35799 "description" : "The cluster node name.",
35800 "format" : "pve-node",
35801 "type" : "string",
35802 "typetext" : "<string>"
5f26e15b
TL
35803 },
35804 "pg_num" : {
35805 "default" : 128,
35806 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
35807 "maximum" : 32768,
35808 "minimum" : 8,
35809 "optional" : 1,
35810 "type" : "integer",
35811 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
35812 }
35813 }
7aacca6f 35814 },
4d47f125
TL
35815 "permissions" : {
35816 "check" : [
35817 "perm",
35818 "/",
35819 [
35820 "Sys.Modify"
35821 ]
35822 ]
7aacca6f 35823 },
4d47f125
TL
35824 "protected" : 1,
35825 "proxyto" : "node",
35826 "returns" : {
44660702 35827 "type" : "string"
4d47f125
TL
35828 }
35829 }
35830 },
35831 "leaf" : 1,
5f26e15b
TL
35832 "path" : "/nodes/{node}/ceph/fs/{name}",
35833 "text" : "{name}"
4d47f125
TL
35834 }
35835 ],
35836 "info" : {
35837 "GET" : {
e9cd3bd4 35838 "allowtoken" : 1,
5f26e15b 35839 "description" : "Directory index.",
4d47f125 35840 "method" : "GET",
5f26e15b 35841 "name" : "index",
4d47f125
TL
35842 "parameters" : {
35843 "additionalProperties" : 0,
35844 "properties" : {
35845 "node" : {
35846 "description" : "The cluster node name.",
35847 "format" : "pve-node",
35848 "type" : "string",
35849 "typetext" : "<string>"
35850 }
35851 }
35852 },
35853 "permissions" : {
35854 "check" : [
35855 "perm",
35856 "/",
35857 [
35858 "Sys.Audit",
35859 "Datastore.Audit"
35860 ],
35861 "any",
35862 1
35863 ]
35864 },
35865 "protected" : 1,
95895385 35866 "proxyto" : "node",
4d47f125
TL
35867 "returns" : {
35868 "items" : {
35869 "properties" : {
9d2e98ed
TL
35870 "data_pool" : {
35871 "description" : "The name of the data pool.",
35872 "type" : "string"
35873 },
35874 "metadata_pool" : {
35875 "description" : "The name of the metadata pool.",
35876 "type" : "string"
35877 },
35878 "name" : {
35879 "description" : "The ceph filesystem name.",
35880 "type" : "string"
35881 }
35882 },
35883 "type" : "object"
35884 },
35885 "links" : [
35886 {
35887 "href" : "{name}",
35888 "rel" : "child"
35889 }
35890 ],
35891 "type" : "array"
35892 }
35893 }
35894 },
35895 "leaf" : 0,
35896 "path" : "/nodes/{node}/ceph/fs",
35897 "text" : "fs"
35898 },
35899 {
35900 "children" : [
35901 {
35902 "children" : [
35903 {
35904 "info" : {
35905 "GET" : {
35906 "allowtoken" : 1,
35907 "description" : "Show the current pool status.",
35908 "method" : "GET",
35909 "name" : "getpool",
35910 "parameters" : {
35911 "additionalProperties" : 0,
35912 "properties" : {
35913 "name" : {
35914 "description" : "The name of the pool. It must be unique.",
35915 "type" : "string",
35916 "typetext" : "<string>"
35917 },
35918 "node" : {
35919 "description" : "The cluster node name.",
35920 "format" : "pve-node",
35921 "type" : "string",
35922 "typetext" : "<string>"
35923 },
35924 "verbose" : {
35925 "default" : 0,
35926 "description" : "If enabled, will display additional data(eg. statistics).",
35927 "optional" : 1,
35928 "type" : "boolean",
35929 "typetext" : "<boolean>"
35930 }
35931 }
35932 },
35933 "permissions" : {
35934 "check" : [
35935 "perm",
35936 "/",
35937 [
35938 "Sys.Audit",
35939 "Datastore.Audit"
35940 ],
35941 "any",
35942 1
35943 ]
35944 },
35945 "protected" : 1,
35946 "proxyto" : "node",
35947 "returns" : {
35948 "properties" : {
35949 "application" : {
35950 "default" : "rbd",
35951 "description" : "The application of the pool.",
35952 "enum" : [
35953 "rbd",
35954 "cephfs",
35955 "rgw"
35956 ],
35957 "optional" : 1,
35958 "title" : "Application",
35959 "type" : "string"
35960 },
35961 "application_list" : {
35962 "optional" : 1,
35963 "title" : "Application",
35964 "type" : "array"
35965 },
35966 "autoscale_status" : {
35967 "optional" : 1,
35968 "title" : "Autoscale Status",
35969 "type" : "object"
35970 },
35971 "crush_rule" : {
35972 "description" : "The rule to use for mapping object placement in the cluster.",
35973 "optional" : 1,
35974 "title" : "Crush Rule Name",
35975 "type" : "string"
35976 },
35977 "fast_read" : {
35978 "title" : "Fast Read",
35979 "type" : "boolean"
35980 },
35981 "hashpspool" : {
35982 "title" : "hashpspool",
35983 "type" : "boolean"
35984 },
35985 "id" : {
35986 "title" : "ID",
35987 "type" : "integer"
35988 },
35989 "min_size" : {
35990 "default" : 2,
35991 "description" : "Minimum number of replicas per object",
35992 "maximum" : 7,
35993 "minimum" : 1,
35994 "optional" : 1,
35995 "title" : "Min Size",
35996 "type" : "integer"
35997 },
35998 "name" : {
35999 "description" : "The name of the pool. It must be unique.",
36000 "title" : "Name",
36001 "type" : "string"
36002 },
36003 "nodeep-scrub" : {
36004 "title" : "nodeep-scrub",
36005 "type" : "boolean"
36006 },
36007 "nodelete" : {
36008 "title" : "nodelete",
36009 "type" : "boolean"
36010 },
36011 "nopgchange" : {
36012 "title" : "nopgchange",
36013 "type" : "boolean"
36014 },
36015 "noscrub" : {
36016 "title" : "noscrub",
36017 "type" : "boolean"
36018 },
36019 "nosizechange" : {
36020 "title" : "nosizechange",
36021 "type" : "boolean"
36022 },
36023 "pg_autoscale_mode" : {
36024 "default" : "warn",
36025 "description" : "The automatic PG scaling mode of the pool.",
36026 "enum" : [
36027 "on",
36028 "off",
36029 "warn"
36030 ],
36031 "optional" : 1,
36032 "title" : "PG Autoscale Mode",
36033 "type" : "string"
36034 },
36035 "pg_num" : {
36036 "default" : 128,
36037 "description" : "Number of placement groups.",
36038 "maximum" : 32768,
36039 "minimum" : 1,
36040 "optional" : 1,
36041 "title" : "PG Num",
36042 "type" : "integer"
36043 },
36044 "pg_num_min" : {
36045 "description" : "Minimal number of placement groups.",
36046 "maximum" : 32768,
36047 "optional" : 1,
36048 "title" : "min. PG Num",
36049 "type" : "integer"
36050 },
36051 "pgp_num" : {
36052 "title" : "PGP num",
36053 "type" : "integer"
36054 },
36055 "size" : {
36056 "default" : 3,
36057 "description" : "Number of replicas per object",
36058 "maximum" : 7,
36059 "minimum" : 1,
36060 "optional" : 1,
36061 "title" : "Size",
36062 "type" : "integer"
36063 },
36064 "statistics" : {
36065 "optional" : 1,
36066 "title" : "Statistics",
36067 "type" : "object"
36068 },
36069 "target_size" : {
36070 "description" : "The estimated target size of the pool for the PG autoscaler.",
36071 "optional" : 1,
36072 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36073 "title" : "PG Autoscale Target Size",
36074 "type" : "string"
36075 },
36076 "target_size_ratio" : {
36077 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36078 "optional" : 1,
36079 "title" : "PG Autoscale Target Ratio",
36080 "type" : "number"
36081 },
36082 "use_gmt_hitset" : {
36083 "title" : "use_gmt_hitset",
36084 "type" : "boolean"
36085 },
36086 "write_fadvise_dontneed" : {
36087 "title" : "write_fadvise_dontneed",
36088 "type" : "boolean"
36089 }
36090 },
36091 "type" : "object"
36092 }
36093 }
36094 },
36095 "leaf" : 1,
36096 "path" : "/nodes/{node}/ceph/pool/{name}/status",
36097 "text" : "status"
36098 }
36099 ],
36100 "info" : {
36101 "DELETE" : {
36102 "allowtoken" : 1,
36103 "description" : "Destroy pool",
36104 "method" : "DELETE",
36105 "name" : "destroypool",
36106 "parameters" : {
36107 "additionalProperties" : 0,
36108 "properties" : {
36109 "force" : {
36110 "default" : 0,
36111 "description" : "If true, destroys pool even if in use",
36112 "optional" : 1,
36113 "type" : "boolean",
36114 "typetext" : "<boolean>"
36115 },
36116 "name" : {
36117 "description" : "The name of the pool. It must be unique.",
36118 "type" : "string",
36119 "typetext" : "<string>"
36120 },
36121 "node" : {
36122 "description" : "The cluster node name.",
36123 "format" : "pve-node",
36124 "type" : "string",
36125 "typetext" : "<string>"
36126 },
36127 "remove_ecprofile" : {
36128 "default" : 1,
36129 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
36130 "optional" : 1,
36131 "type" : "boolean",
36132 "typetext" : "<boolean>"
36133 },
36134 "remove_storages" : {
36135 "default" : 0,
36136 "description" : "Remove all pveceph-managed storages configured for this pool",
36137 "optional" : 1,
36138 "type" : "boolean",
36139 "typetext" : "<boolean>"
36140 }
36141 }
36142 },
36143 "permissions" : {
36144 "check" : [
36145 "perm",
36146 "/",
36147 [
36148 "Sys.Modify"
36149 ]
36150 ]
36151 },
36152 "protected" : 1,
36153 "proxyto" : "node",
36154 "returns" : {
36155 "type" : "string"
36156 }
36157 },
36158 "GET" : {
36159 "allowtoken" : 1,
36160 "description" : "Pool index.",
36161 "method" : "GET",
36162 "name" : "poolindex",
36163 "parameters" : {
36164 "additionalProperties" : 0,
36165 "properties" : {
36166 "name" : {
36167 "description" : "The name of the pool.",
36168 "type" : "string",
36169 "typetext" : "<string>"
36170 },
36171 "node" : {
36172 "description" : "The cluster node name.",
36173 "format" : "pve-node",
36174 "type" : "string",
36175 "typetext" : "<string>"
36176 }
36177 }
36178 },
36179 "permissions" : {
36180 "check" : [
36181 "perm",
36182 "/",
36183 [
36184 "Sys.Audit",
36185 "Datastore.Audit"
36186 ],
36187 "any",
36188 1
36189 ]
36190 },
36191 "returns" : {
36192 "items" : {
36193 "properties" : {},
36194 "type" : "object"
36195 },
36196 "links" : [
36197 {
36198 "href" : "{name}",
36199 "rel" : "child"
36200 }
36201 ],
36202 "type" : "array"
36203 }
36204 },
36205 "PUT" : {
36206 "allowtoken" : 1,
36207 "description" : "Change POOL settings",
36208 "method" : "PUT",
36209 "name" : "setpool",
36210 "parameters" : {
36211 "additionalProperties" : 0,
36212 "properties" : {
36213 "application" : {
36214 "description" : "The application of the pool.",
36215 "enum" : [
36216 "rbd",
36217 "cephfs",
36218 "rgw"
36219 ],
36220 "optional" : 1,
36221 "title" : "Application",
36222 "type" : "string"
36223 },
36224 "crush_rule" : {
36225 "description" : "The rule to use for mapping object placement in the cluster.",
36226 "optional" : 1,
36227 "title" : "Crush Rule Name",
36228 "type" : "string",
36229 "typetext" : "<string>"
36230 },
36231 "min_size" : {
36232 "description" : "Minimum number of replicas per object",
36233 "maximum" : 7,
36234 "minimum" : 1,
36235 "optional" : 1,
36236 "title" : "Min Size",
36237 "type" : "integer",
36238 "typetext" : "<integer> (1 - 7)"
36239 },
36240 "name" : {
36241 "description" : "The name of the pool. It must be unique.",
36242 "title" : "Name",
36243 "type" : "string",
36244 "typetext" : "<string>"
36245 },
36246 "node" : {
36247 "description" : "The cluster node name.",
36248 "format" : "pve-node",
36249 "type" : "string",
36250 "typetext" : "<string>"
36251 },
36252 "pg_autoscale_mode" : {
36253 "description" : "The automatic PG scaling mode of the pool.",
36254 "enum" : [
36255 "on",
36256 "off",
36257 "warn"
36258 ],
36259 "optional" : 1,
36260 "title" : "PG Autoscale Mode",
36261 "type" : "string"
36262 },
36263 "pg_num" : {
36264 "description" : "Number of placement groups.",
36265 "maximum" : 32768,
36266 "minimum" : 1,
36267 "optional" : 1,
36268 "title" : "PG Num",
36269 "type" : "integer",
36270 "typetext" : "<integer> (1 - 32768)"
36271 },
36272 "pg_num_min" : {
36273 "description" : "Minimal number of placement groups.",
36274 "maximum" : 32768,
36275 "optional" : 1,
36276 "title" : "min. PG Num",
36277 "type" : "integer",
36278 "typetext" : "<integer> (-N - 32768)"
36279 },
36280 "size" : {
36281 "description" : "Number of replicas per object",
36282 "maximum" : 7,
36283 "minimum" : 1,
36284 "optional" : 1,
36285 "title" : "Size",
36286 "type" : "integer",
36287 "typetext" : "<integer> (1 - 7)"
36288 },
36289 "target_size" : {
36290 "description" : "The estimated target size of the pool for the PG autoscaler.",
36291 "optional" : 1,
36292 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36293 "title" : "PG Autoscale Target Size",
36294 "type" : "string"
36295 },
36296 "target_size_ratio" : {
36297 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36298 "optional" : 1,
36299 "title" : "PG Autoscale Target Ratio",
36300 "type" : "number",
36301 "typetext" : "<number>"
36302 }
36303 }
36304 },
36305 "permissions" : {
36306 "check" : [
36307 "perm",
36308 "/",
36309 [
36310 "Sys.Modify"
36311 ]
36312 ]
36313 },
36314 "protected" : 1,
36315 "proxyto" : "node",
36316 "returns" : {
36317 "type" : "string"
36318 }
36319 }
36320 },
36321 "leaf" : 0,
36322 "path" : "/nodes/{node}/ceph/pool/{name}",
36323 "text" : "{name}"
36324 }
36325 ],
36326 "info" : {
36327 "GET" : {
36328 "allowtoken" : 1,
36329 "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
36330 "method" : "GET",
36331 "name" : "lspools",
36332 "parameters" : {
36333 "additionalProperties" : 0,
36334 "properties" : {
36335 "node" : {
36336 "description" : "The cluster node name.",
36337 "format" : "pve-node",
36338 "type" : "string",
36339 "typetext" : "<string>"
36340 }
36341 }
36342 },
36343 "permissions" : {
36344 "check" : [
36345 "perm",
36346 "/",
36347 [
36348 "Sys.Audit",
36349 "Datastore.Audit"
36350 ],
36351 "any",
36352 1
36353 ]
36354 },
36355 "protected" : 1,
36356 "proxyto" : "node",
36357 "returns" : {
36358 "items" : {
36359 "properties" : {
36360 "application_metadata" : {
36361 "optional" : 1,
36362 "title" : "Associated Applications",
36363 "type" : "object"
36364 },
36365 "autoscale_status" : {
36366 "optional" : 1,
36367 "title" : "Autoscale Status",
36368 "type" : "object"
36369 },
36370 "bytes_used" : {
36371 "title" : "Used",
36372 "type" : "integer"
36373 },
36374 "crush_rule" : {
36375 "title" : "Crush Rule",
36376 "type" : "integer"
36377 },
36378 "crush_rule_name" : {
36379 "title" : "Crush Rule Name",
5f26e15b
TL
36380 "type" : "string"
36381 },
9d2e98ed
TL
36382 "min_size" : {
36383 "title" : "Min Size",
36384 "type" : "integer"
36385 },
36386 "percent_used" : {
36387 "title" : "%-Used",
36388 "type" : "number"
36389 },
36390 "pg_autoscale_mode" : {
36391 "optional" : 1,
36392 "title" : "PG Autoscale Mode",
4d47f125
TL
36393 "type" : "string"
36394 },
9d2e98ed
TL
36395 "pg_num" : {
36396 "title" : "PG Num",
36397 "type" : "integer"
36398 },
36399 "pg_num_final" : {
36400 "optional" : 1,
36401 "title" : "Optimal PG Num",
36402 "type" : "integer"
36403 },
36404 "pg_num_min" : {
36405 "optional" : 1,
36406 "title" : "min. PG Num",
36407 "type" : "integer"
36408 },
36409 "pool" : {
36410 "title" : "ID",
36411 "type" : "integer"
36412 },
36413 "pool_name" : {
36414 "title" : "Name",
36415 "type" : "string"
36416 },
36417 "size" : {
36418 "title" : "Size",
36419 "type" : "integer"
36420 },
36421 "target_size" : {
36422 "optional" : 1,
36423 "title" : "PG Autoscale Target Size",
36424 "type" : "integer"
36425 },
36426 "target_size_ratio" : {
36427 "optional" : 1,
36428 "title" : "PG Autoscale Target Ratio",
36429 "type" : "number"
36430 },
36431 "type" : {
36432 "enum" : [
36433 "replicated",
36434 "erasure",
36435 "unknown"
36436 ],
36437 "title" : "Type",
4d47f125
TL
36438 "type" : "string"
36439 }
7aacca6f 36440 },
4d47f125
TL
36441 "type" : "object"
36442 },
36443 "links" : [
36444 {
9d2e98ed 36445 "href" : "{pool_name}",
4d47f125
TL
36446 "rel" : "child"
36447 }
36448 ],
36449 "type" : "array"
36450 }
9d2e98ed
TL
36451 },
36452 "POST" : {
36453 "allowtoken" : 1,
36454 "description" : "Create Ceph pool",
36455 "method" : "POST",
36456 "name" : "createpool",
36457 "parameters" : {
36458 "additionalProperties" : 0,
36459 "properties" : {
36460 "add_storages" : {
36461 "default" : "0; for erasure coded pools: 1",
36462 "description" : "Configure VM and CT storage using the new pool.",
36463 "optional" : 1,
36464 "type" : "boolean",
36465 "typetext" : "<boolean>"
36466 },
36467 "application" : {
36468 "default" : "rbd",
36469 "description" : "The application of the pool.",
36470 "enum" : [
36471 "rbd",
36472 "cephfs",
36473 "rgw"
36474 ],
36475 "optional" : 1,
36476 "title" : "Application",
36477 "type" : "string"
36478 },
36479 "crush_rule" : {
36480 "description" : "The rule to use for mapping object placement in the cluster.",
36481 "optional" : 1,
36482 "title" : "Crush Rule Name",
36483 "type" : "string",
36484 "typetext" : "<string>"
36485 },
36486 "erasure-coding" : {
36487 "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.",
36488 "format" : {
36489 "device-class" : {
36490 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
36491 "format_description" : "class",
36492 "optional" : 1,
36493 "type" : "string"
36494 },
36495 "failure-domain" : {
36496 "default" : "host",
36497 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
36498 "format_description" : "domain",
36499 "optional" : 1,
36500 "type" : "string"
36501 },
36502 "k" : {
36503 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
36504 "minimum" : 2,
36505 "type" : "integer"
36506 },
36507 "m" : {
36508 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
36509 "minimum" : 1,
36510 "type" : "integer"
36511 },
36512 "profile" : {
36513 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
36514 "format_description" : "profile",
36515 "optional" : 1,
36516 "type" : "string"
36517 }
36518 },
36519 "optional" : 1,
36520 "type" : "string",
36521 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
36522 },
36523 "min_size" : {
36524 "default" : 2,
36525 "description" : "Minimum number of replicas per object",
36526 "maximum" : 7,
36527 "minimum" : 1,
36528 "optional" : 1,
36529 "title" : "Min Size",
36530 "type" : "integer",
36531 "typetext" : "<integer> (1 - 7)"
36532 },
36533 "name" : {
36534 "description" : "The name of the pool. It must be unique.",
36535 "title" : "Name",
36536 "type" : "string",
36537 "typetext" : "<string>"
36538 },
36539 "node" : {
36540 "description" : "The cluster node name.",
36541 "format" : "pve-node",
36542 "type" : "string",
36543 "typetext" : "<string>"
36544 },
36545 "pg_autoscale_mode" : {
36546 "default" : "warn",
36547 "description" : "The automatic PG scaling mode of the pool.",
36548 "enum" : [
36549 "on",
36550 "off",
36551 "warn"
36552 ],
36553 "optional" : 1,
36554 "title" : "PG Autoscale Mode",
36555 "type" : "string"
36556 },
36557 "pg_num" : {
36558 "default" : 128,
36559 "description" : "Number of placement groups.",
36560 "maximum" : 32768,
36561 "minimum" : 1,
36562 "optional" : 1,
36563 "title" : "PG Num",
36564 "type" : "integer",
36565 "typetext" : "<integer> (1 - 32768)"
36566 },
36567 "pg_num_min" : {
36568 "description" : "Minimal number of placement groups.",
36569 "maximum" : 32768,
36570 "optional" : 1,
36571 "title" : "min. PG Num",
36572 "type" : "integer",
36573 "typetext" : "<integer> (-N - 32768)"
36574 },
36575 "size" : {
36576 "default" : 3,
36577 "description" : "Number of replicas per object",
36578 "maximum" : 7,
36579 "minimum" : 1,
36580 "optional" : 1,
36581 "title" : "Size",
36582 "type" : "integer",
36583 "typetext" : "<integer> (1 - 7)"
36584 },
36585 "target_size" : {
36586 "description" : "The estimated target size of the pool for the PG autoscaler.",
36587 "optional" : 1,
36588 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36589 "title" : "PG Autoscale Target Size",
36590 "type" : "string"
36591 },
36592 "target_size_ratio" : {
36593 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36594 "optional" : 1,
36595 "title" : "PG Autoscale Target Ratio",
36596 "type" : "number",
36597 "typetext" : "<number>"
36598 }
36599 }
36600 },
36601 "permissions" : {
36602 "check" : [
36603 "perm",
36604 "/",
36605 [
36606 "Sys.Modify"
36607 ]
36608 ]
36609 },
36610 "protected" : 1,
36611 "proxyto" : "node",
36612 "returns" : {
36613 "type" : "string"
36614 }
5f26e15b
TL
36615 }
36616 },
36617 "leaf" : 0,
9d2e98ed
TL
36618 "path" : "/nodes/{node}/ceph/pool",
36619 "text" : "pool"
5f26e15b 36620 },
d2656385
TL
36621 {
36622 "children" : [
36623 {
36624 "info" : {
36625 "DELETE" : {
36626 "allowtoken" : 1,
9d2e98ed 36627 "description" : "Destroy pool. Deprecated, please use `/nodes/{node}/ceph/pool/{name}`.",
d2656385
TL
36628 "method" : "DELETE",
36629 "name" : "destroypool",
36630 "parameters" : {
36631 "additionalProperties" : 0,
36632 "properties" : {
36633 "force" : {
36634 "default" : 0,
36635 "description" : "If true, destroys pool even if in use",
36636 "optional" : 1,
36637 "type" : "boolean",
36638 "typetext" : "<boolean>"
36639 },
36640 "name" : {
36641 "description" : "The name of the pool. It must be unique.",
36642 "type" : "string",
36643 "typetext" : "<string>"
36644 },
36645 "node" : {
36646 "description" : "The cluster node name.",
36647 "format" : "pve-node",
36648 "type" : "string",
36649 "typetext" : "<string>"
36650 },
7af2edf9
TL
36651 "remove_ecprofile" : {
36652 "default" : 1,
36653 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
36654 "optional" : 1,
36655 "type" : "boolean",
36656 "typetext" : "<boolean>"
36657 },
d2656385
TL
36658 "remove_storages" : {
36659 "default" : 0,
36660 "description" : "Remove all pveceph-managed storages configured for this pool",
36661 "optional" : 1,
36662 "type" : "boolean",
36663 "typetext" : "<boolean>"
36664 }
36665 }
36666 },
36667 "permissions" : {
36668 "check" : [
36669 "perm",
36670 "/",
36671 [
36672 "Sys.Modify"
36673 ]
36674 ]
36675 },
36676 "protected" : 1,
36677 "proxyto" : "node",
36678 "returns" : {
36679 "type" : "string"
36680 }
36681 },
36682 "GET" : {
36683 "allowtoken" : 1,
9d2e98ed 36684 "description" : "List pool settings. Deprecated, please use `/nodes/{node}/ceph/pool/{pool}/status`.",
d2656385
TL
36685 "method" : "GET",
36686 "name" : "getpool",
36687 "parameters" : {
36688 "additionalProperties" : 0,
36689 "properties" : {
36690 "name" : {
36691 "description" : "The name of the pool. It must be unique.",
36692 "type" : "string",
36693 "typetext" : "<string>"
36694 },
36695 "node" : {
36696 "description" : "The cluster node name.",
36697 "format" : "pve-node",
36698 "type" : "string",
36699 "typetext" : "<string>"
36700 },
36701 "verbose" : {
36702 "default" : 0,
36703 "description" : "If enabled, will display additional data(eg. statistics).",
36704 "optional" : 1,
36705 "type" : "boolean",
36706 "typetext" : "<boolean>"
36707 }
36708 }
36709 },
36710 "permissions" : {
36711 "check" : [
36712 "perm",
36713 "/",
36714 [
36715 "Sys.Audit",
36716 "Datastore.Audit"
36717 ],
36718 "any",
36719 1
36720 ]
36721 },
36722 "protected" : 1,
36723 "proxyto" : "node",
36724 "returns" : {
36725 "properties" : {
36726 "application" : {
36727 "default" : "rbd",
36728 "description" : "The application of the pool.",
36729 "enum" : [
36730 "rbd",
36731 "cephfs",
36732 "rgw"
36733 ],
36734 "optional" : 1,
36735 "title" : "Application",
36736 "type" : "string"
36737 },
36738 "application_list" : {
36739 "optional" : 1,
36740 "title" : "Application",
36741 "type" : "array"
36742 },
36743 "autoscale_status" : {
36744 "optional" : 1,
36745 "title" : "Autoscale Status",
36746 "type" : "object"
36747 },
36748 "crush_rule" : {
36749 "description" : "The rule to use for mapping object placement in the cluster.",
36750 "optional" : 1,
36751 "title" : "Crush Rule Name",
36752 "type" : "string"
36753 },
36754 "fast_read" : {
36755 "title" : "Fast Read",
36756 "type" : "boolean"
36757 },
36758 "hashpspool" : {
36759 "title" : "hashpspool",
36760 "type" : "boolean"
36761 },
36762 "id" : {
36763 "title" : "ID",
36764 "type" : "integer"
36765 },
36766 "min_size" : {
36767 "default" : 2,
36768 "description" : "Minimum number of replicas per object",
36769 "maximum" : 7,
36770 "minimum" : 1,
36771 "optional" : 1,
36772 "title" : "Min Size",
36773 "type" : "integer"
36774 },
36775 "name" : {
36776 "description" : "The name of the pool. It must be unique.",
36777 "title" : "Name",
36778 "type" : "string"
36779 },
36780 "nodeep-scrub" : {
36781 "title" : "nodeep-scrub",
36782 "type" : "boolean"
36783 },
36784 "nodelete" : {
36785 "title" : "nodelete",
36786 "type" : "boolean"
36787 },
36788 "nopgchange" : {
36789 "title" : "nopgchange",
36790 "type" : "boolean"
36791 },
36792 "noscrub" : {
36793 "title" : "noscrub",
36794 "type" : "boolean"
36795 },
36796 "nosizechange" : {
36797 "title" : "nosizechange",
36798 "type" : "boolean"
36799 },
36800 "pg_autoscale_mode" : {
36801 "default" : "warn",
36802 "description" : "The automatic PG scaling mode of the pool.",
36803 "enum" : [
36804 "on",
36805 "off",
36806 "warn"
36807 ],
36808 "optional" : 1,
36809 "title" : "PG Autoscale Mode",
36810 "type" : "string"
36811 },
36812 "pg_num" : {
36813 "default" : 128,
36814 "description" : "Number of placement groups.",
36815 "maximum" : 32768,
36816 "minimum" : 1,
36817 "optional" : 1,
36818 "title" : "PG Num",
36819 "type" : "integer"
36820 },
36821 "pg_num_min" : {
36822 "description" : "Minimal number of placement groups.",
36823 "maximum" : 32768,
36824 "optional" : 1,
36825 "title" : "min. PG Num",
36826 "type" : "integer"
36827 },
36828 "pgp_num" : {
36829 "title" : "PGP num",
36830 "type" : "integer"
36831 },
36832 "size" : {
36833 "default" : 3,
36834 "description" : "Number of replicas per object",
36835 "maximum" : 7,
36836 "minimum" : 1,
36837 "optional" : 1,
36838 "title" : "Size",
36839 "type" : "integer"
36840 },
36841 "statistics" : {
36842 "optional" : 1,
36843 "title" : "Statistics",
36844 "type" : "object"
36845 },
36846 "target_size" : {
36847 "description" : "The estimated target size of the pool for the PG autoscaler.",
36848 "optional" : 1,
36849 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36850 "title" : "PG Autoscale Target Size",
36851 "type" : "string"
36852 },
36853 "target_size_ratio" : {
36854 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36855 "optional" : 1,
36856 "title" : "PG Autoscale Target Ratio",
36857 "type" : "number"
36858 },
36859 "use_gmt_hitset" : {
36860 "title" : "use_gmt_hitset",
36861 "type" : "boolean"
36862 },
36863 "write_fadvise_dontneed" : {
36864 "title" : "write_fadvise_dontneed",
36865 "type" : "boolean"
36866 }
36867 },
36868 "type" : "object"
36869 }
36870 },
36871 "PUT" : {
36872 "allowtoken" : 1,
9d2e98ed 36873 "description" : "Change POOL settings. Deprecated, please use `/nodes/{node}/ceph/pool/{name}`.",
d2656385
TL
36874 "method" : "PUT",
36875 "name" : "setpool",
36876 "parameters" : {
36877 "additionalProperties" : 0,
36878 "properties" : {
36879 "application" : {
36880 "description" : "The application of the pool.",
36881 "enum" : [
36882 "rbd",
36883 "cephfs",
36884 "rgw"
36885 ],
36886 "optional" : 1,
36887 "title" : "Application",
36888 "type" : "string"
36889 },
36890 "crush_rule" : {
36891 "description" : "The rule to use for mapping object placement in the cluster.",
36892 "optional" : 1,
36893 "title" : "Crush Rule Name",
36894 "type" : "string",
36895 "typetext" : "<string>"
36896 },
36897 "min_size" : {
36898 "description" : "Minimum number of replicas per object",
36899 "maximum" : 7,
36900 "minimum" : 1,
36901 "optional" : 1,
36902 "title" : "Min Size",
36903 "type" : "integer",
36904 "typetext" : "<integer> (1 - 7)"
36905 },
36906 "name" : {
36907 "description" : "The name of the pool. It must be unique.",
36908 "title" : "Name",
36909 "type" : "string",
36910 "typetext" : "<string>"
36911 },
36912 "node" : {
36913 "description" : "The cluster node name.",
36914 "format" : "pve-node",
36915 "type" : "string",
36916 "typetext" : "<string>"
36917 },
36918 "pg_autoscale_mode" : {
36919 "description" : "The automatic PG scaling mode of the pool.",
36920 "enum" : [
36921 "on",
36922 "off",
36923 "warn"
36924 ],
36925 "optional" : 1,
36926 "title" : "PG Autoscale Mode",
36927 "type" : "string"
36928 },
36929 "pg_num" : {
36930 "description" : "Number of placement groups.",
36931 "maximum" : 32768,
36932 "minimum" : 1,
36933 "optional" : 1,
36934 "title" : "PG Num",
36935 "type" : "integer",
36936 "typetext" : "<integer> (1 - 32768)"
36937 },
36938 "pg_num_min" : {
36939 "description" : "Minimal number of placement groups.",
36940 "maximum" : 32768,
36941 "optional" : 1,
36942 "title" : "min. PG Num",
36943 "type" : "integer",
36944 "typetext" : "<integer> (-N - 32768)"
36945 },
36946 "size" : {
36947 "description" : "Number of replicas per object",
36948 "maximum" : 7,
36949 "minimum" : 1,
36950 "optional" : 1,
36951 "title" : "Size",
36952 "type" : "integer",
36953 "typetext" : "<integer> (1 - 7)"
36954 },
36955 "target_size" : {
36956 "description" : "The estimated target size of the pool for the PG autoscaler.",
36957 "optional" : 1,
36958 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36959 "title" : "PG Autoscale Target Size",
36960 "type" : "string"
36961 },
36962 "target_size_ratio" : {
36963 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36964 "optional" : 1,
36965 "title" : "PG Autoscale Target Ratio",
36966 "type" : "number",
36967 "typetext" : "<number>"
36968 }
36969 }
36970 },
36971 "permissions" : {
36972 "check" : [
36973 "perm",
36974 "/",
36975 [
36976 "Sys.Modify"
36977 ]
36978 ]
36979 },
36980 "protected" : 1,
36981 "proxyto" : "node",
36982 "returns" : {
36983 "type" : "string"
36984 }
36985 }
36986 },
36987 "leaf" : 1,
36988 "path" : "/nodes/{node}/ceph/pools/{name}",
36989 "text" : "{name}"
36990 }
36991 ],
36992 "info" : {
36993 "GET" : {
36994 "allowtoken" : 1,
9d2e98ed 36995 "description" : "List all pools. Deprecated, please use `/nodes/{node}/ceph/pool`.",
d2656385
TL
36996 "method" : "GET",
36997 "name" : "lspools",
36998 "parameters" : {
36999 "additionalProperties" : 0,
37000 "properties" : {
37001 "node" : {
37002 "description" : "The cluster node name.",
37003 "format" : "pve-node",
37004 "type" : "string",
37005 "typetext" : "<string>"
37006 }
37007 }
37008 },
37009 "permissions" : {
37010 "check" : [
37011 "perm",
37012 "/",
37013 [
37014 "Sys.Audit",
37015 "Datastore.Audit"
37016 ],
37017 "any",
37018 1
37019 ]
37020 },
37021 "protected" : 1,
37022 "proxyto" : "node",
37023 "returns" : {
37024 "items" : {
37025 "properties" : {
81a3384d
TL
37026 "application_metadata" : {
37027 "optional" : 1,
37028 "title" : "Associated Applications",
37029 "type" : "object"
37030 },
d2656385
TL
37031 "autoscale_status" : {
37032 "optional" : 1,
37033 "title" : "Autoscale Status",
37034 "type" : "object"
37035 },
37036 "bytes_used" : {
37037 "title" : "Used",
37038 "type" : "integer"
37039 },
37040 "crush_rule" : {
37041 "title" : "Crush Rule",
37042 "type" : "integer"
37043 },
37044 "crush_rule_name" : {
37045 "title" : "Crush Rule Name",
37046 "type" : "string"
37047 },
37048 "min_size" : {
37049 "title" : "Min Size",
37050 "type" : "integer"
37051 },
37052 "percent_used" : {
37053 "title" : "%-Used",
37054 "type" : "number"
37055 },
37056 "pg_autoscale_mode" : {
37057 "optional" : 1,
37058 "title" : "PG Autoscale Mode",
37059 "type" : "string"
37060 },
37061 "pg_num" : {
37062 "title" : "PG Num",
37063 "type" : "integer"
37064 },
37065 "pg_num_final" : {
37066 "optional" : 1,
37067 "title" : "Optimal PG Num",
37068 "type" : "integer"
37069 },
37070 "pg_num_min" : {
37071 "optional" : 1,
37072 "title" : "min. PG Num",
37073 "type" : "integer"
37074 },
37075 "pool" : {
37076 "title" : "ID",
37077 "type" : "integer"
37078 },
37079 "pool_name" : {
37080 "title" : "Name",
37081 "type" : "string"
37082 },
37083 "size" : {
37084 "title" : "Size",
37085 "type" : "integer"
37086 },
37087 "target_size" : {
37088 "optional" : 1,
37089 "title" : "PG Autoscale Target Size",
37090 "type" : "integer"
37091 },
37092 "target_size_ratio" : {
37093 "optional" : 1,
37094 "title" : "PG Autoscale Target Ratio",
37095 "type" : "number"
e6d66c2f
TL
37096 },
37097 "type" : {
37098 "enum" : [
37099 "replicated",
37100 "erasure",
37101 "unknown"
37102 ],
37103 "title" : "Type",
37104 "type" : "string"
d2656385
TL
37105 }
37106 },
37107 "type" : "object"
37108 },
37109 "links" : [
37110 {
37111 "href" : "{pool_name}",
37112 "rel" : "child"
37113 }
37114 ],
37115 "type" : "array"
37116 }
37117 },
37118 "POST" : {
37119 "allowtoken" : 1,
9d2e98ed 37120 "description" : "Create Ceph pool. Deprecated, please use `/nodes/{node}/ceph/pool`.",
d2656385
TL
37121 "method" : "POST",
37122 "name" : "createpool",
37123 "parameters" : {
37124 "additionalProperties" : 0,
37125 "properties" : {
37126 "add_storages" : {
e6d66c2f
TL
37127 "default" : "0; for erasure coded pools: 1",
37128 "description" : "Configure VM and CT storage using the new pool.",
d2656385
TL
37129 "optional" : 1,
37130 "type" : "boolean",
37131 "typetext" : "<boolean>"
37132 },
37133 "application" : {
37134 "default" : "rbd",
37135 "description" : "The application of the pool.",
37136 "enum" : [
37137 "rbd",
37138 "cephfs",
37139 "rgw"
37140 ],
37141 "optional" : 1,
37142 "title" : "Application",
37143 "type" : "string"
37144 },
37145 "crush_rule" : {
37146 "description" : "The rule to use for mapping object placement in the cluster.",
37147 "optional" : 1,
37148 "title" : "Crush Rule Name",
37149 "type" : "string",
37150 "typetext" : "<string>"
37151 },
7af2edf9 37152 "erasure-coding" : {
460359c5 37153 "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
37154 "format" : {
37155 "device-class" : {
37156 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
37157 "format_description" : "class",
37158 "optional" : 1,
37159 "type" : "string"
37160 },
37161 "failure-domain" : {
e6d66c2f 37162 "default" : "host",
7af2edf9
TL
37163 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
37164 "format_description" : "domain",
37165 "optional" : 1,
37166 "type" : "string"
37167 },
37168 "k" : {
37169 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
e6d66c2f 37170 "minimum" : 2,
7af2edf9
TL
37171 "type" : "integer"
37172 },
37173 "m" : {
37174 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
37175 "minimum" : 1,
37176 "type" : "integer"
37177 },
37178 "profile" : {
37179 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
37180 "format_description" : "profile",
37181 "optional" : 1,
37182 "type" : "string"
37183 }
37184 },
37185 "optional" : 1,
37186 "type" : "string",
37187 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
37188 },
d2656385
TL
37189 "min_size" : {
37190 "default" : 2,
37191 "description" : "Minimum number of replicas per object",
37192 "maximum" : 7,
37193 "minimum" : 1,
37194 "optional" : 1,
37195 "title" : "Min Size",
37196 "type" : "integer",
37197 "typetext" : "<integer> (1 - 7)"
37198 },
37199 "name" : {
37200 "description" : "The name of the pool. It must be unique.",
37201 "title" : "Name",
37202 "type" : "string",
37203 "typetext" : "<string>"
37204 },
37205 "node" : {
37206 "description" : "The cluster node name.",
37207 "format" : "pve-node",
37208 "type" : "string",
37209 "typetext" : "<string>"
37210 },
37211 "pg_autoscale_mode" : {
37212 "default" : "warn",
37213 "description" : "The automatic PG scaling mode of the pool.",
37214 "enum" : [
37215 "on",
37216 "off",
37217 "warn"
37218 ],
37219 "optional" : 1,
37220 "title" : "PG Autoscale Mode",
37221 "type" : "string"
37222 },
37223 "pg_num" : {
37224 "default" : 128,
37225 "description" : "Number of placement groups.",
37226 "maximum" : 32768,
37227 "minimum" : 1,
37228 "optional" : 1,
37229 "title" : "PG Num",
37230 "type" : "integer",
37231 "typetext" : "<integer> (1 - 32768)"
37232 },
37233 "pg_num_min" : {
37234 "description" : "Minimal number of placement groups.",
37235 "maximum" : 32768,
37236 "optional" : 1,
37237 "title" : "min. PG Num",
37238 "type" : "integer",
37239 "typetext" : "<integer> (-N - 32768)"
37240 },
37241 "size" : {
37242 "default" : 3,
37243 "description" : "Number of replicas per object",
37244 "maximum" : 7,
37245 "minimum" : 1,
37246 "optional" : 1,
37247 "title" : "Size",
37248 "type" : "integer",
37249 "typetext" : "<integer> (1 - 7)"
37250 },
37251 "target_size" : {
37252 "description" : "The estimated target size of the pool for the PG autoscaler.",
37253 "optional" : 1,
37254 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
37255 "title" : "PG Autoscale Target Size",
37256 "type" : "string"
37257 },
37258 "target_size_ratio" : {
37259 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
37260 "optional" : 1,
37261 "title" : "PG Autoscale Target Ratio",
37262 "type" : "number",
37263 "typetext" : "<number>"
37264 }
37265 }
37266 },
37267 "permissions" : {
37268 "check" : [
37269 "perm",
37270 "/",
37271 [
37272 "Sys.Modify"
37273 ]
37274 ]
37275 },
37276 "protected" : 1,
37277 "proxyto" : "node",
37278 "returns" : {
37279 "type" : "string"
37280 }
37281 }
37282 },
37283 "leaf" : 0,
37284 "path" : "/nodes/{node}/ceph/pools",
37285 "text" : "pools"
37286 },
5f26e15b
TL
37287 {
37288 "info" : {
37289 "GET" : {
e9cd3bd4 37290 "allowtoken" : 1,
9d2e98ed 37291 "description" : "Get the Ceph configuration file. Deprecated, please use `/nodes/{node}/ceph/cfg/raw.",
5f26e15b
TL
37292 "method" : "GET",
37293 "name" : "config",
37294 "parameters" : {
37295 "additionalProperties" : 0,
37296 "properties" : {
4d47f125
TL
37297 "node" : {
37298 "description" : "The cluster node name.",
37299 "format" : "pve-node",
37300 "type" : "string",
37301 "typetext" : "<string>"
7aacca6f 37302 }
4d47f125 37303 }
44660702 37304 },
4d47f125
TL
37305 "permissions" : {
37306 "check" : [
37307 "perm",
37308 "/",
37309 [
5f26e15b
TL
37310 "Sys.Audit",
37311 "Datastore.Audit"
37312 ],
37313 "any",
37314 1
4d47f125 37315 ]
56122987 37316 },
95895385 37317 "proxyto" : "node",
4d47f125 37318 "returns" : {
7aacca6f 37319 "type" : "string"
4d47f125
TL
37320 }
37321 }
37322 },
5f26e15b
TL
37323 "leaf" : 1,
37324 "path" : "/nodes/{node}/ceph/config",
37325 "text" : "config"
4d47f125 37326 },
7cbed89a
TL
37327 {
37328 "info" : {
37329 "GET" : {
e9cd3bd4 37330 "allowtoken" : 1,
9d2e98ed 37331 "description" : "Get the Ceph configuration database. Deprecated, please use `/nodes/{node}/ceph/cfg/db.",
7cbed89a
TL
37332 "method" : "GET",
37333 "name" : "configdb",
37334 "parameters" : {
37335 "additionalProperties" : 0,
37336 "properties" : {
37337 "node" : {
37338 "description" : "The cluster node name.",
37339 "format" : "pve-node",
37340 "type" : "string",
37341 "typetext" : "<string>"
37342 }
37343 }
37344 },
37345 "permissions" : {
37346 "check" : [
37347 "perm",
37348 "/",
37349 [
37350 "Sys.Audit",
37351 "Datastore.Audit"
37352 ],
37353 "any",
37354 1
37355 ]
37356 },
37357 "protected" : 1,
37358 "proxyto" : "node",
37359 "returns" : {
37360 "items" : {
37361 "properties" : {
37362 "can_update_at_runtime" : {
37363 "type" : "boolean"
37364 },
37365 "level" : {
37366 "type" : "string"
37367 },
37368 "mask" : {
37369 "type" : "string"
37370 },
37371 "name" : {
37372 "type" : "string"
37373 },
37374 "section" : {
37375 "type" : "string"
37376 },
37377 "value" : {
37378 "type" : "string"
37379 }
37380 },
37381 "type" : "object"
37382 },
37383 "type" : "array"
37384 }
37385 }
37386 },
37387 "leaf" : 1,
37388 "path" : "/nodes/{node}/ceph/configdb",
37389 "text" : "configdb"
37390 },
4d47f125
TL
37391 {
37392 "info" : {
37393 "POST" : {
e9cd3bd4 37394 "allowtoken" : 1,
4d47f125
TL
37395 "description" : "Create initial ceph default configuration and setup symlinks.",
37396 "method" : "POST",
37397 "name" : "init",
37398 "parameters" : {
37399 "additionalProperties" : 0,
37400 "properties" : {
e2d681b3
TL
37401 "cluster-network" : {
37402 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
37403 "format" : "CIDR",
37404 "maxLength" : 128,
37405 "optional" : 1,
37406 "requires" : "network",
37407 "type" : "string",
37408 "typetext" : "<string>"
37409 },
4d47f125
TL
37410 "disable_cephx" : {
37411 "default" : 0,
1e3f8156 37412 "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 37413 "optional" : 1,
4d47f125
TL
37414 "type" : "boolean",
37415 "typetext" : "<boolean>"
56122987 37416 },
4d47f125
TL
37417 "min_size" : {
37418 "default" : 2,
37419 "description" : "Minimum number of available replicas per object to allow I/O",
37420 "maximum" : 7,
37421 "minimum" : 1,
7aacca6f 37422 "optional" : 1,
4d47f125
TL
37423 "type" : "integer",
37424 "typetext" : "<integer> (1 - 7)"
7aacca6f 37425 },
4d47f125
TL
37426 "network" : {
37427 "description" : "Use specific network for all ceph related traffic",
37428 "format" : "CIDR",
37429 "maxLength" : 128,
5d9c884c 37430 "optional" : 1,
4d47f125
TL
37431 "type" : "string",
37432 "typetext" : "<string>"
5d9c884c 37433 },
4d47f125
TL
37434 "node" : {
37435 "description" : "The cluster node name.",
37436 "format" : "pve-node",
37437 "type" : "string",
37438 "typetext" : "<string>"
7aacca6f 37439 },
4d47f125
TL
37440 "pg_bits" : {
37441 "default" : 6,
37442 "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.",
37443 "maximum" : 14,
37444 "minimum" : 6,
de0983cb 37445 "optional" : 1,
4d47f125
TL
37446 "type" : "integer",
37447 "typetext" : "<integer> (6 - 14)"
de0983cb 37448 },
44660702 37449 "size" : {
4d47f125
TL
37450 "default" : 3,
37451 "description" : "Targeted number of replicas per object",
37452 "maximum" : 7,
37453 "minimum" : 1,
7aacca6f 37454 "optional" : 1,
4d47f125
TL
37455 "type" : "integer",
37456 "typetext" : "<integer> (1 - 7)"
56122987 37457 }
4d47f125 37458 }
44660702 37459 },
4d47f125
TL
37460 "permissions" : {
37461 "check" : [
37462 "perm",
37463 "/",
37464 [
37465 "Sys.Modify"
37466 ]
37467 ]
5da3d723 37468 },
4d47f125
TL
37469 "protected" : 1,
37470 "proxyto" : "node",
37471 "returns" : {
37472 "type" : "null"
37473 }
37474 }
37475 },
37476 "leaf" : 1,
37477 "path" : "/nodes/{node}/ceph/init",
37478 "text" : "init"
37479 },
4d47f125
TL
37480 {
37481 "info" : {
37482 "POST" : {
e9cd3bd4 37483 "allowtoken" : 1,
4d47f125
TL
37484 "description" : "Stop ceph services.",
37485 "method" : "POST",
37486 "name" : "stop",
37487 "parameters" : {
37488 "additionalProperties" : 0,
37489 "properties" : {
37490 "node" : {
37491 "description" : "The cluster node name.",
37492 "format" : "pve-node",
37493 "type" : "string",
37494 "typetext" : "<string>"
37495 },
37496 "service" : {
e2d681b3 37497 "default" : "ceph.target",
4d47f125
TL
37498 "description" : "Ceph service name.",
37499 "optional" : 1,
c5aa7e14 37500 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
37501 "type" : "string"
37502 }
37503 }
7aacca6f 37504 },
4d47f125
TL
37505 "permissions" : {
37506 "check" : [
37507 "perm",
37508 "/",
37509 [
37510 "Sys.Modify"
37511 ]
37512 ]
7aacca6f 37513 },
4d47f125
TL
37514 "protected" : 1,
37515 "proxyto" : "node",
37516 "returns" : {
37517 "type" : "string"
37518 }
37519 }
37520 },
37521 "leaf" : 1,
37522 "path" : "/nodes/{node}/ceph/stop",
37523 "text" : "stop"
37524 },
37525 {
37526 "info" : {
37527 "POST" : {
e9cd3bd4 37528 "allowtoken" : 1,
4d47f125
TL
37529 "description" : "Start ceph services.",
37530 "method" : "POST",
37531 "name" : "start",
37532 "parameters" : {
37533 "additionalProperties" : 0,
37534 "properties" : {
37535 "node" : {
37536 "description" : "The cluster node name.",
37537 "format" : "pve-node",
37538 "type" : "string",
37539 "typetext" : "<string>"
37540 },
37541 "service" : {
e2d681b3 37542 "default" : "ceph.target",
4d47f125
TL
37543 "description" : "Ceph service name.",
37544 "optional" : 1,
c5aa7e14 37545 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
37546 "type" : "string"
37547 }
37548 }
44660702 37549 },
4d47f125
TL
37550 "permissions" : {
37551 "check" : [
37552 "perm",
37553 "/",
37554 [
37555 "Sys.Modify"
37556 ]
37557 ]
44660702 37558 },
4d47f125
TL
37559 "protected" : 1,
37560 "proxyto" : "node",
37561 "returns" : {
37562 "type" : "string"
44660702 37563 }
7aacca6f
DM
37564 }
37565 },
4d47f125
TL
37566 "leaf" : 1,
37567 "path" : "/nodes/{node}/ceph/start",
37568 "text" : "start"
37569 },
e2d681b3
TL
37570 {
37571 "info" : {
37572 "POST" : {
e9cd3bd4 37573 "allowtoken" : 1,
e2d681b3
TL
37574 "description" : "Restart ceph services.",
37575 "method" : "POST",
37576 "name" : "restart",
37577 "parameters" : {
37578 "additionalProperties" : 0,
37579 "properties" : {
37580 "node" : {
37581 "description" : "The cluster node name.",
37582 "format" : "pve-node",
37583 "type" : "string",
37584 "typetext" : "<string>"
37585 },
37586 "service" : {
37587 "default" : "ceph.target",
37588 "description" : "Ceph service name.",
37589 "optional" : 1,
c5aa7e14 37590 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
37591 "type" : "string"
37592 }
37593 }
37594 },
37595 "permissions" : {
37596 "check" : [
37597 "perm",
37598 "/",
37599 [
37600 "Sys.Modify"
37601 ]
37602 ]
37603 },
37604 "protected" : 1,
37605 "proxyto" : "node",
37606 "returns" : {
37607 "type" : "string"
37608 }
37609 }
37610 },
37611 "leaf" : 1,
37612 "path" : "/nodes/{node}/ceph/restart",
37613 "text" : "restart"
37614 },
4d47f125
TL
37615 {
37616 "info" : {
37617 "GET" : {
e9cd3bd4 37618 "allowtoken" : 1,
4d47f125
TL
37619 "description" : "Get ceph status.",
37620 "method" : "GET",
37621 "name" : "status",
37622 "parameters" : {
37623 "additionalProperties" : 0,
37624 "properties" : {
37625 "node" : {
37626 "description" : "The cluster node name.",
37627 "format" : "pve-node",
37628 "type" : "string",
37629 "typetext" : "<string>"
37630 }
37631 }
37632 },
37633 "permissions" : {
37634 "check" : [
37635 "perm",
37636 "/",
37637 [
37638 "Sys.Audit",
37639 "Datastore.Audit"
37640 ],
37641 "any",
37642 1
37643 ]
37644 },
37645 "protected" : 1,
37646 "proxyto" : "node",
37647 "returns" : {
d2656385 37648 "type" : "object"
44660702 37649 }
56122987 37650 }
44660702 37651 },
d2656385
TL
37652 "leaf" : 1,
37653 "path" : "/nodes/{node}/ceph/status",
37654 "text" : "status"
7aacca6f 37655 },
56122987 37656 {
56122987
DM
37657 "info" : {
37658 "GET" : {
e9cd3bd4 37659 "allowtoken" : 1,
4d47f125 37660 "description" : "Get OSD crush map",
44660702 37661 "method" : "GET",
4d47f125 37662 "name" : "crush",
56122987 37663 "parameters" : {
7aacca6f 37664 "additionalProperties" : 0,
56122987 37665 "properties" : {
56122987 37666 "node" : {
7aacca6f 37667 "description" : "The cluster node name.",
44660702 37668 "format" : "pve-node",
013dc89f
DM
37669 "type" : "string",
37670 "typetext" : "<string>"
56122987 37671 }
7aacca6f 37672 }
56122987 37673 },
56122987
DM
37674 "permissions" : {
37675 "check" : [
37676 "perm",
37677 "/",
37678 [
37679 "Sys.Audit",
37680 "Datastore.Audit"
37681 ],
37682 "any",
37683 1
37684 ]
44660702 37685 },
4d47f125
TL
37686 "protected" : 1,
37687 "proxyto" : "node",
44660702
DM
37688 "returns" : {
37689 "type" : "string"
7aacca6f
DM
37690 }
37691 }
44660702
DM
37692 },
37693 "leaf" : 1,
4d47f125
TL
37694 "path" : "/nodes/{node}/ceph/crush",
37695 "text" : "crush"
7aacca6f
DM
37696 },
37697 {
7aacca6f
DM
37698 "info" : {
37699 "GET" : {
e9cd3bd4 37700 "allowtoken" : 1,
4d47f125 37701 "description" : "Read ceph log",
7aacca6f 37702 "method" : "GET",
4d47f125 37703 "name" : "log",
7aacca6f
DM
37704 "parameters" : {
37705 "additionalProperties" : 0,
37706 "properties" : {
4d47f125
TL
37707 "limit" : {
37708 "minimum" : 0,
37709 "optional" : 1,
37710 "type" : "integer",
37711 "typetext" : "<integer> (0 - N)"
37712 },
7aacca6f 37713 "node" : {
7aacca6f 37714 "description" : "The cluster node name.",
44660702 37715 "format" : "pve-node",
013dc89f
DM
37716 "type" : "string",
37717 "typetext" : "<string>"
4d47f125
TL
37718 },
37719 "start" : {
37720 "minimum" : 0,
37721 "optional" : 1,
37722 "type" : "integer",
37723 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
37724 }
37725 }
37726 },
44660702
DM
37727 "permissions" : {
37728 "check" : [
37729 "perm",
4d47f125 37730 "/nodes/{node}",
44660702 37731 [
4d47f125
TL
37732 "Sys.Syslog"
37733 ]
44660702
DM
37734 ]
37735 },
7aacca6f 37736 "protected" : 1,
44660702 37737 "proxyto" : "node",
7aacca6f
DM
37738 "returns" : {
37739 "items" : {
37740 "properties" : {
4d47f125
TL
37741 "n" : {
37742 "description" : "Line number",
37743 "type" : "integer"
56122987 37744 },
4d47f125
TL
37745 "t" : {
37746 "description" : "Line text",
56122987
DM
37747 "type" : "string"
37748 }
7aacca6f
DM
37749 },
37750 "type" : "object"
56122987
DM
37751 },
37752 "type" : "array"
44660702 37753 }
4d47f125
TL
37754 }
37755 },
37756 "leaf" : 1,
37757 "path" : "/nodes/{node}/ceph/log",
37758 "text" : "log"
37759 },
37760 {
37761 "info" : {
37762 "GET" : {
e9cd3bd4 37763 "allowtoken" : 1,
4d47f125
TL
37764 "description" : "List ceph rules.",
37765 "method" : "GET",
37766 "name" : "rules",
44660702
DM
37767 "parameters" : {
37768 "additionalProperties" : 0,
37769 "properties" : {
37770 "node" : {
37771 "description" : "The cluster node name.",
37772 "format" : "pve-node",
013dc89f
DM
37773 "type" : "string",
37774 "typetext" : "<string>"
44660702
DM
37775 }
37776 }
37777 },
7aacca6f
DM
37778 "permissions" : {
37779 "check" : [
37780 "perm",
37781 "/",
37782 [
4d47f125
TL
37783 "Sys.Audit",
37784 "Datastore.Audit"
37785 ],
37786 "any",
37787 1
7aacca6f
DM
37788 ]
37789 },
44660702 37790 "protected" : 1,
7aacca6f 37791 "proxyto" : "node",
56122987 37792 "returns" : {
4d47f125 37793 "items" : {
9d2e98ed
TL
37794 "properties" : {
37795 "name" : {
37796 "description" : "Name of the CRUSH rule.",
37797 "type" : "string"
37798 }
37799 },
4d47f125
TL
37800 "type" : "object"
37801 },
37802 "links" : [
37803 {
37804 "href" : "{name}",
37805 "rel" : "child"
37806 }
37807 ],
37808 "type" : "array"
44660702 37809 }
56122987 37810 }
44660702 37811 },
4d47f125
TL
37812 "leaf" : 1,
37813 "path" : "/nodes/{node}/ceph/rules",
37814 "text" : "rules"
81a3384d
TL
37815 },
37816 {
37817 "info" : {
37818 "GET" : {
37819 "allowtoken" : 1,
37820 "description" : "Heuristical check if it is safe to perform an action.",
37821 "method" : "GET",
37822 "name" : "cmd_safety",
37823 "parameters" : {
37824 "additionalProperties" : 0,
37825 "properties" : {
37826 "action" : {
37827 "description" : "Action to check",
37828 "enum" : [
37829 "stop",
37830 "destroy"
37831 ],
37832 "type" : "string"
37833 },
37834 "id" : {
37835 "description" : "ID of the service",
37836 "type" : "string",
37837 "typetext" : "<string>"
37838 },
37839 "node" : {
37840 "description" : "The cluster node name.",
37841 "format" : "pve-node",
37842 "type" : "string",
37843 "typetext" : "<string>"
37844 },
37845 "service" : {
37846 "description" : "Service type",
37847 "enum" : [
37848 "osd",
37849 "mon",
37850 "mds"
37851 ],
37852 "type" : "string"
37853 }
37854 }
37855 },
37856 "permissions" : {
37857 "check" : [
37858 "perm",
37859 "/",
37860 [
9d2e98ed 37861 "Sys.Audit"
81a3384d
TL
37862 ]
37863 ]
37864 },
37865 "protected" : 1,
37866 "proxyto" : "node",
37867 "returns" : {
37868 "properties" : {
37869 "safe" : {
37870 "description" : "If it is safe to run the command.",
37871 "type" : "boolean"
37872 },
37873 "status" : {
37874 "description" : "Status message given by Ceph.",
37875 "optional" : 1,
37876 "type" : "string"
37877 }
37878 },
37879 "type" : "object"
37880 }
37881 }
37882 },
37883 "leaf" : 1,
37884 "path" : "/nodes/{node}/ceph/cmd-safety",
37885 "text" : "cmd-safety"
4d47f125
TL
37886 }
37887 ],
37888 "info" : {
37889 "GET" : {
e9cd3bd4 37890 "allowtoken" : 1,
4d47f125
TL
37891 "description" : "Directory index.",
37892 "method" : "GET",
37893 "name" : "index",
37894 "parameters" : {
37895 "additionalProperties" : 0,
37896 "properties" : {
37897 "node" : {
37898 "description" : "The cluster node name.",
37899 "format" : "pve-node",
37900 "type" : "string",
37901 "typetext" : "<string>"
37902 }
37903 }
37904 },
37905 "permissions" : {
37906 "check" : [
37907 "perm",
37908 "/",
37909 [
37910 "Sys.Audit",
37911 "Datastore.Audit"
37912 ],
37913 "any",
37914 1
37915 ]
37916 },
37917 "returns" : {
37918 "items" : {
37919 "properties" : {},
37920 "type" : "object"
37921 },
37922 "links" : [
37923 {
37924 "href" : "{name}",
37925 "rel" : "child"
37926 }
37927 ],
37928 "type" : "array"
37929 }
37930 }
37931 },
37932 "leaf" : 0,
37933 "path" : "/nodes/{node}/ceph",
37934 "text" : "ceph"
37935 },
37936 {
37937 "children" : [
e7084ef7
TL
37938 {
37939 "info" : {
37940 "GET" : {
37941 "allowtoken" : 1,
37942 "description" : "Get the currently configured vzdump defaults.",
37943 "method" : "GET",
37944 "name" : "defaults",
37945 "parameters" : {
37946 "additionalProperties" : 0,
37947 "properties" : {
37948 "node" : {
37949 "description" : "The cluster node name.",
37950 "format" : "pve-node",
37951 "type" : "string",
37952 "typetext" : "<string>"
37953 },
37954 "storage" : {
37955 "description" : "The storage identifier.",
37956 "format" : "pve-storage-id",
37957 "optional" : 1,
37958 "type" : "string",
37959 "typetext" : "<string>"
37960 }
37961 }
37962 },
37963 "permissions" : {
37964 "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.",
37965 "user" : "all"
37966 },
37967 "proxyto" : "node",
37968 "returns" : {
37969 "additionalProperties" : 0,
37970 "properties" : {
37971 "all" : {
37972 "default" : 0,
37973 "description" : "Backup all known guest systems on this host.",
37974 "optional" : 1,
37975 "type" : "boolean"
37976 },
37977 "bwlimit" : {
37978 "default" : 0,
4a407cfd 37979 "description" : "Limit I/O bandwidth (in KiB/s).",
e7084ef7
TL
37980 "minimum" : 0,
37981 "optional" : 1,
37982 "type" : "integer"
37983 },
37984 "compress" : {
37985 "default" : "0",
37986 "description" : "Compress dump file.",
37987 "enum" : [
37988 "0",
37989 "1",
37990 "gzip",
37991 "lzo",
37992 "zstd"
37993 ],
37994 "optional" : 1,
37995 "type" : "string"
37996 },
37997 "dumpdir" : {
37998 "description" : "Store resulting files to specified directory.",
37999 "optional" : 1,
38000 "type" : "string"
38001 },
38002 "exclude" : {
38003 "description" : "Exclude specified guest systems (assumes --all)",
38004 "format" : "pve-vmid-list",
38005 "optional" : 1,
38006 "type" : "string"
38007 },
38008 "exclude-path" : {
38009 "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
38010 "items" : {
38011 "type" : "string"
38012 },
e7084ef7 38013 "optional" : 1,
4a407cfd 38014 "type" : "array"
e7084ef7
TL
38015 },
38016 "ionice" : {
38017 "default" : 7,
159464a9 38018 "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
38019 "maximum" : 8,
38020 "minimum" : 0,
38021 "optional" : 1,
38022 "type" : "integer"
38023 },
38024 "lockwait" : {
38025 "default" : 180,
38026 "description" : "Maximal time to wait for the global lock (minutes).",
38027 "minimum" : 0,
38028 "optional" : 1,
38029 "type" : "integer"
38030 },
38031 "mailnotification" : {
38032 "default" : "always",
38033 "description" : "Specify when to send an email",
38034 "enum" : [
38035 "always",
38036 "failure"
38037 ],
38038 "optional" : 1,
38039 "type" : "string"
38040 },
38041 "mailto" : {
38042 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
38043 "format" : "email-or-username-list",
38044 "optional" : 1,
38045 "type" : "string"
38046 },
38047 "maxfiles" : {
0695fdaf 38048 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
38049 "minimum" : 1,
38050 "optional" : 1,
38051 "type" : "integer"
38052 },
38053 "mode" : {
38054 "default" : "snapshot",
38055 "description" : "Backup mode.",
38056 "enum" : [
38057 "snapshot",
38058 "suspend",
38059 "stop"
38060 ],
38061 "optional" : 1,
38062 "type" : "string"
38063 },
38064 "node" : {
38065 "description" : "Only run if executed on this node.",
38066 "format" : "pve-node",
38067 "optional" : 1,
38068 "type" : "string"
38069 },
7af2edf9 38070 "notes-template" : {
4e7f60c2
TL
38071 "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.",
38072 "maxLength" : 1024,
7af2edf9
TL
38073 "optional" : 1,
38074 "requires" : "storage",
38075 "type" : "string"
38076 },
4e7f60c2
TL
38077 "performance" : {
38078 "description" : "Other performance-related settings.",
38079 "format" : "backup-performance",
38080 "optional" : 1,
38081 "type" : "string"
38082 },
e7084ef7
TL
38083 "pigz" : {
38084 "default" : 0,
38085 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
38086 "optional" : 1,
38087 "type" : "integer"
38088 },
38089 "pool" : {
38090 "description" : "Backup all known guest systems included in the specified pool.",
38091 "optional" : 1,
38092 "type" : "string"
38093 },
7af2edf9
TL
38094 "protected" : {
38095 "description" : "If true, mark backup(s) as protected.",
38096 "optional" : 1,
38097 "requires" : "storage",
38098 "type" : "boolean"
38099 },
e7084ef7 38100 "prune-backups" : {
0695fdaf 38101 "default" : "keep-all=1",
e7084ef7
TL
38102 "description" : "Use these retention options instead of those from the storage configuration.",
38103 "format" : "prune-backups",
38104 "optional" : 1,
38105 "type" : "string"
38106 },
38107 "quiet" : {
38108 "default" : 0,
38109 "description" : "Be quiet.",
38110 "optional" : 1,
38111 "type" : "boolean"
38112 },
38113 "remove" : {
38114 "default" : 1,
0695fdaf 38115 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
38116 "optional" : 1,
38117 "type" : "boolean"
38118 },
38119 "script" : {
38120 "description" : "Use specified hook script.",
38121 "optional" : 1,
38122 "type" : "string"
38123 },
e7084ef7
TL
38124 "stdexcludes" : {
38125 "default" : 1,
38126 "description" : "Exclude temporary files and logs.",
38127 "optional" : 1,
38128 "type" : "boolean"
38129 },
38130 "stop" : {
38131 "default" : 0,
38132 "description" : "Stop running backup jobs on this host.",
38133 "optional" : 1,
38134 "type" : "boolean"
38135 },
38136 "stopwait" : {
38137 "default" : 10,
38138 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
38139 "minimum" : 0,
38140 "optional" : 1,
38141 "type" : "integer"
38142 },
38143 "storage" : {
38144 "description" : "Store resulting file to this storage.",
38145 "format" : "pve-storage-id",
38146 "optional" : 1,
38147 "type" : "string"
38148 },
38149 "tmpdir" : {
38150 "description" : "Store temporary files to specified directory.",
38151 "optional" : 1,
38152 "type" : "string"
38153 },
38154 "vmid" : {
38155 "description" : "The ID of the guest system you want to backup.",
38156 "format" : "pve-vmid-list",
38157 "optional" : 1,
38158 "type" : "string"
38159 },
38160 "zstd" : {
38161 "default" : 1,
38162 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
38163 "optional" : 1,
38164 "type" : "integer"
38165 }
38166 },
38167 "type" : "object"
38168 }
38169 }
38170 },
38171 "leaf" : 1,
38172 "path" : "/nodes/{node}/vzdump/defaults",
38173 "text" : "defaults"
38174 },
56122987
DM
38175 {
38176 "info" : {
4d47f125 38177 "GET" : {
e9cd3bd4 38178 "allowtoken" : 1,
4d47f125
TL
38179 "description" : "Extract configuration from vzdump backup archive.",
38180 "method" : "GET",
38181 "name" : "extractconfig",
38182 "parameters" : {
38183 "additionalProperties" : 0,
38184 "properties" : {
44660702
DM
38185 "node" : {
38186 "description" : "The cluster node name.",
38187 "format" : "pve-node",
013dc89f
DM
38188 "type" : "string",
38189 "typetext" : "<string>"
44660702 38190 },
4d47f125
TL
38191 "volume" : {
38192 "description" : "Volume identifier",
38193 "type" : "string",
38194 "typetext" : "<string>"
44660702
DM
38195 }
38196 }
7aacca6f 38197 },
56122987 38198 "permissions" : {
4d47f125
TL
38199 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
38200 "user" : "all"
56122987 38201 },
7aacca6f 38202 "protected" : 1,
44660702
DM
38203 "proxyto" : "node",
38204 "returns" : {
4d47f125 38205 "type" : "string"
7aacca6f
DM
38206 }
38207 }
38208 },
7aacca6f 38209 "leaf" : 1,
4d47f125
TL
38210 "path" : "/nodes/{node}/vzdump/extractconfig",
38211 "text" : "extractconfig"
38212 }
38213 ],
38214 "info" : {
38215 "POST" : {
e9cd3bd4 38216 "allowtoken" : 1,
4d47f125
TL
38217 "description" : "Create backup.",
38218 "method" : "POST",
38219 "name" : "vzdump",
38220 "parameters" : {
38221 "additionalProperties" : 0,
38222 "properties" : {
38223 "all" : {
38224 "default" : 0,
38225 "description" : "Backup all known guest systems on this host.",
38226 "optional" : 1,
38227 "type" : "boolean",
38228 "typetext" : "<boolean>"
38229 },
38230 "bwlimit" : {
38231 "default" : 0,
4a407cfd 38232 "description" : "Limit I/O bandwidth (in KiB/s).",
4d47f125
TL
38233 "minimum" : 0,
38234 "optional" : 1,
38235 "type" : "integer",
38236 "typetext" : "<integer> (0 - N)"
38237 },
38238 "compress" : {
38239 "default" : "0",
38240 "description" : "Compress dump file.",
38241 "enum" : [
38242 "0",
38243 "1",
38244 "gzip",
c5aa7e14
TL
38245 "lzo",
38246 "zstd"
4d47f125
TL
38247 ],
38248 "optional" : 1,
38249 "type" : "string"
38250 },
38251 "dumpdir" : {
38252 "description" : "Store resulting files to specified directory.",
38253 "optional" : 1,
38254 "type" : "string",
38255 "typetext" : "<string>"
38256 },
38257 "exclude" : {
38258 "description" : "Exclude specified guest systems (assumes --all)",
38259 "format" : "pve-vmid-list",
38260 "optional" : 1,
38261 "type" : "string",
38262 "typetext" : "<string>"
38263 },
38264 "exclude-path" : {
d2656385 38265 "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
38266 "items" : {
38267 "type" : "string"
38268 },
4d47f125 38269 "optional" : 1,
4a407cfd
TL
38270 "type" : "array",
38271 "typetext" : "<array>"
4d47f125
TL
38272 },
38273 "ionice" : {
38274 "default" : 7,
159464a9 38275 "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
38276 "maximum" : 8,
38277 "minimum" : 0,
38278 "optional" : 1,
38279 "type" : "integer",
38280 "typetext" : "<integer> (0 - 8)"
38281 },
38282 "lockwait" : {
38283 "default" : 180,
38284 "description" : "Maximal time to wait for the global lock (minutes).",
38285 "minimum" : 0,
38286 "optional" : 1,
38287 "type" : "integer",
38288 "typetext" : "<integer> (0 - N)"
38289 },
38290 "mailnotification" : {
38291 "default" : "always",
38292 "description" : "Specify when to send an email",
38293 "enum" : [
38294 "always",
38295 "failure"
38296 ],
38297 "optional" : 1,
38298 "type" : "string"
38299 },
38300 "mailto" : {
d2656385
TL
38301 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
38302 "format" : "email-or-username-list",
4d47f125
TL
38303 "optional" : 1,
38304 "type" : "string",
38305 "typetext" : "<string>"
38306 },
38307 "maxfiles" : {
0695fdaf 38308 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
38309 "minimum" : 1,
38310 "optional" : 1,
38311 "type" : "integer",
38312 "typetext" : "<integer> (1 - N)"
38313 },
38314 "mode" : {
38315 "default" : "snapshot",
38316 "description" : "Backup mode.",
38317 "enum" : [
38318 "snapshot",
38319 "suspend",
38320 "stop"
38321 ],
38322 "optional" : 1,
38323 "type" : "string"
38324 },
38325 "node" : {
38326 "description" : "Only run if executed on this node.",
38327 "format" : "pve-node",
38328 "optional" : 1,
38329 "type" : "string",
38330 "typetext" : "<string>"
38331 },
7af2edf9 38332 "notes-template" : {
4e7f60c2
TL
38333 "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.",
38334 "maxLength" : 1024,
7af2edf9
TL
38335 "optional" : 1,
38336 "requires" : "storage",
38337 "type" : "string",
38338 "typetext" : "<string>"
38339 },
4e7f60c2
TL
38340 "performance" : {
38341 "description" : "Other performance-related settings.",
38342 "format" : "backup-performance",
38343 "optional" : 1,
38344 "type" : "string",
38345 "typetext" : "[max-workers=<integer>]"
38346 },
4d47f125
TL
38347 "pigz" : {
38348 "default" : 0,
38349 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
38350 "optional" : 1,
38351 "type" : "integer",
38352 "typetext" : "<integer>"
38353 },
9226ccbc
TL
38354 "pool" : {
38355 "description" : "Backup all known guest systems included in the specified pool.",
38356 "optional" : 1,
38357 "type" : "string",
38358 "typetext" : "<string>"
38359 },
7af2edf9
TL
38360 "protected" : {
38361 "description" : "If true, mark backup(s) as protected.",
38362 "optional" : 1,
38363 "requires" : "storage",
38364 "type" : "boolean",
38365 "typetext" : "<boolean>"
38366 },
739d4d64 38367 "prune-backups" : {
0695fdaf 38368 "default" : "keep-all=1",
739d4d64
TL
38369 "description" : "Use these retention options instead of those from the storage configuration.",
38370 "format" : "prune-backups",
38371 "optional" : 1,
38372 "type" : "string",
4772952b 38373 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 38374 },
4d47f125
TL
38375 "quiet" : {
38376 "default" : 0,
38377 "description" : "Be quiet.",
38378 "optional" : 1,
38379 "type" : "boolean",
38380 "typetext" : "<boolean>"
38381 },
38382 "remove" : {
38383 "default" : 1,
0695fdaf 38384 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
38385 "optional" : 1,
38386 "type" : "boolean",
38387 "typetext" : "<boolean>"
38388 },
38389 "script" : {
38390 "description" : "Use specified hook script.",
38391 "optional" : 1,
38392 "type" : "string",
38393 "typetext" : "<string>"
38394 },
4d47f125
TL
38395 "stdexcludes" : {
38396 "default" : 1,
38397 "description" : "Exclude temporary files and logs.",
38398 "optional" : 1,
38399 "type" : "boolean",
38400 "typetext" : "<boolean>"
38401 },
38402 "stdout" : {
38403 "description" : "Write tar to stdout, not to a file.",
38404 "optional" : 1,
38405 "type" : "boolean",
38406 "typetext" : "<boolean>"
38407 },
38408 "stop" : {
38409 "default" : 0,
1e3f8156 38410 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
38411 "optional" : 1,
38412 "type" : "boolean",
38413 "typetext" : "<boolean>"
38414 },
38415 "stopwait" : {
38416 "default" : 10,
38417 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
38418 "minimum" : 0,
38419 "optional" : 1,
38420 "type" : "integer",
38421 "typetext" : "<integer> (0 - N)"
38422 },
38423 "storage" : {
38424 "description" : "Store resulting file to this storage.",
38425 "format" : "pve-storage-id",
38426 "optional" : 1,
38427 "type" : "string",
38428 "typetext" : "<string>"
38429 },
38430 "tmpdir" : {
38431 "description" : "Store temporary files to specified directory.",
38432 "optional" : 1,
38433 "type" : "string",
38434 "typetext" : "<string>"
38435 },
38436 "vmid" : {
38437 "description" : "The ID of the guest system you want to backup.",
38438 "format" : "pve-vmid-list",
38439 "optional" : 1,
38440 "type" : "string",
38441 "typetext" : "<string>"
c5aa7e14
TL
38442 },
38443 "zstd" : {
38444 "default" : 1,
38445 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
38446 "optional" : 1,
38447 "type" : "integer",
38448 "typetext" : "<integer>"
4d47f125
TL
38449 }
38450 }
38451 },
38452 "permissions" : {
9d2e98ed 38453 "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
38454 "user" : "all"
38455 },
38456 "protected" : 1,
38457 "proxyto" : "node",
38458 "returns" : {
38459 "type" : "string"
38460 }
38461 }
38462 },
38463 "leaf" : 0,
38464 "path" : "/nodes/{node}/vzdump",
38465 "text" : "vzdump"
38466 },
38467 {
38468 "children" : [
2489d6df
WB
38469 {
38470 "children" : [
38471 {
38472 "info" : {
4d47f125 38473 "GET" : {
e9cd3bd4 38474 "allowtoken" : 1,
4d47f125
TL
38475 "description" : "Read service properties",
38476 "method" : "GET",
38477 "name" : "service_state",
2489d6df
WB
38478 "parameters" : {
38479 "additionalProperties" : 0,
38480 "properties" : {
2489d6df
WB
38481 "node" : {
38482 "description" : "The cluster node name.",
38483 "format" : "pve-node",
38484 "type" : "string",
38485 "typetext" : "<string>"
4d47f125
TL
38486 },
38487 "service" : {
38488 "description" : "Service ID",
38489 "enum" : [
5370fa8c 38490 "chrony",
4d47f125 38491 "corosync",
5370fa8c
TL
38492 "cron",
38493 "ksmtuned",
38494 "postfix",
38495 "pve-cluster",
4d47f125 38496 "pve-firewall",
4d47f125
TL
38497 "pve-ha-crm",
38498 "pve-ha-lrm",
5370fa8c
TL
38499 "pvedaemon",
38500 "pvefw-logger",
38501 "pveproxy",
38502 "pvescheduler",
38503 "pvestatd",
38504 "spiceproxy",
4d47f125
TL
38505 "sshd",
38506 "syslog",
8f4d9c87 38507 "systemd-journald",
5370fa8c 38508 "systemd-timesyncd"
4d47f125
TL
38509 ],
38510 "type" : "string"
2489d6df
WB
38511 }
38512 }
38513 },
38514 "permissions" : {
38515 "check" : [
38516 "perm",
4d47f125 38517 "/nodes/{node}",
2489d6df 38518 [
4d47f125 38519 "Sys.Audit"
2489d6df
WB
38520 ]
38521 ]
38522 },
38523 "protected" : 1,
38524 "proxyto" : "node",
38525 "returns" : {
4d47f125 38526 "type" : "object"
2489d6df
WB
38527 }
38528 }
38529 },
38530 "leaf" : 1,
4d47f125
TL
38531 "path" : "/nodes/{node}/services/{service}/state",
38532 "text" : "state"
38533 },
38534 {
38535 "info" : {
38536 "POST" : {
e9cd3bd4 38537 "allowtoken" : 1,
4d47f125
TL
38538 "description" : "Start service.",
38539 "method" : "POST",
38540 "name" : "service_start",
38541 "parameters" : {
38542 "additionalProperties" : 0,
38543 "properties" : {
38544 "node" : {
38545 "description" : "The cluster node name.",
38546 "format" : "pve-node",
38547 "type" : "string",
38548 "typetext" : "<string>"
38549 },
38550 "service" : {
38551 "description" : "Service ID",
38552 "enum" : [
5370fa8c 38553 "chrony",
4d47f125 38554 "corosync",
5370fa8c
TL
38555 "cron",
38556 "ksmtuned",
38557 "postfix",
38558 "pve-cluster",
4d47f125 38559 "pve-firewall",
4d47f125
TL
38560 "pve-ha-crm",
38561 "pve-ha-lrm",
5370fa8c
TL
38562 "pvedaemon",
38563 "pvefw-logger",
38564 "pveproxy",
38565 "pvescheduler",
38566 "pvestatd",
38567 "spiceproxy",
4d47f125
TL
38568 "sshd",
38569 "syslog",
8f4d9c87 38570 "systemd-journald",
5370fa8c 38571 "systemd-timesyncd"
4d47f125
TL
38572 ],
38573 "type" : "string"
38574 }
38575 }
7aacca6f 38576 },
4d47f125
TL
38577 "permissions" : {
38578 "check" : [
38579 "perm",
38580 "/nodes/{node}",
38581 [
38582 "Sys.Modify"
38583 ]
38584 ]
7aacca6f 38585 },
4d47f125
TL
38586 "protected" : 1,
38587 "proxyto" : "node",
38588 "returns" : {
38589 "type" : "string"
38590 }
38591 }
56122987 38592 },
4d47f125
TL
38593 "leaf" : 1,
38594 "path" : "/nodes/{node}/services/{service}/start",
38595 "text" : "start"
38596 },
44660702
DM
38597 {
38598 "info" : {
4d47f125 38599 "POST" : {
e9cd3bd4 38600 "allowtoken" : 1,
4d47f125
TL
38601 "description" : "Stop service.",
38602 "method" : "POST",
38603 "name" : "service_stop",
44660702
DM
38604 "parameters" : {
38605 "additionalProperties" : 0,
38606 "properties" : {
44660702
DM
38607 "node" : {
38608 "description" : "The cluster node name.",
38609 "format" : "pve-node",
013dc89f
DM
38610 "type" : "string",
38611 "typetext" : "<string>"
2489d6df 38612 },
4d47f125
TL
38613 "service" : {
38614 "description" : "Service ID",
38615 "enum" : [
5370fa8c 38616 "chrony",
4d47f125 38617 "corosync",
5370fa8c
TL
38618 "cron",
38619 "ksmtuned",
38620 "postfix",
38621 "pve-cluster",
4d47f125 38622 "pve-firewall",
4d47f125
TL
38623 "pve-ha-crm",
38624 "pve-ha-lrm",
5370fa8c
TL
38625 "pvedaemon",
38626 "pvefw-logger",
38627 "pveproxy",
38628 "pvescheduler",
38629 "pvestatd",
38630 "spiceproxy",
4d47f125
TL
38631 "sshd",
38632 "syslog",
8f4d9c87 38633 "systemd-journald",
5370fa8c 38634 "systemd-timesyncd"
4d47f125
TL
38635 ],
38636 "type" : "string"
44660702
DM
38637 }
38638 }
38639 },
38640 "permissions" : {
38641 "check" : [
38642 "perm",
4d47f125 38643 "/nodes/{node}",
44660702
DM
38644 [
38645 "Sys.Modify"
38646 ]
38647 ]
38648 },
38649 "protected" : 1,
38650 "proxyto" : "node",
38651 "returns" : {
2489d6df 38652 "type" : "string"
44660702
DM
38653 }
38654 }
38655 },
38656 "leaf" : 1,
4d47f125
TL
38657 "path" : "/nodes/{node}/services/{service}/stop",
38658 "text" : "stop"
7aacca6f 38659 },
32d876b5
DM
38660 {
38661 "info" : {
4d47f125 38662 "POST" : {
e9cd3bd4 38663 "allowtoken" : 1,
739d4d64 38664 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
38665 "method" : "POST",
38666 "name" : "service_restart",
32d876b5
DM
38667 "parameters" : {
38668 "additionalProperties" : 0,
38669 "properties" : {
4d47f125
TL
38670 "node" : {
38671 "description" : "The cluster node name.",
38672 "format" : "pve-node",
38673 "type" : "string",
38674 "typetext" : "<string>"
38675 },
38676 "service" : {
38677 "description" : "Service ID",
32d876b5 38678 "enum" : [
5370fa8c 38679 "chrony",
4d47f125 38680 "corosync",
5370fa8c
TL
38681 "cron",
38682 "ksmtuned",
38683 "postfix",
38684 "pve-cluster",
4d47f125 38685 "pve-firewall",
4d47f125
TL
38686 "pve-ha-crm",
38687 "pve-ha-lrm",
5370fa8c
TL
38688 "pvedaemon",
38689 "pvefw-logger",
38690 "pveproxy",
38691 "pvescheduler",
38692 "pvestatd",
38693 "spiceproxy",
4d47f125
TL
38694 "sshd",
38695 "syslog",
8f4d9c87 38696 "systemd-journald",
5370fa8c 38697 "systemd-timesyncd"
32d876b5
DM
38698 ],
38699 "type" : "string"
32d876b5
DM
38700 }
38701 }
38702 },
38703 "permissions" : {
38704 "check" : [
38705 "perm",
4d47f125 38706 "/nodes/{node}",
32d876b5
DM
38707 [
38708 "Sys.Modify"
38709 ]
38710 ]
38711 },
38712 "protected" : 1,
38713 "proxyto" : "node",
38714 "returns" : {
4d47f125 38715 "type" : "string"
32d876b5 38716 }
4d47f125
TL
38717 }
38718 },
38719 "leaf" : 1,
38720 "path" : "/nodes/{node}/services/{service}/restart",
38721 "text" : "restart"
38722 },
38723 {
38724 "info" : {
32d876b5 38725 "POST" : {
e9cd3bd4 38726 "allowtoken" : 1,
739d4d64 38727 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 38728 "method" : "POST",
4d47f125 38729 "name" : "service_reload",
32d876b5
DM
38730 "parameters" : {
38731 "additionalProperties" : 0,
38732 "properties" : {
32d876b5
DM
38733 "node" : {
38734 "description" : "The cluster node name.",
38735 "format" : "pve-node",
38736 "type" : "string",
38737 "typetext" : "<string>"
4d47f125
TL
38738 },
38739 "service" : {
38740 "description" : "Service ID",
38741 "enum" : [
5370fa8c 38742 "chrony",
4d47f125 38743 "corosync",
5370fa8c
TL
38744 "cron",
38745 "ksmtuned",
38746 "postfix",
38747 "pve-cluster",
4d47f125 38748 "pve-firewall",
4d47f125
TL
38749 "pve-ha-crm",
38750 "pve-ha-lrm",
5370fa8c
TL
38751 "pvedaemon",
38752 "pvefw-logger",
38753 "pveproxy",
38754 "pvescheduler",
38755 "pvestatd",
38756 "spiceproxy",
4d47f125
TL
38757 "sshd",
38758 "syslog",
8f4d9c87 38759 "systemd-journald",
5370fa8c 38760 "systemd-timesyncd"
4d47f125
TL
38761 ],
38762 "type" : "string"
32d876b5
DM
38763 }
38764 }
38765 },
38766 "permissions" : {
38767 "check" : [
38768 "perm",
4d47f125 38769 "/nodes/{node}",
32d876b5
DM
38770 [
38771 "Sys.Modify"
38772 ]
38773 ]
38774 },
38775 "protected" : 1,
38776 "proxyto" : "node",
38777 "returns" : {
4d47f125 38778 "type" : "string"
32d876b5
DM
38779 }
38780 }
38781 },
38782 "leaf" : 1,
4d47f125
TL
38783 "path" : "/nodes/{node}/services/{service}/reload",
38784 "text" : "reload"
32d876b5
DM
38785 }
38786 ],
38787 "info" : {
38788 "GET" : {
e9cd3bd4 38789 "allowtoken" : 1,
4d47f125 38790 "description" : "Directory index",
44660702 38791 "method" : "GET",
4d47f125 38792 "name" : "srvcmdidx",
44660702
DM
38793 "parameters" : {
38794 "additionalProperties" : 0,
38795 "properties" : {
44660702
DM
38796 "node" : {
38797 "description" : "The cluster node name.",
38798 "format" : "pve-node",
013dc89f
DM
38799 "type" : "string",
38800 "typetext" : "<string>"
44660702 38801 },
4d47f125
TL
38802 "service" : {
38803 "description" : "Service ID",
38804 "enum" : [
5370fa8c 38805 "chrony",
4d47f125 38806 "corosync",
5370fa8c
TL
38807 "cron",
38808 "ksmtuned",
38809 "postfix",
38810 "pve-cluster",
4d47f125 38811 "pve-firewall",
4d47f125
TL
38812 "pve-ha-crm",
38813 "pve-ha-lrm",
5370fa8c
TL
38814 "pvedaemon",
38815 "pvefw-logger",
38816 "pveproxy",
38817 "pvescheduler",
38818 "pvestatd",
38819 "spiceproxy",
4d47f125
TL
38820 "sshd",
38821 "syslog",
8f4d9c87 38822 "systemd-journald",
5370fa8c 38823 "systemd-timesyncd"
4d47f125
TL
38824 ],
38825 "type" : "string"
44660702 38826 }
7aacca6f 38827 }
56122987 38828 },
56122987
DM
38829 "permissions" : {
38830 "check" : [
38831 "perm",
7aacca6f 38832 "/nodes/{node}",
56122987 38833 [
4d47f125 38834 "Sys.Audit"
56122987
DM
38835 ]
38836 ]
38837 },
44660702
DM
38838 "returns" : {
38839 "items" : {
38840 "properties" : {
4d47f125 38841 "subdir" : {
44660702
DM
38842 "type" : "string"
38843 }
56122987 38844 },
44660702 38845 "type" : "object"
56122987 38846 },
2489d6df
WB
38847 "links" : [
38848 {
4d47f125 38849 "href" : "{subdir}",
2489d6df
WB
38850 "rel" : "child"
38851 }
38852 ],
38853 "type" : "array"
38854 }
38855 }
4d47f125
TL
38856 },
38857 "leaf" : 0,
38858 "path" : "/nodes/{node}/services/{service}",
38859 "text" : "{service}"
7aacca6f
DM
38860 }
38861 ],
44660702
DM
38862 "info" : {
38863 "GET" : {
e9cd3bd4 38864 "allowtoken" : 1,
4d47f125 38865 "description" : "Service list.",
44660702
DM
38866 "method" : "GET",
38867 "name" : "index",
38868 "parameters" : {
38869 "additionalProperties" : 0,
38870 "properties" : {
38871 "node" : {
38872 "description" : "The cluster node name.",
38873 "format" : "pve-node",
013dc89f
DM
38874 "type" : "string",
38875 "typetext" : "<string>"
44660702
DM
38876 }
38877 }
38878 },
38879 "permissions" : {
38880 "check" : [
38881 "perm",
4d47f125 38882 "/nodes/{node}",
44660702 38883 [
4d47f125
TL
38884 "Sys.Audit"
38885 ]
44660702
DM
38886 ]
38887 },
4d47f125
TL
38888 "protected" : 1,
38889 "proxyto" : "node",
44660702
DM
38890 "returns" : {
38891 "items" : {
38892 "properties" : {},
38893 "type" : "object"
38894 },
38895 "links" : [
38896 {
4d47f125 38897 "href" : "{service}",
44660702
DM
38898 "rel" : "child"
38899 }
38900 ],
38901 "type" : "array"
38902 }
38903 }
38904 },
7aacca6f 38905 "leaf" : 0,
4d47f125
TL
38906 "path" : "/nodes/{node}/services",
38907 "text" : "services"
7aacca6f
DM
38908 },
38909 {
7aacca6f 38910 "info" : {
ac70d7d1
TL
38911 "DELETE" : {
38912 "allowtoken" : 1,
38913 "description" : "Delete subscription key of this node.",
38914 "method" : "DELETE",
38915 "name" : "delete",
38916 "parameters" : {
38917 "additionalProperties" : 0,
38918 "properties" : {
38919 "node" : {
38920 "description" : "The cluster node name.",
38921 "format" : "pve-node",
38922 "type" : "string",
38923 "typetext" : "<string>"
38924 }
38925 }
38926 },
38927 "permissions" : {
38928 "check" : [
38929 "perm",
38930 "/nodes/{node}",
38931 [
38932 "Sys.Modify"
38933 ]
38934 ]
38935 },
38936 "protected" : 1,
38937 "proxyto" : "node",
38938 "returns" : {
38939 "type" : "null"
38940 }
38941 },
4d47f125 38942 "GET" : {
e9cd3bd4 38943 "allowtoken" : 1,
4d47f125
TL
38944 "description" : "Read subscription info.",
38945 "method" : "GET",
38946 "name" : "get",
7aacca6f 38947 "parameters" : {
44660702 38948 "additionalProperties" : 0,
7aacca6f 38949 "properties" : {
44660702 38950 "node" : {
4d47f125 38951 "description" : "The cluster node name.",
44660702 38952 "format" : "pve-node",
013dc89f
DM
38953 "type" : "string",
38954 "typetext" : "<string>"
4d47f125
TL
38955 }
38956 }
38957 },
38958 "permissions" : {
38959 "user" : "all"
38960 },
38961 "proxyto" : "node",
38962 "returns" : {
38963 "type" : "object"
38964 }
38965 },
38966 "POST" : {
e9cd3bd4 38967 "allowtoken" : 1,
4d47f125
TL
38968 "description" : "Update subscription info.",
38969 "method" : "POST",
38970 "name" : "update",
38971 "parameters" : {
38972 "additionalProperties" : 0,
38973 "properties" : {
38974 "force" : {
38975 "default" : 0,
4a407cfd 38976 "description" : "Always connect to server, even if local cache is still valid.",
7aacca6f 38977 "optional" : 1,
4d47f125
TL
38978 "type" : "boolean",
38979 "typetext" : "<boolean>"
44660702 38980 },
4d47f125
TL
38981 "node" : {
38982 "description" : "The cluster node name.",
38983 "format" : "pve-node",
013dc89f
DM
38984 "type" : "string",
38985 "typetext" : "<string>"
4d47f125
TL
38986 }
38987 }
38988 },
38989 "permissions" : {
38990 "check" : [
38991 "perm",
38992 "/nodes/{node}",
38993 [
38994 "Sys.Modify"
38995 ]
38996 ]
38997 },
38998 "protected" : 1,
38999 "proxyto" : "node",
39000 "returns" : {
39001 "type" : "null"
39002 }
39003 },
39004 "PUT" : {
e9cd3bd4 39005 "allowtoken" : 1,
4d47f125
TL
39006 "description" : "Set subscription key.",
39007 "method" : "PUT",
39008 "name" : "set",
39009 "parameters" : {
39010 "additionalProperties" : 0,
39011 "properties" : {
39012 "key" : {
39013 "description" : "Proxmox VE subscription key",
39014 "maxLength" : 32,
5f26e15b 39015 "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
4d47f125 39016 "type" : "string"
7aacca6f 39017 },
4d47f125
TL
39018 "node" : {
39019 "description" : "The cluster node name.",
39020 "format" : "pve-node",
013dc89f
DM
39021 "type" : "string",
39022 "typetext" : "<string>"
7aacca6f 39023 }
7aacca6f
DM
39024 }
39025 },
7aacca6f 39026 "permissions" : {
4d47f125
TL
39027 "check" : [
39028 "perm",
39029 "/nodes/{node}",
39030 [
39031 "Sys.Modify"
39032 ]
39033 ]
7aacca6f 39034 },
44660702 39035 "protected" : 1,
7aacca6f 39036 "proxyto" : "node",
7aacca6f 39037 "returns" : {
4d47f125 39038 "type" : "null"
7aacca6f
DM
39039 }
39040 }
39041 },
4d47f125
TL
39042 "leaf" : 1,
39043 "path" : "/nodes/{node}/subscription",
39044 "text" : "subscription"
44660702
DM
39045 },
39046 {
7aacca6f
DM
39047 "children" : [
39048 {
4d47f125
TL
39049 "info" : {
39050 "DELETE" : {
e9cd3bd4 39051 "allowtoken" : 1,
4d47f125
TL
39052 "description" : "Delete network device configuration",
39053 "method" : "DELETE",
39054 "name" : "delete_network",
39055 "parameters" : {
39056 "additionalProperties" : 0,
39057 "properties" : {
39058 "iface" : {
39059 "description" : "Network interface name.",
39060 "format" : "pve-iface",
39061 "maxLength" : 20,
39062 "minLength" : 2,
39063 "type" : "string",
39064 "typetext" : "<string>"
7aacca6f 39065 },
4d47f125
TL
39066 "node" : {
39067 "description" : "The cluster node name.",
39068 "format" : "pve-node",
39069 "type" : "string",
39070 "typetext" : "<string>"
44660702
DM
39071 }
39072 }
39073 },
4d47f125
TL
39074 "permissions" : {
39075 "check" : [
39076 "perm",
39077 "/nodes/{node}",
39078 [
39079 "Sys.Modify"
39080 ]
39081 ]
39082 },
39083 "protected" : 1,
39084 "proxyto" : "node",
39085 "returns" : {
39086 "type" : "null"
39087 }
39088 },
39089 "GET" : {
e9cd3bd4 39090 "allowtoken" : 1,
4d47f125
TL
39091 "description" : "Read network device configuration",
39092 "method" : "GET",
39093 "name" : "network_config",
39094 "parameters" : {
39095 "additionalProperties" : 0,
39096 "properties" : {
39097 "iface" : {
39098 "description" : "Network interface name.",
39099 "format" : "pve-iface",
39100 "maxLength" : 20,
39101 "minLength" : 2,
39102 "type" : "string",
39103 "typetext" : "<string>"
56122987 39104 },
4d47f125
TL
39105 "node" : {
39106 "description" : "The cluster node name.",
39107 "format" : "pve-node",
39108 "type" : "string",
39109 "typetext" : "<string>"
44660702
DM
39110 }
39111 }
39112 },
4d47f125
TL
39113 "permissions" : {
39114 "check" : [
39115 "perm",
39116 "/nodes/{node}",
39117 [
39118 "Sys.Audit"
39119 ]
39120 ]
39121 },
39122 "proxyto" : "node",
39123 "returns" : {
39124 "properties" : {
39125 "method" : {
39126 "type" : "string"
44660702 39127 },
4d47f125 39128 "type" : {
44660702
DM
39129 "type" : "string"
39130 }
4d47f125
TL
39131 },
39132 "type" : "object"
39133 }
56122987 39134 },
4d47f125 39135 "PUT" : {
e9cd3bd4 39136 "allowtoken" : 1,
4d47f125
TL
39137 "description" : "Update network device configuration",
39138 "method" : "PUT",
39139 "name" : "update_network",
39140 "parameters" : {
39141 "additionalProperties" : 0,
39142 "properties" : {
39143 "address" : {
39144 "description" : "IP address.",
39145 "format" : "ipv4",
39146 "optional" : 1,
39147 "requires" : "netmask",
39148 "type" : "string",
39149 "typetext" : "<string>"
39150 },
39151 "address6" : {
39152 "description" : "IP address.",
39153 "format" : "ipv6",
39154 "optional" : 1,
39155 "requires" : "netmask6",
39156 "type" : "string",
39157 "typetext" : "<string>"
39158 },
39159 "autostart" : {
39160 "description" : "Automatically start interface on boot.",
39161 "optional" : 1,
39162 "type" : "boolean",
39163 "typetext" : "<boolean>"
39164 },
e9cd3bd4
TL
39165 "bond-primary" : {
39166 "description" : "Specify the primary interface for active-backup bond.",
39167 "format" : "pve-iface",
39168 "optional" : 1,
39169 "type" : "string",
39170 "typetext" : "<string>"
39171 },
4d47f125
TL
39172 "bond_mode" : {
39173 "description" : "Bonding mode.",
39174 "enum" : [
39175 "balance-rr",
39176 "active-backup",
39177 "balance-xor",
39178 "broadcast",
39179 "802.3ad",
39180 "balance-tlb",
39181 "balance-alb",
39182 "balance-slb",
39183 "lacp-balance-slb",
39184 "lacp-balance-tcp"
39185 ],
39186 "optional" : 1,
39187 "type" : "string"
39188 },
39189 "bond_xmit_hash_policy" : {
39190 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
39191 "enum" : [
39192 "layer2",
39193 "layer2+3",
39194 "layer3+4"
39195 ],
39196 "optional" : 1,
39197 "type" : "string"
39198 },
39199 "bridge_ports" : {
1e3f8156 39200 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
39201 "format" : "pve-iface-list",
39202 "optional" : 1,
39203 "type" : "string",
39204 "typetext" : "<string>"
39205 },
39206 "bridge_vlan_aware" : {
39207 "description" : "Enable bridge vlan support.",
39208 "optional" : 1,
39209 "type" : "boolean",
39210 "typetext" : "<boolean>"
39211 },
bb4c8cf8
TL
39212 "cidr" : {
39213 "description" : "IPv4 CIDR.",
39214 "format" : "CIDRv4",
39215 "optional" : 1,
39216 "type" : "string",
39217 "typetext" : "<string>"
39218 },
39219 "cidr6" : {
39220 "description" : "IPv6 CIDR.",
39221 "format" : "CIDRv6",
39222 "optional" : 1,
39223 "type" : "string",
39224 "typetext" : "<string>"
39225 },
4d47f125
TL
39226 "comments" : {
39227 "description" : "Comments",
39228 "optional" : 1,
39229 "type" : "string",
39230 "typetext" : "<string>"
39231 },
39232 "comments6" : {
39233 "description" : "Comments",
39234 "optional" : 1,
39235 "type" : "string",
39236 "typetext" : "<string>"
39237 },
39238 "delete" : {
39239 "description" : "A list of settings you want to delete.",
39240 "format" : "pve-configid-list",
39241 "optional" : 1,
39242 "type" : "string",
39243 "typetext" : "<string>"
39244 },
39245 "gateway" : {
39246 "description" : "Default gateway address.",
39247 "format" : "ipv4",
39248 "optional" : 1,
39249 "type" : "string",
39250 "typetext" : "<string>"
39251 },
39252 "gateway6" : {
39253 "description" : "Default ipv6 gateway address.",
39254 "format" : "ipv6",
39255 "optional" : 1,
39256 "type" : "string",
39257 "typetext" : "<string>"
39258 },
39259 "iface" : {
39260 "description" : "Network interface name.",
39261 "format" : "pve-iface",
39262 "maxLength" : 20,
39263 "minLength" : 2,
39264 "type" : "string",
39265 "typetext" : "<string>"
56122987 39266 },
e9cd3bd4
TL
39267 "mtu" : {
39268 "description" : "MTU.",
39269 "maximum" : 65520,
39270 "minimum" : 1280,
39271 "optional" : 1,
39272 "type" : "integer",
39273 "typetext" : "<integer> (1280 - 65520)"
39274 },
4d47f125
TL
39275 "netmask" : {
39276 "description" : "Network mask.",
39277 "format" : "ipv4mask",
39278 "optional" : 1,
39279 "requires" : "address",
39280 "type" : "string",
39281 "typetext" : "<string>"
39282 },
39283 "netmask6" : {
39284 "description" : "Network mask.",
39285 "maximum" : 128,
39286 "minimum" : 0,
39287 "optional" : 1,
39288 "requires" : "address6",
39289 "type" : "integer",
39290 "typetext" : "<integer> (0 - 128)"
56122987 39291 },
44660702
DM
39292 "node" : {
39293 "description" : "The cluster node name.",
39294 "format" : "pve-node",
013dc89f
DM
39295 "type" : "string",
39296 "typetext" : "<string>"
44660702 39297 },
4d47f125
TL
39298 "ovs_bonds" : {
39299 "description" : "Specify the interfaces used by the bonding device.",
39300 "format" : "pve-iface-list",
39301 "optional" : 1,
39302 "type" : "string",
39303 "typetext" : "<string>"
39304 },
39305 "ovs_bridge" : {
39306 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
39307 "format" : "pve-iface",
39308 "optional" : 1,
39309 "type" : "string",
39310 "typetext" : "<string>"
39311 },
39312 "ovs_options" : {
39313 "description" : "OVS interface options.",
39314 "maxLength" : 1024,
39315 "optional" : 1,
39316 "type" : "string",
39317 "typetext" : "<string>"
39318 },
39319 "ovs_ports" : {
1e3f8156 39320 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
39321 "format" : "pve-iface-list",
39322 "optional" : 1,
39323 "type" : "string",
39324 "typetext" : "<string>"
39325 },
39326 "ovs_tag" : {
39327 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
39328 "maximum" : 4094,
39329 "minimum" : 1,
39330 "optional" : 1,
39331 "type" : "integer",
39332 "typetext" : "<integer> (1 - 4094)"
39333 },
39334 "slaves" : {
39335 "description" : "Specify the interfaces used by the bonding device.",
39336 "format" : "pve-iface-list",
39337 "optional" : 1,
39338 "type" : "string",
39339 "typetext" : "<string>"
39340 },
39341 "type" : {
39342 "description" : "Network interface type",
44660702 39343 "enum" : [
4d47f125
TL
39344 "bridge",
39345 "bond",
39346 "eth",
39347 "alias",
39348 "vlan",
39349 "OVSBridge",
39350 "OVSBond",
39351 "OVSPort",
39352 "OVSIntPort",
39353 "unknown"
44660702
DM
39354 ],
39355 "type" : "string"
e9cd3bd4
TL
39356 },
39357 "vlan-id" : {
39358 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
39359 "maximum" : 4094,
39360 "minimum" : 1,
39361 "optional" : 1,
39362 "type" : "integer",
39363 "typetext" : "<integer> (1 - 4094)"
39364 },
39365 "vlan-raw-device" : {
39366 "description" : "Specify the raw interface for the vlan interface.",
39367 "format" : "pve-iface",
39368 "optional" : 1,
39369 "type" : "string",
39370 "typetext" : "<string>"
44660702
DM
39371 }
39372 }
39373 },
39374 "permissions" : {
39375 "check" : [
39376 "perm",
39377 "/nodes/{node}",
39378 [
4d47f125 39379 "Sys.Modify"
44660702
DM
39380 ]
39381 ]
39382 },
4d47f125
TL
39383 "protected" : 1,
39384 "proxyto" : "node",
44660702 39385 "returns" : {
4d47f125 39386 "type" : "null"
44660702
DM
39387 }
39388 }
39389 },
4d47f125
TL
39390 "leaf" : 1,
39391 "path" : "/nodes/{node}/network/{iface}",
39392 "text" : "{iface}"
44660702
DM
39393 }
39394 ],
39395 "info" : {
4d47f125 39396 "DELETE" : {
e9cd3bd4 39397 "allowtoken" : 1,
4d47f125
TL
39398 "description" : "Revert network configuration changes.",
39399 "method" : "DELETE",
39400 "name" : "revert_network_changes",
44660702
DM
39401 "parameters" : {
39402 "additionalProperties" : 0,
39403 "properties" : {
39404 "node" : {
39405 "description" : "The cluster node name.",
39406 "format" : "pve-node",
013dc89f
DM
39407 "type" : "string",
39408 "typetext" : "<string>"
44660702
DM
39409 }
39410 }
39411 },
39412 "permissions" : {
39413 "check" : [
39414 "perm",
39415 "/nodes/{node}",
39416 [
4d47f125 39417 "Sys.Modify"
44660702
DM
39418 ]
39419 ]
39420 },
39421 "protected" : 1,
39422 "proxyto" : "node",
4d47f125
TL
39423 "returns" : {
39424 "type" : "null"
39425 }
39426 },
39427 "GET" : {
e9cd3bd4 39428 "allowtoken" : 1,
4d47f125
TL
39429 "description" : "List available networks",
39430 "method" : "GET",
39431 "name" : "index",
39432 "parameters" : {
39433 "additionalProperties" : 0,
39434 "properties" : {
39435 "node" : {
39436 "description" : "The cluster node name.",
39437 "format" : "pve-node",
39438 "type" : "string",
39439 "typetext" : "<string>"
39440 },
39441 "type" : {
39442 "description" : "Only list specific interface types.",
39443 "enum" : [
39444 "bridge",
39445 "bond",
39446 "eth",
39447 "alias",
39448 "vlan",
39449 "OVSBridge",
39450 "OVSBond",
39451 "OVSPort",
39452 "OVSIntPort",
159464a9
TL
39453 "any_bridge",
39454 "any_local_bridge"
4d47f125
TL
39455 ],
39456 "optional" : 1,
39457 "type" : "string"
39458 }
39459 }
39460 },
39461 "permissions" : {
39462 "user" : "all"
39463 },
39464 "proxyto" : "node",
44660702
DM
39465 "returns" : {
39466 "items" : {
39467 "properties" : {},
39468 "type" : "object"
39469 },
39470 "links" : [
39471 {
4d47f125 39472 "href" : "{iface}",
44660702 39473 "rel" : "child"
56122987 39474 }
44660702
DM
39475 ],
39476 "type" : "array"
39477 }
4d47f125
TL
39478 },
39479 "POST" : {
e9cd3bd4 39480 "allowtoken" : 1,
4d47f125
TL
39481 "description" : "Create network device configuration",
39482 "method" : "POST",
39483 "name" : "create_network",
7aacca6f 39484 "parameters" : {
44660702 39485 "additionalProperties" : 0,
7aacca6f 39486 "properties" : {
4d47f125
TL
39487 "address" : {
39488 "description" : "IP address.",
39489 "format" : "ipv4",
39490 "optional" : 1,
39491 "requires" : "netmask",
39492 "type" : "string",
39493 "typetext" : "<string>"
39494 },
39495 "address6" : {
39496 "description" : "IP address.",
39497 "format" : "ipv6",
39498 "optional" : 1,
39499 "requires" : "netmask6",
39500 "type" : "string",
39501 "typetext" : "<string>"
39502 },
39503 "autostart" : {
39504 "description" : "Automatically start interface on boot.",
39505 "optional" : 1,
39506 "type" : "boolean",
39507 "typetext" : "<boolean>"
39508 },
e9cd3bd4
TL
39509 "bond-primary" : {
39510 "description" : "Specify the primary interface for active-backup bond.",
39511 "format" : "pve-iface",
39512 "optional" : 1,
39513 "type" : "string",
39514 "typetext" : "<string>"
39515 },
4d47f125
TL
39516 "bond_mode" : {
39517 "description" : "Bonding mode.",
39518 "enum" : [
39519 "balance-rr",
39520 "active-backup",
39521 "balance-xor",
39522 "broadcast",
39523 "802.3ad",
39524 "balance-tlb",
39525 "balance-alb",
39526 "balance-slb",
39527 "lacp-balance-slb",
39528 "lacp-balance-tcp"
39529 ],
39530 "optional" : 1,
39531 "type" : "string"
39532 },
39533 "bond_xmit_hash_policy" : {
39534 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
39535 "enum" : [
39536 "layer2",
39537 "layer2+3",
39538 "layer3+4"
39539 ],
39540 "optional" : 1,
39541 "type" : "string"
39542 },
39543 "bridge_ports" : {
1e3f8156 39544 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
39545 "format" : "pve-iface-list",
39546 "optional" : 1,
013dc89f
DM
39547 "type" : "string",
39548 "typetext" : "<string>"
4d47f125
TL
39549 },
39550 "bridge_vlan_aware" : {
39551 "description" : "Enable bridge vlan support.",
44660702 39552 "optional" : 1,
013dc89f
DM
39553 "type" : "boolean",
39554 "typetext" : "<boolean>"
44660702 39555 },
bb4c8cf8
TL
39556 "cidr" : {
39557 "description" : "IPv4 CIDR.",
39558 "format" : "CIDRv4",
39559 "optional" : 1,
39560 "type" : "string",
39561 "typetext" : "<string>"
39562 },
39563 "cidr6" : {
39564 "description" : "IPv6 CIDR.",
39565 "format" : "CIDRv6",
39566 "optional" : 1,
39567 "type" : "string",
39568 "typetext" : "<string>"
39569 },
4d47f125
TL
39570 "comments" : {
39571 "description" : "Comments",
39572 "optional" : 1,
39573 "type" : "string",
39574 "typetext" : "<string>"
39575 },
39576 "comments6" : {
39577 "description" : "Comments",
39578 "optional" : 1,
39579 "type" : "string",
39580 "typetext" : "<string>"
39581 },
39582 "gateway" : {
39583 "description" : "Default gateway address.",
39584 "format" : "ipv4",
39585 "optional" : 1,
39586 "type" : "string",
39587 "typetext" : "<string>"
39588 },
39589 "gateway6" : {
39590 "description" : "Default ipv6 gateway address.",
39591 "format" : "ipv6",
39592 "optional" : 1,
39593 "type" : "string",
39594 "typetext" : "<string>"
39595 },
39596 "iface" : {
39597 "description" : "Network interface name.",
39598 "format" : "pve-iface",
39599 "maxLength" : 20,
39600 "minLength" : 2,
39601 "type" : "string",
39602 "typetext" : "<string>"
39603 },
e9cd3bd4
TL
39604 "mtu" : {
39605 "description" : "MTU.",
39606 "maximum" : 65520,
39607 "minimum" : 1280,
39608 "optional" : 1,
39609 "type" : "integer",
39610 "typetext" : "<integer> (1280 - 65520)"
39611 },
4d47f125
TL
39612 "netmask" : {
39613 "description" : "Network mask.",
39614 "format" : "ipv4mask",
39615 "optional" : 1,
39616 "requires" : "address",
39617 "type" : "string",
39618 "typetext" : "<string>"
39619 },
39620 "netmask6" : {
39621 "description" : "Network mask.",
39622 "maximum" : 128,
39623 "minimum" : 0,
39624 "optional" : 1,
39625 "requires" : "address6",
39626 "type" : "integer",
39627 "typetext" : "<integer> (0 - 128)"
39628 },
7aacca6f 39629 "node" : {
7aacca6f 39630 "description" : "The cluster node name.",
44660702 39631 "format" : "pve-node",
013dc89f
DM
39632 "type" : "string",
39633 "typetext" : "<string>"
4d47f125
TL
39634 },
39635 "ovs_bonds" : {
39636 "description" : "Specify the interfaces used by the bonding device.",
39637 "format" : "pve-iface-list",
39638 "optional" : 1,
39639 "type" : "string",
39640 "typetext" : "<string>"
39641 },
39642 "ovs_bridge" : {
39643 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
39644 "format" : "pve-iface",
39645 "optional" : 1,
39646 "type" : "string",
39647 "typetext" : "<string>"
39648 },
39649 "ovs_options" : {
39650 "description" : "OVS interface options.",
39651 "maxLength" : 1024,
39652 "optional" : 1,
39653 "type" : "string",
39654 "typetext" : "<string>"
39655 },
39656 "ovs_ports" : {
1e3f8156 39657 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
39658 "format" : "pve-iface-list",
39659 "optional" : 1,
39660 "type" : "string",
39661 "typetext" : "<string>"
39662 },
39663 "ovs_tag" : {
39664 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
39665 "maximum" : 4094,
39666 "minimum" : 1,
39667 "optional" : 1,
39668 "type" : "integer",
39669 "typetext" : "<integer> (1 - 4094)"
39670 },
39671 "slaves" : {
39672 "description" : "Specify the interfaces used by the bonding device.",
39673 "format" : "pve-iface-list",
39674 "optional" : 1,
39675 "type" : "string",
39676 "typetext" : "<string>"
39677 },
39678 "type" : {
39679 "description" : "Network interface type",
39680 "enum" : [
39681 "bridge",
39682 "bond",
39683 "eth",
39684 "alias",
39685 "vlan",
39686 "OVSBridge",
39687 "OVSBond",
39688 "OVSPort",
39689 "OVSIntPort",
39690 "unknown"
39691 ],
39692 "type" : "string"
e9cd3bd4
TL
39693 },
39694 "vlan-id" : {
39695 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
39696 "maximum" : 4094,
39697 "minimum" : 1,
39698 "optional" : 1,
39699 "type" : "integer",
39700 "typetext" : "<integer> (1 - 4094)"
39701 },
39702 "vlan-raw-device" : {
39703 "description" : "Specify the raw interface for the vlan interface.",
39704 "format" : "pve-iface",
39705 "optional" : 1,
39706 "type" : "string",
39707 "typetext" : "<string>"
7aacca6f
DM
39708 }
39709 }
39710 },
35a75dd3
DM
39711 "permissions" : {
39712 "check" : [
39713 "perm",
39714 "/nodes/{node}",
39715 [
39716 "Sys.Modify"
39717 ]
39718 ]
39719 },
7aacca6f 39720 "protected" : 1,
7aacca6f 39721 "proxyto" : "node",
44660702
DM
39722 "returns" : {
39723 "type" : "null"
39724 }
39725 },
39726 "PUT" : {
e9cd3bd4 39727 "allowtoken" : 1,
4d47f125 39728 "description" : "Reload network configuration",
44660702 39729 "method" : "PUT",
4d47f125 39730 "name" : "reload_network_config",
7aacca6f
DM
39731 "parameters" : {
39732 "additionalProperties" : 0,
39733 "properties" : {
7aacca6f 39734 "node" : {
7aacca6f 39735 "description" : "The cluster node name.",
44660702 39736 "format" : "pve-node",
013dc89f
DM
39737 "type" : "string",
39738 "typetext" : "<string>"
7aacca6f
DM
39739 }
39740 }
39741 },
35a75dd3
DM
39742 "permissions" : {
39743 "check" : [
39744 "perm",
39745 "/nodes/{node}",
39746 [
39747 "Sys.Modify"
39748 ]
39749 ]
39750 },
44660702
DM
39751 "protected" : 1,
39752 "proxyto" : "node",
7aacca6f 39753 "returns" : {
4d47f125 39754 "type" : "string"
44660702 39755 }
7aacca6f
DM
39756 }
39757 },
4d47f125
TL
39758 "leaf" : 0,
39759 "path" : "/nodes/{node}/network",
39760 "text" : "network"
7aacca6f
DM
39761 },
39762 {
7aacca6f
DM
39763 "children" : [
39764 {
4d47f125
TL
39765 "children" : [
39766 {
39767 "info" : {
39768 "GET" : {
e9cd3bd4 39769 "allowtoken" : 1,
4d47f125
TL
39770 "description" : "Read task log.",
39771 "method" : "GET",
39772 "name" : "read_task_log",
39773 "parameters" : {
39774 "additionalProperties" : 0,
39775 "properties" : {
9d2e98ed
TL
39776 "download" : {
39777 "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
39778 "optional" : 1,
39779 "type" : "boolean",
39780 "typetext" : "<boolean>"
39781 },
4d47f125
TL
39782 "limit" : {
39783 "default" : 50,
9d2e98ed 39784 "description" : "The amount of lines to read from the tasklog.",
4d47f125
TL
39785 "minimum" : 0,
39786 "optional" : 1,
39787 "type" : "integer",
39788 "typetext" : "<integer> (0 - N)"
39789 },
39790 "node" : {
39791 "description" : "The cluster node name.",
39792 "format" : "pve-node",
39793 "type" : "string",
39794 "typetext" : "<string>"
39795 },
39796 "start" : {
39797 "default" : 0,
9d2e98ed 39798 "description" : "Start at this line when reading the tasklog",
4d47f125
TL
39799 "minimum" : 0,
39800 "optional" : 1,
39801 "type" : "integer",
39802 "typetext" : "<integer> (0 - N)"
39803 },
39804 "upid" : {
5370fa8c 39805 "description" : "The task's unique ID.",
4d47f125
TL
39806 "type" : "string",
39807 "typetext" : "<string>"
39808 }
39809 }
39810 },
39811 "permissions" : {
5370fa8c 39812 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
39813 "user" : "all"
39814 },
39815 "protected" : 1,
39816 "proxyto" : "node",
39817 "returns" : {
39818 "items" : {
39819 "properties" : {
39820 "n" : {
39821 "description" : "Line number",
39822 "type" : "integer"
39823 },
39824 "t" : {
39825 "description" : "Line text",
39826 "type" : "string"
39827 }
39828 },
39829 "type" : "object"
39830 },
39831 "type" : "array"
39832 }
39833 }
39834 },
39835 "leaf" : 1,
39836 "path" : "/nodes/{node}/tasks/{upid}/log",
39837 "text" : "log"
39838 },
39839 {
39840 "info" : {
39841 "GET" : {
e9cd3bd4 39842 "allowtoken" : 1,
4d47f125
TL
39843 "description" : "Read task status.",
39844 "method" : "GET",
39845 "name" : "read_task_status",
39846 "parameters" : {
39847 "additionalProperties" : 0,
39848 "properties" : {
39849 "node" : {
39850 "description" : "The cluster node name.",
39851 "format" : "pve-node",
39852 "type" : "string",
39853 "typetext" : "<string>"
39854 },
39855 "upid" : {
5370fa8c 39856 "description" : "The task's unique ID.",
4d47f125
TL
39857 "type" : "string",
39858 "typetext" : "<string>"
39859 }
39860 }
39861 },
39862 "permissions" : {
5370fa8c 39863 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
39864 "user" : "all"
39865 },
39866 "protected" : 1,
39867 "proxyto" : "node",
39868 "returns" : {
39869 "properties" : {
5370fa8c
TL
39870 "exitstatus" : {
39871 "optional" : 1,
39872 "type" : "string"
39873 },
39874 "id" : {
39875 "type" : "string"
39876 },
39877 "node" : {
39878 "type" : "string"
39879 },
4d47f125
TL
39880 "pid" : {
39881 "type" : "integer"
39882 },
5370fa8c
TL
39883 "starttime" : {
39884 "type" : "number"
39885 },
4d47f125
TL
39886 "status" : {
39887 "enum" : [
39888 "running",
39889 "stopped"
39890 ],
39891 "type" : "string"
5370fa8c
TL
39892 },
39893 "type" : {
39894 "type" : "string"
39895 },
39896 "upid" : {
39897 "type" : "string"
39898 },
39899 "user" : {
39900 "type" : "string"
4d47f125
TL
39901 }
39902 },
39903 "type" : "object"
39904 }
39905 }
39906 },
39907 "leaf" : 1,
39908 "path" : "/nodes/{node}/tasks/{upid}/status",
39909 "text" : "status"
39910 }
39911 ],
56122987 39912 "info" : {
7aacca6f 39913 "DELETE" : {
e9cd3bd4 39914 "allowtoken" : 1,
4d47f125 39915 "description" : "Stop a task.",
44660702 39916 "method" : "DELETE",
4d47f125 39917 "name" : "stop_task",
44660702
DM
39918 "parameters" : {
39919 "additionalProperties" : 0,
39920 "properties" : {
44660702
DM
39921 "node" : {
39922 "description" : "The cluster node name.",
39923 "format" : "pve-node",
013dc89f
DM
39924 "type" : "string",
39925 "typetext" : "<string>"
4d47f125
TL
39926 },
39927 "upid" : {
39928 "type" : "string",
39929 "typetext" : "<string>"
44660702
DM
39930 }
39931 }
7aacca6f
DM
39932 },
39933 "permissions" : {
5370fa8c 39934 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 39935 "user" : "all"
7aacca6f 39936 },
44660702 39937 "protected" : 1,
7aacca6f 39938 "proxyto" : "node",
44660702
DM
39939 "returns" : {
39940 "type" : "null"
39941 }
39942 },
39943 "GET" : {
e9cd3bd4 39944 "allowtoken" : 1,
4d47f125 39945 "description" : "",
44660702 39946 "method" : "GET",
4d47f125 39947 "name" : "upid_index",
7aacca6f
DM
39948 "parameters" : {
39949 "additionalProperties" : 0,
39950 "properties" : {
7aacca6f 39951 "node" : {
44660702 39952 "description" : "The cluster node name.",
7aacca6f 39953 "format" : "pve-node",
013dc89f
DM
39954 "type" : "string",
39955 "typetext" : "<string>"
7aacca6f 39956 },
4d47f125
TL
39957 "upid" : {
39958 "type" : "string",
39959 "typetext" : "<string>"
7aacca6f
DM
39960 }
39961 }
39962 },
7aacca6f 39963 "permissions" : {
4d47f125 39964 "user" : "all"
7aacca6f
DM
39965 },
39966 "returns" : {
4d47f125
TL
39967 "items" : {
39968 "properties" : {},
39969 "type" : "object"
39970 },
39971 "links" : [
39972 {
39973 "href" : "{name}",
39974 "rel" : "child"
39975 }
39976 ],
39977 "type" : "array"
44660702 39978 }
7aacca6f
DM
39979 }
39980 },
4d47f125
TL
39981 "leaf" : 0,
39982 "path" : "/nodes/{node}/tasks/{upid}",
39983 "text" : "{upid}"
7aacca6f
DM
39984 }
39985 ],
7aacca6f 39986 "info" : {
44660702 39987 "GET" : {
e9cd3bd4 39988 "allowtoken" : 1,
4d47f125 39989 "description" : "Read task list for one node (finished tasks).",
44660702 39990 "method" : "GET",
4d47f125 39991 "name" : "node_tasks",
44660702
DM
39992 "parameters" : {
39993 "additionalProperties" : 0,
39994 "properties" : {
4d47f125
TL
39995 "errors" : {
39996 "default" : 0,
5370fa8c 39997 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 39998 "optional" : 1,
4d47f125
TL
39999 "type" : "boolean",
40000 "typetext" : "<boolean>"
7aacca6f 40001 },
4d47f125
TL
40002 "limit" : {
40003 "default" : 50,
40004 "description" : "Only list this amount of tasks.",
40005 "minimum" : 0,
44660702 40006 "optional" : 1,
4d47f125
TL
40007 "type" : "integer",
40008 "typetext" : "<integer> (0 - N)"
40009 },
40010 "node" : {
40011 "description" : "The cluster node name.",
40012 "format" : "pve-node",
013dc89f
DM
40013 "type" : "string",
40014 "typetext" : "<string>"
44660702 40015 },
34f3e481
TL
40016 "since" : {
40017 "description" : "Only list tasks since this UNIX epoch.",
40018 "optional" : 1,
40019 "type" : "integer",
40020 "typetext" : "<integer>"
40021 },
5f26e15b
TL
40022 "source" : {
40023 "default" : "archive",
40024 "description" : "List archived, active or all tasks.",
40025 "enum" : [
40026 "archive",
40027 "active",
40028 "all"
40029 ],
40030 "optional" : 1,
40031 "type" : "string"
40032 },
4d47f125
TL
40033 "start" : {
40034 "default" : 0,
40035 "description" : "List tasks beginning from this offset.",
40036 "minimum" : 0,
44660702 40037 "optional" : 1,
4d47f125
TL
40038 "type" : "integer",
40039 "typetext" : "<integer> (0 - N)"
44660702 40040 },
34f3e481
TL
40041 "statusfilter" : {
40042 "description" : "List of Task States that should be returned.",
40043 "format" : "pve-task-status-type-list",
40044 "optional" : 1,
40045 "type" : "string",
40046 "typetext" : "<string>"
40047 },
5f26e15b
TL
40048 "typefilter" : {
40049 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
40050 "optional" : 1,
40051 "type" : "string",
40052 "typetext" : "<string>"
40053 },
34f3e481
TL
40054 "until" : {
40055 "description" : "Only list tasks until this UNIX epoch.",
40056 "optional" : 1,
40057 "type" : "integer",
40058 "typetext" : "<integer>"
40059 },
4d47f125
TL
40060 "userfilter" : {
40061 "description" : "Only list tasks from this user.",
44660702 40062 "optional" : 1,
013dc89f
DM
40063 "type" : "string",
40064 "typetext" : "<string>"
44660702 40065 },
4d47f125
TL
40066 "vmid" : {
40067 "description" : "Only list tasks for this VM.",
40068 "format" : "pve-vmid",
8dd66e12
TL
40069 "maximum" : 999999999,
40070 "minimum" : 100,
44660702 40071 "optional" : 1,
4bd7df8b 40072 "type" : "integer",
8dd66e12 40073 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
40074 }
40075 }
40076 },
40077 "permissions" : {
40078 "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).",
40079 "user" : "all"
40080 },
40081 "proxyto" : "node",
40082 "returns" : {
40083 "items" : {
40084 "properties" : {
40085 "endtime" : {
40086 "optional" : 1,
40087 "title" : "Endtime",
40088 "type" : "integer"
40089 },
40090 "id" : {
4d47f125
TL
40091 "title" : "ID",
40092 "type" : "string"
40093 },
40094 "node" : {
4d47f125
TL
40095 "title" : "Node",
40096 "type" : "string"
40097 },
40098 "pid" : {
4d47f125
TL
40099 "title" : "PID",
40100 "type" : "integer"
40101 },
40102 "pstart" : {
4d47f125
TL
40103 "type" : "integer"
40104 },
40105 "starttime" : {
4d47f125
TL
40106 "title" : "Starttime",
40107 "type" : "integer"
40108 },
40109 "status" : {
40110 "optional" : 1,
40111 "title" : "Status",
40112 "type" : "string"
40113 },
40114 "type" : {
4d47f125
TL
40115 "title" : "Type",
40116 "type" : "string"
40117 },
40118 "upid" : {
40119 "title" : "UPID",
40120 "type" : "string"
40121 },
40122 "user" : {
4d47f125
TL
40123 "title" : "User",
40124 "type" : "string"
40125 }
44660702 40126 },
4d47f125
TL
40127 "type" : "object"
40128 },
40129 "links" : [
40130 {
40131 "href" : "{upid}",
40132 "rel" : "child"
40133 }
40134 ],
40135 "type" : "array"
40136 }
40137 }
40138 },
40139 "leaf" : 0,
40140 "path" : "/nodes/{node}/tasks",
40141 "text" : "tasks"
40142 },
40143 {
40144 "children" : [
40145 {
40146 "info" : {
40147 "GET" : {
e9cd3bd4 40148 "allowtoken" : 1,
d2656385 40149 "description" : "Scan remote NFS server.",
4d47f125 40150 "method" : "GET",
d2656385 40151 "name" : "nfsscan",
4d47f125
TL
40152 "parameters" : {
40153 "additionalProperties" : 0,
40154 "properties" : {
40155 "node" : {
40156 "description" : "The cluster node name.",
40157 "format" : "pve-node",
40158 "type" : "string",
40159 "typetext" : "<string>"
d2656385
TL
40160 },
40161 "server" : {
40162 "description" : "The server address (name or IP).",
40163 "format" : "pve-storage-server",
40164 "type" : "string",
40165 "typetext" : "<string>"
4d47f125
TL
40166 }
40167 }
44660702 40168 },
4d47f125
TL
40169 "permissions" : {
40170 "check" : [
40171 "perm",
40172 "/storage",
40173 [
40174 "Datastore.Allocate"
40175 ]
40176 ]
40177 },
40178 "protected" : 1,
40179 "proxyto" : "node",
40180 "returns" : {
40181 "items" : {
40182 "properties" : {
d2656385
TL
40183 "options" : {
40184 "description" : "NFS export options.",
40185 "type" : "string"
40186 },
40187 "path" : {
40188 "description" : "The exported path.",
4d47f125
TL
40189 "type" : "string"
40190 }
40191 },
40192 "type" : "object"
40193 },
40194 "type" : "array"
40195 }
40196 }
40197 },
40198 "leaf" : 1,
d2656385
TL
40199 "path" : "/nodes/{node}/scan/nfs",
40200 "text" : "nfs"
4d47f125
TL
40201 },
40202 {
40203 "info" : {
40204 "GET" : {
e9cd3bd4 40205 "allowtoken" : 1,
d2656385 40206 "description" : "Scan remote CIFS server.",
4d47f125 40207 "method" : "GET",
d2656385 40208 "name" : "cifsscan",
4d47f125
TL
40209 "parameters" : {
40210 "additionalProperties" : 0,
40211 "properties" : {
d2656385
TL
40212 "domain" : {
40213 "description" : "SMB domain (Workgroup).",
40214 "optional" : 1,
40215 "type" : "string",
40216 "typetext" : "<string>"
40217 },
4d47f125
TL
40218 "node" : {
40219 "description" : "The cluster node name.",
40220 "format" : "pve-node",
40221 "type" : "string",
40222 "typetext" : "<string>"
40223 },
d2656385
TL
40224 "password" : {
40225 "description" : "User password.",
40226 "optional" : 1,
40227 "type" : "string",
40228 "typetext" : "<string>"
40229 },
4d47f125
TL
40230 "server" : {
40231 "description" : "The server address (name or IP).",
40232 "format" : "pve-storage-server",
40233 "type" : "string",
40234 "typetext" : "<string>"
d2656385
TL
40235 },
40236 "username" : {
40237 "description" : "User name.",
40238 "optional" : 1,
40239 "type" : "string",
40240 "typetext" : "<string>"
4d47f125
TL
40241 }
40242 }
40243 },
40244 "permissions" : {
40245 "check" : [
40246 "perm",
40247 "/storage",
40248 [
40249 "Datastore.Allocate"
40250 ]
40251 ]
40252 },
40253 "protected" : 1,
40254 "proxyto" : "node",
40255 "returns" : {
40256 "items" : {
40257 "properties" : {
d2656385
TL
40258 "description" : {
40259 "description" : "Descriptive text from server.",
4d47f125
TL
40260 "type" : "string"
40261 },
d2656385
TL
40262 "share" : {
40263 "description" : "The cifs share name.",
4d47f125
TL
40264 "type" : "string"
40265 }
40266 },
40267 "type" : "object"
40268 },
40269 "type" : "array"
40270 }
40271 }
40272 },
40273 "leaf" : 1,
d2656385
TL
40274 "path" : "/nodes/{node}/scan/cifs",
40275 "text" : "cifs"
4d47f125
TL
40276 },
40277 {
40278 "info" : {
40279 "GET" : {
e9cd3bd4 40280 "allowtoken" : 1,
d2656385 40281 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 40282 "method" : "GET",
d2656385 40283 "name" : "pbsscan",
4d47f125
TL
40284 "parameters" : {
40285 "additionalProperties" : 0,
40286 "properties" : {
d2656385
TL
40287 "fingerprint" : {
40288 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 40289 "optional" : 1,
d2656385
TL
40290 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
40291 "type" : "string"
4d47f125
TL
40292 },
40293 "node" : {
40294 "description" : "The cluster node name.",
40295 "format" : "pve-node",
40296 "type" : "string",
40297 "typetext" : "<string>"
40298 },
40299 "password" : {
d2656385 40300 "description" : "User password or API token secret.",
4d47f125
TL
40301 "type" : "string",
40302 "typetext" : "<string>"
40303 },
d2656385
TL
40304 "port" : {
40305 "default" : 8007,
40306 "description" : "Optional port.",
40307 "maximum" : 65535,
40308 "minimum" : 1,
40309 "optional" : 1,
40310 "type" : "integer",
40311 "typetext" : "<integer> (1 - 65535)"
40312 },
4d47f125
TL
40313 "server" : {
40314 "description" : "The server address (name or IP).",
40315 "format" : "pve-storage-server",
40316 "type" : "string",
40317 "typetext" : "<string>"
40318 },
40319 "username" : {
d2656385 40320 "description" : "User-name or API token-ID.",
4d47f125
TL
40321 "type" : "string",
40322 "typetext" : "<string>"
40323 }
40324 }
40325 },
40326 "permissions" : {
40327 "check" : [
40328 "perm",
40329 "/storage",
40330 [
40331 "Datastore.Allocate"
40332 ]
40333 ]
40334 },
40335 "protected" : 1,
40336 "proxyto" : "node",
40337 "returns" : {
40338 "items" : {
40339 "properties" : {
d2656385
TL
40340 "comment" : {
40341 "description" : "Comment from server.",
40342 "optional" : 1,
4d47f125
TL
40343 "type" : "string"
40344 },
d2656385
TL
40345 "store" : {
40346 "description" : "The datastore name.",
4d47f125
TL
40347 "type" : "string"
40348 }
40349 },
40350 "type" : "object"
40351 },
40352 "type" : "array"
56122987 40353 }
44660702 40354 }
56122987 40355 },
4d47f125 40356 "leaf" : 1,
d2656385
TL
40357 "path" : "/nodes/{node}/scan/pbs",
40358 "text" : "pbs"
4d47f125 40359 },
44660702 40360 {
4d47f125
TL
40361 "info" : {
40362 "GET" : {
e9cd3bd4 40363 "allowtoken" : 1,
4d47f125
TL
40364 "description" : "Scan remote GlusterFS server.",
40365 "method" : "GET",
40366 "name" : "glusterfsscan",
40367 "parameters" : {
40368 "additionalProperties" : 0,
40369 "properties" : {
40370 "node" : {
40371 "description" : "The cluster node name.",
40372 "format" : "pve-node",
40373 "type" : "string",
40374 "typetext" : "<string>"
7aacca6f 40375 },
4d47f125
TL
40376 "server" : {
40377 "description" : "The server address (name or IP).",
40378 "format" : "pve-storage-server",
40379 "type" : "string",
40380 "typetext" : "<string>"
44660702 40381 }
7aacca6f 40382 }
56122987 40383 },
4d47f125
TL
40384 "permissions" : {
40385 "check" : [
40386 "perm",
40387 "/storage",
40388 [
40389 "Datastore.Allocate"
40390 ]
40391 ]
40392 },
40393 "protected" : 1,
40394 "proxyto" : "node",
40395 "returns" : {
40396 "items" : {
40397 "properties" : {
40398 "volname" : {
40399 "description" : "The volume name.",
40400 "type" : "string"
7aacca6f
DM
40401 }
40402 },
4d47f125
TL
40403 "type" : "object"
40404 },
40405 "type" : "array"
40406 }
40407 }
40408 },
40409 "leaf" : 1,
40410 "path" : "/nodes/{node}/scan/glusterfs",
40411 "text" : "glusterfs"
40412 },
40413 {
40414 "info" : {
40415 "GET" : {
e9cd3bd4 40416 "allowtoken" : 1,
4d47f125
TL
40417 "description" : "Scan remote iSCSI server.",
40418 "method" : "GET",
40419 "name" : "iscsiscan",
40420 "parameters" : {
40421 "additionalProperties" : 0,
40422 "properties" : {
40423 "node" : {
40424 "description" : "The cluster node name.",
40425 "format" : "pve-node",
40426 "type" : "string",
40427 "typetext" : "<string>"
56122987 40428 },
4d47f125
TL
40429 "portal" : {
40430 "description" : "The iSCSI portal (IP or DNS name with optional port).",
40431 "format" : "pve-storage-portal-dns",
40432 "type" : "string",
40433 "typetext" : "<string>"
40434 }
40435 }
40436 },
40437 "permissions" : {
40438 "check" : [
40439 "perm",
40440 "/storage",
40441 [
40442 "Datastore.Allocate"
40443 ]
40444 ]
40445 },
40446 "protected" : 1,
40447 "proxyto" : "node",
40448 "returns" : {
40449 "items" : {
40450 "properties" : {
40451 "portal" : {
40452 "description" : "The iSCSI portal name.",
40453 "type" : "string"
7aacca6f 40454 },
4d47f125
TL
40455 "target" : {
40456 "description" : "The iSCSI target name.",
40457 "type" : "string"
40458 }
40459 },
40460 "type" : "object"
40461 },
40462 "type" : "array"
40463 }
40464 }
40465 },
40466 "leaf" : 1,
40467 "path" : "/nodes/{node}/scan/iscsi",
40468 "text" : "iscsi"
40469 },
40470 {
40471 "info" : {
40472 "GET" : {
e9cd3bd4 40473 "allowtoken" : 1,
4d47f125
TL
40474 "description" : "List local LVM volume groups.",
40475 "method" : "GET",
40476 "name" : "lvmscan",
40477 "parameters" : {
40478 "additionalProperties" : 0,
40479 "properties" : {
40480 "node" : {
40481 "description" : "The cluster node name.",
40482 "format" : "pve-node",
40483 "type" : "string",
40484 "typetext" : "<string>"
56122987 40485 }
7aacca6f 40486 }
44660702 40487 },
4d47f125
TL
40488 "permissions" : {
40489 "check" : [
40490 "perm",
40491 "/storage",
40492 [
40493 "Datastore.Allocate"
40494 ]
40495 ]
40496 },
40497 "protected" : 1,
40498 "proxyto" : "node",
40499 "returns" : {
40500 "items" : {
40501 "properties" : {
40502 "vg" : {
40503 "description" : "The LVM logical volume group name.",
40504 "type" : "string"
40505 }
40506 },
40507 "type" : "object"
40508 },
40509 "type" : "array"
40510 }
56122987 40511 }
4d47f125
TL
40512 },
40513 "leaf" : 1,
40514 "path" : "/nodes/{node}/scan/lvm",
40515 "text" : "lvm"
40516 },
40517 {
44660702 40518 "info" : {
4d47f125 40519 "GET" : {
e9cd3bd4 40520 "allowtoken" : 1,
4d47f125
TL
40521 "description" : "List local LVM Thin Pools.",
40522 "method" : "GET",
40523 "name" : "lvmthinscan",
44660702
DM
40524 "parameters" : {
40525 "additionalProperties" : 0,
40526 "properties" : {
40527 "node" : {
40528 "description" : "The cluster node name.",
40529 "format" : "pve-node",
013dc89f
DM
40530 "type" : "string",
40531 "typetext" : "<string>"
44660702 40532 },
4d47f125
TL
40533 "vg" : {
40534 "maxLength" : 100,
40535 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
40536 "type" : "string"
44660702 40537 }
7aacca6f 40538 }
44660702
DM
40539 },
40540 "permissions" : {
4d47f125
TL
40541 "check" : [
40542 "perm",
40543 "/storage",
40544 [
40545 "Datastore.Allocate"
40546 ]
40547 ]
44660702
DM
40548 },
40549 "protected" : 1,
40550 "proxyto" : "node",
40551 "returns" : {
4d47f125
TL
40552 "items" : {
40553 "properties" : {
40554 "lv" : {
40555 "description" : "The LVM Thin Pool name (LVM logical volume).",
40556 "type" : "string"
40557 }
40558 },
40559 "type" : "object"
40560 },
40561 "type" : "array"
7aacca6f 40562 }
4d47f125
TL
40563 }
40564 },
40565 "leaf" : 1,
40566 "path" : "/nodes/{node}/scan/lvmthin",
40567 "text" : "lvmthin"
40568 },
d2656385
TL
40569 {
40570 "info" : {
40571 "GET" : {
40572 "allowtoken" : 1,
40573 "description" : "Scan zfs pool list on local node.",
40574 "method" : "GET",
40575 "name" : "zfsscan",
40576 "parameters" : {
40577 "additionalProperties" : 0,
40578 "properties" : {
40579 "node" : {
40580 "description" : "The cluster node name.",
40581 "format" : "pve-node",
40582 "type" : "string",
40583 "typetext" : "<string>"
40584 }
40585 }
40586 },
40587 "permissions" : {
40588 "check" : [
40589 "perm",
40590 "/storage",
40591 [
40592 "Datastore.Allocate"
40593 ]
40594 ]
40595 },
40596 "protected" : 1,
40597 "proxyto" : "node",
40598 "returns" : {
40599 "items" : {
40600 "properties" : {
40601 "pool" : {
40602 "description" : "ZFS pool name.",
40603 "type" : "string"
40604 }
40605 },
40606 "type" : "object"
40607 },
40608 "type" : "array"
40609 }
40610 }
40611 },
40612 "leaf" : 1,
40613 "path" : "/nodes/{node}/scan/zfs",
40614 "text" : "zfs"
44660702
DM
40615 }
40616 ],
40617 "info" : {
40618 "GET" : {
e9cd3bd4 40619 "allowtoken" : 1,
4d47f125 40620 "description" : "Index of available scan methods",
44660702 40621 "method" : "GET",
4d47f125 40622 "name" : "index",
56122987 40623 "parameters" : {
7aacca6f 40624 "additionalProperties" : 0,
56122987 40625 "properties" : {
56122987
DM
40626 "node" : {
40627 "description" : "The cluster node name.",
44660702 40628 "format" : "pve-node",
013dc89f
DM
40629 "type" : "string",
40630 "typetext" : "<string>"
56122987
DM
40631 }
40632 }
40633 },
7aacca6f
DM
40634 "permissions" : {
40635 "user" : "all"
40636 },
56122987
DM
40637 "returns" : {
40638 "items" : {
40639 "properties" : {
4d47f125 40640 "method" : {
56122987
DM
40641 "type" : "string"
40642 }
40643 },
40644 "type" : "object"
40645 },
56122987
DM
40646 "links" : [
40647 {
4d47f125 40648 "href" : "{method}",
44660702 40649 "rel" : "child"
56122987 40650 }
44660702
DM
40651 ],
40652 "type" : "array"
56122987
DM
40653 }
40654 }
40655 },
44660702 40656 "leaf" : 0,
4d47f125
TL
40657 "path" : "/nodes/{node}/scan",
40658 "text" : "scan"
44660702 40659 },
e2d681b3
TL
40660 {
40661 "children" : [
40662 {
40663 "children" : [
40664 {
40665 "children" : [
40666 {
40667 "info" : {
40668 "GET" : {
e9cd3bd4 40669 "allowtoken" : 1,
e2d681b3
TL
40670 "description" : "List mediated device types for given PCI device.",
40671 "method" : "GET",
40672 "name" : "mdevscan",
40673 "parameters" : {
40674 "additionalProperties" : 0,
40675 "properties" : {
40676 "node" : {
40677 "description" : "The cluster node name.",
40678 "format" : "pve-node",
40679 "type" : "string",
40680 "typetext" : "<string>"
40681 },
40682 "pciid" : {
40683 "description" : "The PCI ID to list the mdev types for.",
40684 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
40685 "type" : "string"
40686 }
40687 }
40688 },
40689 "permissions" : {
40690 "check" : [
40691 "perm",
40692 "/",
40693 [
9d2e98ed 40694 "Sys.Audit",
e2d681b3 40695 "Sys.Modify"
9d2e98ed
TL
40696 ],
40697 "any",
40698 1
e2d681b3
TL
40699 ]
40700 },
40701 "protected" : 1,
40702 "proxyto" : "node",
40703 "returns" : {
40704 "items" : {
40705 "properties" : {
40706 "available" : {
40707 "description" : "The number of still available instances of this type.",
40708 "type" : "integer"
40709 },
40710 "description" : {
40711 "type" : "string"
40712 },
40713 "type" : {
40714 "description" : "The name of the mdev type.",
40715 "type" : "string"
40716 }
40717 },
40718 "type" : "object"
40719 },
40720 "type" : "array"
40721 }
40722 }
40723 },
40724 "leaf" : 1,
40725 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
40726 "text" : "mdev"
40727 }
40728 ],
40729 "info" : {
40730 "GET" : {
e9cd3bd4 40731 "allowtoken" : 1,
e2d681b3
TL
40732 "description" : "Index of available pci methods",
40733 "method" : "GET",
40734 "name" : "pciindex",
40735 "parameters" : {
40736 "additionalProperties" : 0,
40737 "properties" : {
40738 "node" : {
40739 "description" : "The cluster node name.",
40740 "format" : "pve-node",
40741 "type" : "string",
40742 "typetext" : "<string>"
40743 },
40744 "pciid" : {
40745 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
40746 "type" : "string"
40747 }
40748 }
40749 },
40750 "permissions" : {
40751 "user" : "all"
40752 },
40753 "returns" : {
40754 "items" : {
40755 "properties" : {
40756 "method" : {
40757 "type" : "string"
40758 }
40759 },
40760 "type" : "object"
40761 },
40762 "links" : [
40763 {
40764 "href" : "{method}",
40765 "rel" : "child"
40766 }
40767 ],
40768 "type" : "array"
40769 }
40770 }
40771 },
40772 "leaf" : 0,
40773 "path" : "/nodes/{node}/hardware/pci/{pciid}",
40774 "text" : "{pciid}"
40775 }
40776 ],
40777 "info" : {
40778 "GET" : {
e9cd3bd4 40779 "allowtoken" : 1,
e2d681b3
TL
40780 "description" : "List local PCI devices.",
40781 "method" : "GET",
40782 "name" : "pciscan",
40783 "parameters" : {
40784 "additionalProperties" : 0,
40785 "properties" : {
40786 "node" : {
40787 "description" : "The cluster node name.",
40788 "format" : "pve-node",
40789 "type" : "string",
40790 "typetext" : "<string>"
40791 },
40792 "pci-class-blacklist" : {
5370fa8c
TL
40793 "default" : "05;06;0b",
40794 "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
40795 "format" : "string-list",
40796 "optional" : 1,
40797 "type" : "string",
40798 "typetext" : "<string>"
40799 },
40800 "verbose" : {
40801 "default" : 1,
40802 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
40803 "optional" : 1,
40804 "type" : "boolean",
40805 "typetext" : "<boolean>"
40806 }
40807 }
40808 },
40809 "permissions" : {
40810 "check" : [
40811 "perm",
40812 "/",
40813 [
9d2e98ed 40814 "Sys.Audit",
e2d681b3 40815 "Sys.Modify"
9d2e98ed
TL
40816 ],
40817 "any",
40818 1
e2d681b3
TL
40819 ]
40820 },
40821 "protected" : 1,
40822 "proxyto" : "node",
40823 "returns" : {
40824 "items" : {
40825 "properties" : {
40826 "class" : {
40827 "description" : "The PCI Class of the device.",
40828 "type" : "string"
40829 },
40830 "device" : {
40831 "description" : "The Device ID.",
40832 "type" : "string"
40833 },
40834 "device_name" : {
40835 "optional" : 1,
40836 "type" : "string"
40837 },
40838 "id" : {
40839 "description" : "The PCI ID.",
40840 "type" : "string"
40841 },
40842 "iommugroup" : {
40843 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
40844 "type" : "integer"
40845 },
40846 "mdev" : {
40847 "description" : "If set, marks that the device is capable of creating mediated devices.",
40848 "optional" : 1,
40849 "type" : "boolean"
40850 },
40851 "subsystem_device" : {
40852 "description" : "The Subsystem Device ID.",
40853 "optional" : 1,
40854 "type" : "string"
40855 },
40856 "subsystem_device_name" : {
40857 "optional" : 1,
40858 "type" : "string"
40859 },
40860 "subsystem_vendor" : {
40861 "description" : "The Subsystem Vendor ID.",
40862 "optional" : 1,
40863 "type" : "string"
40864 },
40865 "subsystem_vendor_name" : {
40866 "optional" : 1,
40867 "type" : "string"
40868 },
40869 "vendor" : {
40870 "description" : "The Vendor ID.",
40871 "type" : "string"
40872 },
40873 "vendor_name" : {
40874 "optional" : 1,
40875 "type" : "string"
40876 }
40877 },
40878 "type" : "object"
40879 },
40880 "links" : [
40881 {
40882 "href" : "{id}",
40883 "rel" : "child"
40884 }
40885 ],
40886 "type" : "array"
40887 }
40888 }
40889 },
40890 "leaf" : 0,
40891 "path" : "/nodes/{node}/hardware/pci",
40892 "text" : "pci"
d2656385
TL
40893 },
40894 {
40895 "info" : {
40896 "GET" : {
40897 "allowtoken" : 1,
40898 "description" : "List local USB devices.",
40899 "method" : "GET",
40900 "name" : "usbscan",
40901 "parameters" : {
40902 "additionalProperties" : 0,
40903 "properties" : {
40904 "node" : {
40905 "description" : "The cluster node name.",
40906 "format" : "pve-node",
40907 "type" : "string",
40908 "typetext" : "<string>"
40909 }
40910 }
40911 },
40912 "permissions" : {
40913 "check" : [
40914 "perm",
40915 "/",
40916 [
40917 "Sys.Modify"
40918 ]
40919 ]
40920 },
40921 "protected" : 1,
40922 "proxyto" : "node",
40923 "returns" : {
40924 "items" : {
40925 "properties" : {
40926 "busnum" : {
40927 "type" : "integer"
40928 },
40929 "class" : {
40930 "type" : "integer"
40931 },
40932 "devnum" : {
40933 "type" : "integer"
40934 },
40935 "level" : {
40936 "type" : "integer"
40937 },
40938 "manufacturer" : {
40939 "optional" : 1,
40940 "type" : "string"
40941 },
40942 "port" : {
40943 "type" : "integer"
40944 },
40945 "prodid" : {
40946 "type" : "string"
40947 },
40948 "product" : {
40949 "optional" : 1,
40950 "type" : "string"
40951 },
40952 "serial" : {
40953 "optional" : 1,
40954 "type" : "string"
40955 },
40956 "speed" : {
40957 "type" : "string"
40958 },
40959 "usbpath" : {
40960 "optional" : 1,
40961 "type" : "string"
40962 },
40963 "vendid" : {
40964 "type" : "string"
40965 }
40966 },
40967 "type" : "object"
40968 },
40969 "type" : "array"
40970 }
40971 }
40972 },
40973 "leaf" : 1,
40974 "path" : "/nodes/{node}/hardware/usb",
40975 "text" : "usb"
e2d681b3
TL
40976 }
40977 ],
40978 "info" : {
40979 "GET" : {
e9cd3bd4 40980 "allowtoken" : 1,
e2d681b3
TL
40981 "description" : "Index of hardware types",
40982 "method" : "GET",
40983 "name" : "index",
40984 "parameters" : {
40985 "additionalProperties" : 0,
40986 "properties" : {
40987 "node" : {
40988 "description" : "The cluster node name.",
40989 "format" : "pve-node",
40990 "type" : "string",
40991 "typetext" : "<string>"
40992 }
40993 }
40994 },
40995 "permissions" : {
40996 "user" : "all"
40997 },
40998 "returns" : {
40999 "items" : {
41000 "properties" : {
41001 "type" : {
41002 "type" : "string"
41003 }
41004 },
41005 "type" : "object"
41006 },
41007 "links" : [
41008 {
41009 "href" : "{type}",
41010 "rel" : "child"
41011 }
41012 ],
41013 "type" : "array"
41014 }
41015 }
41016 },
41017 "leaf" : 0,
41018 "path" : "/nodes/{node}/hardware",
41019 "text" : "hardware"
41020 },
d2656385
TL
41021 {
41022 "children" : [
41023 {
41024 "children" : [
0695fdaf
TL
41025 {
41026 "info" : {
41027 "GET" : {
41028 "allowtoken" : 1,
41029 "description" : "List all custom and default CPU models.",
41030 "method" : "GET",
41031 "name" : "index",
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 }
41042 },
41043 "permissions" : {
41044 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
41045 "user" : "all"
41046 },
41047 "returns" : {
41048 "items" : {
41049 "properties" : {
41050 "custom" : {
41051 "description" : "True if this is a custom CPU model.",
41052 "type" : "boolean"
41053 },
41054 "name" : {
41055 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
41056 "type" : "string"
41057 },
41058 "vendor" : {
41059 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
41060 "type" : "string"
41061 }
41062 },
41063 "type" : "object"
41064 },
41065 "links" : [
41066 {
41067 "href" : "{name}",
41068 "rel" : "child"
41069 }
41070 ],
41071 "type" : "array"
41072 }
41073 }
41074 },
41075 "leaf" : 1,
41076 "path" : "/nodes/{node}/capabilities/qemu/cpu",
41077 "text" : "cpu"
41078 },
d2656385
TL
41079 {
41080 "info" : {
41081 "GET" : {
41082 "allowtoken" : 1,
41083 "description" : "Get available QEMU/KVM machine types.",
41084 "method" : "GET",
41085 "name" : "types",
41086 "parameters" : {
41087 "additionalProperties" : 0,
41088 "properties" : {
41089 "node" : {
41090 "description" : "The cluster node name.",
41091 "format" : "pve-node",
41092 "type" : "string",
41093 "typetext" : "<string>"
41094 }
41095 }
41096 },
41097 "permissions" : {
41098 "user" : "all"
41099 },
41100 "proxyto" : "node",
41101 "returns" : {
41102 "items" : {
41103 "additionalProperties" : 1,
41104 "properties" : {
41105 "id" : {
41106 "description" : "Full name of machine type and version.",
41107 "type" : "string"
41108 },
41109 "type" : {
41110 "description" : "The machine type.",
41111 "enum" : [
41112 "q35",
41113 "i440fx"
41114 ],
41115 "type" : "string"
41116 },
41117 "version" : {
41118 "description" : "The machine version.",
41119 "type" : "string"
41120 }
41121 },
41122 "type" : "object"
41123 },
41124 "type" : "array"
41125 }
41126 }
41127 },
41128 "leaf" : 1,
41129 "path" : "/nodes/{node}/capabilities/qemu/machines",
41130 "text" : "machines"
41131 }
41132 ],
41133 "info" : {
41134 "GET" : {
41135 "allowtoken" : 1,
41136 "description" : "QEMU capabilities index.",
41137 "method" : "GET",
41138 "name" : "qemu_caps_index",
41139 "parameters" : {
41140 "additionalProperties" : 0,
41141 "properties" : {
41142 "node" : {
41143 "description" : "The cluster node name.",
41144 "format" : "pve-node",
41145 "type" : "string",
41146 "typetext" : "<string>"
41147 }
41148 }
41149 },
41150 "permissions" : {
41151 "user" : "all"
41152 },
41153 "returns" : {
41154 "items" : {
41155 "properties" : {},
41156 "type" : "object"
41157 },
41158 "links" : [
41159 {
41160 "href" : "{name}",
41161 "rel" : "child"
41162 }
41163 ],
41164 "type" : "array"
41165 }
41166 }
41167 },
41168 "leaf" : 0,
41169 "path" : "/nodes/{node}/capabilities/qemu",
41170 "text" : "qemu"
41171 }
41172 ],
41173 "info" : {
41174 "GET" : {
41175 "allowtoken" : 1,
41176 "description" : "Node capabilities index.",
41177 "method" : "GET",
41178 "name" : "index",
41179 "parameters" : {
41180 "additionalProperties" : 0,
41181 "properties" : {
41182 "node" : {
41183 "description" : "The cluster node name.",
41184 "format" : "pve-node",
41185 "type" : "string",
41186 "typetext" : "<string>"
41187 }
41188 }
41189 },
41190 "permissions" : {
41191 "user" : "all"
41192 },
41193 "returns" : {
41194 "items" : {
41195 "properties" : {},
41196 "type" : "object"
41197 },
41198 "links" : [
41199 {
41200 "href" : "{name}",
41201 "rel" : "child"
41202 }
41203 ],
41204 "type" : "array"
41205 }
41206 }
41207 },
41208 "leaf" : 0,
41209 "path" : "/nodes/{node}/capabilities",
41210 "text" : "capabilities"
41211 },
44660702 41212 {
56122987
DM
41213 "children" : [
41214 {
4d47f125 41215 "children" : [
739d4d64
TL
41216 {
41217 "info" : {
41218 "DELETE" : {
41219 "allowtoken" : 1,
41220 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
41221 "method" : "DELETE",
41222 "name" : "delete",
41223 "parameters" : {
41224 "additionalProperties" : 0,
41225 "properties" : {
41226 "node" : {
41227 "description" : "The cluster node name.",
41228 "format" : "pve-node",
41229 "type" : "string",
41230 "typetext" : "<string>"
41231 },
41232 "prune-backups" : {
41233 "description" : "Use these retention options instead of those from the storage configuration.",
41234 "format" : "prune-backups",
41235 "optional" : 1,
41236 "type" : "string",
4772952b 41237 "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
41238 },
41239 "storage" : {
41240 "description" : "The storage identifier.",
41241 "format" : "pve-storage-id",
41242 "type" : "string",
41243 "typetext" : "<string>"
41244 },
41245 "type" : {
41246 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
41247 "enum" : [
41248 "qemu",
41249 "lxc"
41250 ],
41251 "optional" : 1,
41252 "type" : "string"
41253 },
41254 "vmid" : {
41255 "description" : "Only prune backups for this VM.",
41256 "format" : "pve-vmid",
8dd66e12
TL
41257 "maximum" : 999999999,
41258 "minimum" : 100,
739d4d64
TL
41259 "optional" : 1,
41260 "type" : "integer",
8dd66e12 41261 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
41262 }
41263 }
41264 },
41265 "permissions" : {
41266 "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).",
41267 "user" : "all"
41268 },
41269 "protected" : 1,
41270 "proxyto" : "node",
41271 "returns" : {
41272 "type" : "string"
41273 }
41274 },
41275 "GET" : {
41276 "allowtoken" : 1,
4772952b 41277 "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
41278 "method" : "GET",
41279 "name" : "dryrun",
41280 "parameters" : {
41281 "additionalProperties" : 0,
41282 "properties" : {
41283 "node" : {
41284 "description" : "The cluster node name.",
41285 "format" : "pve-node",
41286 "type" : "string",
41287 "typetext" : "<string>"
41288 },
41289 "prune-backups" : {
41290 "description" : "Use these retention options instead of those from the storage configuration.",
41291 "format" : "prune-backups",
41292 "optional" : 1,
41293 "type" : "string",
4772952b 41294 "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
41295 },
41296 "storage" : {
41297 "description" : "The storage identifier.",
41298 "format" : "pve-storage-id",
41299 "type" : "string",
41300 "typetext" : "<string>"
41301 },
41302 "type" : {
41303 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
41304 "enum" : [
41305 "qemu",
41306 "lxc"
41307 ],
41308 "optional" : 1,
41309 "type" : "string"
41310 },
41311 "vmid" : {
41312 "description" : "Only consider backups for this guest.",
41313 "format" : "pve-vmid",
8dd66e12
TL
41314 "maximum" : 999999999,
41315 "minimum" : 100,
739d4d64
TL
41316 "optional" : 1,
41317 "type" : "integer",
8dd66e12 41318 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
41319 }
41320 }
41321 },
41322 "permissions" : {
41323 "check" : [
41324 "perm",
41325 "/storage/{storage}",
41326 [
41327 "Datastore.Audit",
41328 "Datastore.AllocateSpace"
41329 ],
41330 "any",
41331 1
41332 ]
41333 },
41334 "protected" : 1,
41335 "proxyto" : "node",
41336 "returns" : {
41337 "items" : {
41338 "properties" : {
41339 "ctime" : {
41340 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
41341 "type" : "integer"
41342 },
41343 "mark" : {
5370fa8c
TL
41344 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
41345 "enum" : [
41346 "keep",
41347 "remove",
41348 "protected",
41349 "renamed"
41350 ],
739d4d64
TL
41351 "type" : "string"
41352 },
41353 "type" : {
41354 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
41355 "type" : "string"
41356 },
41357 "vmid" : {
41358 "description" : "The VM the backup belongs to.",
41359 "optional" : 1,
41360 "type" : "integer"
41361 },
41362 "volid" : {
41363 "description" : "Backup volume ID.",
41364 "type" : "string"
41365 }
41366 },
41367 "type" : "object"
41368 },
41369 "type" : "array"
41370 }
41371 }
41372 },
41373 "leaf" : 1,
41374 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
41375 "text" : "prunebackups"
41376 },
4d47f125
TL
41377 {
41378 "children" : [
41379 {
41380 "info" : {
41381 "DELETE" : {
e9cd3bd4 41382 "allowtoken" : 1,
4d47f125
TL
41383 "description" : "Delete volume",
41384 "method" : "DELETE",
41385 "name" : "delete",
41386 "parameters" : {
41387 "additionalProperties" : 0,
41388 "properties" : {
1c532546
TL
41389 "delay" : {
41390 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
41391 "maximum" : 30,
41392 "minimum" : 1,
41393 "optional" : 1,
41394 "type" : "integer",
41395 "typetext" : "<integer> (1 - 30)"
41396 },
4d47f125
TL
41397 "node" : {
41398 "description" : "The cluster node name.",
41399 "format" : "pve-node",
41400 "type" : "string",
41401 "typetext" : "<string>"
41402 },
41403 "storage" : {
41404 "description" : "The storage identifier.",
41405 "format" : "pve-storage-id",
41406 "optional" : 1,
41407 "type" : "string",
41408 "typetext" : "<string>"
41409 },
41410 "volume" : {
41411 "description" : "Volume identifier",
41412 "type" : "string",
41413 "typetext" : "<string>"
41414 }
41415 }
41416 },
41417 "permissions" : {
41418 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
41419 "user" : "all"
41420 },
41421 "protected" : 1,
41422 "proxyto" : "node",
41423 "returns" : {
1c532546
TL
41424 "optional" : 1,
41425 "type" : "string"
4d47f125
TL
41426 }
41427 },
41428 "GET" : {
e9cd3bd4 41429 "allowtoken" : 1,
4d47f125
TL
41430 "description" : "Get volume attributes",
41431 "method" : "GET",
41432 "name" : "info",
41433 "parameters" : {
41434 "additionalProperties" : 0,
41435 "properties" : {
41436 "node" : {
41437 "description" : "The cluster node name.",
41438 "format" : "pve-node",
41439 "type" : "string",
41440 "typetext" : "<string>"
41441 },
41442 "storage" : {
41443 "description" : "The storage identifier.",
41444 "format" : "pve-storage-id",
41445 "optional" : 1,
41446 "type" : "string",
41447 "typetext" : "<string>"
41448 },
41449 "volume" : {
41450 "description" : "Volume identifier",
41451 "type" : "string",
41452 "typetext" : "<string>"
41453 }
41454 }
41455 },
41456 "permissions" : {
41457 "description" : "You need read access for the volume.",
41458 "user" : "all"
41459 },
41460 "protected" : 1,
41461 "proxyto" : "node",
41462 "returns" : {
4772952b
TL
41463 "properties" : {
41464 "format" : {
41465 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
41466 "type" : "string"
41467 },
41468 "notes" : {
41469 "description" : "Optional notes.",
41470 "optional" : 1,
41471 "type" : "string"
41472 },
41473 "path" : {
41474 "description" : "The Path",
41475 "type" : "string"
41476 },
5370fa8c
TL
41477 "protected" : {
41478 "description" : "Protection status. Currently only supported for backups.",
41479 "optional" : 1,
41480 "type" : "boolean"
41481 },
4772952b
TL
41482 "size" : {
41483 "description" : "Volume size in bytes.",
41484 "renderer" : "bytes",
41485 "type" : "integer"
41486 },
41487 "used" : {
41488 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
41489 "renderer" : "bytes",
41490 "type" : "integer"
41491 }
41492 },
4d47f125
TL
41493 "type" : "object"
41494 }
41495 },
41496 "POST" : {
e9cd3bd4 41497 "allowtoken" : 1,
4d47f125
TL
41498 "description" : "Copy a volume. This is experimental code - do not use.",
41499 "method" : "POST",
41500 "name" : "copy",
41501 "parameters" : {
41502 "additionalProperties" : 0,
41503 "properties" : {
41504 "node" : {
41505 "description" : "The cluster node name.",
41506 "format" : "pve-node",
41507 "type" : "string",
41508 "typetext" : "<string>"
41509 },
41510 "storage" : {
41511 "description" : "The storage identifier.",
41512 "format" : "pve-storage-id",
41513 "optional" : 1,
41514 "type" : "string",
41515 "typetext" : "<string>"
41516 },
41517 "target" : {
41518 "description" : "Target volume identifier",
41519 "type" : "string",
41520 "typetext" : "<string>"
41521 },
41522 "target_node" : {
41523 "description" : "Target node. Default is local node.",
41524 "format" : "pve-node",
41525 "optional" : 1,
41526 "type" : "string",
41527 "typetext" : "<string>"
41528 },
41529 "volume" : {
41530 "description" : "Source volume identifier",
41531 "type" : "string",
41532 "typetext" : "<string>"
41533 }
41534 }
41535 },
41536 "protected" : 1,
41537 "proxyto" : "node",
41538 "returns" : {
41539 "type" : "string"
41540 }
4772952b
TL
41541 },
41542 "PUT" : {
41543 "allowtoken" : 1,
41544 "description" : "Update volume attributes",
41545 "method" : "PUT",
41546 "name" : "updateattributes",
41547 "parameters" : {
41548 "additionalProperties" : 0,
41549 "properties" : {
41550 "node" : {
41551 "description" : "The cluster node name.",
41552 "format" : "pve-node",
41553 "type" : "string",
41554 "typetext" : "<string>"
41555 },
41556 "notes" : {
41557 "description" : "The new notes.",
41558 "optional" : 1,
41559 "type" : "string",
41560 "typetext" : "<string>"
41561 },
5370fa8c
TL
41562 "protected" : {
41563 "description" : "Protection status. Currently only supported for backups.",
41564 "optional" : 1,
41565 "type" : "boolean",
41566 "typetext" : "<boolean>"
41567 },
4772952b
TL
41568 "storage" : {
41569 "description" : "The storage identifier.",
41570 "format" : "pve-storage-id",
41571 "optional" : 1,
41572 "type" : "string",
41573 "typetext" : "<string>"
41574 },
41575 "volume" : {
41576 "description" : "Volume identifier",
41577 "type" : "string",
41578 "typetext" : "<string>"
41579 }
41580 }
41581 },
41582 "permissions" : {
41583 "description" : "You need read access for the volume.",
41584 "user" : "all"
41585 },
41586 "protected" : 1,
41587 "proxyto" : "node",
41588 "returns" : {
41589 "type" : "null"
41590 }
4d47f125
TL
41591 }
41592 },
41593 "leaf" : 1,
41594 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
41595 "text" : "{volume}"
44660702 41596 }
4d47f125
TL
41597 ],
41598 "info" : {
41599 "GET" : {
e9cd3bd4 41600 "allowtoken" : 1,
4d47f125
TL
41601 "description" : "List storage content.",
41602 "method" : "GET",
41603 "name" : "index",
41604 "parameters" : {
41605 "additionalProperties" : 0,
41606 "properties" : {
41607 "content" : {
41608 "description" : "Only list content of this type.",
41609 "format" : "pve-storage-content",
41610 "optional" : 1,
41611 "type" : "string",
41612 "typetext" : "<string>"
41613 },
41614 "node" : {
41615 "description" : "The cluster node name.",
41616 "format" : "pve-node",
41617 "type" : "string",
41618 "typetext" : "<string>"
41619 },
41620 "storage" : {
41621 "description" : "The storage identifier.",
41622 "format" : "pve-storage-id",
41623 "type" : "string",
41624 "typetext" : "<string>"
41625 },
41626 "vmid" : {
41627 "description" : "Only list images for this VM",
41628 "format" : "pve-vmid",
8dd66e12
TL
41629 "maximum" : 999999999,
41630 "minimum" : 100,
4d47f125
TL
41631 "optional" : 1,
41632 "type" : "integer",
8dd66e12 41633 "typetext" : "<integer> (100 - 999999999)"
4d47f125 41634 }
56122987 41635 }
44660702 41636 },
4d47f125
TL
41637 "permissions" : {
41638 "check" : [
41639 "perm",
41640 "/storage/{storage}",
41641 [
41642 "Datastore.Audit",
41643 "Datastore.AllocateSpace"
41644 ],
41645 "any",
41646 1
41647 ]
7aacca6f 41648 },
4d47f125
TL
41649 "protected" : 1,
41650 "proxyto" : "node",
41651 "returns" : {
41652 "items" : {
41653 "properties" : {
c5aa7e14
TL
41654 "ctime" : {
41655 "description" : "Creation time (seconds since the UNIX Epoch).",
41656 "minimum" : 0,
41657 "optional" : 1,
41658 "type" : "integer"
41659 },
d2656385
TL
41660 "encrypted" : {
41661 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
41662 "optional" : 1,
41663 "type" : "string"
41664 },
4d47f125
TL
41665 "format" : {
41666 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
41667 "type" : "string"
41668 },
4772952b
TL
41669 "notes" : {
41670 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
41671 "optional" : 1,
41672 "type" : "string"
41673 },
4d47f125
TL
41674 "parent" : {
41675 "description" : "Volume identifier of parent (for linked cloned).",
41676 "optional" : 1,
41677 "type" : "string"
41678 },
5370fa8c
TL
41679 "protected" : {
41680 "description" : "Protection status. Currently only supported for backups.",
41681 "optional" : 1,
41682 "type" : "boolean"
41683 },
4d47f125
TL
41684 "size" : {
41685 "description" : "Volume size in bytes.",
41686 "renderer" : "bytes",
41687 "type" : "integer"
41688 },
41689 "used" : {
c5aa7e14 41690 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
41691 "optional" : 1,
41692 "renderer" : "bytes",
41693 "type" : "integer"
41694 },
4772952b
TL
41695 "verification" : {
41696 "description" : "Last backup verification result, only useful for PBS storages.",
41697 "optional" : 1,
41698 "properties" : {
41699 "state" : {
41700 "description" : "Last backup verification state.",
41701 "type" : "string"
41702 },
41703 "upid" : {
41704 "description" : "Last backup verification UPID.",
41705 "type" : "string"
41706 }
41707 },
41708 "type" : "object"
41709 },
4d47f125
TL
41710 "vmid" : {
41711 "description" : "Associated Owner VMID.",
41712 "optional" : 1,
41713 "type" : "integer"
41714 },
41715 "volid" : {
41716 "description" : "Volume identifier.",
41717 "type" : "string"
41718 }
41719 },
41720 "type" : "object"
44660702 41721 },
4d47f125
TL
41722 "links" : [
41723 {
41724 "href" : "{volid}",
41725 "rel" : "child"
41726 }
41727 ],
41728 "type" : "array"
41729 }
41730 },
41731 "POST" : {
e9cd3bd4 41732 "allowtoken" : 1,
4d47f125
TL
41733 "description" : "Allocate disk images.",
41734 "method" : "POST",
41735 "name" : "create",
41736 "parameters" : {
41737 "additionalProperties" : 0,
41738 "properties" : {
41739 "filename" : {
41740 "description" : "The name of the file to create.",
41741 "type" : "string",
41742 "typetext" : "<string>"
41743 },
41744 "format" : {
41745 "enum" : [
41746 "raw",
41747 "qcow2",
41748 "subvol"
41749 ],
41750 "optional" : 1,
41751 "requires" : "size",
41752 "type" : "string"
41753 },
41754 "node" : {
41755 "description" : "The cluster node name.",
41756 "format" : "pve-node",
41757 "type" : "string",
41758 "typetext" : "<string>"
41759 },
41760 "size" : {
41761 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
41762 "pattern" : "\\d+[MG]?",
41763 "type" : "string"
41764 },
41765 "storage" : {
41766 "description" : "The storage identifier.",
41767 "format" : "pve-storage-id",
41768 "type" : "string",
41769 "typetext" : "<string>"
41770 },
41771 "vmid" : {
41772 "description" : "Specify owner VM",
41773 "format" : "pve-vmid",
8dd66e12
TL
41774 "maximum" : 999999999,
41775 "minimum" : 100,
4d47f125 41776 "type" : "integer",
8dd66e12 41777 "typetext" : "<integer> (100 - 999999999)"
4d47f125 41778 }
44660702
DM
41779 }
41780 },
4d47f125
TL
41781 "permissions" : {
41782 "check" : [
41783 "perm",
41784 "/storage/{storage}",
41785 [
41786 "Datastore.AllocateSpace"
41787 ]
41788 ]
27a7acb2 41789 },
4d47f125
TL
41790 "protected" : 1,
41791 "proxyto" : "node",
41792 "returns" : {
41793 "description" : "Volume identifier",
41794 "type" : "string"
27a7acb2
DM
41795 }
41796 }
41797 },
4d47f125
TL
41798 "leaf" : 0,
41799 "path" : "/nodes/{node}/storage/{storage}/content",
41800 "text" : "content"
41801 },
d2656385
TL
41802 {
41803 "children" : [
41804 {
41805 "info" : {
41806 "GET" : {
41807 "allowtoken" : 1,
41808 "description" : "List files and directories for single file restore under the given path.",
41809 "method" : "GET",
41810 "name" : "list",
41811 "parameters" : {
41812 "additionalProperties" : 0,
41813 "properties" : {
41814 "filepath" : {
41815 "description" : "base64-path to the directory or file being listed, or \"/\".",
41816 "type" : "string",
41817 "typetext" : "<string>"
41818 },
41819 "node" : {
41820 "description" : "The cluster node name.",
41821 "format" : "pve-node",
41822 "type" : "string",
41823 "typetext" : "<string>"
41824 },
41825 "storage" : {
41826 "description" : "The storage identifier.",
41827 "format" : "pve-storage-id",
41828 "type" : "string",
41829 "typetext" : "<string>"
41830 },
41831 "volume" : {
41832 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
41833 "type" : "string",
41834 "typetext" : "<string>"
41835 }
41836 }
41837 },
41838 "permissions" : {
41839 "description" : "You need read access for the volume.",
41840 "user" : "all"
41841 },
41842 "protected" : 1,
41843 "proxyto" : "node",
41844 "returns" : {
41845 "items" : {
41846 "properties" : {
41847 "filepath" : {
41848 "description" : "base64 path of the current entry",
41849 "type" : "string"
41850 },
41851 "leaf" : {
41852 "description" : "If this entry is a leaf in the directory graph.",
41853 "type" : "boolean"
41854 },
41855 "mtime" : {
41856 "description" : "Entry last-modified time (unix timestamp).",
41857 "optional" : 1,
41858 "type" : "integer"
41859 },
41860 "size" : {
41861 "description" : "Entry file size.",
41862 "optional" : 1,
41863 "type" : "integer"
41864 },
41865 "text" : {
41866 "description" : "Entry display text.",
41867 "type" : "string"
41868 },
41869 "type" : {
41870 "description" : "Entry type.",
41871 "type" : "string"
41872 }
41873 },
41874 "type" : "object"
41875 },
41876 "type" : "array"
41877 }
41878 }
41879 },
41880 "leaf" : 1,
41881 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
41882 "text" : "list"
41883 },
41884 {
41885 "info" : {
41886 "GET" : {
41887 "allowtoken" : 1,
41888 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
41889 "method" : "GET",
41890 "name" : "download",
41891 "parameters" : {
41892 "additionalProperties" : 0,
41893 "properties" : {
41894 "filepath" : {
41895 "description" : "base64-path to the directory or file to download.",
41896 "type" : "string",
41897 "typetext" : "<string>"
41898 },
41899 "node" : {
41900 "description" : "The cluster node name.",
41901 "format" : "pve-node",
41902 "type" : "string",
41903 "typetext" : "<string>"
41904 },
41905 "storage" : {
41906 "description" : "The storage identifier.",
41907 "format" : "pve-storage-id",
41908 "type" : "string",
41909 "typetext" : "<string>"
41910 },
41911 "volume" : {
41912 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
41913 "type" : "string",
41914 "typetext" : "<string>"
41915 }
41916 }
41917 },
41918 "permissions" : {
41919 "description" : "You need read access for the volume.",
41920 "user" : "all"
41921 },
41922 "protected" : 1,
41923 "proxyto" : "node",
41924 "returns" : {
41925 "type" : "any"
41926 }
41927 }
41928 },
41929 "leaf" : 1,
41930 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
41931 "text" : "download"
41932 }
41933 ],
41934 "leaf" : 0,
41935 "path" : "/nodes/{node}/storage/{storage}/file-restore",
41936 "text" : "file-restore"
41937 },
4d47f125
TL
41938 {
41939 "info" : {
41940 "GET" : {
e9cd3bd4 41941 "allowtoken" : 1,
4d47f125
TL
41942 "description" : "Read storage status.",
41943 "method" : "GET",
41944 "name" : "read_status",
41945 "parameters" : {
41946 "additionalProperties" : 0,
41947 "properties" : {
41948 "node" : {
41949 "description" : "The cluster node name.",
41950 "format" : "pve-node",
41951 "type" : "string",
41952 "typetext" : "<string>"
41953 },
41954 "storage" : {
41955 "description" : "The storage identifier.",
41956 "format" : "pve-storage-id",
41957 "type" : "string",
41958 "typetext" : "<string>"
41959 }
27a7acb2
DM
41960 }
41961 },
4d47f125
TL
41962 "permissions" : {
41963 "check" : [
41964 "perm",
41965 "/storage/{storage}",
41966 [
41967 "Datastore.Audit",
41968 "Datastore.AllocateSpace"
41969 ],
41970 "any",
41971 1
41972 ]
7aacca6f 41973 },
4d47f125
TL
41974 "protected" : 1,
41975 "proxyto" : "node",
41976 "returns" : {
41977 "type" : "object"
56122987 41978 }
44660702
DM
41979 }
41980 },
4d47f125
TL
41981 "leaf" : 1,
41982 "path" : "/nodes/{node}/storage/{storage}/status",
41983 "text" : "status"
41984 },
41985 {
41986 "info" : {
41987 "GET" : {
e9cd3bd4 41988 "allowtoken" : 1,
4d47f125
TL
41989 "description" : "Read storage RRD statistics (returns PNG).",
41990 "method" : "GET",
41991 "name" : "rrd",
41992 "parameters" : {
41993 "additionalProperties" : 0,
41994 "properties" : {
41995 "cf" : {
41996 "description" : "The RRD consolidation function",
41997 "enum" : [
41998 "AVERAGE",
41999 "MAX"
42000 ],
42001 "optional" : 1,
42002 "type" : "string"
42003 },
42004 "ds" : {
42005 "description" : "The list of datasources you want to display.",
42006 "format" : "pve-configid-list",
42007 "type" : "string",
42008 "typetext" : "<string>"
42009 },
42010 "node" : {
42011 "description" : "The cluster node name.",
42012 "format" : "pve-node",
42013 "type" : "string",
42014 "typetext" : "<string>"
42015 },
42016 "storage" : {
42017 "description" : "The storage identifier.",
42018 "format" : "pve-storage-id",
42019 "type" : "string",
42020 "typetext" : "<string>"
42021 },
42022 "timeframe" : {
42023 "description" : "Specify the time frame you are interested in.",
42024 "enum" : [
42025 "hour",
42026 "day",
42027 "week",
42028 "month",
42029 "year"
42030 ],
42031 "type" : "string"
42032 }
44660702
DM
42033 }
42034 },
4d47f125
TL
42035 "permissions" : {
42036 "check" : [
42037 "perm",
42038 "/storage/{storage}",
42039 [
42040 "Datastore.Audit",
42041 "Datastore.AllocateSpace"
42042 ],
42043 "any",
42044 1
42045 ]
42046 },
42047 "protected" : 1,
42048 "proxyto" : "node",
42049 "returns" : {
42050 "properties" : {
42051 "filename" : {
42052 "type" : "string"
42053 }
42054 },
42055 "type" : "object"
44660702
DM
42056 }
42057 }
42058 },
4d47f125
TL
42059 "leaf" : 1,
42060 "path" : "/nodes/{node}/storage/{storage}/rrd",
42061 "text" : "rrd"
42062 },
42063 {
42064 "info" : {
42065 "GET" : {
e9cd3bd4 42066 "allowtoken" : 1,
4d47f125
TL
42067 "description" : "Read storage RRD statistics.",
42068 "method" : "GET",
42069 "name" : "rrddata",
42070 "parameters" : {
42071 "additionalProperties" : 0,
42072 "properties" : {
42073 "cf" : {
42074 "description" : "The RRD consolidation function",
42075 "enum" : [
42076 "AVERAGE",
42077 "MAX"
42078 ],
42079 "optional" : 1,
42080 "type" : "string"
42081 },
42082 "node" : {
42083 "description" : "The cluster node name.",
42084 "format" : "pve-node",
42085 "type" : "string",
42086 "typetext" : "<string>"
42087 },
42088 "storage" : {
42089 "description" : "The storage identifier.",
42090 "format" : "pve-storage-id",
42091 "type" : "string",
42092 "typetext" : "<string>"
42093 },
42094 "timeframe" : {
42095 "description" : "Specify the time frame you are interested in.",
42096 "enum" : [
42097 "hour",
42098 "day",
42099 "week",
42100 "month",
42101 "year"
42102 ],
42103 "type" : "string"
42104 }
56122987
DM
42105 }
42106 },
4d47f125
TL
42107 "permissions" : {
42108 "check" : [
42109 "perm",
42110 "/storage/{storage}",
42111 [
42112 "Datastore.Audit",
42113 "Datastore.AllocateSpace"
42114 ],
42115 "any",
42116 1
42117 ]
42118 },
42119 "protected" : 1,
42120 "proxyto" : "node",
42121 "returns" : {
42122 "items" : {
42123 "properties" : {},
42124 "type" : "object"
42125 },
42126 "type" : "array"
56122987 42127 }
7aacca6f 42128 }
56122987 42129 },
4d47f125
TL
42130 "leaf" : 1,
42131 "path" : "/nodes/{node}/storage/{storage}/rrddata",
42132 "text" : "rrddata"
42133 },
42134 {
42135 "info" : {
42136 "POST" : {
e9cd3bd4 42137 "allowtoken" : 1,
4d47f125
TL
42138 "description" : "Upload templates and ISO images.",
42139 "method" : "POST",
42140 "name" : "upload",
42141 "parameters" : {
42142 "additionalProperties" : 0,
42143 "properties" : {
5370fa8c
TL
42144 "checksum" : {
42145 "description" : "The expected checksum of the file.",
42146 "optional" : 1,
42147 "requires" : "checksum-algorithm",
42148 "type" : "string",
42149 "typetext" : "<string>"
42150 },
42151 "checksum-algorithm" : {
42152 "description" : "The algorithm to calculate the checksum of the file.",
42153 "enum" : [
42154 "md5",
42155 "sha1",
42156 "sha224",
42157 "sha256",
42158 "sha384",
42159 "sha512"
42160 ],
42161 "optional" : 1,
42162 "requires" : "checksum",
42163 "type" : "string"
42164 },
4d47f125
TL
42165 "content" : {
42166 "description" : "Content type.",
5370fa8c
TL
42167 "enum" : [
42168 "iso",
42169 "vztmpl"
42170 ],
4d47f125 42171 "format" : "pve-storage-content",
5370fa8c 42172 "type" : "string"
4d47f125
TL
42173 },
42174 "filename" : {
5370fa8c
TL
42175 "description" : "The name of the file to create. Caution: This will be normalized!",
42176 "maxLength" : 255,
4d47f125
TL
42177 "type" : "string",
42178 "typetext" : "<string>"
42179 },
42180 "node" : {
42181 "description" : "The cluster node name.",
42182 "format" : "pve-node",
42183 "type" : "string",
42184 "typetext" : "<string>"
42185 },
42186 "storage" : {
42187 "description" : "The storage identifier.",
42188 "format" : "pve-storage-id",
42189 "type" : "string",
42190 "typetext" : "<string>"
42191 },
42192 "tmpfilename" : {
1e3f8156 42193 "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 42194 "optional" : 1,
4a407cfd
TL
42195 "pattern" : "/var/tmp/pveupload-[0-9a-f]+",
42196 "type" : "string"
4d47f125 42197 }
44660702
DM
42198 }
42199 },
4d47f125
TL
42200 "permissions" : {
42201 "check" : [
42202 "perm",
42203 "/storage/{storage}",
42204 [
42205 "Datastore.AllocateTemplate"
42206 ]
42207 ]
56122987 42208 },
4d47f125
TL
42209 "protected" : 1,
42210 "returns" : {
44660702 42211 "type" : "string"
56122987 42212 }
44660702 42213 }
56122987 42214 },
4d47f125
TL
42215 "leaf" : 1,
42216 "path" : "/nodes/{node}/storage/{storage}/upload",
42217 "text" : "upload"
34f3e481
TL
42218 },
42219 {
42220 "info" : {
42221 "POST" : {
42222 "allowtoken" : 1,
42223 "description" : "Download templates and ISO images by using an URL.",
42224 "method" : "POST",
42225 "name" : "download_url",
42226 "parameters" : {
42227 "additionalProperties" : 0,
42228 "properties" : {
42229 "checksum" : {
42230 "description" : "The expected checksum of the file.",
42231 "optional" : 1,
42232 "requires" : "checksum-algorithm",
42233 "type" : "string",
42234 "typetext" : "<string>"
42235 },
42236 "checksum-algorithm" : {
42237 "description" : "The algorithm to calculate the checksum of the file.",
42238 "enum" : [
42239 "md5",
42240 "sha1",
42241 "sha224",
42242 "sha256",
42243 "sha384",
42244 "sha512"
42245 ],
42246 "optional" : 1,
42247 "requires" : "checksum",
42248 "type" : "string"
42249 },
42250 "content" : {
42251 "description" : "Content type.",
42252 "enum" : [
42253 "iso",
42254 "vztmpl"
42255 ],
42256 "format" : "pve-storage-content",
42257 "type" : "string"
42258 },
42259 "filename" : {
42260 "description" : "The name of the file to create. Caution: This will be normalized!",
42261 "maxLength" : 255,
42262 "type" : "string",
42263 "typetext" : "<string>"
42264 },
42265 "node" : {
42266 "description" : "The cluster node name.",
42267 "format" : "pve-node",
42268 "type" : "string",
42269 "typetext" : "<string>"
42270 },
42271 "storage" : {
42272 "description" : "The storage identifier.",
42273 "format" : "pve-storage-id",
42274 "type" : "string",
42275 "typetext" : "<string>"
42276 },
42277 "url" : {
42278 "description" : "The URL to download the file from.",
42279 "pattern" : "https?://.*",
42280 "type" : "string"
42281 },
42282 "verify-certificates" : {
42283 "default" : 1,
42284 "description" : "If false, no SSL/TLS certificates will be verified.",
42285 "optional" : 1,
42286 "type" : "boolean",
42287 "typetext" : "<boolean>"
42288 }
42289 }
42290 },
42291 "permissions" : {
42292 "check" : [
42293 "and",
42294 [
42295 "perm",
42296 "/storage/{storage}",
42297 [
42298 "Datastore.AllocateTemplate"
42299 ]
42300 ],
42301 [
42302 "perm",
42303 "/",
42304 [
42305 "Sys.Audit",
42306 "Sys.Modify"
42307 ]
42308 ]
42309 ]
42310 },
42311 "protected" : 1,
42312 "proxyto" : "node",
42313 "returns" : {
42314 "type" : "string"
42315 }
42316 }
42317 },
42318 "leaf" : 1,
42319 "path" : "/nodes/{node}/storage/{storage}/download-url",
42320 "text" : "download-url"
56122987 42321 }
4d47f125 42322 ],
56122987
DM
42323 "info" : {
42324 "GET" : {
e9cd3bd4 42325 "allowtoken" : 1,
4d47f125 42326 "description" : "",
44660702 42327 "method" : "GET",
4d47f125 42328 "name" : "diridx",
44660702
DM
42329 "parameters" : {
42330 "additionalProperties" : 0,
42331 "properties" : {
42332 "node" : {
42333 "description" : "The cluster node name.",
42334 "format" : "pve-node",
013dc89f
DM
42335 "type" : "string",
42336 "typetext" : "<string>"
4d47f125
TL
42337 },
42338 "storage" : {
42339 "description" : "The storage identifier.",
42340 "format" : "pve-storage-id",
42341 "type" : "string",
42342 "typetext" : "<string>"
44660702
DM
42343 }
42344 }
42345 },
7aacca6f
DM
42346 "permissions" : {
42347 "check" : [
42348 "perm",
4d47f125 42349 "/storage/{storage}",
7aacca6f 42350 [
4d47f125
TL
42351 "Datastore.Audit",
42352 "Datastore.AllocateSpace"
42353 ],
42354 "any",
42355 1
7aacca6f
DM
42356 ]
42357 },
56122987
DM
42358 "returns" : {
42359 "items" : {
42360 "properties" : {
4d47f125 42361 "subdir" : {
44660702 42362 "type" : "string"
56122987
DM
42363 }
42364 },
42365 "type" : "object"
7aacca6f 42366 },
4d47f125
TL
42367 "links" : [
42368 {
42369 "href" : "{subdir}",
42370 "rel" : "child"
42371 }
42372 ],
7aacca6f 42373 "type" : "array"
44660702
DM
42374 }
42375 }
42376 },
4d47f125
TL
42377 "leaf" : 0,
42378 "path" : "/nodes/{node}/storage/{storage}",
42379 "text" : "{storage}"
44660702
DM
42380 }
42381 ],
42382 "info" : {
42383 "GET" : {
e9cd3bd4 42384 "allowtoken" : 1,
4d47f125 42385 "description" : "Get status for all datastores.",
44660702
DM
42386 "method" : "GET",
42387 "name" : "index",
42388 "parameters" : {
42389 "additionalProperties" : 0,
42390 "properties" : {
4d47f125
TL
42391 "content" : {
42392 "description" : "Only list stores which support this content type.",
42393 "format" : "pve-storage-content-list",
42394 "optional" : 1,
42395 "type" : "string",
42396 "typetext" : "<string>"
42397 },
42398 "enabled" : {
42399 "default" : 0,
42400 "description" : "Only list stores which are enabled (not disabled in config).",
42401 "optional" : 1,
42402 "type" : "boolean",
42403 "typetext" : "<boolean>"
42404 },
42405 "format" : {
42406 "default" : 0,
42407 "description" : "Include information about formats",
42408 "optional" : 1,
42409 "type" : "boolean",
42410 "typetext" : "<boolean>"
42411 },
44660702
DM
42412 "node" : {
42413 "description" : "The cluster node name.",
42414 "format" : "pve-node",
013dc89f
DM
42415 "type" : "string",
42416 "typetext" : "<string>"
4d47f125
TL
42417 },
42418 "storage" : {
42419 "description" : "Only list status for specified storage",
42420 "format" : "pve-storage-id",
42421 "optional" : 1,
42422 "type" : "string",
42423 "typetext" : "<string>"
42424 },
42425 "target" : {
42426 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
42427 "format" : "pve-node",
42428 "optional" : 1,
42429 "type" : "string",
42430 "typetext" : "<string>"
44660702
DM
42431 }
42432 }
42433 },
4d47f125
TL
42434 "permissions" : {
42435 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
42436 "user" : "all"
42437 },
42438 "protected" : 1,
42439 "proxyto" : "node",
42440 "returns" : {
42441 "items" : {
42442 "properties" : {
42443 "active" : {
42444 "description" : "Set when storage is accessible.",
42445 "optional" : 1,
42446 "type" : "boolean"
42447 },
42448 "avail" : {
42449 "description" : "Available storage space in bytes.",
42450 "optional" : 1,
42451 "renderer" : "bytes",
42452 "type" : "integer"
42453 },
42454 "content" : {
42455 "description" : "Allowed storage content types.",
42456 "format" : "pve-storage-content-list",
42457 "type" : "string"
42458 },
42459 "enabled" : {
42460 "description" : "Set when storage is enabled (not disabled).",
42461 "optional" : 1,
42462 "type" : "boolean"
42463 },
42464 "shared" : {
42465 "description" : "Shared flag from storage configuration.",
42466 "optional" : 1,
42467 "type" : "boolean"
42468 },
42469 "storage" : {
42470 "description" : "The storage identifier.",
42471 "format" : "pve-storage-id",
42472 "type" : "string"
42473 },
42474 "total" : {
42475 "description" : "Total storage space in bytes.",
42476 "optional" : 1,
42477 "renderer" : "bytes",
42478 "type" : "integer"
42479 },
42480 "type" : {
42481 "description" : "Storage type.",
42482 "type" : "string"
42483 },
42484 "used" : {
42485 "description" : "Used storage space in bytes.",
42486 "optional" : 1,
42487 "renderer" : "bytes",
42488 "type" : "integer"
42489 },
42490 "used_fraction" : {
42491 "description" : "Used fraction (used/total).",
42492 "optional" : 1,
42493 "renderer" : "fraction_as_percentage",
42494 "type" : "number"
7aacca6f 42495 }
4d47f125
TL
42496 },
42497 "type" : "object"
42498 },
42499 "links" : [
42500 {
42501 "href" : "{storage}",
42502 "rel" : "child"
42503 }
42504 ],
42505 "type" : "array"
42506 }
42507 }
42508 },
42509 "leaf" : 0,
42510 "path" : "/nodes/{node}/storage",
42511 "text" : "storage"
42512 },
42513 {
42514 "children" : [
42515 {
5370fa8c
TL
42516 "children" : [
42517 {
42518 "info" : {
42519 "DELETE" : {
42520 "allowtoken" : 1,
42521 "description" : "Remove an LVM Volume Group.",
42522 "method" : "DELETE",
42523 "name" : "delete",
42524 "parameters" : {
42525 "additionalProperties" : 0,
42526 "properties" : {
42527 "cleanup-config" : {
42528 "default" : 0,
42529 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
42530 "optional" : 1,
42531 "type" : "boolean",
42532 "typetext" : "<boolean>"
42533 },
42534 "cleanup-disks" : {
42535 "default" : 0,
42536 "description" : "Also wipe disks so they can be repurposed afterwards.",
42537 "optional" : 1,
42538 "type" : "boolean",
42539 "typetext" : "<boolean>"
42540 },
42541 "name" : {
42542 "description" : "The storage identifier.",
42543 "format" : "pve-storage-id",
42544 "type" : "string",
42545 "typetext" : "<string>"
42546 },
42547 "node" : {
42548 "description" : "The cluster node name.",
42549 "format" : "pve-node",
42550 "type" : "string",
42551 "typetext" : "<string>"
42552 }
42553 }
42554 },
42555 "permissions" : {
42556 "check" : [
42557 "perm",
42558 "/",
42559 [
499c9b7f 42560 "Sys.Modify"
5370fa8c 42561 ]
499c9b7f
TL
42562 ],
42563 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
42564 },
42565 "protected" : 1,
42566 "proxyto" : "node",
42567 "returns" : {
42568 "type" : "string"
42569 }
42570 }
42571 },
42572 "leaf" : 1,
42573 "path" : "/nodes/{node}/disks/lvm/{name}",
42574 "text" : "{name}"
42575 }
42576 ],
4d47f125
TL
42577 "info" : {
42578 "GET" : {
e9cd3bd4 42579 "allowtoken" : 1,
4d47f125
TL
42580 "description" : "List LVM Volume Groups",
42581 "method" : "GET",
42582 "name" : "index",
42583 "parameters" : {
42584 "additionalProperties" : 0,
42585 "properties" : {
42586 "node" : {
42587 "description" : "The cluster node name.",
42588 "format" : "pve-node",
42589 "type" : "string",
42590 "typetext" : "<string>"
42591 }
42592 }
42593 },
42594 "permissions" : {
42595 "check" : [
42596 "perm",
42597 "/",
42598 [
8dd66e12
TL
42599 "Sys.Audit"
42600 ]
4d47f125
TL
42601 ]
42602 },
42603 "protected" : 1,
42604 "proxyto" : "node",
42605 "returns" : {
42606 "properties" : {
42607 "children" : {
44660702
DM
42608 "items" : {
42609 "properties" : {
4d47f125
TL
42610 "children" : {
42611 "description" : "The underlying physical volumes",
42612 "items" : {
42613 "properties" : {
42614 "free" : {
42615 "description" : "The free bytes in the physical volume",
42616 "type" : "integer"
42617 },
42618 "leaf" : {
42619 "type" : "boolean"
42620 },
42621 "name" : {
42622 "description" : "The name of the physical volume",
42623 "type" : "string"
42624 },
42625 "size" : {
42626 "description" : "The size of the physical volume in bytes",
42627 "type" : "integer"
42628 }
42629 },
42630 "type" : "object"
42631 },
42632 "optional" : 1,
42633 "type" : "array"
42634 },
42635 "free" : {
42636 "description" : "The free bytes in the volume group",
42637 "type" : "integer"
42638 },
42639 "leaf" : {
42640 "type" : "boolean"
42641 },
42642 "name" : {
42643 "description" : "The name of the volume group",
44660702 42644 "type" : "string"
4d47f125
TL
42645 },
42646 "size" : {
42647 "description" : "The size of the volume group in bytes",
42648 "type" : "integer"
44660702
DM
42649 }
42650 },
42651 "type" : "object"
42652 },
44660702 42653 "type" : "array"
4d47f125
TL
42654 },
42655 "leaf" : {
42656 "type" : "boolean"
44660702
DM
42657 }
42658 },
4d47f125
TL
42659 "type" : "object"
42660 }
42661 },
42662 "POST" : {
e9cd3bd4 42663 "allowtoken" : 1,
4d47f125
TL
42664 "description" : "Create an LVM Volume Group",
42665 "method" : "POST",
42666 "name" : "create",
42667 "parameters" : {
42668 "additionalProperties" : 0,
42669 "properties" : {
42670 "add_storage" : {
42671 "default" : 0,
42672 "description" : "Configure storage using the Volume Group",
42673 "optional" : 1,
42674 "type" : "boolean",
42675 "typetext" : "<boolean>"
44660702 42676 },
4d47f125
TL
42677 "device" : {
42678 "description" : "The block device you want to create the volume group on",
42679 "type" : "string",
42680 "typetext" : "<string>"
44660702 42681 },
4d47f125
TL
42682 "name" : {
42683 "description" : "The storage identifier.",
42684 "format" : "pve-storage-id",
42685 "type" : "string",
42686 "typetext" : "<string>"
42687 },
42688 "node" : {
42689 "description" : "The cluster node name.",
42690 "format" : "pve-node",
42691 "type" : "string",
42692 "typetext" : "<string>"
42693 }
42694 }
42695 },
42696 "permissions" : {
42697 "check" : [
42698 "perm",
42699 "/",
42700 [
499c9b7f 42701 "Sys.Modify"
4d47f125 42702 ]
499c9b7f
TL
42703 ],
42704 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
42705 },
42706 "protected" : 1,
42707 "proxyto" : "node",
42708 "returns" : {
42709 "type" : "string"
42710 }
42711 }
42712 },
5370fa8c 42713 "leaf" : 0,
4d47f125
TL
42714 "path" : "/nodes/{node}/disks/lvm",
42715 "text" : "lvm"
42716 },
42717 {
5370fa8c
TL
42718 "children" : [
42719 {
42720 "info" : {
42721 "DELETE" : {
42722 "allowtoken" : 1,
42723 "description" : "Remove an LVM thin pool.",
42724 "method" : "DELETE",
42725 "name" : "delete",
42726 "parameters" : {
42727 "additionalProperties" : 0,
42728 "properties" : {
42729 "cleanup-config" : {
42730 "default" : 0,
42731 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
42732 "optional" : 1,
42733 "type" : "boolean",
42734 "typetext" : "<boolean>"
42735 },
42736 "cleanup-disks" : {
42737 "default" : 0,
42738 "description" : "Also wipe disks so they can be repurposed afterwards.",
42739 "optional" : 1,
42740 "type" : "boolean",
42741 "typetext" : "<boolean>"
42742 },
42743 "name" : {
42744 "description" : "The storage identifier.",
42745 "format" : "pve-storage-id",
42746 "type" : "string",
42747 "typetext" : "<string>"
42748 },
42749 "node" : {
42750 "description" : "The cluster node name.",
42751 "format" : "pve-node",
42752 "type" : "string",
42753 "typetext" : "<string>"
42754 },
42755 "volume-group" : {
42756 "description" : "The storage identifier.",
42757 "format" : "pve-storage-id",
42758 "type" : "string",
42759 "typetext" : "<string>"
42760 }
42761 }
42762 },
42763 "permissions" : {
42764 "check" : [
42765 "perm",
42766 "/",
42767 [
499c9b7f 42768 "Sys.Modify"
5370fa8c 42769 ]
499c9b7f
TL
42770 ],
42771 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
42772 },
42773 "protected" : 1,
42774 "proxyto" : "node",
42775 "returns" : {
42776 "type" : "string"
42777 }
42778 }
42779 },
42780 "leaf" : 1,
42781 "path" : "/nodes/{node}/disks/lvmthin/{name}",
42782 "text" : "{name}"
42783 }
42784 ],
4d47f125
TL
42785 "info" : {
42786 "GET" : {
e9cd3bd4 42787 "allowtoken" : 1,
4d47f125
TL
42788 "description" : "List LVM thinpools",
42789 "method" : "GET",
42790 "name" : "index",
42791 "parameters" : {
42792 "additionalProperties" : 0,
42793 "properties" : {
42794 "node" : {
42795 "description" : "The cluster node name.",
42796 "format" : "pve-node",
42797 "type" : "string",
42798 "typetext" : "<string>"
44660702
DM
42799 }
42800 }
42801 },
4d47f125
TL
42802 "permissions" : {
42803 "check" : [
42804 "perm",
42805 "/",
42806 [
8dd66e12
TL
42807 "Sys.Audit"
42808 ]
4d47f125
TL
42809 ]
42810 },
42811 "protected" : 1,
42812 "proxyto" : "node",
42813 "returns" : {
42814 "items" : {
42815 "properties" : {
42816 "lv" : {
42817 "description" : "The name of the thinpool.",
42818 "type" : "string"
42819 },
42820 "lv_size" : {
42821 "description" : "The size of the thinpool in bytes.",
42822 "type" : "integer"
42823 },
42824 "metadata_size" : {
42825 "description" : "The size of the metadata lv in bytes.",
42826 "type" : "integer"
42827 },
42828 "metadata_used" : {
42829 "description" : "The used bytes of the metadata lv.",
42830 "type" : "integer"
42831 },
42832 "used" : {
42833 "description" : "The used bytes of the thinpool.",
42834 "type" : "integer"
5370fa8c
TL
42835 },
42836 "vg" : {
42837 "description" : "The associated volume group.",
42838 "type" : "string"
44660702
DM
42839 }
42840 },
4d47f125
TL
42841 "type" : "object"
42842 },
42843 "type" : "array"
42844 }
42845 },
42846 "POST" : {
e9cd3bd4 42847 "allowtoken" : 1,
4d47f125
TL
42848 "description" : "Create an LVM thinpool",
42849 "method" : "POST",
42850 "name" : "create",
42851 "parameters" : {
42852 "additionalProperties" : 0,
42853 "properties" : {
42854 "add_storage" : {
42855 "default" : 0,
42856 "description" : "Configure storage using the thinpool.",
42857 "optional" : 1,
42858 "type" : "boolean",
42859 "typetext" : "<boolean>"
56122987 42860 },
4d47f125
TL
42861 "device" : {
42862 "description" : "The block device you want to create the thinpool on.",
42863 "type" : "string",
42864 "typetext" : "<string>"
42865 },
42866 "name" : {
42867 "description" : "The storage identifier.",
42868 "format" : "pve-storage-id",
42869 "type" : "string",
42870 "typetext" : "<string>"
42871 },
42872 "node" : {
42873 "description" : "The cluster node name.",
42874 "format" : "pve-node",
42875 "type" : "string",
42876 "typetext" : "<string>"
44660702 42877 }
56122987
DM
42878 }
42879 },
4d47f125
TL
42880 "permissions" : {
42881 "check" : [
42882 "perm",
42883 "/",
42884 [
499c9b7f 42885 "Sys.Modify"
4d47f125 42886 ]
499c9b7f
TL
42887 ],
42888 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
42889 },
42890 "protected" : 1,
42891 "proxyto" : "node",
42892 "returns" : {
42893 "type" : "string"
42894 }
42895 }
42896 },
5370fa8c 42897 "leaf" : 0,
4d47f125
TL
42898 "path" : "/nodes/{node}/disks/lvmthin",
42899 "text" : "lvmthin"
42900 },
42901 {
5370fa8c
TL
42902 "children" : [
42903 {
42904 "info" : {
42905 "DELETE" : {
42906 "allowtoken" : 1,
42907 "description" : "Unmounts the storage and removes the mount unit.",
42908 "method" : "DELETE",
42909 "name" : "delete",
42910 "parameters" : {
42911 "additionalProperties" : 0,
42912 "properties" : {
42913 "cleanup-config" : {
42914 "default" : 0,
42915 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
42916 "optional" : 1,
42917 "type" : "boolean",
42918 "typetext" : "<boolean>"
42919 },
42920 "cleanup-disks" : {
42921 "default" : 0,
42922 "description" : "Also wipe disk so it can be repurposed afterwards.",
42923 "optional" : 1,
42924 "type" : "boolean",
42925 "typetext" : "<boolean>"
42926 },
42927 "name" : {
42928 "description" : "The storage identifier.",
42929 "format" : "pve-storage-id",
42930 "type" : "string",
42931 "typetext" : "<string>"
42932 },
42933 "node" : {
42934 "description" : "The cluster node name.",
42935 "format" : "pve-node",
42936 "type" : "string",
42937 "typetext" : "<string>"
42938 }
42939 }
42940 },
42941 "permissions" : {
42942 "check" : [
42943 "perm",
42944 "/",
42945 [
499c9b7f 42946 "Sys.Modify"
5370fa8c 42947 ]
499c9b7f
TL
42948 ],
42949 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
42950 },
42951 "protected" : 1,
42952 "proxyto" : "node",
42953 "returns" : {
42954 "type" : "string"
42955 }
42956 }
42957 },
42958 "leaf" : 1,
42959 "path" : "/nodes/{node}/disks/directory/{name}",
42960 "text" : "{name}"
42961 }
42962 ],
4d47f125
TL
42963 "info" : {
42964 "GET" : {
e9cd3bd4 42965 "allowtoken" : 1,
4d47f125
TL
42966 "description" : "PVE Managed Directory storages.",
42967 "method" : "GET",
42968 "name" : "index",
42969 "parameters" : {
42970 "additionalProperties" : 0,
42971 "properties" : {
42972 "node" : {
42973 "description" : "The cluster node name.",
42974 "format" : "pve-node",
42975 "type" : "string",
42976 "typetext" : "<string>"
42977 }
42978 }
42979 },
42980 "permissions" : {
42981 "check" : [
42982 "perm",
42983 "/",
42984 [
8dd66e12
TL
42985 "Sys.Audit"
42986 ]
4d47f125
TL
42987 ]
42988 },
42989 "protected" : 1,
42990 "proxyto" : "node",
42991 "returns" : {
42992 "items" : {
42993 "properties" : {
42994 "device" : {
42995 "description" : "The mounted device.",
42996 "type" : "string"
42997 },
42998 "options" : {
42999 "description" : "The mount options.",
43000 "type" : "string"
43001 },
43002 "path" : {
43003 "description" : "The mount path.",
43004 "type" : "string"
43005 },
43006 "type" : {
43007 "description" : "The filesystem type.",
43008 "type" : "string"
43009 },
43010 "unitfile" : {
43011 "description" : "The path of the mount unit.",
43012 "type" : "string"
44660702 43013 }
56122987 43014 },
4d47f125
TL
43015 "type" : "object"
43016 },
43017 "type" : "array"
43018 }
43019 },
43020 "POST" : {
e9cd3bd4 43021 "allowtoken" : 1,
4d47f125
TL
43022 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
43023 "method" : "POST",
43024 "name" : "create",
43025 "parameters" : {
43026 "additionalProperties" : 0,
43027 "properties" : {
43028 "add_storage" : {
43029 "default" : 0,
43030 "description" : "Configure storage using the directory.",
43031 "optional" : 1,
43032 "type" : "boolean",
43033 "typetext" : "<boolean>"
43034 },
43035 "device" : {
43036 "description" : "The block device you want to create the filesystem on.",
43037 "type" : "string",
43038 "typetext" : "<string>"
43039 },
43040 "filesystem" : {
43041 "default" : "ext4",
43042 "description" : "The desired filesystem.",
43043 "enum" : [
43044 "ext4",
43045 "xfs"
43046 ],
43047 "optional" : 1,
43048 "type" : "string"
56122987 43049 },
4d47f125
TL
43050 "name" : {
43051 "description" : "The storage identifier.",
43052 "format" : "pve-storage-id",
43053 "type" : "string",
43054 "typetext" : "<string>"
43055 },
43056 "node" : {
43057 "description" : "The cluster node name.",
43058 "format" : "pve-node",
43059 "type" : "string",
43060 "typetext" : "<string>"
7aacca6f 43061 }
56122987
DM
43062 }
43063 },
4d47f125
TL
43064 "permissions" : {
43065 "check" : [
43066 "perm",
43067 "/",
43068 [
499c9b7f 43069 "Sys.Modify"
4d47f125 43070 ]
499c9b7f
TL
43071 ],
43072 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
43073 },
43074 "protected" : 1,
43075 "proxyto" : "node",
43076 "returns" : {
43077 "type" : "string"
43078 }
43079 }
43080 },
5370fa8c 43081 "leaf" : 0,
4d47f125
TL
43082 "path" : "/nodes/{node}/disks/directory",
43083 "text" : "directory"
43084 },
43085 {
43086 "children" : [
56122987 43087 {
56122987 43088 "info" : {
5370fa8c
TL
43089 "DELETE" : {
43090 "allowtoken" : 1,
43091 "description" : "Destroy a ZFS pool.",
43092 "method" : "DELETE",
43093 "name" : "delete",
43094 "parameters" : {
43095 "additionalProperties" : 0,
43096 "properties" : {
43097 "cleanup-config" : {
43098 "default" : 0,
43099 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
43100 "optional" : 1,
43101 "type" : "boolean",
43102 "typetext" : "<boolean>"
43103 },
43104 "cleanup-disks" : {
43105 "default" : 0,
43106 "description" : "Also wipe disks so they can be repurposed afterwards.",
43107 "optional" : 1,
43108 "type" : "boolean",
43109 "typetext" : "<boolean>"
43110 },
43111 "name" : {
43112 "description" : "The storage identifier.",
43113 "format" : "pve-storage-id",
43114 "type" : "string",
43115 "typetext" : "<string>"
43116 },
43117 "node" : {
43118 "description" : "The cluster node name.",
43119 "format" : "pve-node",
43120 "type" : "string",
43121 "typetext" : "<string>"
43122 }
43123 }
43124 },
43125 "permissions" : {
43126 "check" : [
43127 "perm",
43128 "/",
43129 [
8dd66e12 43130 "Sys.Modify"
5370fa8c 43131 ]
499c9b7f
TL
43132 ],
43133 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
43134 },
43135 "protected" : 1,
43136 "proxyto" : "node",
43137 "returns" : {
43138 "type" : "string"
43139 }
43140 },
56122987 43141 "GET" : {
e9cd3bd4 43142 "allowtoken" : 1,
4d47f125 43143 "description" : "Get details about a zpool.",
44660702 43144 "method" : "GET",
4d47f125 43145 "name" : "detail",
56122987 43146 "parameters" : {
44660702 43147 "additionalProperties" : 0,
56122987 43148 "properties" : {
4d47f125
TL
43149 "name" : {
43150 "description" : "The storage identifier.",
43151 "format" : "pve-storage-id",
43152 "type" : "string",
43153 "typetext" : "<string>"
44660702 43154 },
7aacca6f 43155 "node" : {
7aacca6f 43156 "description" : "The cluster node name.",
44660702 43157 "format" : "pve-node",
013dc89f
DM
43158 "type" : "string",
43159 "typetext" : "<string>"
56122987 43160 }
44660702 43161 }
7aacca6f 43162 },
7aacca6f
DM
43163 "permissions" : {
43164 "check" : [
43165 "perm",
4d47f125 43166 "/",
7aacca6f 43167 [
8dd66e12
TL
43168 "Sys.Audit"
43169 ]
7aacca6f
DM
43170 ]
43171 },
44660702
DM
43172 "protected" : 1,
43173 "proxyto" : "node",
7aacca6f 43174 "returns" : {
56122987 43175 "properties" : {
4d47f125
TL
43176 "action" : {
43177 "description" : "Information about the recommended action to fix the state.",
43178 "optional" : 1,
43179 "type" : "string"
56122987 43180 },
4d47f125 43181 "children" : {
e2d681b3 43182 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
43183 "items" : {
43184 "properties" : {
43185 "cksum" : {
e2d681b3 43186 "optional" : 1,
4d47f125
TL
43187 "type" : "number"
43188 },
43189 "msg" : {
43190 "description" : "An optional message about the vdev.",
43191 "type" : "string"
43192 },
43193 "name" : {
e2d681b3 43194 "description" : "The name of the vdev or section.",
4d47f125
TL
43195 "type" : "string"
43196 },
43197 "read" : {
e2d681b3 43198 "optional" : 1,
4d47f125
TL
43199 "type" : "number"
43200 },
43201 "state" : {
43202 "description" : "The state of the vdev.",
e2d681b3 43203 "optional" : 1,
4d47f125
TL
43204 "type" : "string"
43205 },
43206 "write" : {
e2d681b3 43207 "optional" : 1,
4d47f125
TL
43208 "type" : "number"
43209 }
43210 },
43211 "type" : "object"
43212 },
43213 "type" : "array"
56122987 43214 },
e2d681b3
TL
43215 "errors" : {
43216 "description" : "Information about the errors on the zpool.",
43217 "type" : "string"
43218 },
4d47f125
TL
43219 "name" : {
43220 "description" : "The name of the zpool.",
43221 "type" : "string"
44660702 43222 },
4d47f125 43223 "scan" : {
e2d681b3 43224 "description" : "Information about the last/current scrub.",
d2656385 43225 "optional" : 1,
4d47f125 43226 "type" : "string"
44660702 43227 },
4d47f125
TL
43228 "state" : {
43229 "description" : "The state of the zpool.",
43230 "type" : "string"
43231 },
43232 "status" : {
43233 "description" : "Information about the state of the zpool.",
44660702 43234 "optional" : 1,
4d47f125 43235 "type" : "string"
56122987 43236 }
4d47f125
TL
43237 },
43238 "type" : "object"
44660702
DM
43239 }
43240 }
43241 },
43242 "leaf" : 1,
4d47f125
TL
43243 "path" : "/nodes/{node}/disks/zfs/{name}",
43244 "text" : "{name}"
44660702
DM
43245 }
43246 ],
43247 "info" : {
43248 "GET" : {
e9cd3bd4 43249 "allowtoken" : 1,
4d47f125 43250 "description" : "List Zpools.",
44660702 43251 "method" : "GET",
4d47f125 43252 "name" : "index",
44660702
DM
43253 "parameters" : {
43254 "additionalProperties" : 0,
43255 "properties" : {
43256 "node" : {
43257 "description" : "The cluster node name.",
43258 "format" : "pve-node",
013dc89f
DM
43259 "type" : "string",
43260 "typetext" : "<string>"
4d47f125
TL
43261 }
43262 }
43263 },
43264 "permissions" : {
43265 "check" : [
43266 "perm",
43267 "/",
43268 [
8dd66e12
TL
43269 "Sys.Audit"
43270 ]
4d47f125
TL
43271 ]
43272 },
43273 "protected" : 1,
43274 "proxyto" : "node",
43275 "returns" : {
43276 "items" : {
43277 "properties" : {
43278 "alloc" : {
43279 "description" : "",
43280 "type" : "integer"
43281 },
43282 "dedup" : {
43283 "description" : "",
43284 "type" : "number"
43285 },
43286 "frag" : {
43287 "description" : "",
43288 "type" : "integer"
43289 },
43290 "free" : {
43291 "description" : "",
43292 "type" : "integer"
43293 },
43294 "health" : {
43295 "description" : "",
43296 "type" : "string"
43297 },
43298 "name" : {
43299 "description" : "",
43300 "type" : "string"
43301 },
43302 "size" : {
43303 "description" : "",
43304 "type" : "integer"
43305 }
43306 },
43307 "type" : "object"
43308 },
43309 "links" : [
43310 {
43311 "href" : "{name}",
43312 "rel" : "child"
43313 }
43314 ],
43315 "type" : "array"
43316 }
43317 },
43318 "POST" : {
e9cd3bd4 43319 "allowtoken" : 1,
4d47f125
TL
43320 "description" : "Create a ZFS pool.",
43321 "method" : "POST",
43322 "name" : "create",
43323 "parameters" : {
43324 "additionalProperties" : 0,
43325 "properties" : {
43326 "add_storage" : {
43327 "default" : 0,
43328 "description" : "Configure storage using the zpool.",
43329 "optional" : 1,
43330 "type" : "boolean",
43331 "typetext" : "<boolean>"
43332 },
43333 "ashift" : {
43334 "default" : 12,
43335 "description" : "Pool sector size exponent.",
43336 "maximum" : 16,
43337 "minimum" : 9,
43338 "optional" : 1,
43339 "type" : "integer",
43340 "typetext" : "<integer> (9 - 16)"
43341 },
43342 "compression" : {
43343 "default" : "on",
43344 "description" : "The compression algorithm to use.",
43345 "enum" : [
43346 "on",
43347 "off",
43348 "gzip",
43349 "lz4",
43350 "lzjb",
5370fa8c
TL
43351 "zle",
43352 "zstd"
4d47f125
TL
43353 ],
43354 "optional" : 1,
43355 "type" : "string"
43356 },
43357 "devices" : {
43358 "description" : "The block devices you want to create the zpool on.",
43359 "format" : "string-list",
43360 "type" : "string",
43361 "typetext" : "<string>"
44660702 43362 },
81a3384d
TL
43363 "draid-config" : {
43364 "format" : {
43365 "data" : {
43366 "description" : "The number of data devices per redundancy group. (dRAID)",
43367 "minimum" : 1,
43368 "type" : "integer"
43369 },
43370 "spares" : {
43371 "description" : "Number of dRAID spares.",
43372 "minimum" : 0,
43373 "type" : "integer"
43374 }
43375 },
43376 "optional" : 1,
43377 "type" : "string",
43378 "typetext" : "data=<integer> ,spares=<integer>"
43379 },
4d47f125 43380 "name" : {
44660702
DM
43381 "description" : "The storage identifier.",
43382 "format" : "pve-storage-id",
013dc89f
DM
43383 "type" : "string",
43384 "typetext" : "<string>"
4d47f125
TL
43385 },
43386 "node" : {
43387 "description" : "The cluster node name.",
43388 "format" : "pve-node",
43389 "type" : "string",
43390 "typetext" : "<string>"
43391 },
43392 "raidlevel" : {
43393 "description" : "The RAID level to use.",
43394 "enum" : [
43395 "single",
43396 "mirror",
43397 "raid10",
43398 "raidz",
43399 "raidz2",
81a3384d
TL
43400 "raidz3",
43401 "draid",
43402 "draid2",
43403 "draid3"
4d47f125
TL
43404 ],
43405 "type" : "string"
56122987
DM
43406 }
43407 }
44660702
DM
43408 },
43409 "permissions" : {
43410 "check" : [
43411 "perm",
4d47f125 43412 "/",
44660702 43413 [
8dd66e12 43414 "Sys.Modify"
4d47f125 43415 ]
499c9b7f
TL
43416 ],
43417 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
44660702 43418 },
4d47f125
TL
43419 "protected" : 1,
43420 "proxyto" : "node",
44660702 43421 "returns" : {
4d47f125 43422 "type" : "string"
56122987
DM
43423 }
43424 }
44660702
DM
43425 },
43426 "leaf" : 0,
4d47f125
TL
43427 "path" : "/nodes/{node}/disks/zfs",
43428 "text" : "zfs"
43429 },
2c0dde61
DM
43430 {
43431 "info" : {
43432 "GET" : {
e9cd3bd4 43433 "allowtoken" : 1,
2c0dde61
DM
43434 "description" : "List local disks.",
43435 "method" : "GET",
43436 "name" : "list",
43437 "parameters" : {
43438 "additionalProperties" : 0,
43439 "properties" : {
d2656385
TL
43440 "include-partitions" : {
43441 "default" : 0,
43442 "description" : "Also include partitions.",
43443 "optional" : 1,
43444 "type" : "boolean",
43445 "typetext" : "<boolean>"
43446 },
2c0dde61
DM
43447 "node" : {
43448 "description" : "The cluster node name.",
43449 "format" : "pve-node",
013dc89f
DM
43450 "type" : "string",
43451 "typetext" : "<string>"
4d47f125
TL
43452 },
43453 "skipsmart" : {
43454 "default" : 0,
43455 "description" : "Skip smart checks.",
43456 "optional" : 1,
43457 "type" : "boolean",
43458 "typetext" : "<boolean>"
43459 },
43460 "type" : {
43461 "description" : "Only list specific types of disks.",
43462 "enum" : [
43463 "unused",
43464 "journal_disks"
43465 ],
43466 "optional" : 1,
43467 "type" : "string"
2c0dde61
DM
43468 }
43469 }
43470 },
43471 "permissions" : {
43472 "check" : [
d2656385 43473 "or",
2c0dde61 43474 [
d2656385
TL
43475 "perm",
43476 "/",
43477 [
8dd66e12
TL
43478 "Sys.Audit"
43479 ]
2c0dde61 43480 ],
d2656385
TL
43481 [
43482 "perm",
43483 "/nodes/{node}",
43484 [
8dd66e12
TL
43485 "Sys.Audit"
43486 ]
d2656385 43487 ]
2c0dde61
DM
43488 ]
43489 },
43490 "protected" : 1,
43491 "proxyto" : "node",
43492 "returns" : {
43493 "items" : {
43494 "properties" : {
43495 "devpath" : {
43496 "description" : "The device path",
43497 "type" : "string"
43498 },
43499 "gpt" : {
43500 "type" : "boolean"
43501 },
43502 "health" : {
43503 "optional" : 1,
43504 "type" : "string"
43505 },
43506 "model" : {
43507 "optional" : 1,
43508 "type" : "string"
43509 },
de786b48
TL
43510 "mounted" : {
43511 "type" : "boolean"
43512 },
2c0dde61
DM
43513 "osdid" : {
43514 "type" : "integer"
43515 },
d2656385
TL
43516 "parent" : {
43517 "description" : "For partitions only. The device path of the disk the partition resides on.",
43518 "optional" : 1,
43519 "type" : "string"
43520 },
2c0dde61
DM
43521 "serial" : {
43522 "optional" : 1,
43523 "type" : "string"
43524 },
43525 "size" : {
43526 "type" : "integer"
43527 },
43528 "used" : {
43529 "optional" : 1,
43530 "type" : "string"
43531 },
43532 "vendor" : {
43533 "optional" : 1,
43534 "type" : "string"
43535 },
43536 "wwn" : {
43537 "optional" : 1,
43538 "type" : "string"
43539 }
43540 },
43541 "type" : "object"
43542 },
43543 "type" : "array"
43544 }
43545 }
43546 },
43547 "leaf" : 1,
43548 "path" : "/nodes/{node}/disks/list",
43549 "text" : "list"
43550 },
43551 {
43552 "info" : {
43553 "GET" : {
e9cd3bd4 43554 "allowtoken" : 1,
2c0dde61
DM
43555 "description" : "Get SMART Health of a disk.",
43556 "method" : "GET",
43557 "name" : "smart",
43558 "parameters" : {
43559 "additionalProperties" : 0,
43560 "properties" : {
43561 "disk" : {
43562 "description" : "Block device name",
43563 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
43564 "type" : "string"
43565 },
43566 "healthonly" : {
43567 "description" : "If true returns only the health status",
43568 "optional" : 1,
013dc89f
DM
43569 "type" : "boolean",
43570 "typetext" : "<boolean>"
2c0dde61
DM
43571 },
43572 "node" : {
43573 "description" : "The cluster node name.",
43574 "format" : "pve-node",
013dc89f
DM
43575 "type" : "string",
43576 "typetext" : "<string>"
2c0dde61
DM
43577 }
43578 }
43579 },
43580 "permissions" : {
43581 "check" : [
43582 "perm",
43583 "/",
43584 [
8dd66e12
TL
43585 "Sys.Audit"
43586 ]
2c0dde61
DM
43587 ]
43588 },
43589 "protected" : 1,
43590 "proxyto" : "node",
43591 "returns" : {
de0983cb
DM
43592 "properties" : {
43593 "attributes" : {
43594 "optional" : 1,
43595 "type" : "array"
43596 },
43597 "health" : {
43598 "type" : "string"
43599 },
43600 "text" : {
43601 "optional" : 1,
43602 "type" : "string"
43603 },
43604 "type" : {
43605 "optional" : 1,
43606 "type" : "string"
43607 }
43608 },
2c0dde61
DM
43609 "type" : "object"
43610 }
43611 }
43612 },
43613 "leaf" : 1,
43614 "path" : "/nodes/{node}/disks/smart",
43615 "text" : "smart"
43616 },
43617 {
43618 "info" : {
43619 "POST" : {
e9cd3bd4 43620 "allowtoken" : 1,
2c0dde61
DM
43621 "description" : "Initialize Disk with GPT",
43622 "method" : "POST",
43623 "name" : "initgpt",
43624 "parameters" : {
43625 "additionalProperties" : 0,
43626 "properties" : {
43627 "disk" : {
43628 "description" : "Block device name",
43629 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
43630 "type" : "string"
43631 },
43632 "node" : {
43633 "description" : "The cluster node name.",
43634 "format" : "pve-node",
013dc89f
DM
43635 "type" : "string",
43636 "typetext" : "<string>"
2c0dde61
DM
43637 },
43638 "uuid" : {
43639 "description" : "UUID for the GPT table",
43640 "maxLength" : 36,
43641 "optional" : 1,
43642 "pattern" : "[a-fA-F0-9\\-]+",
43643 "type" : "string"
43644 }
43645 }
43646 },
43647 "permissions" : {
43648 "check" : [
43649 "perm",
43650 "/",
43651 [
43652 "Sys.Modify"
43653 ]
43654 ]
43655 },
43656 "protected" : 1,
43657 "proxyto" : "node",
43658 "returns" : {
43659 "type" : "string"
43660 }
43661 }
43662 },
43663 "leaf" : 1,
43664 "path" : "/nodes/{node}/disks/initgpt",
43665 "text" : "initgpt"
0695fdaf
TL
43666 },
43667 {
43668 "info" : {
43669 "PUT" : {
43670 "allowtoken" : 1,
43671 "description" : "Wipe a disk or partition.",
43672 "method" : "PUT",
43673 "name" : "wipe_disk",
43674 "parameters" : {
43675 "additionalProperties" : 0,
43676 "properties" : {
43677 "disk" : {
43678 "description" : "Block device name",
43679 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
43680 "type" : "string"
43681 },
43682 "node" : {
43683 "description" : "The cluster node name.",
43684 "format" : "pve-node",
43685 "type" : "string",
43686 "typetext" : "<string>"
43687 }
43688 }
43689 },
43690 "protected" : 1,
43691 "proxyto" : "node",
43692 "returns" : {
43693 "type" : "string"
43694 }
43695 }
43696 },
43697 "leaf" : 1,
43698 "path" : "/nodes/{node}/disks/wipedisk",
43699 "text" : "wipedisk"
2c0dde61
DM
43700 }
43701 ],
43702 "info" : {
43703 "GET" : {
e9cd3bd4 43704 "allowtoken" : 1,
2c0dde61
DM
43705 "description" : "Node index.",
43706 "method" : "GET",
43707 "name" : "index",
43708 "parameters" : {
43709 "additionalProperties" : 0,
43710 "properties" : {
43711 "node" : {
43712 "description" : "The cluster node name.",
43713 "format" : "pve-node",
013dc89f
DM
43714 "type" : "string",
43715 "typetext" : "<string>"
2c0dde61
DM
43716 }
43717 }
43718 },
43719 "permissions" : {
43720 "user" : "all"
43721 },
43722 "proxyto" : "node",
43723 "returns" : {
43724 "items" : {
43725 "properties" : {},
43726 "type" : "object"
43727 },
43728 "links" : [
43729 {
43730 "href" : "{name}",
43731 "rel" : "child"
43732 }
43733 ],
43734 "type" : "array"
43735 }
43736 }
43737 },
43738 "leaf" : 0,
43739 "path" : "/nodes/{node}/disks",
43740 "text" : "disks"
43741 },
56122987 43742 {
56122987
DM
43743 "children" : [
43744 {
43745 "info" : {
44660702 43746 "GET" : {
e9cd3bd4 43747 "allowtoken" : 1,
44660702
DM
43748 "description" : "List available updates.",
43749 "method" : "GET",
43750 "name" : "list_updates",
43751 "parameters" : {
43752 "additionalProperties" : 0,
43753 "properties" : {
43754 "node" : {
43755 "description" : "The cluster node name.",
43756 "format" : "pve-node",
013dc89f
DM
43757 "type" : "string",
43758 "typetext" : "<string>"
44660702
DM
43759 }
43760 }
7aacca6f
DM
43761 },
43762 "permissions" : {
43763 "check" : [
43764 "perm",
43765 "/nodes/{node}",
43766 [
43767 "Sys.Modify"
43768 ]
43769 ]
43770 },
44660702 43771 "protected" : 1,
56122987 43772 "proxyto" : "node",
44660702
DM
43773 "returns" : {
43774 "items" : {
43775 "properties" : {},
43776 "type" : "object"
43777 },
43778 "type" : "array"
43779 }
43780 },
43781 "POST" : {
e9cd3bd4 43782 "allowtoken" : 1,
44660702 43783 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
43784 "method" : "POST",
43785 "name" : "update_database",
56122987
DM
43786 "parameters" : {
43787 "additionalProperties" : 0,
43788 "properties" : {
44660702
DM
43789 "node" : {
43790 "description" : "The cluster node name.",
43791 "format" : "pve-node",
013dc89f
DM
43792 "type" : "string",
43793 "typetext" : "<string>"
44660702 43794 },
56122987 43795 "notify" : {
56122987 43796 "default" : 0,
44660702
DM
43797 "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
43798 "optional" : 1,
013dc89f
DM
43799 "type" : "boolean",
43800 "typetext" : "<boolean>"
56122987
DM
43801 },
43802 "quiet" : {
56122987 43803 "default" : 0,
44660702 43804 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 43805 "optional" : 1,
013dc89f
DM
43806 "type" : "boolean",
43807 "typetext" : "<boolean>"
56122987 43808 }
7aacca6f
DM
43809 }
43810 },
43811 "permissions" : {
43812 "check" : [
43813 "perm",
43814 "/nodes/{node}",
43815 [
43816 "Sys.Modify"
43817 ]
43818 ]
43819 },
44660702
DM
43820 "protected" : 1,
43821 "proxyto" : "node",
43822 "returns" : {
43823 "type" : "string"
43824 }
56122987
DM
43825 }
43826 },
7aacca6f 43827 "leaf" : 1,
44660702
DM
43828 "path" : "/nodes/{node}/apt/update",
43829 "text" : "update"
56122987
DM
43830 },
43831 {
56122987
DM
43832 "info" : {
43833 "GET" : {
e9cd3bd4 43834 "allowtoken" : 1,
44660702 43835 "description" : "Get package changelogs.",
56122987 43836 "method" : "GET",
7aacca6f 43837 "name" : "changelog",
56122987 43838 "parameters" : {
44660702 43839 "additionalProperties" : 0,
56122987
DM
43840 "properties" : {
43841 "name" : {
43842 "description" : "Package name.",
013dc89f
DM
43843 "type" : "string",
43844 "typetext" : "<string>"
56122987 43845 },
44660702
DM
43846 "node" : {
43847 "description" : "The cluster node name.",
43848 "format" : "pve-node",
013dc89f
DM
43849 "type" : "string",
43850 "typetext" : "<string>"
44660702 43851 },
56122987 43852 "version" : {
7aacca6f 43853 "description" : "Package version.",
44660702 43854 "optional" : 1,
013dc89f
DM
43855 "type" : "string",
43856 "typetext" : "<string>"
56122987 43857 }
44660702 43858 }
56122987 43859 },
44660702
DM
43860 "permissions" : {
43861 "check" : [
43862 "perm",
43863 "/nodes/{node}",
43864 [
43865 "Sys.Modify"
43866 ]
43867 ]
43868 },
43869 "proxyto" : "node",
43870 "returns" : {
43871 "type" : "string"
43872 }
56122987
DM
43873 }
43874 },
44660702
DM
43875 "leaf" : 1,
43876 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 43877 "text" : "changelog"
56122987 43878 },
34f3e481
TL
43879 {
43880 "info" : {
43881 "GET" : {
43882 "allowtoken" : 1,
43883 "description" : "Get APT repository information.",
43884 "method" : "GET",
43885 "name" : "repositories",
43886 "parameters" : {
43887 "additionalProperties" : 0,
43888 "properties" : {
43889 "node" : {
43890 "description" : "The cluster node name.",
43891 "format" : "pve-node",
43892 "type" : "string",
43893 "typetext" : "<string>"
43894 }
43895 }
43896 },
43897 "permissions" : {
43898 "check" : [
43899 "perm",
43900 "/nodes/{node}",
43901 [
43902 "Sys.Audit"
43903 ]
43904 ]
43905 },
43906 "proxyto" : "node",
43907 "returns" : {
43908 "description" : "Result from parsing the APT repository files in /etc/apt/.",
43909 "properties" : {
43910 "digest" : {
43911 "description" : "Common digest of all files.",
43912 "type" : "string"
43913 },
43914 "errors" : {
43915 "description" : "List of problematic repository files.",
43916 "items" : {
43917 "properties" : {
43918 "error" : {
43919 "description" : "The error message",
43920 "type" : "string"
43921 },
43922 "path" : {
43923 "description" : "Path to the problematic file.",
43924 "type" : "string"
43925 }
43926 },
43927 "type" : "object"
43928 },
43929 "type" : "array"
43930 },
43931 "files" : {
43932 "description" : "List of parsed repository files.",
43933 "items" : {
43934 "properties" : {
43935 "digest" : {
43936 "description" : "Digest of the file as bytes.",
43937 "items" : {
43938 "type" : "integer"
43939 },
43940 "type" : "array"
43941 },
43942 "file-type" : {
43943 "description" : "Format of the file.",
43944 "enum" : [
43945 "list",
43946 "sources"
43947 ],
43948 "type" : "string"
43949 },
43950 "path" : {
43951 "description" : "Path to the problematic file.",
43952 "type" : "string"
43953 },
43954 "repositories" : {
43955 "description" : "The parsed repositories.",
43956 "items" : {
43957 "properties" : {
43958 "Comment" : {
43959 "description" : "Associated comment",
43960 "optional" : 1,
43961 "type" : "string"
43962 },
43963 "Components" : {
43964 "description" : "List of repository components",
43965 "items" : {
43966 "type" : "string"
43967 },
43968 "optional" : 1,
43969 "type" : "array"
43970 },
43971 "Enabled" : {
43972 "description" : "Whether the repository is enabled or not",
43973 "type" : "boolean"
43974 },
43975 "FileType" : {
43976 "description" : "Format of the defining file.",
43977 "enum" : [
43978 "list",
43979 "sources"
43980 ],
43981 "type" : "string"
43982 },
43983 "Options" : {
43984 "description" : "Additional options",
43985 "items" : {
43986 "properties" : {
43987 "Key" : {
43988 "type" : "string"
43989 },
43990 "Values" : {
43991 "items" : {
43992 "type" : "string"
43993 },
43994 "type" : "array"
43995 }
43996 },
43997 "type" : "object"
43998 },
43999 "optional" : 1,
44000 "type" : "array"
44001 },
44002 "Suites" : {
44003 "description" : "List of package distribuitions",
44004 "items" : {
44005 "type" : "string"
44006 },
44007 "type" : "array"
44008 },
44009 "Types" : {
44010 "description" : "List of package types.",
44011 "items" : {
44012 "enum" : [
44013 "deb",
44014 "deb-src"
44015 ],
44016 "type" : "string"
44017 },
44018 "type" : "array"
44019 },
44020 "URIs" : {
44021 "description" : "List of repository URIs.",
44022 "items" : {
44023 "type" : "string"
44024 },
44025 "type" : "array"
44026 }
44027 },
44028 "type" : "object"
44029 },
44030 "type" : "array"
44031 }
44032 },
44033 "type" : "object"
44034 },
44035 "type" : "array"
44036 },
44037 "infos" : {
44038 "description" : "Additional information/warnings for APT repositories.",
44039 "items" : {
44040 "properties" : {
44041 "index" : {
44042 "description" : "Index of the associated repository within the file.",
44043 "type" : "string"
44044 },
44045 "kind" : {
44046 "description" : "Kind of the information (e.g. warning).",
44047 "type" : "string"
44048 },
44049 "message" : {
44050 "description" : "Information message.",
44051 "type" : "string"
44052 },
44053 "path" : {
44054 "description" : "Path to the associated file.",
44055 "type" : "string"
44056 },
44057 "property" : {
44058 "description" : "Property from which the info originates.",
44059 "optional" : 1,
44060 "type" : "string"
44061 }
44062 },
44063 "type" : "object"
44064 },
44065 "type" : "array"
44066 },
44067 "standard-repos" : {
44068 "description" : "List of standard repositories and their configuration status",
44069 "items" : {
44070 "properties" : {
44071 "handle" : {
44072 "description" : "Handle to identify the repository.",
44073 "type" : "string"
44074 },
44075 "name" : {
44076 "description" : "Full name of the repository.",
44077 "type" : "string"
44078 },
44079 "status" : {
44080 "description" : "Indicating enabled/disabled status, if the repository is configured.",
44081 "optional" : 1,
44082 "type" : "boolean"
44083 }
44084 },
44085 "type" : "object"
44086 },
44087 "type" : "array"
44088 }
44089 },
44090 "type" : "object"
44091 }
44092 },
44093 "POST" : {
44094 "allowtoken" : 1,
44095 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
44096 "method" : "POST",
44097 "name" : "change_repository",
44098 "parameters" : {
44099 "additionalProperties" : 0,
44100 "properties" : {
44101 "digest" : {
44102 "description" : "Digest to detect modifications.",
44103 "maxLength" : 80,
44104 "optional" : 1,
44105 "type" : "string",
44106 "typetext" : "<string>"
44107 },
44108 "enabled" : {
44109 "description" : "Whether the repository should be enabled or not.",
44110 "optional" : 1,
44111 "type" : "boolean",
44112 "typetext" : "<boolean>"
44113 },
44114 "index" : {
44115 "description" : "Index within the file (starting from 0).",
44116 "type" : "integer",
44117 "typetext" : "<integer>"
44118 },
44119 "node" : {
44120 "description" : "The cluster node name.",
44121 "format" : "pve-node",
44122 "type" : "string",
44123 "typetext" : "<string>"
44124 },
44125 "path" : {
44126 "description" : "Path to the containing file.",
44127 "type" : "string",
44128 "typetext" : "<string>"
44129 }
44130 }
44131 },
44132 "permissions" : {
44133 "check" : [
44134 "perm",
44135 "/nodes/{node}",
44136 [
44137 "Sys.Modify"
44138 ]
44139 ]
44140 },
44141 "protected" : 1,
44142 "proxyto" : "node",
44143 "returns" : {
44144 "type" : "null"
44145 }
44146 },
44147 "PUT" : {
44148 "allowtoken" : 1,
44149 "description" : "Add a standard repository to the configuration",
44150 "method" : "PUT",
44151 "name" : "add_repository",
44152 "parameters" : {
44153 "additionalProperties" : 0,
44154 "properties" : {
44155 "digest" : {
44156 "description" : "Digest to detect modifications.",
44157 "maxLength" : 80,
44158 "optional" : 1,
44159 "type" : "string",
44160 "typetext" : "<string>"
44161 },
44162 "handle" : {
44163 "description" : "Handle that identifies a repository.",
44164 "type" : "string",
44165 "typetext" : "<string>"
44166 },
44167 "node" : {
44168 "description" : "The cluster node name.",
44169 "format" : "pve-node",
44170 "type" : "string",
44171 "typetext" : "<string>"
44172 }
44173 }
44174 },
44175 "permissions" : {
44176 "check" : [
44177 "perm",
44178 "/nodes/{node}",
44179 [
44180 "Sys.Modify"
44181 ]
44182 ]
44183 },
44184 "protected" : 1,
44185 "proxyto" : "node",
44186 "returns" : {
44187 "type" : "null"
44188 }
44189 }
44190 },
44191 "leaf" : 1,
44192 "path" : "/nodes/{node}/apt/repositories",
44193 "text" : "repositories"
44194 },
56122987 44195 {
56122987
DM
44196 "info" : {
44197 "GET" : {
e9cd3bd4 44198 "allowtoken" : 1,
44660702
DM
44199 "description" : "Get package information for important Proxmox packages.",
44200 "method" : "GET",
7aacca6f
DM
44201 "name" : "versions",
44202 "parameters" : {
44660702 44203 "additionalProperties" : 0,
7aacca6f
DM
44204 "properties" : {
44205 "node" : {
44660702 44206 "description" : "The cluster node name.",
7aacca6f 44207 "format" : "pve-node",
013dc89f
DM
44208 "type" : "string",
44209 "typetext" : "<string>"
7aacca6f 44210 }
44660702 44211 }
7aacca6f 44212 },
56122987
DM
44213 "permissions" : {
44214 "check" : [
44215 "perm",
44216 "/nodes/{node}",
44217 [
44218 "Sys.Audit"
44219 ]
44220 ]
44221 },
7aacca6f 44222 "proxyto" : "node",
56122987
DM
44223 "returns" : {
44224 "items" : {
7aacca6f
DM
44225 "properties" : {},
44226 "type" : "object"
44660702
DM
44227 },
44228 "type" : "array"
56122987
DM
44229 }
44230 }
44231 },
44660702 44232 "leaf" : 1,
7aacca6f 44233 "path" : "/nodes/{node}/apt/versions",
44660702 44234 "text" : "versions"
56122987
DM
44235 }
44236 ],
56122987
DM
44237 "info" : {
44238 "GET" : {
e9cd3bd4 44239 "allowtoken" : 1,
44660702 44240 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 44241 "method" : "GET",
44660702 44242 "name" : "index",
7aacca6f
DM
44243 "parameters" : {
44244 "additionalProperties" : 0,
44245 "properties" : {
44246 "node" : {
44660702 44247 "description" : "The cluster node name.",
7aacca6f 44248 "format" : "pve-node",
013dc89f
DM
44249 "type" : "string",
44250 "typetext" : "<string>"
7aacca6f
DM
44251 }
44252 }
44253 },
7aacca6f
DM
44254 "permissions" : {
44255 "user" : "all"
44256 },
44660702
DM
44257 "returns" : {
44258 "items" : {
44259 "properties" : {
44260 "id" : {
44261 "type" : "string"
44262 }
44263 },
44264 "type" : "object"
44265 },
44266 "links" : [
44267 {
44268 "href" : "{id}",
44269 "rel" : "child"
44270 }
44271 ],
44272 "type" : "array"
44273 }
56122987 44274 }
7aacca6f 44275 },
44660702 44276 "leaf" : 0,
7aacca6f 44277 "path" : "/nodes/{node}/apt",
44660702 44278 "text" : "apt"
56122987
DM
44279 },
44280 {
56122987
DM
44281 "children" : [
44282 {
44283 "children" : [
44284 {
56122987
DM
44285 "info" : {
44286 "DELETE" : {
e9cd3bd4 44287 "allowtoken" : 1,
44660702 44288 "description" : "Delete rule.",
7aacca6f 44289 "method" : "DELETE",
44660702 44290 "name" : "delete_rule",
56122987
DM
44291 "parameters" : {
44292 "additionalProperties" : 0,
44293 "properties" : {
56122987
DM
44294 "digest" : {
44295 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 44296 "maxLength" : 40,
56122987 44297 "optional" : 1,
013dc89f
DM
44298 "type" : "string",
44299 "typetext" : "<string>"
56122987 44300 },
44660702
DM
44301 "node" : {
44302 "description" : "The cluster node name.",
44303 "format" : "pve-node",
013dc89f
DM
44304 "type" : "string",
44305 "typetext" : "<string>"
44660702 44306 },
7aacca6f 44307 "pos" : {
7aacca6f 44308 "description" : "Update rule at position <pos>.",
44660702
DM
44309 "minimum" : 0,
44310 "optional" : 1,
4bd7df8b 44311 "type" : "integer",
013dc89f 44312 "typetext" : "<integer> (0 - N)"
56122987
DM
44313 }
44314 }
44315 },
44660702
DM
44316 "permissions" : {
44317 "check" : [
44318 "perm",
44319 "/nodes/{node}",
44320 [
44321 "Sys.Modify"
44322 ]
44323 ]
44324 },
44325 "protected" : 1,
44326 "proxyto" : "node",
56122987
DM
44327 "returns" : {
44328 "type" : "null"
44660702
DM
44329 }
44330 },
44331 "GET" : {
e9cd3bd4 44332 "allowtoken" : 1,
44660702
DM
44333 "description" : "Get single rule data.",
44334 "method" : "GET",
44335 "name" : "get_rule",
44336 "parameters" : {
44337 "additionalProperties" : 0,
44338 "properties" : {
44339 "node" : {
44340 "description" : "The cluster node name.",
44341 "format" : "pve-node",
013dc89f
DM
44342 "type" : "string",
44343 "typetext" : "<string>"
44660702
DM
44344 },
44345 "pos" : {
44346 "description" : "Update rule at position <pos>.",
44347 "minimum" : 0,
44348 "optional" : 1,
4bd7df8b 44349 "type" : "integer",
013dc89f 44350 "typetext" : "<integer> (0 - N)"
44660702
DM
44351 }
44352 }
56122987 44353 },
56122987
DM
44354 "permissions" : {
44355 "check" : [
44356 "perm",
44357 "/nodes/{node}",
44358 [
44660702 44359 "Sys.Audit"
56122987
DM
44360 ]
44361 ]
44660702
DM
44362 },
44363 "proxyto" : "node",
44364 "returns" : {
44365 "properties" : {
e2d681b3
TL
44366 "action" : {
44367 "type" : "string"
44368 },
44369 "comment" : {
44370 "optional" : 1,
44371 "type" : "string"
44372 },
44373 "dest" : {
44374 "optional" : 1,
44375 "type" : "string"
44376 },
44377 "dport" : {
44378 "optional" : 1,
44379 "type" : "string"
44380 },
44381 "enable" : {
44382 "optional" : 1,
44383 "type" : "integer"
44384 },
4772952b
TL
44385 "icmp-type" : {
44386 "optional" : 1,
44387 "type" : "string"
44388 },
e2d681b3
TL
44389 "iface" : {
44390 "optional" : 1,
44391 "type" : "string"
44392 },
44393 "ipversion" : {
44394 "optional" : 1,
44395 "type" : "integer"
44396 },
95895385
TL
44397 "log" : {
44398 "description" : "Log level for firewall rule",
44399 "enum" : [
44400 "emerg",
44401 "alert",
44402 "crit",
44403 "err",
44404 "warning",
44405 "notice",
44406 "info",
44407 "debug",
44408 "nolog"
44409 ],
44410 "optional" : 1,
44411 "type" : "string"
44412 },
e2d681b3
TL
44413 "macro" : {
44414 "optional" : 1,
5f26e15b 44415 "type" : "string"
e2d681b3 44416 },
44660702
DM
44417 "pos" : {
44418 "type" : "integer"
e2d681b3
TL
44419 },
44420 "proto" : {
44421 "optional" : 1,
44422 "type" : "string"
44423 },
44424 "source" : {
44425 "optional" : 1,
44426 "type" : "string"
44427 },
44428 "sport" : {
44429 "optional" : 1,
44430 "type" : "string"
44431 },
44432 "type" : {
44433 "type" : "string"
44660702
DM
44434 }
44435 },
44436 "type" : "object"
7aacca6f 44437 }
56122987
DM
44438 },
44439 "PUT" : {
e9cd3bd4 44440 "allowtoken" : 1,
44660702
DM
44441 "description" : "Modify rule data.",
44442 "method" : "PUT",
56122987 44443 "name" : "update_rule",
56122987 44444 "parameters" : {
44660702 44445 "additionalProperties" : 0,
56122987 44446 "properties" : {
44660702
DM
44447 "action" : {
44448 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44449 "maxLength" : 20,
44450 "minLength" : 2,
56122987 44451 "optional" : 1,
44660702
DM
44452 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44453 "type" : "string"
56122987 44454 },
7aacca6f 44455 "comment" : {
e94f0d56 44456 "description" : "Descriptive comment.",
56122987 44457 "optional" : 1,
013dc89f
DM
44458 "type" : "string",
44459 "typetext" : "<string>"
56122987 44460 },
44660702
DM
44461 "delete" : {
44462 "description" : "A list of settings you want to delete.",
44463 "format" : "pve-configid-list",
56122987 44464 "optional" : 1,
013dc89f
DM
44465 "type" : "string",
44466 "typetext" : "<string>"
56122987 44467 },
44660702
DM
44468 "dest" : {
44469 "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.",
44470 "format" : "pve-fw-addr-spec",
0695fdaf 44471 "maxLength" : 512,
56122987 44472 "optional" : 1,
013dc89f
DM
44473 "type" : "string",
44474 "typetext" : "<string>"
56122987 44475 },
44660702
DM
44476 "digest" : {
44477 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44478 "maxLength" : 40,
56122987 44479 "optional" : 1,
013dc89f
DM
44480 "type" : "string",
44481 "typetext" : "<string>"
56122987 44482 },
7aacca6f 44483 "dport" : {
7aacca6f 44484 "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
44485 "format" : "pve-fw-dport-spec",
44486 "optional" : 1,
013dc89f
DM
44487 "type" : "string",
44488 "typetext" : "<string>"
7aacca6f 44489 },
44660702 44490 "enable" : {
e94f0d56 44491 "description" : "Flag to enable/disable a rule.",
44660702 44492 "minimum" : 0,
56122987 44493 "optional" : 1,
4bd7df8b 44494 "type" : "integer",
013dc89f 44495 "typetext" : "<integer> (0 - N)"
56122987 44496 },
4772952b 44497 "icmp-type" : {
287a95cf 44498 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
44499 "format" : "pve-fw-icmp-type-spec",
44500 "optional" : 1,
44501 "type" : "string",
44502 "typetext" : "<string>"
44503 },
7aacca6f 44504 "iface" : {
44660702 44505 "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 44506 "format" : "pve-iface",
44660702 44507 "maxLength" : 20,
56122987 44508 "minLength" : 2,
44660702 44509 "optional" : 1,
013dc89f
DM
44510 "type" : "string",
44511 "typetext" : "<string>"
56122987 44512 },
95895385
TL
44513 "log" : {
44514 "description" : "Log level for firewall rule.",
44515 "enum" : [
44516 "emerg",
44517 "alert",
44518 "crit",
44519 "err",
44520 "warning",
44521 "notice",
44522 "info",
44523 "debug",
44524 "nolog"
44525 ],
44526 "optional" : 1,
44527 "type" : "string"
44528 },
44660702 44529 "macro" : {
e94f0d56 44530 "description" : "Use predefined standard macro.",
44660702
DM
44531 "maxLength" : 128,
44532 "optional" : 1,
013dc89f
DM
44533 "type" : "string",
44534 "typetext" : "<string>"
44660702
DM
44535 },
44536 "moveto" : {
44537 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44538 "minimum" : 0,
7aacca6f 44539 "optional" : 1,
4bd7df8b 44540 "type" : "integer",
013dc89f 44541 "typetext" : "<integer> (0 - N)"
44660702
DM
44542 },
44543 "node" : {
44544 "description" : "The cluster node name.",
44545 "format" : "pve-node",
013dc89f
DM
44546 "type" : "string",
44547 "typetext" : "<string>"
56122987
DM
44548 },
44549 "pos" : {
44660702 44550 "description" : "Update rule at position <pos>.",
7aacca6f 44551 "minimum" : 0,
7aacca6f 44552 "optional" : 1,
4bd7df8b 44553 "type" : "integer",
013dc89f 44554 "typetext" : "<integer> (0 - N)"
7aacca6f 44555 },
44660702
DM
44556 "proto" : {
44557 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44558 "format" : "pve-fw-protocol-spec",
7aacca6f 44559 "optional" : 1,
013dc89f
DM
44560 "type" : "string",
44561 "typetext" : "<string>"
7aacca6f 44562 },
44660702
DM
44563 "source" : {
44564 "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.",
44565 "format" : "pve-fw-addr-spec",
0695fdaf 44566 "maxLength" : 512,
56122987 44567 "optional" : 1,
013dc89f
DM
44568 "type" : "string",
44569 "typetext" : "<string>"
7aacca6f 44570 },
44660702
DM
44571 "sport" : {
44572 "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.",
44573 "format" : "pve-fw-sport-spec",
44574 "optional" : 1,
013dc89f
DM
44575 "type" : "string",
44576 "typetext" : "<string>"
44660702
DM
44577 },
44578 "type" : {
e94f0d56 44579 "description" : "Rule type.",
44660702
DM
44580 "enum" : [
44581 "in",
44582 "out",
44583 "group"
44584 ],
44585 "optional" : 1,
44586 "type" : "string"
56122987 44587 }
44660702 44588 }
56122987 44589 },
56122987
DM
44590 "permissions" : {
44591 "check" : [
44592 "perm",
44593 "/nodes/{node}",
44594 [
44595 "Sys.Modify"
44596 ]
44597 ]
7aacca6f 44598 },
44660702 44599 "protected" : 1,
7aacca6f 44600 "proxyto" : "node",
7aacca6f
DM
44601 "returns" : {
44602 "type" : "null"
56122987
DM
44603 }
44604 }
7aacca6f 44605 },
44660702 44606 "leaf" : 1,
7aacca6f 44607 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 44608 "text" : "{pos}"
56122987
DM
44609 }
44610 ],
56122987
DM
44611 "info" : {
44612 "GET" : {
e9cd3bd4 44613 "allowtoken" : 1,
44660702
DM
44614 "description" : "List rules.",
44615 "method" : "GET",
44616 "name" : "get_rules",
44617 "parameters" : {
44618 "additionalProperties" : 0,
44619 "properties" : {
44620 "node" : {
44621 "description" : "The cluster node name.",
44622 "format" : "pve-node",
013dc89f
DM
44623 "type" : "string",
44624 "typetext" : "<string>"
44660702
DM
44625 }
44626 }
44627 },
44628 "permissions" : {
44629 "check" : [
44630 "perm",
44631 "/nodes/{node}",
44632 [
44633 "Sys.Audit"
44634 ]
44635 ]
44636 },
44637 "proxyto" : "node",
56122987 44638 "returns" : {
56122987
DM
44639 "items" : {
44640 "properties" : {
44641 "pos" : {
44642 "type" : "integer"
44643 }
44660702
DM
44644 },
44645 "type" : "object"
56122987 44646 },
7aacca6f
DM
44647 "links" : [
44648 {
44649 "href" : "{pos}",
44650 "rel" : "child"
44651 }
44652 ],
44653 "type" : "array"
44660702 44654 }
56122987
DM
44655 },
44656 "POST" : {
e9cd3bd4 44657 "allowtoken" : 1,
44660702 44658 "description" : "Create new rule.",
7aacca6f
DM
44659 "method" : "POST",
44660 "name" : "create_rule",
56122987 44661 "parameters" : {
44660702 44662 "additionalProperties" : 0,
56122987 44663 "properties" : {
7aacca6f 44664 "action" : {
7aacca6f 44665 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 44666 "maxLength" : 20,
7aacca6f
DM
44667 "minLength" : 2,
44668 "optional" : 0,
44660702
DM
44669 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44670 "type" : "string"
56122987 44671 },
44660702 44672 "comment" : {
e94f0d56 44673 "description" : "Descriptive comment.",
56122987 44674 "optional" : 1,
013dc89f
DM
44675 "type" : "string",
44676 "typetext" : "<string>"
56122987 44677 },
44660702
DM
44678 "dest" : {
44679 "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.",
44680 "format" : "pve-fw-addr-spec",
0695fdaf 44681 "maxLength" : 512,
7aacca6f 44682 "optional" : 1,
013dc89f
DM
44683 "type" : "string",
44684 "typetext" : "<string>"
56122987 44685 },
44660702
DM
44686 "digest" : {
44687 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44688 "maxLength" : 40,
44689 "optional" : 1,
013dc89f
DM
44690 "type" : "string",
44691 "typetext" : "<string>"
56122987 44692 },
44660702
DM
44693 "dport" : {
44694 "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.",
44695 "format" : "pve-fw-dport-spec",
7aacca6f 44696 "optional" : 1,
013dc89f
DM
44697 "type" : "string",
44698 "typetext" : "<string>"
56122987 44699 },
44660702 44700 "enable" : {
e94f0d56 44701 "description" : "Flag to enable/disable a rule.",
44660702
DM
44702 "minimum" : 0,
44703 "optional" : 1,
4bd7df8b 44704 "type" : "integer",
013dc89f 44705 "typetext" : "<integer> (0 - N)"
44660702 44706 },
4772952b 44707 "icmp-type" : {
287a95cf 44708 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
44709 "format" : "pve-fw-icmp-type-spec",
44710 "optional" : 1,
44711 "type" : "string",
44712 "typetext" : "<string>"
44713 },
7aacca6f 44714 "iface" : {
44660702 44715 "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 44716 "format" : "pve-iface",
56122987 44717 "maxLength" : 20,
7aacca6f 44718 "minLength" : 2,
7aacca6f 44719 "optional" : 1,
013dc89f
DM
44720 "type" : "string",
44721 "typetext" : "<string>"
56122987 44722 },
95895385
TL
44723 "log" : {
44724 "description" : "Log level for firewall rule.",
44725 "enum" : [
44726 "emerg",
44727 "alert",
44728 "crit",
44729 "err",
44730 "warning",
44731 "notice",
44732 "info",
44733 "debug",
44734 "nolog"
44735 ],
44736 "optional" : 1,
44737 "type" : "string"
44738 },
44660702 44739 "macro" : {
e94f0d56 44740 "description" : "Use predefined standard macro.",
44660702 44741 "maxLength" : 128,
7aacca6f 44742 "optional" : 1,
013dc89f
DM
44743 "type" : "string",
44744 "typetext" : "<string>"
56122987 44745 },
44660702
DM
44746 "node" : {
44747 "description" : "The cluster node name.",
44748 "format" : "pve-node",
013dc89f
DM
44749 "type" : "string",
44750 "typetext" : "<string>"
44660702
DM
44751 },
44752 "pos" : {
44753 "description" : "Update rule at position <pos>.",
44754 "minimum" : 0,
44755 "optional" : 1,
4bd7df8b 44756 "type" : "integer",
013dc89f 44757 "typetext" : "<integer> (0 - N)"
44660702
DM
44758 },
44759 "proto" : {
44760 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44761 "format" : "pve-fw-protocol-spec",
56122987 44762 "optional" : 1,
013dc89f
DM
44763 "type" : "string",
44764 "typetext" : "<string>"
56122987 44765 },
7aacca6f 44766 "source" : {
7aacca6f 44767 "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 44768 "format" : "pve-fw-addr-spec",
0695fdaf 44769 "maxLength" : 512,
44660702 44770 "optional" : 1,
013dc89f
DM
44771 "type" : "string",
44772 "typetext" : "<string>"
7aacca6f 44773 },
44660702
DM
44774 "sport" : {
44775 "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.",
44776 "format" : "pve-fw-sport-spec",
7aacca6f 44777 "optional" : 1,
013dc89f
DM
44778 "type" : "string",
44779 "typetext" : "<string>"
44660702
DM
44780 },
44781 "type" : {
e94f0d56 44782 "description" : "Rule type.",
44660702
DM
44783 "enum" : [
44784 "in",
44785 "out",
44786 "group"
44787 ],
44788 "optional" : 0,
44789 "type" : "string"
56122987 44790 }
44660702 44791 }
7aacca6f 44792 },
56122987
DM
44793 "permissions" : {
44794 "check" : [
44795 "perm",
44796 "/nodes/{node}",
44797 [
44798 "Sys.Modify"
44799 ]
44800 ]
44801 },
44660702
DM
44802 "protected" : 1,
44803 "proxyto" : "node",
44804 "returns" : {
44805 "type" : "null"
44806 }
56122987
DM
44807 }
44808 },
44660702 44809 "leaf" : 0,
7aacca6f 44810 "path" : "/nodes/{node}/firewall/rules",
44660702 44811 "text" : "rules"
56122987
DM
44812 },
44813 {
56122987 44814 "info" : {
44660702 44815 "GET" : {
e9cd3bd4 44816 "allowtoken" : 1,
44660702
DM
44817 "description" : "Get host firewall options.",
44818 "method" : "GET",
44819 "name" : "get_options",
56122987 44820 "parameters" : {
7aacca6f 44821 "additionalProperties" : 0,
56122987 44822 "properties" : {
44660702
DM
44823 "node" : {
44824 "description" : "The cluster node name.",
44825 "format" : "pve-node",
013dc89f
DM
44826 "type" : "string",
44827 "typetext" : "<string>"
44660702
DM
44828 }
44829 }
44830 },
44831 "permissions" : {
44832 "check" : [
44833 "perm",
44834 "/nodes/{node}",
44835 [
44836 "Sys.Audit"
44837 ]
44838 ]
44839 },
44840 "proxyto" : "node",
44841 "returns" : {
44842 "properties" : {
44843 "enable" : {
44844 "description" : "Enable host firewall rules.",
7aacca6f 44845 "optional" : 1,
44660702 44846 "type" : "boolean"
7aacca6f 44847 },
44660702
DM
44848 "log_level_in" : {
44849 "description" : "Log level for incoming traffic.",
56122987
DM
44850 "enum" : [
44851 "emerg",
44852 "alert",
44853 "crit",
44854 "err",
44855 "warning",
44856 "notice",
44857 "info",
44858 "debug",
44859 "nolog"
44860 ],
56122987 44861 "optional" : 1,
44660702
DM
44862 "type" : "string"
44863 },
44864 "log_level_out" : {
44865 "description" : "Log level for outgoing traffic.",
56122987
DM
44866 "enum" : [
44867 "emerg",
44868 "alert",
44869 "crit",
44870 "err",
44871 "warning",
44872 "notice",
44873 "info",
44874 "debug",
44875 "nolog"
44876 ],
44660702
DM
44877 "optional" : 1,
44878 "type" : "string"
44879 },
95895385
TL
44880 "log_nf_conntrack" : {
44881 "default" : 0,
44882 "description" : "Enable logging of conntrack information.",
44883 "optional" : 1,
44884 "type" : "boolean"
44885 },
44660702 44886 "ndp" : {
5c1699e5
TL
44887 "default" : 0,
44888 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
44889 "optional" : 1,
44890 "type" : "boolean"
44891 },
5f26e15b
TL
44892 "nf_conntrack_allow_invalid" : {
44893 "default" : 0,
44894 "description" : "Allow invalid packets on connection tracking.",
44895 "optional" : 1,
44896 "type" : "boolean"
44897 },
9d2e98ed
TL
44898 "nf_conntrack_helpers" : {
44899 "default" : "",
44900 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
44901 "format" : "pve-fw-conntrack-helper",
44902 "optional" : 1,
44903 "type" : "string"
44904 },
44660702 44905 "nf_conntrack_max" : {
5c1699e5 44906 "default" : 262144,
44660702
DM
44907 "description" : "Maximum number of tracked connections.",
44908 "minimum" : 32768,
44909 "optional" : 1,
44910 "type" : "integer"
44911 },
44912 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 44913 "default" : 432000,
44660702
DM
44914 "description" : "Conntrack established timeout.",
44915 "minimum" : 7875,
44916 "optional" : 1,
44917 "type" : "integer"
44918 },
5c1699e5
TL
44919 "nf_conntrack_tcp_timeout_syn_recv" : {
44920 "default" : 60,
44921 "description" : "Conntrack syn recv timeout.",
44922 "maximum" : 60,
44923 "minimum" : 30,
44924 "optional" : 1,
44925 "type" : "integer"
44926 },
44660702
DM
44927 "nosmurfs" : {
44928 "description" : "Enable SMURFS filter.",
44929 "optional" : 1,
44930 "type" : "boolean"
56122987 44931 },
5c1699e5
TL
44932 "protection_synflood" : {
44933 "default" : 0,
44934 "description" : "Enable synflood protection",
44935 "optional" : 1,
44936 "type" : "boolean"
44937 },
44938 "protection_synflood_burst" : {
44939 "default" : 1000,
44940 "description" : "Synflood protection rate burst by ip src.",
44941 "optional" : 1,
44942 "type" : "integer"
44943 },
44944 "protection_synflood_rate" : {
44945 "default" : 200,
44946 "description" : "Synflood protection rate syn/sec by ip src.",
44947 "optional" : 1,
44948 "type" : "integer"
44949 },
7aacca6f 44950 "smurf_log_level" : {
44660702 44951 "description" : "Log level for SMURFS filter.",
56122987
DM
44952 "enum" : [
44953 "emerg",
44954 "alert",
44955 "crit",
44956 "err",
44957 "warning",
44958 "notice",
44959 "info",
44960 "debug",
44961 "nolog"
7aacca6f 44962 ],
7aacca6f
DM
44963 "optional" : 1,
44964 "type" : "string"
56122987 44965 },
44660702
DM
44966 "tcp_flags_log_level" : {
44967 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
44968 "enum" : [
44969 "emerg",
44970 "alert",
44971 "crit",
44972 "err",
44973 "warning",
44974 "notice",
44975 "info",
44976 "debug",
44977 "nolog"
44978 ],
44660702
DM
44979 "optional" : 1,
44980 "type" : "string"
7aacca6f 44981 },
44660702 44982 "tcpflags" : {
5c1699e5 44983 "default" : 0,
44660702 44984 "description" : "Filter illegal combinations of TCP flags.",
56122987 44985 "optional" : 1,
44660702 44986 "type" : "boolean"
56122987 44987 }
44660702
DM
44988 },
44989 "type" : "object"
7aacca6f 44990 }
56122987 44991 },
44660702 44992 "PUT" : {
e9cd3bd4 44993 "allowtoken" : 1,
44660702
DM
44994 "description" : "Set Firewall options.",
44995 "method" : "PUT",
44996 "name" : "set_options",
7aacca6f 44997 "parameters" : {
44660702 44998 "additionalProperties" : 0,
7aacca6f 44999 "properties" : {
44660702
DM
45000 "delete" : {
45001 "description" : "A list of settings you want to delete.",
45002 "format" : "pve-configid-list",
7aacca6f 45003 "optional" : 1,
013dc89f
DM
45004 "type" : "string",
45005 "typetext" : "<string>"
56122987 45006 },
44660702
DM
45007 "digest" : {
45008 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45009 "maxLength" : 40,
45010 "optional" : 1,
013dc89f
DM
45011 "type" : "string",
45012 "typetext" : "<string>"
56122987 45013 },
44660702
DM
45014 "enable" : {
45015 "description" : "Enable host firewall rules.",
7aacca6f 45016 "optional" : 1,
013dc89f
DM
45017 "type" : "boolean",
45018 "typetext" : "<boolean>"
44660702
DM
45019 },
45020 "log_level_in" : {
45021 "description" : "Log level for incoming traffic.",
56122987
DM
45022 "enum" : [
45023 "emerg",
45024 "alert",
45025 "crit",
45026 "err",
45027 "warning",
45028 "notice",
45029 "info",
45030 "debug",
45031 "nolog"
44660702 45032 ],
7aacca6f 45033 "optional" : 1,
44660702 45034 "type" : "string"
7aacca6f 45035 },
44660702
DM
45036 "log_level_out" : {
45037 "description" : "Log level for outgoing traffic.",
56122987
DM
45038 "enum" : [
45039 "emerg",
45040 "alert",
45041 "crit",
45042 "err",
45043 "warning",
45044 "notice",
45045 "info",
45046 "debug",
45047 "nolog"
45048 ],
45049 "optional" : 1,
7aacca6f 45050 "type" : "string"
56122987 45051 },
95895385
TL
45052 "log_nf_conntrack" : {
45053 "default" : 0,
45054 "description" : "Enable logging of conntrack information.",
45055 "optional" : 1,
45056 "type" : "boolean",
45057 "typetext" : "<boolean>"
45058 },
44660702 45059 "ndp" : {
5c1699e5
TL
45060 "default" : 0,
45061 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 45062 "optional" : 1,
013dc89f
DM
45063 "type" : "boolean",
45064 "typetext" : "<boolean>"
44660702 45065 },
5f26e15b
TL
45066 "nf_conntrack_allow_invalid" : {
45067 "default" : 0,
45068 "description" : "Allow invalid packets on connection tracking.",
45069 "optional" : 1,
45070 "type" : "boolean",
45071 "typetext" : "<boolean>"
45072 },
9d2e98ed
TL
45073 "nf_conntrack_helpers" : {
45074 "default" : "",
45075 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
45076 "format" : "pve-fw-conntrack-helper",
45077 "optional" : 1,
45078 "type" : "string",
45079 "typetext" : "<string>"
45080 },
44660702 45081 "nf_conntrack_max" : {
5c1699e5 45082 "default" : 262144,
44660702
DM
45083 "description" : "Maximum number of tracked connections.",
45084 "minimum" : 32768,
45085 "optional" : 1,
4bd7df8b 45086 "type" : "integer",
013dc89f 45087 "typetext" : "<integer> (32768 - N)"
44660702
DM
45088 },
45089 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 45090 "default" : 432000,
44660702
DM
45091 "description" : "Conntrack established timeout.",
45092 "minimum" : 7875,
45093 "optional" : 1,
4bd7df8b 45094 "type" : "integer",
013dc89f 45095 "typetext" : "<integer> (7875 - N)"
44660702 45096 },
5c1699e5
TL
45097 "nf_conntrack_tcp_timeout_syn_recv" : {
45098 "default" : 60,
45099 "description" : "Conntrack syn recv timeout.",
45100 "maximum" : 60,
45101 "minimum" : 30,
45102 "optional" : 1,
45103 "type" : "integer",
45104 "typetext" : "<integer> (30 - 60)"
45105 },
44660702
DM
45106 "node" : {
45107 "description" : "The cluster node name.",
45108 "format" : "pve-node",
013dc89f
DM
45109 "type" : "string",
45110 "typetext" : "<string>"
44660702
DM
45111 },
45112 "nosmurfs" : {
45113 "description" : "Enable SMURFS filter.",
45114 "optional" : 1,
013dc89f
DM
45115 "type" : "boolean",
45116 "typetext" : "<boolean>"
44660702 45117 },
5c1699e5
TL
45118 "protection_synflood" : {
45119 "default" : 0,
45120 "description" : "Enable synflood protection",
45121 "optional" : 1,
45122 "type" : "boolean",
45123 "typetext" : "<boolean>"
45124 },
45125 "protection_synflood_burst" : {
45126 "default" : 1000,
45127 "description" : "Synflood protection rate burst by ip src.",
45128 "optional" : 1,
45129 "type" : "integer",
45130 "typetext" : "<integer>"
45131 },
45132 "protection_synflood_rate" : {
45133 "default" : 200,
45134 "description" : "Synflood protection rate syn/sec by ip src.",
45135 "optional" : 1,
45136 "type" : "integer",
45137 "typetext" : "<integer>"
45138 },
44660702
DM
45139 "smurf_log_level" : {
45140 "description" : "Log level for SMURFS filter.",
56122987
DM
45141 "enum" : [
45142 "emerg",
45143 "alert",
45144 "crit",
45145 "err",
45146 "warning",
45147 "notice",
45148 "info",
45149 "debug",
45150 "nolog"
44660702
DM
45151 ],
45152 "optional" : 1,
45153 "type" : "string"
56122987 45154 },
44660702
DM
45155 "tcp_flags_log_level" : {
45156 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
45157 "enum" : [
45158 "emerg",
45159 "alert",
45160 "crit",
45161 "err",
45162 "warning",
45163 "notice",
45164 "info",
45165 "debug",
45166 "nolog"
45167 ],
44660702
DM
45168 "optional" : 1,
45169 "type" : "string"
7aacca6f 45170 },
44660702 45171 "tcpflags" : {
5c1699e5 45172 "default" : 0,
44660702 45173 "description" : "Filter illegal combinations of TCP flags.",
56122987 45174 "optional" : 1,
013dc89f
DM
45175 "type" : "boolean",
45176 "typetext" : "<boolean>"
56122987 45177 }
7aacca6f 45178 }
56122987 45179 },
44660702
DM
45180 "permissions" : {
45181 "check" : [
45182 "perm",
45183 "/nodes/{node}",
45184 [
45185 "Sys.Modify"
45186 ]
45187 ]
45188 },
45189 "protected" : 1,
45190 "proxyto" : "node",
45191 "returns" : {
45192 "type" : "null"
45193 }
7aacca6f
DM
45194 }
45195 },
44660702
DM
45196 "leaf" : 1,
45197 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
45198 "text" : "options"
45199 },
45200 {
7aacca6f
DM
45201 "info" : {
45202 "GET" : {
e9cd3bd4 45203 "allowtoken" : 1,
44660702
DM
45204 "description" : "Read firewall log",
45205 "method" : "GET",
7aacca6f 45206 "name" : "log",
56122987 45207 "parameters" : {
44660702 45208 "additionalProperties" : 0,
56122987 45209 "properties" : {
7aacca6f 45210 "limit" : {
44660702 45211 "minimum" : 0,
7aacca6f 45212 "optional" : 1,
4bd7df8b 45213 "type" : "integer",
013dc89f 45214 "typetext" : "<integer> (0 - N)"
7aacca6f 45215 },
56122987 45216 "node" : {
7aacca6f 45217 "description" : "The cluster node name.",
44660702 45218 "format" : "pve-node",
013dc89f
DM
45219 "type" : "string",
45220 "typetext" : "<string>"
44660702 45221 },
9d2e98ed
TL
45222 "since" : {
45223 "description" : "Display log since this UNIX epoch.",
45224 "minimum" : 0,
45225 "optional" : 1,
45226 "type" : "integer",
45227 "typetext" : "<integer> (0 - N)"
45228 },
44660702
DM
45229 "start" : {
45230 "minimum" : 0,
45231 "optional" : 1,
4bd7df8b 45232 "type" : "integer",
013dc89f 45233 "typetext" : "<integer> (0 - N)"
9d2e98ed
TL
45234 },
45235 "until" : {
45236 "description" : "Display log until this UNIX epoch.",
45237 "minimum" : 0,
45238 "optional" : 1,
45239 "type" : "integer",
45240 "typetext" : "<integer> (0 - N)"
56122987 45241 }
44660702 45242 }
7aacca6f 45243 },
56122987
DM
45244 "permissions" : {
45245 "check" : [
45246 "perm",
45247 "/nodes/{node}",
45248 [
45249 "Sys.Syslog"
45250 ]
45251 ]
45252 },
44660702
DM
45253 "protected" : 1,
45254 "proxyto" : "node",
56122987
DM
45255 "returns" : {
45256 "items" : {
56122987 45257 "properties" : {
56122987 45258 "n" : {
44660702
DM
45259 "description" : "Line number",
45260 "type" : "integer"
7aacca6f
DM
45261 },
45262 "t" : {
44660702
DM
45263 "description" : "Line text",
45264 "type" : "string"
56122987 45265 }
44660702
DM
45266 },
45267 "type" : "object"
56122987
DM
45268 },
45269 "type" : "array"
7aacca6f 45270 }
56122987
DM
45271 }
45272 },
44660702
DM
45273 "leaf" : 1,
45274 "path" : "/nodes/{node}/firewall/log",
7aacca6f 45275 "text" : "log"
56122987
DM
45276 }
45277 ],
45278 "info" : {
45279 "GET" : {
e9cd3bd4 45280 "allowtoken" : 1,
44660702
DM
45281 "description" : "Directory index.",
45282 "method" : "GET",
45283 "name" : "index",
56122987 45284 "parameters" : {
44660702 45285 "additionalProperties" : 0,
56122987
DM
45286 "properties" : {
45287 "node" : {
45288 "description" : "The cluster node name.",
44660702 45289 "format" : "pve-node",
013dc89f
DM
45290 "type" : "string",
45291 "typetext" : "<string>"
56122987 45292 }
44660702 45293 }
56122987 45294 },
7aacca6f
DM
45295 "permissions" : {
45296 "user" : "all"
45297 },
56122987
DM
45298 "returns" : {
45299 "items" : {
45300 "properties" : {},
45301 "type" : "object"
45302 },
56122987
DM
45303 "links" : [
45304 {
44660702
DM
45305 "href" : "{name}",
45306 "rel" : "child"
56122987 45307 }
44660702
DM
45308 ],
45309 "type" : "array"
45310 }
56122987 45311 }
7aacca6f 45312 },
44660702 45313 "leaf" : 0,
7aacca6f 45314 "path" : "/nodes/{node}/firewall",
44660702 45315 "text" : "firewall"
56122987 45316 },
5d9c884c
DM
45317 {
45318 "children" : [
45319 {
45320 "children" : [
45321 {
45322 "info" : {
45323 "GET" : {
e9cd3bd4 45324 "allowtoken" : 1,
5d9c884c
DM
45325 "description" : "Get replication job status.",
45326 "method" : "GET",
45327 "name" : "job_status",
45328 "parameters" : {
45329 "additionalProperties" : 0,
45330 "properties" : {
45331 "id" : {
45332 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
45333 "format" : "pve-replication-job-id",
45334 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
45335 "type" : "string"
45336 },
45337 "node" : {
45338 "description" : "The cluster node name.",
45339 "format" : "pve-node",
45340 "type" : "string",
45341 "typetext" : "<string>"
45342 }
45343 }
45344 },
45345 "permissions" : {
45346 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
45347 "user" : "all"
45348 },
45349 "protected" : 1,
45350 "proxyto" : "node",
45351 "returns" : {
5d9c884c
DM
45352 "type" : "object"
45353 }
45354 }
45355 },
45356 "leaf" : 1,
45357 "path" : "/nodes/{node}/replication/{id}/status",
45358 "text" : "status"
45359 },
45360 {
45361 "info" : {
45362 "GET" : {
e9cd3bd4 45363 "allowtoken" : 1,
5d9c884c
DM
45364 "description" : "Read replication job log.",
45365 "method" : "GET",
45366 "name" : "read_job_log",
45367 "parameters" : {
45368 "additionalProperties" : 0,
45369 "properties" : {
45370 "id" : {
45371 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
45372 "format" : "pve-replication-job-id",
45373 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
45374 "type" : "string"
45375 },
45376 "limit" : {
45377 "minimum" : 0,
45378 "optional" : 1,
45379 "type" : "integer",
45380 "typetext" : "<integer> (0 - N)"
45381 },
45382 "node" : {
45383 "description" : "The cluster node name.",
45384 "format" : "pve-node",
45385 "type" : "string",
45386 "typetext" : "<string>"
45387 },
45388 "start" : {
45389 "minimum" : 0,
45390 "optional" : 1,
45391 "type" : "integer",
45392 "typetext" : "<integer> (0 - N)"
45393 }
45394 }
45395 },
45396 "permissions" : {
45397 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
45398 "user" : "all"
45399 },
45400 "protected" : 1,
45401 "proxyto" : "node",
45402 "returns" : {
45403 "items" : {
45404 "properties" : {
45405 "n" : {
45406 "description" : "Line number",
45407 "type" : "integer"
45408 },
45409 "t" : {
45410 "description" : "Line text",
45411 "type" : "string"
45412 }
45413 },
45414 "type" : "object"
45415 },
45416 "type" : "array"
45417 }
45418 }
45419 },
45420 "leaf" : 1,
45421 "path" : "/nodes/{node}/replication/{id}/log",
45422 "text" : "log"
45423 },
45424 {
45425 "info" : {
45426 "POST" : {
e9cd3bd4 45427 "allowtoken" : 1,
5d9c884c
DM
45428 "description" : "Schedule replication job to start as soon as possible.",
45429 "method" : "POST",
45430 "name" : "schedule_now",
45431 "parameters" : {
45432 "additionalProperties" : 0,
45433 "properties" : {
45434 "id" : {
45435 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
45436 "format" : "pve-replication-job-id",
45437 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
45438 "type" : "string"
45439 },
45440 "node" : {
45441 "description" : "The cluster node name.",
45442 "format" : "pve-node",
45443 "type" : "string",
45444 "typetext" : "<string>"
45445 }
45446 }
45447 },
45448 "permissions" : {
45449 "check" : [
45450 "perm",
45451 "/storage",
45452 [
45453 "Datastore.Allocate"
45454 ]
45455 ]
45456 },
45457 "protected" : 1,
45458 "proxyto" : "node",
45459 "returns" : {
45460 "type" : "string"
45461 }
45462 }
45463 },
45464 "leaf" : 1,
45465 "path" : "/nodes/{node}/replication/{id}/schedule_now",
45466 "text" : "schedule_now"
45467 }
45468 ],
45469 "info" : {
45470 "GET" : {
e9cd3bd4 45471 "allowtoken" : 1,
5d9c884c
DM
45472 "description" : "Directory index.",
45473 "method" : "GET",
45474 "name" : "index",
45475 "parameters" : {
45476 "additionalProperties" : 0,
45477 "properties" : {
45478 "id" : {
45479 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
45480 "format" : "pve-replication-job-id",
45481 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
45482 "type" : "string"
45483 },
45484 "node" : {
45485 "description" : "The cluster node name.",
45486 "format" : "pve-node",
45487 "type" : "string",
45488 "typetext" : "<string>"
45489 }
45490 }
45491 },
45492 "permissions" : {
45493 "user" : "all"
45494 },
45495 "returns" : {
45496 "items" : {
45497 "properties" : {},
45498 "type" : "object"
45499 },
45500 "links" : [
45501 {
45502 "href" : "{name}",
45503 "rel" : "child"
45504 }
45505 ],
45506 "type" : "array"
45507 }
45508 }
45509 },
45510 "leaf" : 0,
45511 "path" : "/nodes/{node}/replication/{id}",
45512 "text" : "{id}"
45513 }
45514 ],
45515 "info" : {
45516 "GET" : {
e9cd3bd4 45517 "allowtoken" : 1,
5d9c884c
DM
45518 "description" : "List status of all replication jobs on this node.",
45519 "method" : "GET",
45520 "name" : "status",
45521 "parameters" : {
45522 "additionalProperties" : 0,
45523 "properties" : {
45524 "guest" : {
45525 "description" : "Only list replication jobs for this guest.",
45526 "format" : "pve-vmid",
8dd66e12
TL
45527 "maximum" : 999999999,
45528 "minimum" : 100,
5d9c884c
DM
45529 "optional" : 1,
45530 "type" : "integer",
8dd66e12 45531 "typetext" : "<integer> (100 - 999999999)"
5d9c884c
DM
45532 },
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" : "Requires the VM.Audit permission on /vms/<vmid>.",
45543 "user" : "all"
45544 },
45545 "protected" : 1,
45546 "proxyto" : "node",
45547 "returns" : {
45548 "items" : {
45549 "properties" : {
45550 "id" : {
45551 "type" : "string"
45552 }
45553 },
45554 "type" : "object"
45555 },
45556 "links" : [
45557 {
45558 "href" : "{id}",
45559 "rel" : "child"
45560 }
45561 ],
45562 "type" : "array"
45563 }
45564 }
45565 },
45566 "leaf" : 0,
45567 "path" : "/nodes/{node}/replication",
45568 "text" : "replication"
45569 },
a9a8e3d1
DM
45570 {
45571 "children" : [
45572 {
45573 "children" : [
45574 {
45575 "info" : {
45576 "DELETE" : {
e9cd3bd4 45577 "allowtoken" : 1,
a9a8e3d1
DM
45578 "description" : "Revoke existing certificate from CA.",
45579 "method" : "DELETE",
45580 "name" : "revoke_certificate",
45581 "parameters" : {
45582 "additionalProperties" : 0,
45583 "properties" : {
45584 "node" : {
45585 "description" : "The cluster node name.",
45586 "format" : "pve-node",
45587 "type" : "string",
45588 "typetext" : "<string>"
45589 }
45590 }
45591 },
ac70d7d1
TL
45592 "permissions" : {
45593 "check" : [
45594 "perm",
45595 "/nodes/{node}",
45596 [
45597 "Sys.Modify"
45598 ]
45599 ]
45600 },
a9a8e3d1
DM
45601 "protected" : 1,
45602 "proxyto" : "node",
45603 "returns" : {
45604 "type" : "string"
45605 }
45606 },
45607 "POST" : {
e9cd3bd4 45608 "allowtoken" : 1,
a9a8e3d1
DM
45609 "description" : "Order a new certificate from ACME-compatible CA.",
45610 "method" : "POST",
45611 "name" : "new_certificate",
45612 "parameters" : {
45613 "additionalProperties" : 0,
45614 "properties" : {
45615 "force" : {
45616 "default" : 0,
45617 "description" : "Overwrite existing custom certificate.",
45618 "optional" : 1,
45619 "type" : "boolean",
45620 "typetext" : "<boolean>"
45621 },
45622 "node" : {
45623 "description" : "The cluster node name.",
45624 "format" : "pve-node",
45625 "type" : "string",
45626 "typetext" : "<string>"
45627 }
45628 }
45629 },
ac70d7d1
TL
45630 "permissions" : {
45631 "check" : [
45632 "perm",
45633 "/nodes/{node}",
45634 [
45635 "Sys.Modify"
45636 ]
45637 ]
45638 },
a9a8e3d1
DM
45639 "protected" : 1,
45640 "proxyto" : "node",
45641 "returns" : {
45642 "type" : "string"
45643 }
45644 },
45645 "PUT" : {
e9cd3bd4 45646 "allowtoken" : 1,
a9a8e3d1
DM
45647 "description" : "Renew existing certificate from CA.",
45648 "method" : "PUT",
45649 "name" : "renew_certificate",
45650 "parameters" : {
45651 "additionalProperties" : 0,
45652 "properties" : {
45653 "force" : {
45654 "default" : 0,
45655 "description" : "Force renewal even if expiry is more than 30 days away.",
45656 "optional" : 1,
45657 "type" : "boolean",
45658 "typetext" : "<boolean>"
45659 },
45660 "node" : {
45661 "description" : "The cluster node name.",
45662 "format" : "pve-node",
45663 "type" : "string",
45664 "typetext" : "<string>"
45665 }
45666 }
45667 },
ac70d7d1
TL
45668 "permissions" : {
45669 "check" : [
45670 "perm",
45671 "/nodes/{node}",
45672 [
45673 "Sys.Modify"
45674 ]
45675 ]
45676 },
a9a8e3d1
DM
45677 "protected" : 1,
45678 "proxyto" : "node",
45679 "returns" : {
45680 "type" : "string"
45681 }
45682 }
45683 },
45684 "leaf" : 1,
45685 "path" : "/nodes/{node}/certificates/acme/certificate",
45686 "text" : "certificate"
45687 }
45688 ],
45689 "info" : {
45690 "GET" : {
e9cd3bd4 45691 "allowtoken" : 1,
a9a8e3d1
DM
45692 "description" : "ACME index.",
45693 "method" : "GET",
45694 "name" : "index",
45695 "parameters" : {
45696 "additionalProperties" : 0,
45697 "properties" : {
45698 "node" : {
45699 "description" : "The cluster node name.",
45700 "format" : "pve-node",
45701 "type" : "string",
45702 "typetext" : "<string>"
45703 }
45704 }
45705 },
45706 "permissions" : {
45707 "user" : "all"
45708 },
45709 "returns" : {
45710 "items" : {
45711 "properties" : {},
45712 "type" : "object"
45713 },
45714 "links" : [
45715 {
45716 "href" : "{name}",
45717 "rel" : "child"
45718 }
45719 ],
45720 "type" : "array"
45721 }
45722 }
45723 },
45724 "leaf" : 0,
45725 "path" : "/nodes/{node}/certificates/acme",
45726 "text" : "acme"
45727 },
45728 {
45729 "info" : {
45730 "GET" : {
e9cd3bd4 45731 "allowtoken" : 1,
a9a8e3d1
DM
45732 "description" : "Get information about node's certificates.",
45733 "method" : "GET",
45734 "name" : "info",
45735 "parameters" : {
45736 "additionalProperties" : 0,
45737 "properties" : {
45738 "node" : {
45739 "description" : "The cluster node name.",
45740 "format" : "pve-node",
45741 "type" : "string",
45742 "typetext" : "<string>"
45743 }
45744 }
45745 },
45746 "permissions" : {
45747 "user" : "all"
45748 },
45749 "proxyto" : "node",
45750 "returns" : {
45751 "items" : {
45752 "properties" : {
45753 "filename" : {
45754 "optional" : 1,
45755 "type" : "string"
45756 },
45757 "fingerprint" : {
45758 "description" : "Certificate SHA 256 fingerprint.",
45759 "optional" : 1,
45760 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
45761 "type" : "string"
45762 },
45763 "issuer" : {
45764 "description" : "Certificate issuer name.",
45765 "optional" : 1,
45766 "type" : "string"
45767 },
45768 "notafter" : {
45769 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
45770 "optional" : 1,
4d47f125 45771 "renderer" : "timestamp",
a9a8e3d1
DM
45772 "type" : "integer"
45773 },
45774 "notbefore" : {
45775 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
45776 "optional" : 1,
4d47f125 45777 "renderer" : "timestamp",
a9a8e3d1
DM
45778 "type" : "integer"
45779 },
45780 "pem" : {
45781 "description" : "Certificate in PEM format",
45782 "format" : "pem-certificate",
45783 "optional" : 1,
45784 "type" : "string"
45785 },
1c532546
TL
45786 "public-key-bits" : {
45787 "description" : "Certificate's public key size",
45788 "optional" : 1,
45789 "type" : "integer"
45790 },
45791 "public-key-type" : {
45792 "description" : "Certificate's public key algorithm",
45793 "optional" : 1,
45794 "type" : "string"
45795 },
a9a8e3d1
DM
45796 "san" : {
45797 "description" : "List of Certificate's SubjectAlternativeName entries.",
45798 "items" : {
45799 "type" : "string"
45800 },
45801 "optional" : 1,
4d47f125 45802 "renderer" : "yaml",
a9a8e3d1
DM
45803 "type" : "array"
45804 },
45805 "subject" : {
45806 "description" : "Certificate subject name.",
45807 "optional" : 1,
45808 "type" : "string"
45809 }
45810 },
45811 "type" : "object"
45812 },
45813 "type" : "array"
45814 }
45815 }
45816 },
45817 "leaf" : 1,
45818 "path" : "/nodes/{node}/certificates/info",
45819 "text" : "info"
45820 },
45821 {
45822 "info" : {
45823 "DELETE" : {
e9cd3bd4 45824 "allowtoken" : 1,
a9a8e3d1
DM
45825 "description" : "DELETE custom certificate chain and key.",
45826 "method" : "DELETE",
45827 "name" : "remove_custom_cert",
45828 "parameters" : {
45829 "additionalProperties" : 0,
45830 "properties" : {
45831 "node" : {
45832 "description" : "The cluster node name.",
45833 "format" : "pve-node",
45834 "type" : "string",
45835 "typetext" : "<string>"
45836 },
45837 "restart" : {
45838 "default" : 0,
45839 "description" : "Restart pveproxy.",
45840 "optional" : 1,
45841 "type" : "boolean",
45842 "typetext" : "<boolean>"
45843 }
45844 }
45845 },
ac70d7d1
TL
45846 "permissions" : {
45847 "check" : [
45848 "perm",
45849 "/nodes/{node}",
45850 [
45851 "Sys.Modify"
45852 ]
45853 ]
45854 },
a9a8e3d1
DM
45855 "protected" : 1,
45856 "proxyto" : "node",
45857 "returns" : {
45858 "type" : "null"
45859 }
45860 },
45861 "POST" : {
e9cd3bd4 45862 "allowtoken" : 1,
a9a8e3d1
DM
45863 "description" : "Upload or update custom certificate chain and key.",
45864 "method" : "POST",
45865 "name" : "upload_custom_cert",
45866 "parameters" : {
45867 "additionalProperties" : 0,
45868 "properties" : {
45869 "certificates" : {
45870 "description" : "PEM encoded certificate (chain).",
45871 "format" : "pem-certificate-chain",
45872 "type" : "string",
45873 "typetext" : "<string>"
45874 },
45875 "force" : {
45876 "default" : 0,
45877 "description" : "Overwrite existing custom or ACME certificate files.",
45878 "optional" : 1,
45879 "type" : "boolean",
45880 "typetext" : "<boolean>"
45881 },
45882 "key" : {
45883 "description" : "PEM encoded private key.",
45884 "format" : "pem-string",
45885 "optional" : 1,
45886 "type" : "string",
45887 "typetext" : "<string>"
45888 },
45889 "node" : {
45890 "description" : "The cluster node name.",
45891 "format" : "pve-node",
45892 "type" : "string",
45893 "typetext" : "<string>"
45894 },
45895 "restart" : {
45896 "default" : 0,
45897 "description" : "Restart pveproxy.",
45898 "optional" : 1,
45899 "type" : "boolean",
45900 "typetext" : "<boolean>"
45901 }
45902 }
45903 },
ac70d7d1
TL
45904 "permissions" : {
45905 "check" : [
45906 "perm",
45907 "/nodes/{node}",
45908 [
45909 "Sys.Modify"
45910 ]
45911 ]
45912 },
a9a8e3d1
DM
45913 "protected" : 1,
45914 "proxyto" : "node",
45915 "returns" : {
45916 "properties" : {
45917 "filename" : {
45918 "optional" : 1,
45919 "type" : "string"
45920 },
45921 "fingerprint" : {
45922 "description" : "Certificate SHA 256 fingerprint.",
45923 "optional" : 1,
45924 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
45925 "type" : "string"
45926 },
45927 "issuer" : {
45928 "description" : "Certificate issuer name.",
45929 "optional" : 1,
45930 "type" : "string"
45931 },
45932 "notafter" : {
45933 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
45934 "optional" : 1,
4d47f125 45935 "renderer" : "timestamp",
a9a8e3d1
DM
45936 "type" : "integer"
45937 },
45938 "notbefore" : {
45939 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
45940 "optional" : 1,
4d47f125 45941 "renderer" : "timestamp",
a9a8e3d1
DM
45942 "type" : "integer"
45943 },
45944 "pem" : {
45945 "description" : "Certificate in PEM format",
45946 "format" : "pem-certificate",
45947 "optional" : 1,
45948 "type" : "string"
45949 },
1c532546
TL
45950 "public-key-bits" : {
45951 "description" : "Certificate's public key size",
45952 "optional" : 1,
45953 "type" : "integer"
45954 },
45955 "public-key-type" : {
45956 "description" : "Certificate's public key algorithm",
45957 "optional" : 1,
45958 "type" : "string"
45959 },
a9a8e3d1
DM
45960 "san" : {
45961 "description" : "List of Certificate's SubjectAlternativeName entries.",
45962 "items" : {
45963 "type" : "string"
45964 },
45965 "optional" : 1,
4d47f125 45966 "renderer" : "yaml",
a9a8e3d1
DM
45967 "type" : "array"
45968 },
45969 "subject" : {
45970 "description" : "Certificate subject name.",
45971 "optional" : 1,
45972 "type" : "string"
45973 }
45974 },
45975 "type" : "object"
45976 }
45977 }
45978 },
45979 "leaf" : 1,
45980 "path" : "/nodes/{node}/certificates/custom",
45981 "text" : "custom"
45982 }
45983 ],
45984 "info" : {
45985 "GET" : {
e9cd3bd4 45986 "allowtoken" : 1,
a9a8e3d1
DM
45987 "description" : "Node index.",
45988 "method" : "GET",
45989 "name" : "index",
45990 "parameters" : {
45991 "additionalProperties" : 0,
45992 "properties" : {
45993 "node" : {
45994 "description" : "The cluster node name.",
45995 "format" : "pve-node",
45996 "type" : "string",
45997 "typetext" : "<string>"
45998 }
45999 }
46000 },
46001 "permissions" : {
46002 "user" : "all"
46003 },
46004 "returns" : {
46005 "items" : {
46006 "properties" : {},
46007 "type" : "object"
46008 },
46009 "links" : [
46010 {
46011 "href" : "{name}",
46012 "rel" : "child"
46013 }
46014 ],
46015 "type" : "array"
46016 }
46017 }
46018 },
46019 "leaf" : 0,
c5aa7e14
TL
46020 "path" : "/nodes/{node}/certificates",
46021 "text" : "certificates"
46022 },
46023 {
46024 "info" : {
46025 "GET" : {
46026 "allowtoken" : 1,
46027 "description" : "Get node configuration options.",
46028 "method" : "GET",
46029 "name" : "get_config",
46030 "parameters" : {
46031 "additionalProperties" : 0,
46032 "properties" : {
46033 "node" : {
46034 "description" : "The cluster node name.",
46035 "format" : "pve-node",
46036 "type" : "string",
46037 "typetext" : "<string>"
46038 },
46039 "property" : {
46040 "default" : "all",
46041 "description" : "Return only a specific property from the node configuration.",
46042 "enum" : [
46043 "acme",
46044 "acmedomain0",
46045 "acmedomain1",
46046 "acmedomain2",
46047 "acmedomain3",
46048 "acmedomain4",
46049 "acmedomain5",
46050 "description",
46051 "startall-onboot-delay",
46052 "wakeonlan"
46053 ],
46054 "optional" : 1,
46055 "type" : "string"
46056 }
46057 }
46058 },
46059 "permissions" : {
46060 "check" : [
46061 "perm",
46062 "/",
46063 [
46064 "Sys.Audit"
46065 ]
46066 ]
46067 },
46068 "proxyto" : "node",
46069 "returns" : {
c30bb419
TL
46070 "properties" : {
46071 "acme" : {
46072 "description" : "Node specific ACME settings.",
46073 "format" : {
46074 "account" : {
46075 "default" : "default",
46076 "description" : "ACME account config file name.",
46077 "format" : "pve-configid",
46078 "format_description" : "name",
46079 "optional" : 1,
46080 "type" : "string"
46081 },
46082 "domains" : {
46083 "description" : "List of domains for this node's ACME certificate",
46084 "format" : "pve-acme-domain-list",
46085 "format_description" : "domain[;domain;...]",
46086 "optional" : 1,
46087 "type" : "string"
46088 }
46089 },
46090 "optional" : 1,
46091 "type" : "string"
46092 },
46093 "acmedomain[n]" : {
46094 "description" : "ACME domain and validation plugin",
46095 "format" : {
46096 "alias" : {
46097 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
46098 "format" : "pve-acme-alias",
46099 "format_description" : "domain",
46100 "optional" : 1,
46101 "type" : "string"
46102 },
46103 "domain" : {
46104 "default_key" : 1,
46105 "description" : "domain for this node's ACME certificate",
46106 "format" : "pve-acme-domain",
46107 "format_description" : "domain",
46108 "type" : "string"
46109 },
46110 "plugin" : {
46111 "default" : "standalone",
46112 "description" : "The ACME plugin ID",
46113 "format" : "pve-configid",
46114 "format_description" : "name of the plugin configuration",
46115 "optional" : 1,
46116 "type" : "string"
46117 }
46118 },
46119 "optional" : 1,
46120 "type" : "string"
46121 },
46122 "description" : {
46123 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
46124 "maxLength" : 65536,
46125 "optional" : 1,
46126 "type" : "string"
46127 },
46128 "digest" : {
46129 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
46130 "maxLength" : 40,
46131 "optional" : 1,
46132 "type" : "string"
46133 },
46134 "startall-onboot-delay" : {
46135 "default" : 0,
46136 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
46137 "maximum" : 300,
46138 "minimum" : 0,
46139 "optional" : 1,
46140 "type" : "integer"
46141 },
46142 "wakeonlan" : {
46143 "description" : "MAC address for wake on LAN",
46144 "format" : "mac-addr",
46145 "optional" : 1,
46146 "type" : "string"
46147 }
46148 },
c5aa7e14
TL
46149 "type" : "object"
46150 }
46151 },
46152 "PUT" : {
46153 "allowtoken" : 1,
46154 "description" : "Set node configuration options.",
46155 "method" : "PUT",
46156 "name" : "set_options",
46157 "parameters" : {
46158 "additionalProperties" : 0,
46159 "properties" : {
46160 "acme" : {
46161 "description" : "Node specific ACME settings.",
46162 "format" : {
46163 "account" : {
46164 "default" : "default",
46165 "description" : "ACME account config file name.",
46166 "format" : "pve-configid",
46167 "format_description" : "name",
46168 "optional" : 1,
46169 "type" : "string"
46170 },
46171 "domains" : {
46172 "description" : "List of domains for this node's ACME certificate",
46173 "format" : "pve-acme-domain-list",
46174 "format_description" : "domain[;domain;...]",
46175 "optional" : 1,
46176 "type" : "string"
46177 }
46178 },
46179 "optional" : 1,
46180 "type" : "string",
46181 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
46182 },
46183 "acmedomain[n]" : {
46184 "description" : "ACME domain and validation plugin",
46185 "format" : {
46186 "alias" : {
46187 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 46188 "format" : "pve-acme-alias",
c5aa7e14
TL
46189 "format_description" : "domain",
46190 "optional" : 1,
46191 "type" : "string"
46192 },
46193 "domain" : {
46194 "default_key" : 1,
46195 "description" : "domain for this node's ACME certificate",
46196 "format" : "pve-acme-domain",
46197 "format_description" : "domain",
46198 "type" : "string"
46199 },
46200 "plugin" : {
46201 "default" : "standalone",
46202 "description" : "The ACME plugin ID",
46203 "format" : "pve-configid",
46204 "format_description" : "name of the plugin configuration",
46205 "optional" : 1,
46206 "type" : "string"
46207 }
46208 },
46209 "optional" : 1,
46210 "type" : "string",
46211 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
46212 },
46213 "delete" : {
46214 "description" : "A list of settings you want to delete.",
46215 "format" : "pve-configid-list",
46216 "optional" : 1,
46217 "type" : "string",
46218 "typetext" : "<string>"
46219 },
46220 "description" : {
0695fdaf
TL
46221 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
46222 "maxLength" : 65536,
c5aa7e14
TL
46223 "optional" : 1,
46224 "type" : "string",
46225 "typetext" : "<string>"
46226 },
46227 "digest" : {
46228 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
46229 "maxLength" : 40,
46230 "optional" : 1,
46231 "type" : "string",
46232 "typetext" : "<string>"
46233 },
46234 "node" : {
46235 "description" : "The cluster node name.",
46236 "format" : "pve-node",
46237 "type" : "string",
46238 "typetext" : "<string>"
46239 },
46240 "startall-onboot-delay" : {
46241 "default" : 0,
46242 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
46243 "maximum" : 300,
46244 "minimum" : 0,
46245 "optional" : 1,
46246 "type" : "integer",
46247 "typetext" : "<integer> (0 - 300)"
46248 },
46249 "wakeonlan" : {
46250 "description" : "MAC address for wake on LAN",
46251 "format" : "mac-addr",
46252 "optional" : 1,
46253 "type" : "string",
46254 "typetext" : "<string>"
46255 }
46256 }
46257 },
46258 "permissions" : {
46259 "check" : [
46260 "perm",
46261 "/",
46262 [
46263 "Sys.Modify"
46264 ]
46265 ]
46266 },
46267 "protected" : 1,
46268 "proxyto" : "node",
46269 "returns" : {
46270 "type" : "null"
46271 }
46272 }
46273 },
46274 "leaf" : 1,
46275 "path" : "/nodes/{node}/config",
46276 "text" : "config"
46277 },
46278 {
46279 "children" : [
46280 {
46281 "children" : [
46282 {
46283 "children" : [
46284 {
46285 "info" : {
46286 "GET" : {
46287 "allowtoken" : 1,
46288 "description" : "List zone content.",
46289 "method" : "GET",
46290 "name" : "index",
46291 "parameters" : {
46292 "additionalProperties" : 0,
46293 "properties" : {
46294 "node" : {
46295 "description" : "The cluster node name.",
46296 "format" : "pve-node",
46297 "type" : "string",
46298 "typetext" : "<string>"
46299 },
46300 "zone" : {
46301 "description" : "The SDN zone object identifier.",
46302 "format" : "pve-sdn-zone-id",
46303 "type" : "string",
46304 "typetext" : "<string>"
46305 }
46306 }
46307 },
46308 "permissions" : {
46309 "check" : [
46310 "perm",
46311 "/sdn/zones/{zone}",
46312 [
46313 "SDN.Audit"
46314 ],
46315 "any",
46316 1
46317 ]
46318 },
46319 "protected" : 1,
46320 "proxyto" : "node",
46321 "returns" : {
46322 "items" : {
46323 "properties" : {
46324 "status" : {
46325 "description" : "Status.",
46326 "optional" : 1,
46327 "type" : "string"
46328 },
46329 "statusmsg" : {
46330 "description" : "Status details",
46331 "optional" : 1,
46332 "type" : "string"
46333 },
46334 "vnet" : {
46335 "description" : "Vnet identifier.",
46336 "type" : "string"
46337 }
46338 },
46339 "type" : "object"
46340 },
46341 "links" : [
46342 {
46343 "href" : "{vnet}",
46344 "rel" : "child"
46345 }
46346 ],
46347 "type" : "array"
46348 }
46349 }
46350 },
46351 "leaf" : 1,
46352 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
46353 "text" : "content"
46354 }
46355 ],
46356 "info" : {
46357 "GET" : {
46358 "allowtoken" : 1,
46359 "description" : "",
46360 "method" : "GET",
46361 "name" : "diridx",
46362 "parameters" : {
46363 "additionalProperties" : 0,
46364 "properties" : {
46365 "node" : {
46366 "description" : "The cluster node name.",
46367 "format" : "pve-node",
46368 "type" : "string",
46369 "typetext" : "<string>"
46370 },
46371 "zone" : {
46372 "description" : "The SDN zone object identifier.",
46373 "format" : "pve-sdn-zone-id",
46374 "type" : "string",
46375 "typetext" : "<string>"
46376 }
46377 }
46378 },
46379 "permissions" : {
46380 "check" : [
46381 "perm",
46382 "/sdn/zones/{zone}",
46383 [
46384 "SDN.Audit"
46385 ],
46386 "any",
46387 1
46388 ]
46389 },
46390 "returns" : {
46391 "items" : {
46392 "properties" : {
46393 "subdir" : {
46394 "type" : "string"
46395 }
46396 },
46397 "type" : "object"
46398 },
46399 "links" : [
46400 {
46401 "href" : "{subdir}",
46402 "rel" : "child"
46403 }
46404 ],
46405 "type" : "array"
46406 }
46407 }
46408 },
46409 "leaf" : 0,
46410 "path" : "/nodes/{node}/sdn/zones/{zone}",
46411 "text" : "{zone}"
46412 }
46413 ],
46414 "info" : {
46415 "GET" : {
46416 "allowtoken" : 1,
46417 "description" : "Get status for all zones.",
46418 "method" : "GET",
46419 "name" : "index",
46420 "parameters" : {
46421 "additionalProperties" : 0,
46422 "properties" : {
46423 "node" : {
46424 "description" : "The cluster node name.",
46425 "format" : "pve-node",
46426 "type" : "string",
46427 "typetext" : "<string>"
46428 }
46429 }
46430 },
46431 "permissions" : {
46432 "description" : "Only list entries where you have 'SDN.Audit'",
46433 "user" : "all"
46434 },
46435 "protected" : 1,
46436 "proxyto" : "node",
46437 "returns" : {
46438 "items" : {
46439 "properties" : {
46440 "status" : {
46441 "description" : "Status of zone",
ac70d7d1
TL
46442 "enum" : [
46443 "available",
46444 "pending",
46445 "error"
46446 ],
c5aa7e14
TL
46447 "type" : "string"
46448 },
46449 "zone" : {
46450 "description" : "The SDN zone object identifier.",
46451 "format" : "pve-sdn-zone-id",
46452 "type" : "string"
46453 }
46454 },
46455 "type" : "object"
46456 },
46457 "links" : [
46458 {
46459 "href" : "{zone}",
46460 "rel" : "child"
46461 }
46462 ],
46463 "type" : "array"
46464 }
46465 }
46466 },
46467 "leaf" : 0,
46468 "path" : "/nodes/{node}/sdn/zones",
46469 "text" : "zones"
46470 }
46471 ],
46472 "info" : {
46473 "GET" : {
46474 "allowtoken" : 1,
46475 "description" : "SDN index.",
46476 "method" : "GET",
46477 "name" : "sdnindex",
46478 "parameters" : {
46479 "additionalProperties" : 0,
46480 "properties" : {
46481 "node" : {
46482 "description" : "The cluster node name.",
46483 "format" : "pve-node",
46484 "type" : "string",
46485 "typetext" : "<string>"
46486 }
46487 }
46488 },
46489 "permissions" : {
46490 "user" : "all"
46491 },
46492 "returns" : {
46493 "items" : {
46494 "properties" : {},
46495 "type" : "object"
46496 },
46497 "links" : [
46498 {
46499 "href" : "{name}",
46500 "rel" : "child"
46501 }
46502 ],
46503 "type" : "array"
46504 }
46505 }
46506 },
46507 "leaf" : 0,
46508 "path" : "/nodes/{node}/sdn",
46509 "text" : "sdn"
a9a8e3d1 46510 },
56122987 46511 {
56122987
DM
46512 "info" : {
46513 "GET" : {
e9cd3bd4 46514 "allowtoken" : 1,
44660702
DM
46515 "description" : "API version details",
46516 "method" : "GET",
46517 "name" : "version",
56122987 46518 "parameters" : {
44660702 46519 "additionalProperties" : 0,
56122987
DM
46520 "properties" : {
46521 "node" : {
56122987 46522 "description" : "The cluster node name.",
44660702 46523 "format" : "pve-node",
013dc89f
DM
46524 "type" : "string",
46525 "typetext" : "<string>"
56122987 46526 }
44660702 46527 }
56122987 46528 },
56122987 46529 "permissions" : {
7aacca6f 46530 "user" : "all"
56122987 46531 },
56122987 46532 "proxyto" : "node",
56122987 46533 "returns" : {
56122987 46534 "properties" : {
44660702 46535 "release" : {
1e3f8156 46536 "description" : "The current installed Proxmox VE Release",
56122987
DM
46537 "type" : "string"
46538 },
44660702 46539 "repoid" : {
1e3f8156 46540 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
46541 "type" : "string"
46542 },
46543 "version" : {
1e3f8156 46544 "description" : "The current installed pve-manager package version",
7aacca6f
DM
46545 "type" : "string"
46546 }
44660702
DM
46547 },
46548 "type" : "object"
7aacca6f 46549 }
56122987
DM
46550 }
46551 },
56122987 46552 "leaf" : 1,
44660702
DM
46553 "path" : "/nodes/{node}/version",
46554 "text" : "version"
56122987
DM
46555 },
46556 {
56122987
DM
46557 "info" : {
46558 "GET" : {
e9cd3bd4 46559 "allowtoken" : 1,
7aacca6f 46560 "description" : "Read node status",
44660702 46561 "method" : "GET",
7aacca6f 46562 "name" : "status",
56122987 46563 "parameters" : {
44660702 46564 "additionalProperties" : 0,
56122987
DM
46565 "properties" : {
46566 "node" : {
7aacca6f 46567 "description" : "The cluster node name.",
44660702 46568 "format" : "pve-node",
013dc89f
DM
46569 "type" : "string",
46570 "typetext" : "<string>"
56122987 46571 }
44660702 46572 }
56122987 46573 },
56122987
DM
46574 "permissions" : {
46575 "check" : [
46576 "perm",
46577 "/nodes/{node}",
46578 [
46579 "Sys.Audit"
46580 ]
46581 ]
44660702
DM
46582 },
46583 "proxyto" : "node",
46584 "returns" : {
44660702 46585 "type" : "object"
7aacca6f
DM
46586 }
46587 },
46588 "POST" : {
e9cd3bd4 46589 "allowtoken" : 1,
44660702
DM
46590 "description" : "Reboot or shutdown a node.",
46591 "method" : "POST",
7aacca6f 46592 "name" : "node_cmd",
56122987 46593 "parameters" : {
44660702 46594 "additionalProperties" : 0,
56122987 46595 "properties" : {
7aacca6f
DM
46596 "command" : {
46597 "description" : "Specify the command.",
56122987 46598 "enum" : [
7aacca6f
DM
46599 "reboot",
46600 "shutdown"
56122987
DM
46601 ],
46602 "type" : "string"
44660702
DM
46603 },
46604 "node" : {
46605 "description" : "The cluster node name.",
46606 "format" : "pve-node",
013dc89f
DM
46607 "type" : "string",
46608 "typetext" : "<string>"
56122987 46609 }
44660702 46610 }
7aacca6f 46611 },
7aacca6f
DM
46612 "permissions" : {
46613 "check" : [
46614 "perm",
46615 "/nodes/{node}",
46616 [
46617 "Sys.PowerMgmt"
46618 ]
46619 ]
46620 },
44660702 46621 "protected" : 1,
7aacca6f 46622 "proxyto" : "node",
7aacca6f
DM
46623 "returns" : {
46624 "type" : "null"
56122987
DM
46625 }
46626 }
46627 },
7aacca6f 46628 "leaf" : 1,
44660702
DM
46629 "path" : "/nodes/{node}/status",
46630 "text" : "status"
56122987
DM
46631 },
46632 {
56122987
DM
46633 "info" : {
46634 "GET" : {
e9cd3bd4 46635 "allowtoken" : 1,
44660702
DM
46636 "description" : "Read tap/vm network device interface counters",
46637 "method" : "GET",
46638 "name" : "netstat",
46639 "parameters" : {
46640 "additionalProperties" : 0,
46641 "properties" : {
46642 "node" : {
46643 "description" : "The cluster node name.",
46644 "format" : "pve-node",
013dc89f
DM
46645 "type" : "string",
46646 "typetext" : "<string>"
44660702 46647 }
56122987
DM
46648 }
46649 },
46650 "permissions" : {
46651 "check" : [
46652 "perm",
46653 "/nodes/{node}",
46654 [
7aacca6f 46655 "Sys.Audit"
56122987
DM
46656 ]
46657 ]
46658 },
7aacca6f 46659 "proxyto" : "node",
44660702
DM
46660 "returns" : {
46661 "items" : {
46662 "properties" : {},
46663 "type" : "object"
46664 },
46665 "type" : "array"
46666 }
7aacca6f
DM
46667 }
46668 },
44660702
DM
46669 "leaf" : 1,
46670 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
46671 "text" : "netstat"
46672 },
46673 {
46674 "info" : {
46675 "POST" : {
e9cd3bd4 46676 "allowtoken" : 1,
159464a9 46677 "description" : "Execute multiple commands in order, root only.",
7aacca6f 46678 "method" : "POST",
7aacca6f 46679 "name" : "execute",
56122987
DM
46680 "parameters" : {
46681 "additionalProperties" : 0,
46682 "properties" : {
7aacca6f
DM
46683 "commands" : {
46684 "description" : "JSON encoded array of commands.",
de786b48 46685 "format" : "pve-command-batch",
013dc89f 46686 "type" : "string",
de786b48 46687 "typetext" : "<string>",
4a407cfd 46688 "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
46689 },
46690 "node" : {
44660702 46691 "description" : "The cluster node name.",
56122987 46692 "format" : "pve-node",
013dc89f
DM
46693 "type" : "string",
46694 "typetext" : "<string>"
56122987
DM
46695 }
46696 }
44660702 46697 },
44660702
DM
46698 "protected" : 1,
46699 "proxyto" : "node",
46700 "returns" : {
de786b48
TL
46701 "items" : {
46702 "properties" : {},
46703 "type" : "object"
46704 },
44660702 46705 "type" : "array"
56122987
DM
46706 }
46707 }
46708 },
56122987 46709 "leaf" : 1,
44660702
DM
46710 "path" : "/nodes/{node}/execute",
46711 "text" : "execute"
56122987 46712 },
5f26e15b
TL
46713 {
46714 "info" : {
46715 "POST" : {
e9cd3bd4 46716 "allowtoken" : 1,
5f26e15b
TL
46717 "description" : "Try to wake a node via 'wake on LAN' network packet.",
46718 "method" : "POST",
46719 "name" : "wakeonlan",
46720 "parameters" : {
46721 "additionalProperties" : 0,
46722 "properties" : {
46723 "node" : {
46724 "description" : "target node for wake on LAN packet",
46725 "format" : "pve-node",
46726 "type" : "string",
46727 "typetext" : "<string>"
46728 }
46729 }
46730 },
46731 "permissions" : {
46732 "check" : [
46733 "perm",
46734 "/nodes/{node}",
46735 [
46736 "Sys.PowerMgmt"
46737 ]
46738 ]
46739 },
46740 "protected" : 1,
46741 "returns" : {
46742 "description" : "MAC address used to assemble the WoL magic packet.",
46743 "format" : "mac-addr",
46744 "type" : "string"
46745 }
46746 }
46747 },
46748 "leaf" : 1,
46749 "path" : "/nodes/{node}/wakeonlan",
46750 "text" : "wakeonlan"
46751 },
56122987
DM
46752 {
46753 "info" : {
7aacca6f 46754 "GET" : {
e9cd3bd4 46755 "allowtoken" : 1,
44660702
DM
46756 "description" : "Read node RRD statistics (returns PNG)",
46757 "method" : "GET",
7aacca6f 46758 "name" : "rrd",
56122987 46759 "parameters" : {
7aacca6f 46760 "additionalProperties" : 0,
56122987 46761 "properties" : {
44660702
DM
46762 "cf" : {
46763 "description" : "The RRD consolidation function",
46764 "enum" : [
46765 "AVERAGE",
46766 "MAX"
46767 ],
46768 "optional" : 1,
46769 "type" : "string"
46770 },
7aacca6f 46771 "ds" : {
7aacca6f 46772 "description" : "The list of datasources you want to display.",
44660702 46773 "format" : "pve-configid-list",
013dc89f
DM
46774 "type" : "string",
46775 "typetext" : "<string>"
44660702
DM
46776 },
46777 "node" : {
46778 "description" : "The cluster node name.",
46779 "format" : "pve-node",
013dc89f
DM
46780 "type" : "string",
46781 "typetext" : "<string>"
7aacca6f
DM
46782 },
46783 "timeframe" : {
46784 "description" : "Specify the time frame you are interested in.",
46785 "enum" : [
46786 "hour",
46787 "day",
46788 "week",
46789 "month",
46790 "year"
46791 ],
46792 "type" : "string"
56122987 46793 }
7aacca6f 46794 }
56122987 46795 },
56122987 46796 "permissions" : {
56122987
DM
46797 "check" : [
46798 "perm",
46799 "/nodes/{node}",
46800 [
7aacca6f 46801 "Sys.Audit"
56122987
DM
46802 ]
46803 ]
46804 },
7aacca6f 46805 "protected" : 1,
56122987 46806 "returns" : {
56122987 46807 "properties" : {
7aacca6f 46808 "filename" : {
56122987
DM
46809 "type" : "string"
46810 }
44660702
DM
46811 },
46812 "type" : "object"
46813 }
56122987
DM
46814 }
46815 },
44660702 46816 "leaf" : 1,
7aacca6f 46817 "path" : "/nodes/{node}/rrd",
44660702 46818 "text" : "rrd"
56122987
DM
46819 },
46820 {
46821 "info" : {
7aacca6f 46822 "GET" : {
e9cd3bd4 46823 "allowtoken" : 1,
44660702
DM
46824 "description" : "Read node RRD statistics",
46825 "method" : "GET",
7aacca6f 46826 "name" : "rrddata",
56122987 46827 "parameters" : {
44660702 46828 "additionalProperties" : 0,
56122987 46829 "properties" : {
7aacca6f 46830 "cf" : {
7aacca6f
DM
46831 "description" : "The RRD consolidation function",
46832 "enum" : [
46833 "AVERAGE",
46834 "MAX"
44660702
DM
46835 ],
46836 "optional" : 1,
46837 "type" : "string"
56122987
DM
46838 },
46839 "node" : {
44660702 46840 "description" : "The cluster node name.",
56122987 46841 "format" : "pve-node",
013dc89f
DM
46842 "type" : "string",
46843 "typetext" : "<string>"
56122987 46844 },
7aacca6f 46845 "timeframe" : {
7aacca6f
DM
46846 "description" : "Specify the time frame you are interested in.",
46847 "enum" : [
46848 "hour",
46849 "day",
46850 "week",
46851 "month",
46852 "year"
44660702
DM
46853 ],
46854 "type" : "string"
56122987 46855 }
56122987
DM
46856 }
46857 },
56122987
DM
46858 "permissions" : {
46859 "check" : [
46860 "perm",
46861 "/nodes/{node}",
46862 [
44660702 46863 "Sys.Audit"
56122987
DM
46864 ]
46865 ]
7aacca6f 46866 },
44660702 46867 "protected" : 1,
56122987 46868 "returns" : {
7aacca6f 46869 "items" : {
44660702 46870 "properties" : {},
7aacca6f
DM
46871 "type" : "object"
46872 },
46873 "type" : "array"
44660702
DM
46874 }
46875 }
46876 },
46877 "leaf" : 1,
46878 "path" : "/nodes/{node}/rrddata",
46879 "text" : "rrddata"
46880 },
46881 {
46882 "info" : {
46883 "GET" : {
e9cd3bd4 46884 "allowtoken" : 1,
44660702
DM
46885 "description" : "Read system log",
46886 "method" : "GET",
46887 "name" : "syslog",
56122987 46888 "parameters" : {
44660702 46889 "additionalProperties" : 0,
56122987 46890 "properties" : {
44660702
DM
46891 "limit" : {
46892 "minimum" : 0,
7aacca6f 46893 "optional" : 1,
4bd7df8b 46894 "type" : "integer",
013dc89f 46895 "typetext" : "<integer> (0 - N)"
7aacca6f 46896 },
56122987 46897 "node" : {
7aacca6f 46898 "description" : "The cluster node name.",
44660702 46899 "format" : "pve-node",
013dc89f
DM
46900 "type" : "string",
46901 "typetext" : "<string>"
56122987 46902 },
35a75dd3
DM
46903 "service" : {
46904 "description" : "Service ID",
46905 "maxLength" : 128,
46906 "optional" : 1,
46907 "type" : "string",
46908 "typetext" : "<string>"
46909 },
44660702
DM
46910 "since" : {
46911 "description" : "Display all log since this date-time string.",
46912 "optional" : 1,
46913 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
46914 "type" : "string"
46915 },
46916 "start" : {
7aacca6f
DM
46917 "minimum" : 0,
46918 "optional" : 1,
4bd7df8b 46919 "type" : "integer",
013dc89f 46920 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
46921 },
46922 "until" : {
46923 "description" : "Display all log until this date-time string.",
7aacca6f 46924 "optional" : 1,
44660702 46925 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
46926 "type" : "string"
46927 }
44660702 46928 }
56122987 46929 },
44660702
DM
46930 "permissions" : {
46931 "check" : [
46932 "perm",
46933 "/nodes/{node}",
46934 [
46935 "Sys.Syslog"
46936 ]
46937 ]
46938 },
46939 "protected" : 1,
46940 "proxyto" : "node",
46941 "returns" : {
46942 "items" : {
46943 "properties" : {
46944 "n" : {
46945 "description" : "Line number",
46946 "type" : "integer"
46947 },
46948 "t" : {
46949 "description" : "Line text",
46950 "type" : "string"
46951 }
46952 },
46953 "type" : "object"
46954 },
46955 "type" : "array"
46956 }
56122987
DM
46957 }
46958 },
44660702
DM
46959 "leaf" : 1,
46960 "path" : "/nodes/{node}/syslog",
7aacca6f 46961 "text" : "syslog"
56122987 46962 },
bb4c8cf8
TL
46963 {
46964 "info" : {
46965 "GET" : {
e9cd3bd4 46966 "allowtoken" : 1,
bb4c8cf8
TL
46967 "description" : "Read Journal",
46968 "method" : "GET",
46969 "name" : "journal",
46970 "parameters" : {
46971 "additionalProperties" : 0,
46972 "properties" : {
46973 "endcursor" : {
46974 "description" : "End before the given Cursor. Conflicts with 'until'",
46975 "optional" : 1,
46976 "type" : "string",
46977 "typetext" : "<string>"
46978 },
46979 "lastentries" : {
46980 "description" : "Limit to the last X lines. Conflicts with a range.",
46981 "minimum" : 0,
46982 "optional" : 1,
46983 "type" : "integer",
46984 "typetext" : "<integer> (0 - N)"
46985 },
46986 "node" : {
46987 "description" : "The cluster node name.",
46988 "format" : "pve-node",
46989 "type" : "string",
46990 "typetext" : "<string>"
46991 },
46992 "since" : {
46993 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
46994 "minimum" : 0,
46995 "optional" : 1,
46996 "type" : "integer",
46997 "typetext" : "<integer> (0 - N)"
46998 },
46999 "startcursor" : {
47000 "description" : "Start after the given Cursor. Conflicts with 'since'",
47001 "optional" : 1,
47002 "type" : "string",
47003 "typetext" : "<string>"
47004 },
47005 "until" : {
47006 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
47007 "minimum" : 0,
47008 "optional" : 1,
47009 "type" : "integer",
47010 "typetext" : "<integer> (0 - N)"
47011 }
47012 }
47013 },
47014 "permissions" : {
47015 "check" : [
47016 "perm",
47017 "/nodes/{node}",
47018 [
47019 "Sys.Syslog"
47020 ]
47021 ]
47022 },
47023 "protected" : 1,
47024 "proxyto" : "node",
47025 "returns" : {
47026 "items" : {
47027 "type" : "string"
47028 },
47029 "type" : "array"
47030 }
47031 }
47032 },
47033 "leaf" : 1,
47034 "path" : "/nodes/{node}/journal",
47035 "text" : "journal"
47036 },
56122987 47037 {
56122987
DM
47038 "info" : {
47039 "POST" : {
e9cd3bd4 47040 "allowtoken" : 1,
44660702
DM
47041 "description" : "Creates a VNC Shell proxy.",
47042 "method" : "POST",
47043 "name" : "vncshell",
47044 "parameters" : {
47045 "additionalProperties" : 0,
56122987 47046 "properties" : {
95895385
TL
47047 "cmd" : {
47048 "default" : "login",
47049 "description" : "Run specific command or default to login.",
47050 "enum" : [
9d2e98ed 47051 "upgrade",
499c9b7f
TL
47052 "ceph_install",
47053 "login"
95895385
TL
47054 ],
47055 "optional" : 1,
47056 "type" : "string"
47057 },
4772952b
TL
47058 "cmd-opts" : {
47059 "default" : "",
47060 "description" : "Add parameters to a command. Encoded as null terminated strings.",
47061 "optional" : 1,
47062 "requires" : "cmd",
47063 "type" : "string",
47064 "typetext" : "<string>"
47065 },
5d9c884c
DM
47066 "height" : {
47067 "description" : "sets the height of the console in pixels.",
47068 "maximum" : 2160,
47069 "minimum" : 16,
47070 "optional" : 1,
47071 "type" : "integer",
47072 "typetext" : "<integer> (16 - 2160)"
47073 },
44660702
DM
47074 "node" : {
47075 "description" : "The cluster node name.",
47076 "format" : "pve-node",
013dc89f
DM
47077 "type" : "string",
47078 "typetext" : "<string>"
7aacca6f 47079 },
44660702
DM
47080 "websocket" : {
47081 "description" : "use websocket instead of standard vnc.",
47082 "optional" : 1,
013dc89f
DM
47083 "type" : "boolean",
47084 "typetext" : "<boolean>"
5d9c884c
DM
47085 },
47086 "width" : {
47087 "description" : "sets the width of the console in pixels.",
47088 "maximum" : 4096,
47089 "minimum" : 16,
47090 "optional" : 1,
47091 "type" : "integer",
47092 "typetext" : "<integer> (16 - 4096)"
56122987 47093 }
44660702 47094 }
56122987 47095 },
56122987
DM
47096 "permissions" : {
47097 "check" : [
47098 "perm",
7aacca6f 47099 "/nodes/{node}",
56122987 47100 [
7aacca6f 47101 "Sys.Console"
56122987 47102 ]
44660702
DM
47103 ],
47104 "description" : "Restricted to users on realm 'pam'"
56122987 47105 },
44660702
DM
47106 "protected" : 1,
47107 "returns" : {
47108 "additionalProperties" : 0,
56122987 47109 "properties" : {
44660702
DM
47110 "cert" : {
47111 "type" : "string"
7aacca6f 47112 },
44660702
DM
47113 "port" : {
47114 "type" : "integer"
7aacca6f 47115 },
44660702
DM
47116 "ticket" : {
47117 "type" : "string"
47118 },
47119 "upid" : {
47120 "type" : "string"
47121 },
47122 "user" : {
47123 "type" : "string"
56122987 47124 }
44660702
DM
47125 }
47126 }
56122987
DM
47127 }
47128 },
7aacca6f 47129 "leaf" : 1,
44660702
DM
47130 "path" : "/nodes/{node}/vncshell",
47131 "text" : "vncshell"
56122987 47132 },
35a75dd3
DM
47133 {
47134 "info" : {
47135 "POST" : {
e9cd3bd4 47136 "allowtoken" : 1,
35a75dd3
DM
47137 "description" : "Creates a VNC Shell proxy.",
47138 "method" : "POST",
47139 "name" : "termproxy",
47140 "parameters" : {
47141 "additionalProperties" : 0,
47142 "properties" : {
95895385
TL
47143 "cmd" : {
47144 "default" : "login",
47145 "description" : "Run specific command or default to login.",
47146 "enum" : [
9d2e98ed 47147 "upgrade",
499c9b7f
TL
47148 "ceph_install",
47149 "login"
95895385
TL
47150 ],
47151 "optional" : 1,
47152 "type" : "string"
47153 },
4772952b
TL
47154 "cmd-opts" : {
47155 "default" : "",
47156 "description" : "Add parameters to a command. Encoded as null terminated strings.",
47157 "optional" : 1,
47158 "requires" : "cmd",
47159 "type" : "string",
47160 "typetext" : "<string>"
47161 },
35a75dd3
DM
47162 "node" : {
47163 "description" : "The cluster node name.",
47164 "format" : "pve-node",
47165 "type" : "string",
47166 "typetext" : "<string>"
35a75dd3
DM
47167 }
47168 }
47169 },
47170 "permissions" : {
47171 "check" : [
47172 "perm",
47173 "/nodes/{node}",
47174 [
47175 "Sys.Console"
47176 ]
47177 ],
47178 "description" : "Restricted to users on realm 'pam'"
47179 },
47180 "protected" : 1,
47181 "returns" : {
47182 "additionalProperties" : 0,
47183 "properties" : {
47184 "port" : {
47185 "type" : "integer"
47186 },
47187 "ticket" : {
47188 "type" : "string"
47189 },
47190 "upid" : {
47191 "type" : "string"
47192 },
47193 "user" : {
47194 "type" : "string"
47195 }
47196 }
47197 }
47198 }
47199 },
47200 "leaf" : 1,
47201 "path" : "/nodes/{node}/termproxy",
47202 "text" : "termproxy"
47203 },
56122987
DM
47204 {
47205 "info" : {
47206 "GET" : {
e9cd3bd4 47207 "allowtoken" : 1,
0695fdaf 47208 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
47209 "method" : "GET",
47210 "name" : "vncwebsocket",
56122987 47211 "parameters" : {
44660702 47212 "additionalProperties" : 0,
56122987
DM
47213 "properties" : {
47214 "node" : {
47215 "description" : "The cluster node name.",
44660702 47216 "format" : "pve-node",
013dc89f
DM
47217 "type" : "string",
47218 "typetext" : "<string>"
7aacca6f
DM
47219 },
47220 "port" : {
7aacca6f
DM
47221 "description" : "Port number returned by previous vncproxy call.",
47222 "maximum" : 5999,
44660702 47223 "minimum" : 5900,
4bd7df8b 47224 "type" : "integer",
013dc89f 47225 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
47226 },
47227 "vncticket" : {
47228 "description" : "Ticket from previous call to vncproxy.",
47229 "maxLength" : 512,
013dc89f
DM
47230 "type" : "string",
47231 "typetext" : "<string>"
56122987 47232 }
44660702 47233 }
56122987 47234 },
56122987
DM
47235 "permissions" : {
47236 "check" : [
47237 "perm",
47238 "/nodes/{node}",
47239 [
7aacca6f 47240 "Sys.Console"
56122987 47241 ]
44660702
DM
47242 ],
47243 "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
47244 },
47245 "returns" : {
47246 "properties" : {
47247 "port" : {
47248 "type" : "string"
47249 }
47250 },
47251 "type" : "object"
7aacca6f 47252 }
56122987
DM
47253 }
47254 },
44660702 47255 "leaf" : 1,
7aacca6f 47256 "path" : "/nodes/{node}/vncwebsocket",
44660702 47257 "text" : "vncwebsocket"
56122987
DM
47258 },
47259 {
47260 "info" : {
47261 "POST" : {
e9cd3bd4 47262 "allowtoken" : 1,
44660702 47263 "description" : "Creates a SPICE shell.",
7aacca6f 47264 "method" : "POST",
44660702 47265 "name" : "spiceshell",
56122987 47266 "parameters" : {
7aacca6f 47267 "additionalProperties" : 0,
56122987 47268 "properties" : {
95895385
TL
47269 "cmd" : {
47270 "default" : "login",
47271 "description" : "Run specific command or default to login.",
47272 "enum" : [
9d2e98ed 47273 "upgrade",
499c9b7f
TL
47274 "ceph_install",
47275 "login"
95895385
TL
47276 ],
47277 "optional" : 1,
47278 "type" : "string"
47279 },
4772952b
TL
47280 "cmd-opts" : {
47281 "default" : "",
47282 "description" : "Add parameters to a command. Encoded as null terminated strings.",
47283 "optional" : 1,
47284 "requires" : "cmd",
47285 "type" : "string",
47286 "typetext" : "<string>"
47287 },
7aacca6f 47288 "node" : {
44660702 47289 "description" : "The cluster node name.",
56122987 47290 "format" : "pve-node",
013dc89f
DM
47291 "type" : "string",
47292 "typetext" : "<string>"
7aacca6f 47293 },
44660702 47294 "proxy" : {
4d47f125 47295 "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
47296 "format" : "address",
47297 "optional" : 1,
013dc89f
DM
47298 "type" : "string",
47299 "typetext" : "<string>"
56122987 47300 }
7aacca6f 47301 }
56122987 47302 },
56122987
DM
47303 "permissions" : {
47304 "check" : [
47305 "perm",
7aacca6f 47306 "/nodes/{node}",
56122987 47307 [
7aacca6f 47308 "Sys.Console"
56122987 47309 ]
7aacca6f
DM
47310 ],
47311 "description" : "Restricted to users on realm 'pam'"
44660702
DM
47312 },
47313 "protected" : 1,
47314 "proxyto" : "node",
47315 "returns" : {
47316 "additionalProperties" : 1,
47317 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
47318 "properties" : {
47319 "host" : {
47320 "type" : "string"
47321 },
47322 "password" : {
47323 "type" : "string"
47324 },
47325 "proxy" : {
47326 "type" : "string"
47327 },
47328 "tls-port" : {
47329 "type" : "integer"
47330 },
47331 "type" : {
47332 "type" : "string"
47333 }
47334 }
7aacca6f 47335 }
56122987
DM
47336 }
47337 },
56122987 47338 "leaf" : 1,
44660702
DM
47339 "path" : "/nodes/{node}/spiceshell",
47340 "text" : "spiceshell"
56122987
DM
47341 },
47342 {
56122987 47343 "info" : {
7aacca6f 47344 "GET" : {
e9cd3bd4 47345 "allowtoken" : 1,
44660702 47346 "description" : "Read DNS settings.",
7aacca6f 47347 "method" : "GET",
44660702
DM
47348 "name" : "dns",
47349 "parameters" : {
7aacca6f
DM
47350 "additionalProperties" : 0,
47351 "properties" : {
44660702
DM
47352 "node" : {
47353 "description" : "The cluster node name.",
47354 "format" : "pve-node",
013dc89f
DM
47355 "type" : "string",
47356 "typetext" : "<string>"
7aacca6f
DM
47357 }
47358 }
47359 },
7aacca6f
DM
47360 "permissions" : {
47361 "check" : [
47362 "perm",
47363 "/nodes/{node}",
47364 [
47365 "Sys.Audit"
47366 ]
47367 ]
47368 },
44660702
DM
47369 "proxyto" : "node",
47370 "returns" : {
56122987
DM
47371 "additionalProperties" : 0,
47372 "properties" : {
44660702
DM
47373 "dns1" : {
47374 "description" : "First name server IP address.",
47375 "optional" : 1,
47376 "type" : "string"
47377 },
47378 "dns2" : {
47379 "description" : "Second name server IP address.",
47380 "optional" : 1,
47381 "type" : "string"
47382 },
47383 "dns3" : {
47384 "description" : "Third name server IP address.",
47385 "optional" : 1,
47386 "type" : "string"
47387 },
47388 "search" : {
47389 "description" : "Search domain for host-name lookup.",
47390 "optional" : 1,
47391 "type" : "string"
7aacca6f 47392 }
44660702
DM
47393 },
47394 "type" : "object"
47395 }
7aacca6f
DM
47396 },
47397 "PUT" : {
e9cd3bd4 47398 "allowtoken" : 1,
44660702
DM
47399 "description" : "Write DNS settings.",
47400 "method" : "PUT",
7aacca6f
DM
47401 "name" : "update_dns",
47402 "parameters" : {
47403 "additionalProperties" : 0,
47404 "properties" : {
44660702
DM
47405 "dns1" : {
47406 "description" : "First name server IP address.",
47407 "format" : "ip",
47408 "optional" : 1,
013dc89f
DM
47409 "type" : "string",
47410 "typetext" : "<string>"
7aacca6f 47411 },
44660702
DM
47412 "dns2" : {
47413 "description" : "Second name server IP address.",
47414 "format" : "ip",
7aacca6f 47415 "optional" : 1,
013dc89f
DM
47416 "type" : "string",
47417 "typetext" : "<string>"
7aacca6f 47418 },
44660702
DM
47419 "dns3" : {
47420 "description" : "Third name server IP address.",
47421 "format" : "ip",
7aacca6f 47422 "optional" : 1,
013dc89f
DM
47423 "type" : "string",
47424 "typetext" : "<string>"
7aacca6f
DM
47425 },
47426 "node" : {
44660702 47427 "description" : "The cluster node name.",
56122987 47428 "format" : "pve-node",
013dc89f
DM
47429 "type" : "string",
47430 "typetext" : "<string>"
7aacca6f 47431 },
44660702
DM
47432 "search" : {
47433 "description" : "Search domain for host-name lookup.",
013dc89f
DM
47434 "type" : "string",
47435 "typetext" : "<string>"
56122987
DM
47436 }
47437 }
47438 },
47439 "permissions" : {
47440 "check" : [
47441 "perm",
7aacca6f 47442 "/nodes/{node}",
56122987 47443 [
7aacca6f 47444 "Sys.Modify"
56122987
DM
47445 ]
47446 ]
47447 },
44660702 47448 "protected" : 1,
7aacca6f 47449 "proxyto" : "node",
56122987 47450 "returns" : {
7aacca6f
DM
47451 "type" : "null"
47452 }
56122987 47453 }
44660702
DM
47454 },
47455 "leaf" : 1,
47456 "path" : "/nodes/{node}/dns",
47457 "text" : "dns"
56122987
DM
47458 },
47459 {
47460 "info" : {
7aacca6f 47461 "GET" : {
e9cd3bd4 47462 "allowtoken" : 1,
7aacca6f 47463 "description" : "Read server time and time zone settings.",
44660702
DM
47464 "method" : "GET",
47465 "name" : "time",
56122987 47466 "parameters" : {
44660702 47467 "additionalProperties" : 0,
56122987
DM
47468 "properties" : {
47469 "node" : {
44660702 47470 "description" : "The cluster node name.",
56122987 47471 "format" : "pve-node",
013dc89f
DM
47472 "type" : "string",
47473 "typetext" : "<string>"
56122987 47474 }
44660702 47475 }
56122987
DM
47476 },
47477 "permissions" : {
47478 "check" : [
47479 "perm",
7aacca6f 47480 "/nodes/{node}",
56122987 47481 [
7aacca6f 47482 "Sys.Audit"
56122987
DM
47483 ]
47484 ]
44660702
DM
47485 },
47486 "proxyto" : "node",
47487 "returns" : {
47488 "additionalProperties" : 0,
47489 "properties" : {
47490 "localtime" : {
47491 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
47492 "minimum" : 1297163644,
4d47f125 47493 "renderer" : "timestamp_gmt",
44660702
DM
47494 "type" : "integer"
47495 },
47496 "time" : {
47497 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
47498 "minimum" : 1297163644,
4d47f125 47499 "renderer" : "timestamp",
44660702
DM
47500 "type" : "integer"
47501 },
47502 "timezone" : {
47503 "description" : "Time zone",
47504 "type" : "string"
47505 }
47506 },
47507 "type" : "object"
7aacca6f
DM
47508 }
47509 },
47510 "PUT" : {
e9cd3bd4 47511 "allowtoken" : 1,
7aacca6f 47512 "description" : "Set time zone.",
44660702
DM
47513 "method" : "PUT",
47514 "name" : "set_timezone",
47515 "parameters" : {
47516 "additionalProperties" : 0,
47517 "properties" : {
47518 "node" : {
47519 "description" : "The cluster node name.",
47520 "format" : "pve-node",
013dc89f
DM
47521 "type" : "string",
47522 "typetext" : "<string>"
44660702
DM
47523 },
47524 "timezone" : {
47525 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
47526 "type" : "string",
47527 "typetext" : "<string>"
44660702
DM
47528 }
47529 }
47530 },
7aacca6f
DM
47531 "permissions" : {
47532 "check" : [
47533 "perm",
47534 "/nodes/{node}",
47535 [
47536 "Sys.Modify"
47537 ]
47538 ]
56122987 47539 },
7aacca6f 47540 "protected" : 1,
44660702
DM
47541 "proxyto" : "node",
47542 "returns" : {
47543 "type" : "null"
47544 }
7aacca6f
DM
47545 }
47546 },
7aacca6f 47547 "leaf" : 1,
44660702
DM
47548 "path" : "/nodes/{node}/time",
47549 "text" : "time"
7aacca6f
DM
47550 },
47551 {
47552 "info" : {
44660702 47553 "GET" : {
e9cd3bd4 47554 "allowtoken" : 1,
44660702
DM
47555 "description" : "Get list of appliances.",
47556 "method" : "GET",
47557 "name" : "aplinfo",
7aacca6f
DM
47558 "parameters" : {
47559 "additionalProperties" : 0,
47560 "properties" : {
7aacca6f 47561 "node" : {
44660702 47562 "description" : "The cluster node name.",
7aacca6f 47563 "format" : "pve-node",
013dc89f
DM
47564 "type" : "string",
47565 "typetext" : "<string>"
7aacca6f
DM
47566 }
47567 }
56122987 47568 },
7aacca6f 47569 "permissions" : {
44660702 47570 "user" : "all"
56122987 47571 },
44660702 47572 "proxyto" : "node",
7aacca6f
DM
47573 "returns" : {
47574 "items" : {
44660702
DM
47575 "properties" : {},
47576 "type" : "object"
7aacca6f
DM
47577 },
47578 "type" : "array"
44660702
DM
47579 }
47580 },
47581 "POST" : {
e9cd3bd4 47582 "allowtoken" : 1,
44660702
DM
47583 "description" : "Download appliance templates.",
47584 "method" : "POST",
47585 "name" : "apl_download",
7aacca6f
DM
47586 "parameters" : {
47587 "additionalProperties" : 0,
47588 "properties" : {
47589 "node" : {
7aacca6f 47590 "description" : "The cluster node name.",
44660702 47591 "format" : "pve-node",
013dc89f
DM
47592 "type" : "string",
47593 "typetext" : "<string>"
44660702
DM
47594 },
47595 "storage" : {
4bd7df8b 47596 "description" : "The storage where the template will be stored",
44660702 47597 "format" : "pve-storage-id",
013dc89f
DM
47598 "type" : "string",
47599 "typetext" : "<string>"
44660702
DM
47600 },
47601 "template" : {
1e3f8156 47602 "description" : "The template which will downloaded",
44660702 47603 "maxLength" : 255,
013dc89f
DM
47604 "type" : "string",
47605 "typetext" : "<string>"
7aacca6f
DM
47606 }
47607 }
56122987 47608 },
7aacca6f 47609 "permissions" : {
44660702
DM
47610 "check" : [
47611 "perm",
47612 "/storage/{storage}",
47613 [
47614 "Datastore.AllocateTemplate"
47615 ]
47616 ]
47617 },
47618 "protected" : 1,
47619 "proxyto" : "node",
47620 "returns" : {
47621 "type" : "string"
7aacca6f
DM
47622 }
47623 }
47624 },
7aacca6f 47625 "leaf" : 1,
44660702
DM
47626 "path" : "/nodes/{node}/aplinfo",
47627 "text" : "aplinfo"
7aacca6f 47628 },
5370fa8c
TL
47629 {
47630 "info" : {
47631 "GET" : {
47632 "allowtoken" : 1,
47633 "description" : "Query metadata of an URL: file size, file name and mime type.",
47634 "method" : "GET",
47635 "name" : "query_url_metadata",
47636 "parameters" : {
47637 "additionalProperties" : 0,
47638 "properties" : {
47639 "node" : {
47640 "description" : "The cluster node name.",
47641 "format" : "pve-node",
47642 "type" : "string",
47643 "typetext" : "<string>"
47644 },
47645 "url" : {
47646 "description" : "The URL to query the metadata from.",
47647 "pattern" : "https?://.*",
47648 "type" : "string"
47649 },
47650 "verify-certificates" : {
47651 "default" : 1,
47652 "description" : "If false, no SSL/TLS certificates will be verified.",
47653 "optional" : 1,
47654 "type" : "boolean",
47655 "typetext" : "<boolean>"
47656 }
47657 }
47658 },
47659 "permissions" : {
47660 "check" : [
47661 "perm",
47662 "/",
47663 [
47664 "Sys.Audit",
47665 "Sys.Modify"
47666 ]
47667 ]
47668 },
47669 "proxyto" : "node",
47670 "returns" : {
47671 "properties" : {
47672 "filename" : {
47673 "optional" : 1,
47674 "type" : "string"
47675 },
47676 "mimetype" : {
47677 "optional" : 1,
47678 "type" : "string"
47679 },
47680 "size" : {
47681 "optional" : 1,
47682 "renderer" : "bytes",
47683 "type" : "integer"
47684 }
47685 },
47686 "type" : "object"
47687 }
47688 }
47689 },
47690 "leaf" : 1,
47691 "path" : "/nodes/{node}/query-url-metadata",
47692 "text" : "query-url-metadata"
47693 },
7aacca6f
DM
47694 {
47695 "info" : {
47696 "GET" : {
e9cd3bd4 47697 "allowtoken" : 1,
44660702
DM
47698 "description" : "Gather various systems information about a node",
47699 "method" : "GET",
47700 "name" : "report",
7aacca6f 47701 "parameters" : {
44660702 47702 "additionalProperties" : 0,
7aacca6f
DM
47703 "properties" : {
47704 "node" : {
7aacca6f 47705 "description" : "The cluster node name.",
44660702 47706 "format" : "pve-node",
013dc89f
DM
47707 "type" : "string",
47708 "typetext" : "<string>"
7aacca6f 47709 }
44660702 47710 }
56122987 47711 },
7aacca6f
DM
47712 "permissions" : {
47713 "check" : [
47714 "perm",
47715 "/nodes/{node}",
47716 [
47717 "Sys.Audit"
47718 ]
47719 ]
56122987 47720 },
44660702 47721 "protected" : 1,
7aacca6f
DM
47722 "proxyto" : "node",
47723 "returns" : {
56122987 47724 "type" : "string"
7aacca6f
DM
47725 }
47726 }
47727 },
7aacca6f 47728 "leaf" : 1,
44660702
DM
47729 "path" : "/nodes/{node}/report",
47730 "text" : "report"
7aacca6f
DM
47731 },
47732 {
7aacca6f
DM
47733 "info" : {
47734 "POST" : {
e9cd3bd4 47735 "allowtoken" : 1,
1c532546 47736 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 47737 "method" : "POST",
44660702 47738 "name" : "startall",
7aacca6f 47739 "parameters" : {
44660702 47740 "additionalProperties" : 0,
7aacca6f
DM
47741 "properties" : {
47742 "force" : {
1c532546
TL
47743 "default" : "off",
47744 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 47745 "optional" : 1,
013dc89f
DM
47746 "type" : "boolean",
47747 "typetext" : "<boolean>"
7aacca6f
DM
47748 },
47749 "node" : {
7aacca6f 47750 "description" : "The cluster node name.",
44660702 47751 "format" : "pve-node",
013dc89f
DM
47752 "type" : "string",
47753 "typetext" : "<string>"
52e44c50
FG
47754 },
47755 "vms" : {
1c532546 47756 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
47757 "format" : "pve-vmid-list",
47758 "optional" : 1,
47759 "type" : "string",
47760 "typetext" : "<string>"
7aacca6f 47761 }
44660702 47762 }
56122987 47763 },
7aacca6f 47764 "permissions" : {
9d2e98ed
TL
47765 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
47766 "user" : "all"
44660702
DM
47767 },
47768 "protected" : 1,
47769 "proxyto" : "node",
47770 "returns" : {
47771 "type" : "string"
7aacca6f
DM
47772 }
47773 }
47774 },
44660702 47775 "leaf" : 1,
7aacca6f 47776 "path" : "/nodes/{node}/startall",
44660702 47777 "text" : "startall"
7aacca6f
DM
47778 },
47779 {
7aacca6f
DM
47780 "info" : {
47781 "POST" : {
e9cd3bd4 47782 "allowtoken" : 1,
7aacca6f 47783 "description" : "Stop all VMs and Containers.",
44660702
DM
47784 "method" : "POST",
47785 "name" : "stopall",
7aacca6f 47786 "parameters" : {
44660702 47787 "additionalProperties" : 0,
7aacca6f 47788 "properties" : {
9d2e98ed
TL
47789 "force-stop" : {
47790 "default" : 1,
47791 "description" : "Force a hard-stop after the timeout.",
47792 "optional" : 1,
47793 "type" : "boolean",
47794 "typetext" : "<boolean>"
47795 },
7aacca6f 47796 "node" : {
44660702 47797 "description" : "The cluster node name.",
7aacca6f 47798 "format" : "pve-node",
013dc89f
DM
47799 "type" : "string",
47800 "typetext" : "<string>"
52e44c50 47801 },
9d2e98ed
TL
47802 "timeout" : {
47803 "default" : 180,
47804 "description" : "Timeout for each guest shutdown task. Depending on `force-stop`, the shutdown gets then simply aborted or a hard-stop is forced.",
47805 "maximum" : 7200,
47806 "minimum" : 0,
47807 "optional" : 1,
47808 "type" : "integer",
47809 "typetext" : "<integer> (0 - 7200)"
47810 },
52e44c50
FG
47811 "vms" : {
47812 "description" : "Only consider Guests with these IDs.",
47813 "format" : "pve-vmid-list",
47814 "optional" : 1,
47815 "type" : "string",
47816 "typetext" : "<string>"
7aacca6f 47817 }
44660702 47818 }
56122987 47819 },
7aacca6f 47820 "permissions" : {
9d2e98ed
TL
47821 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
47822 "user" : "all"
56122987 47823 },
44660702 47824 "protected" : 1,
7aacca6f 47825 "proxyto" : "node",
44660702
DM
47826 "returns" : {
47827 "type" : "string"
47828 }
47829 }
56122987 47830 },
44660702
DM
47831 "leaf" : 1,
47832 "path" : "/nodes/{node}/stopall",
47833 "text" : "stopall"
47834 },
47835 {
47836 "info" : {
47837 "POST" : {
e9cd3bd4 47838 "allowtoken" : 1,
44660702
DM
47839 "description" : "Migrate all VMs and Containers.",
47840 "method" : "POST",
47841 "name" : "migrateall",
47842 "parameters" : {
47843 "additionalProperties" : 0,
47844 "properties" : {
47845 "maxworkers" : {
9d2e98ed 47846 "description" : "Maximal number of parallel migration job. If not set, uses'max_workers' from datacenter.cfg. One of both must be set!",
44660702
DM
47847 "minimum" : 1,
47848 "optional" : 1,
4bd7df8b 47849 "type" : "integer",
013dc89f 47850 "typetext" : "<integer> (1 - N)"
44660702
DM
47851 },
47852 "node" : {
47853 "description" : "The cluster node name.",
47854 "format" : "pve-node",
013dc89f
DM
47855 "type" : "string",
47856 "typetext" : "<string>"
44660702
DM
47857 },
47858 "target" : {
47859 "description" : "Target node.",
47860 "format" : "pve-node",
013dc89f
DM
47861 "type" : "string",
47862 "typetext" : "<string>"
52e44c50
FG
47863 },
47864 "vms" : {
47865 "description" : "Only consider Guests with these IDs.",
47866 "format" : "pve-vmid-list",
47867 "optional" : 1,
47868 "type" : "string",
47869 "typetext" : "<string>"
e9cd3bd4
TL
47870 },
47871 "with-local-disks" : {
47872 "description" : "Enable live storage migration for local disk",
47873 "optional" : 1,
47874 "type" : "boolean",
47875 "typetext" : "<boolean>"
44660702
DM
47876 }
47877 }
47878 },
47879 "permissions" : {
9d2e98ed
TL
47880 "description" : "The 'VM.Migrate' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
47881 "user" : "all"
44660702
DM
47882 },
47883 "protected" : 1,
47884 "proxyto" : "node",
47885 "returns" : {
47886 "type" : "string"
47887 }
47888 }
56122987 47889 },
44660702
DM
47890 "leaf" : 1,
47891 "path" : "/nodes/{node}/migrateall",
47892 "text" : "migrateall"
4d47f125
TL
47893 },
47894 {
47895 "info" : {
47896 "GET" : {
e9cd3bd4 47897 "allowtoken" : 1,
4d47f125
TL
47898 "description" : "Get the content of /etc/hosts.",
47899 "method" : "GET",
47900 "name" : "get_etc_hosts",
47901 "parameters" : {
47902 "additionalProperties" : 0,
47903 "properties" : {
47904 "node" : {
47905 "description" : "The cluster node name.",
47906 "format" : "pve-node",
47907 "type" : "string",
47908 "typetext" : "<string>"
47909 }
47910 }
47911 },
47912 "permissions" : {
47913 "check" : [
47914 "perm",
47915 "/",
47916 [
47917 "Sys.Audit"
47918 ]
47919 ]
47920 },
47921 "protected" : 1,
47922 "proxyto" : "node",
47923 "returns" : {
47924 "properties" : {
47925 "data" : {
47926 "description" : "The content of /etc/hosts.",
47927 "type" : "string"
47928 },
47929 "digest" : {
47930 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47931 "maxLength" : 40,
47932 "optional" : 1,
47933 "type" : "string"
47934 }
47935 },
47936 "type" : "object"
47937 }
47938 },
47939 "POST" : {
e9cd3bd4 47940 "allowtoken" : 1,
4d47f125
TL
47941 "description" : "Write /etc/hosts.",
47942 "method" : "POST",
47943 "name" : "write_etc_hosts",
47944 "parameters" : {
47945 "additionalProperties" : 0,
47946 "properties" : {
47947 "data" : {
47948 "description" : "The target content of /etc/hosts.",
47949 "type" : "string",
47950 "typetext" : "<string>"
47951 },
47952 "digest" : {
47953 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47954 "maxLength" : 40,
47955 "optional" : 1,
47956 "type" : "string",
47957 "typetext" : "<string>"
47958 },
47959 "node" : {
47960 "description" : "The cluster node name.",
47961 "format" : "pve-node",
47962 "type" : "string",
47963 "typetext" : "<string>"
47964 }
47965 }
47966 },
47967 "permissions" : {
47968 "check" : [
47969 "perm",
47970 "/nodes/{node}",
47971 [
47972 "Sys.Modify"
47973 ]
47974 ]
47975 },
47976 "protected" : 1,
47977 "proxyto" : "node",
47978 "returns" : {
47979 "type" : "null"
47980 }
47981 }
47982 },
47983 "leaf" : 1,
47984 "path" : "/nodes/{node}/hosts",
47985 "text" : "hosts"
44660702
DM
47986 }
47987 ],
47988 "info" : {
47989 "GET" : {
e9cd3bd4 47990 "allowtoken" : 1,
44660702
DM
47991 "description" : "Node index.",
47992 "method" : "GET",
47993 "name" : "index",
47994 "parameters" : {
47995 "additionalProperties" : 0,
47996 "properties" : {
47997 "node" : {
47998 "description" : "The cluster node name.",
47999 "format" : "pve-node",
013dc89f
DM
48000 "type" : "string",
48001 "typetext" : "<string>"
44660702
DM
48002 }
48003 }
56122987 48004 },
44660702
DM
48005 "permissions" : {
48006 "user" : "all"
56122987 48007 },
44660702
DM
48008 "returns" : {
48009 "items" : {
48010 "properties" : {},
48011 "type" : "object"
48012 },
48013 "links" : [
48014 {
48015 "href" : "{name}",
48016 "rel" : "child"
48017 }
56122987 48018 ],
44660702 48019 "type" : "array"
7aacca6f
DM
48020 }
48021 }
48022 },
44660702
DM
48023 "leaf" : 0,
48024 "path" : "/nodes/{node}",
48025 "text" : "{node}"
48026 }
48027 ],
48028 "info" : {
7aacca6f 48029 "GET" : {
e9cd3bd4 48030 "allowtoken" : 1,
44660702 48031 "description" : "Cluster node index.",
7aacca6f 48032 "method" : "GET",
44660702 48033 "name" : "index",
7aacca6f 48034 "parameters" : {
7aacca6f
DM
48035 "additionalProperties" : 0
48036 },
48037 "permissions" : {
7aacca6f
DM
48038 "user" : "all"
48039 },
44660702
DM
48040 "returns" : {
48041 "items" : {
4d47f125
TL
48042 "properties" : {
48043 "cpu" : {
48044 "description" : "CPU utilization.",
48045 "optional" : 1,
48046 "renderer" : "fraction_as_percentage",
48047 "type" : "number"
48048 },
48049 "level" : {
48050 "description" : "Support level.",
48051 "optional" : 1,
48052 "type" : "string"
48053 },
48054 "maxcpu" : {
48055 "description" : "Number of available CPUs.",
48056 "optional" : 1,
48057 "type" : "integer"
48058 },
48059 "maxmem" : {
48060 "description" : "Number of available memory in bytes.",
48061 "optional" : 1,
48062 "renderer" : "bytes",
48063 "type" : "integer"
48064 },
48065 "mem" : {
48066 "description" : "Used memory in bytes.",
48067 "optional" : 1,
48068 "renderer" : "bytes",
1c532546 48069 "type" : "integer"
4d47f125
TL
48070 },
48071 "node" : {
48072 "description" : "The cluster node name.",
48073 "format" : "pve-node",
48074 "type" : "string"
48075 },
48076 "ssl_fingerprint" : {
48077 "description" : "The SSL fingerprint for the node certificate.",
48078 "optional" : 1,
48079 "type" : "string"
48080 },
48081 "status" : {
48082 "description" : "Node status.",
48083 "enum" : [
48084 "unknown",
48085 "online",
48086 "offline"
48087 ],
48088 "type" : "string"
48089 },
48090 "uptime" : {
48091 "description" : "Node uptime in seconds.",
48092 "optional" : 1,
48093 "renderer" : "duration",
48094 "type" : "integer"
48095 }
48096 },
44660702
DM
48097 "type" : "object"
48098 },
48099 "links" : [
48100 {
48101 "href" : "{node}",
48102 "rel" : "child"
48103 }
48104 ],
48105 "type" : "array"
48106 }
7aacca6f
DM
48107 }
48108 },
44660702
DM
48109 "leaf" : 0,
48110 "path" : "/nodes",
48111 "text" : "nodes"
48112 },
48113 {
7aacca6f
DM
48114 "children" : [
48115 {
7aacca6f 48116 "info" : {
44660702 48117 "DELETE" : {
e9cd3bd4 48118 "allowtoken" : 1,
44660702
DM
48119 "description" : "Delete storage configuration.",
48120 "method" : "DELETE",
48121 "name" : "delete",
7aacca6f
DM
48122 "parameters" : {
48123 "additionalProperties" : 0,
48124 "properties" : {
48125 "storage" : {
7aacca6f 48126 "description" : "The storage identifier.",
44660702 48127 "format" : "pve-storage-id",
013dc89f
DM
48128 "type" : "string",
48129 "typetext" : "<string>"
7aacca6f
DM
48130 }
48131 }
56122987 48132 },
7aacca6f
DM
48133 "permissions" : {
48134 "check" : [
48135 "perm",
48136 "/storage",
48137 [
48138 "Datastore.Allocate"
48139 ]
48140 ]
56122987 48141 },
44660702
DM
48142 "protected" : 1,
48143 "returns" : {
48144 "type" : "null"
48145 }
48146 },
48147 "GET" : {
e9cd3bd4 48148 "allowtoken" : 1,
44660702
DM
48149 "description" : "Read storage configuration.",
48150 "method" : "GET",
48151 "name" : "read",
7aacca6f
DM
48152 "parameters" : {
48153 "additionalProperties" : 0,
48154 "properties" : {
48155 "storage" : {
44660702 48156 "description" : "The storage identifier.",
7aacca6f 48157 "format" : "pve-storage-id",
013dc89f
DM
48158 "type" : "string",
48159 "typetext" : "<string>"
7aacca6f
DM
48160 }
48161 }
48162 },
44660702
DM
48163 "permissions" : {
48164 "check" : [
48165 "perm",
48166 "/storage/{storage}",
48167 [
48168 "Datastore.Allocate"
48169 ]
48170 ]
48171 },
5da3d723
TL
48172 "returns" : {
48173 "type" : "object"
48174 }
7aacca6f
DM
48175 },
48176 "PUT" : {
e9cd3bd4 48177 "allowtoken" : 1,
44660702
DM
48178 "description" : "Update storage configuration.",
48179 "method" : "PUT",
48180 "name" : "update",
48181 "parameters" : {
48182 "additionalProperties" : 0,
48183 "properties" : {
48184 "blocksize" : {
48185 "description" : "block size",
7aacca6f 48186 "optional" : 1,
013dc89f
DM
48187 "type" : "string",
48188 "typetext" : "<string>"
7aacca6f 48189 },
27a7acb2 48190 "bwlimit" : {
4a407cfd 48191 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
48192 "format" : {
48193 "clone" : {
95895385 48194 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
48195 "format_description" : "LIMIT",
48196 "minimum" : "0",
48197 "optional" : 1,
48198 "type" : "number"
48199 },
48200 "default" : {
95895385 48201 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
48202 "format_description" : "LIMIT",
48203 "minimum" : "0",
48204 "optional" : 1,
48205 "type" : "number"
48206 },
48207 "migration" : {
95895385 48208 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
48209 "format_description" : "LIMIT",
48210 "minimum" : "0",
48211 "optional" : 1,
48212 "type" : "number"
48213 },
48214 "move" : {
95895385 48215 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
48216 "format_description" : "LIMIT",
48217 "minimum" : "0",
48218 "optional" : 1,
48219 "type" : "number"
48220 },
48221 "restore" : {
95895385 48222 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
48223 "format_description" : "LIMIT",
48224 "minimum" : "0",
48225 "optional" : 1,
48226 "type" : "number"
48227 }
48228 },
48229 "optional" : 1,
48230 "type" : "string",
48231 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
48232 },
44660702
DM
48233 "comstar_hg" : {
48234 "description" : "host group for comstar views",
48235 "optional" : 1,
013dc89f
DM
48236 "type" : "string",
48237 "typetext" : "<string>"
7aacca6f 48238 },
44660702
DM
48239 "comstar_tg" : {
48240 "description" : "target group for comstar views",
7aacca6f 48241 "optional" : 1,
013dc89f
DM
48242 "type" : "string",
48243 "typetext" : "<string>"
7aacca6f 48244 },
44660702
DM
48245 "content" : {
48246 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
48247 "format" : "pve-storage-content-list",
7aacca6f 48248 "optional" : 1,
013dc89f
DM
48249 "type" : "string",
48250 "typetext" : "<string>"
7aacca6f 48251 },
9d2e98ed
TL
48252 "content-dirs" : {
48253 "description" : "Overrides for default content type directories.",
48254 "format" : "pve-dir-override-list",
48255 "optional" : 1,
48256 "type" : "string",
48257 "typetext" : "<string>"
48258 },
4a407cfd
TL
48259 "create-base-path" : {
48260 "default" : "yes",
48261 "description" : "Create the base directory if it doesn't exist.",
48262 "optional" : 1,
48263 "type" : "boolean",
48264 "typetext" : "<boolean>"
48265 },
48266 "create-subdirs" : {
48267 "default" : "yes",
48268 "description" : "Populate the directory with the default structure.",
48269 "optional" : 1,
48270 "type" : "boolean",
48271 "typetext" : "<boolean>"
48272 },
c30bb419
TL
48273 "data-pool" : {
48274 "description" : "Data Pool (for erasure coding only)",
48275 "optional" : 1,
48276 "type" : "string",
48277 "typetext" : "<string>"
48278 },
44660702
DM
48279 "delete" : {
48280 "description" : "A list of settings you want to delete.",
48281 "format" : "pve-configid-list",
48282 "maxLength" : 4096,
7aacca6f 48283 "optional" : 1,
013dc89f
DM
48284 "type" : "string",
48285 "typetext" : "<string>"
7aacca6f
DM
48286 },
48287 "digest" : {
44660702 48288 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 48289 "maxLength" : 40,
7aacca6f 48290 "optional" : 1,
013dc89f
DM
48291 "type" : "string",
48292 "typetext" : "<string>"
7aacca6f 48293 },
44660702
DM
48294 "disable" : {
48295 "description" : "Flag to disable the storage.",
48296 "optional" : 1,
013dc89f
DM
48297 "type" : "boolean",
48298 "typetext" : "<boolean>"
7aacca6f 48299 },
27a7acb2
DM
48300 "domain" : {
48301 "description" : "CIFS domain.",
48302 "maxLength" : 256,
48303 "optional" : 1,
48304 "type" : "string",
48305 "typetext" : "<string>"
48306 },
04d22a9f
TL
48307 "encryption-key" : {
48308 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
48309 "optional" : 1,
48310 "type" : "string",
48311 "typetext" : "<string>"
48312 },
c5aa7e14
TL
48313 "fingerprint" : {
48314 "description" : "Certificate SHA 256 fingerprint.",
48315 "optional" : 1,
48316 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
48317 "type" : "string"
48318 },
7aacca6f
DM
48319 "format" : {
48320 "description" : "Default image format.",
44660702 48321 "format" : "pve-storage-format",
7aacca6f 48322 "optional" : 1,
013dc89f
DM
48323 "type" : "string",
48324 "typetext" : "<string>"
7aacca6f 48325 },
5370fa8c
TL
48326 "fs-name" : {
48327 "description" : "The Ceph filesystem name.",
48328 "format" : "pve-configid",
48329 "optional" : 1,
48330 "type" : "string",
48331 "typetext" : "<string>"
48332 },
5da3d723
TL
48333 "fuse" : {
48334 "description" : "Mount CephFS through FUSE.",
48335 "optional" : 1,
48336 "type" : "boolean",
48337 "typetext" : "<boolean>"
48338 },
2c0dde61
DM
48339 "is_mountpoint" : {
48340 "default" : "no",
2489d6df 48341 "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 48342 "optional" : 1,
2489d6df
WB
48343 "type" : "string",
48344 "typetext" : "<string>"
2c0dde61 48345 },
5370fa8c
TL
48346 "keyring" : {
48347 "description" : "Client keyring contents (for external clusters).",
48348 "optional" : 1,
48349 "type" : "string",
48350 "typetext" : "<string>"
48351 },
44660702 48352 "krbd" : {
e2d681b3 48353 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 48354 "optional" : 1,
013dc89f
DM
48355 "type" : "boolean",
48356 "typetext" : "<boolean>"
7aacca6f 48357 },
4d47f125
TL
48358 "lio_tpg" : {
48359 "description" : "target portal group for Linux LIO targets",
48360 "optional" : 1,
48361 "type" : "string",
48362 "typetext" : "<string>"
48363 },
d2656385 48364 "master-pubkey" : {
5f4e66fe 48365 "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
48366 "optional" : 1,
48367 "type" : "string",
48368 "typetext" : "<string>"
48369 },
7af2edf9
TL
48370 "max-protected-backups" : {
48371 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
48372 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
48373 "minimum" : -1,
48374 "optional" : 1,
48375 "type" : "integer",
48376 "typetext" : "<integer> (-1 - N)"
48377 },
44660702 48378 "maxfiles" : {
5f4e66fe 48379 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
48380 "minimum" : 0,
48381 "optional" : 1,
4bd7df8b 48382 "type" : "integer",
013dc89f 48383 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
48384 },
48385 "mkdir" : {
48386 "default" : "yes",
4a407cfd 48387 "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 48388 "optional" : 1,
013dc89f
DM
48389 "type" : "boolean",
48390 "typetext" : "<boolean>"
7aacca6f 48391 },
2489d6df
WB
48392 "monhost" : {
48393 "description" : "IP addresses of monitors (for external clusters).",
48394 "format" : "pve-storage-portal-dns-list",
48395 "optional" : 1,
48396 "type" : "string",
48397 "typetext" : "<string>"
48398 },
5c1699e5
TL
48399 "mountpoint" : {
48400 "description" : "mount point",
48401 "format" : "pve-storage-path",
48402 "optional" : 1,
48403 "type" : "string",
48404 "typetext" : "<string>"
48405 },
d2656385 48406 "namespace" : {
de786b48 48407 "description" : "Namespace.",
d2656385
TL
48408 "optional" : 1,
48409 "type" : "string",
48410 "typetext" : "<string>"
48411 },
5f4e66fe
TL
48412 "nocow" : {
48413 "default" : 0,
48414 "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.",
48415 "optional" : 1,
48416 "type" : "boolean",
48417 "typetext" : "<boolean>"
48418 },
7aacca6f 48419 "nodes" : {
44660702 48420 "description" : "List of cluster node names.",
7aacca6f
DM
48421 "format" : "pve-node-list",
48422 "optional" : 1,
013dc89f
DM
48423 "type" : "string",
48424 "typetext" : "<string>"
7aacca6f 48425 },
44660702
DM
48426 "nowritecache" : {
48427 "description" : "disable write caching on the target",
7aacca6f 48428 "optional" : 1,
013dc89f
DM
48429 "type" : "boolean",
48430 "typetext" : "<boolean>"
7aacca6f
DM
48431 },
48432 "options" : {
159464a9 48433 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
48434 "format" : "pve-storage-options",
48435 "optional" : 1,
013dc89f
DM
48436 "type" : "string",
48437 "typetext" : "<string>"
44660702 48438 },
27a7acb2 48439 "password" : {
04d22a9f 48440 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
48441 "maxLength" : 256,
48442 "optional" : 1,
48443 "type" : "string",
48444 "typetext" : "<string>"
48445 },
44660702
DM
48446 "pool" : {
48447 "description" : "Pool.",
48448 "optional" : 1,
013dc89f
DM
48449 "type" : "string",
48450 "typetext" : "<string>"
44660702 48451 },
4772952b
TL
48452 "port" : {
48453 "default" : 8007,
48454 "description" : "For non default port.",
48455 "maximum" : 65535,
48456 "minimum" : 1,
48457 "optional" : 1,
48458 "type" : "integer",
48459 "typetext" : "<integer> (1 - 65535)"
48460 },
5370fa8c
TL
48461 "preallocation" : {
48462 "default" : "metadata",
48463 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
48464 "enum" : [
48465 "off",
48466 "metadata",
48467 "falloc",
48468 "full"
48469 ],
48470 "optional" : 1,
48471 "type" : "string"
48472 },
739d4d64
TL
48473 "prune-backups" : {
48474 "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.",
48475 "format" : "prune-backups",
48476 "optional" : 1,
48477 "type" : "string",
4772952b 48478 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 48479 },
44660702
DM
48480 "saferemove" : {
48481 "description" : "Zero-out data when removing LVs.",
48482 "optional" : 1,
013dc89f
DM
48483 "type" : "boolean",
48484 "typetext" : "<boolean>"
7aacca6f
DM
48485 },
48486 "saferemove_throughput" : {
44660702 48487 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 48488 "optional" : 1,
013dc89f
DM
48489 "type" : "string",
48490 "typetext" : "<string>"
7aacca6f 48491 },
44660702
DM
48492 "server" : {
48493 "description" : "Server IP or DNS name.",
48494 "format" : "pve-storage-server",
7aacca6f 48495 "optional" : 1,
013dc89f
DM
48496 "type" : "string",
48497 "typetext" : "<string>"
7aacca6f 48498 },
44660702
DM
48499 "server2" : {
48500 "description" : "Backup volfile server IP or DNS name.",
48501 "format" : "pve-storage-server",
7aacca6f 48502 "optional" : 1,
44660702 48503 "requires" : "server",
013dc89f
DM
48504 "type" : "string",
48505 "typetext" : "<string>"
44660702
DM
48506 },
48507 "shared" : {
48508 "description" : "Mark storage as shared.",
48509 "optional" : 1,
013dc89f
DM
48510 "type" : "boolean",
48511 "typetext" : "<boolean>"
44660702 48512 },
27a7acb2 48513 "smbversion" : {
5370fa8c
TL
48514 "default" : "default",
48515 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 48516 "enum" : [
5370fa8c 48517 "default",
5da3d723
TL
48518 "2.0",
48519 "2.1",
5370fa8c
TL
48520 "3",
48521 "3.0",
48522 "3.11"
5da3d723 48523 ],
27a7acb2 48524 "optional" : 1,
5da3d723 48525 "type" : "string"
27a7acb2 48526 },
44660702
DM
48527 "sparse" : {
48528 "description" : "use sparse volumes",
48529 "optional" : 1,
013dc89f
DM
48530 "type" : "boolean",
48531 "typetext" : "<boolean>"
44660702
DM
48532 },
48533 "storage" : {
48534 "description" : "The storage identifier.",
48535 "format" : "pve-storage-id",
013dc89f
DM
48536 "type" : "string",
48537 "typetext" : "<string>"
44660702 48538 },
5da3d723
TL
48539 "subdir" : {
48540 "description" : "Subdir to mount.",
48541 "format" : "pve-storage-path",
48542 "optional" : 1,
48543 "type" : "string",
48544 "typetext" : "<string>"
48545 },
4bd7df8b
DM
48546 "tagged_only" : {
48547 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
48548 "optional" : 1,
013dc89f
DM
48549 "type" : "boolean",
48550 "typetext" : "<boolean>"
4bd7df8b 48551 },
44660702
DM
48552 "transport" : {
48553 "description" : "Gluster transport: tcp or rdma",
48554 "enum" : [
48555 "tcp",
48556 "rdma",
48557 "unix"
48558 ],
48559 "optional" : 1,
48560 "type" : "string"
7aacca6f
DM
48561 },
48562 "username" : {
48563 "description" : "RBD Id.",
44660702 48564 "optional" : 1,
013dc89f
DM
48565 "type" : "string",
48566 "typetext" : "<string>"
7aacca6f 48567 }
44660702
DM
48568 },
48569 "type" : "object"
48570 },
48571 "permissions" : {
48572 "check" : [
48573 "perm",
48574 "/storage",
48575 [
48576 "Datastore.Allocate"
48577 ]
48578 ]
48579 },
48580 "protected" : 1,
48581 "returns" : {
4772952b
TL
48582 "properties" : {
48583 "config" : {
48584 "additionalProperties" : 1,
48585 "description" : "Partial, possible server generated, configuration properties.",
48586 "optional" : 1,
48587 "properties" : {
48588 "encryption-key" : {
48589 "description" : "The, possible auto-generated, encryption-key.",
48590 "optional" : 1,
48591 "type" : "string"
48592 }
48593 },
48594 "type" : "object"
48595 },
48596 "storage" : {
48597 "description" : "The ID of the created storage.",
48598 "type" : "string"
48599 },
48600 "type" : {
48601 "description" : "The type of the created storage.",
48602 "enum" : [
5f4e66fe 48603 "btrfs",
4772952b
TL
48604 "cephfs",
48605 "cifs",
48606 "dir",
4772952b
TL
48607 "glusterfs",
48608 "iscsi",
48609 "iscsidirect",
48610 "lvm",
48611 "lvmthin",
48612 "nfs",
48613 "pbs",
48614 "rbd",
48615 "zfs",
48616 "zfspool"
48617 ],
48618 "type" : "string"
48619 }
48620 },
48621 "type" : "object"
44660702
DM
48622 }
48623 }
48624 },
48625 "leaf" : 1,
48626 "path" : "/storage/{storage}",
48627 "text" : "{storage}"
48628 }
48629 ],
48630 "info" : {
48631 "GET" : {
e9cd3bd4 48632 "allowtoken" : 1,
44660702
DM
48633 "description" : "Storage index.",
48634 "method" : "GET",
48635 "name" : "index",
48636 "parameters" : {
48637 "additionalProperties" : 0,
48638 "properties" : {
48639 "type" : {
48640 "description" : "Only list storage of specific type",
48641 "enum" : [
5f4e66fe 48642 "btrfs",
5da3d723 48643 "cephfs",
27a7acb2 48644 "cifs",
44660702 48645 "dir",
44660702
DM
48646 "glusterfs",
48647 "iscsi",
48648 "iscsidirect",
48649 "lvm",
48650 "lvmthin",
48651 "nfs",
c5aa7e14 48652 "pbs",
44660702 48653 "rbd",
44660702
DM
48654 "zfs",
48655 "zfspool"
48656 ],
48657 "optional" : 1,
48658 "type" : "string"
48659 }
48660 }
48661 },
48662 "permissions" : {
48663 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
48664 "user" : "all"
48665 },
48666 "returns" : {
48667 "items" : {
48668 "properties" : {
48669 "storage" : {
48670 "type" : "string"
7aacca6f 48671 }
56122987 48672 },
44660702
DM
48673 "type" : "object"
48674 },
48675 "links" : [
48676 {
48677 "href" : "{storage}",
48678 "rel" : "child"
48679 }
48680 ],
48681 "type" : "array"
48682 }
48683 },
48684 "POST" : {
e9cd3bd4 48685 "allowtoken" : 1,
44660702
DM
48686 "description" : "Create a new storage.",
48687 "method" : "POST",
48688 "name" : "create",
48689 "parameters" : {
48690 "additionalProperties" : 0,
48691 "properties" : {
48692 "authsupported" : {
48693 "description" : "Authsupported.",
48694 "optional" : 1,
013dc89f
DM
48695 "type" : "string",
48696 "typetext" : "<string>"
44660702
DM
48697 },
48698 "base" : {
48699 "description" : "Base volume. This volume is automatically activated.",
48700 "format" : "pve-volume-id",
48701 "optional" : 1,
013dc89f
DM
48702 "type" : "string",
48703 "typetext" : "<string>"
44660702
DM
48704 },
48705 "blocksize" : {
48706 "description" : "block size",
48707 "optional" : 1,
013dc89f
DM
48708 "type" : "string",
48709 "typetext" : "<string>"
44660702 48710 },
27a7acb2 48711 "bwlimit" : {
4a407cfd 48712 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
48713 "format" : {
48714 "clone" : {
95895385 48715 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
48716 "format_description" : "LIMIT",
48717 "minimum" : "0",
48718 "optional" : 1,
48719 "type" : "number"
48720 },
48721 "default" : {
95895385 48722 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
48723 "format_description" : "LIMIT",
48724 "minimum" : "0",
48725 "optional" : 1,
48726 "type" : "number"
48727 },
48728 "migration" : {
95895385 48729 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
48730 "format_description" : "LIMIT",
48731 "minimum" : "0",
48732 "optional" : 1,
48733 "type" : "number"
48734 },
48735 "move" : {
95895385 48736 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
48737 "format_description" : "LIMIT",
48738 "minimum" : "0",
48739 "optional" : 1,
48740 "type" : "number"
48741 },
48742 "restore" : {
95895385 48743 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
48744 "format_description" : "LIMIT",
48745 "minimum" : "0",
48746 "optional" : 1,
48747 "type" : "number"
48748 }
48749 },
48750 "optional" : 1,
48751 "type" : "string",
48752 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
48753 },
44660702
DM
48754 "comstar_hg" : {
48755 "description" : "host group for comstar views",
48756 "optional" : 1,
013dc89f
DM
48757 "type" : "string",
48758 "typetext" : "<string>"
44660702
DM
48759 },
48760 "comstar_tg" : {
48761 "description" : "target group for comstar views",
48762 "optional" : 1,
013dc89f
DM
48763 "type" : "string",
48764 "typetext" : "<string>"
44660702
DM
48765 },
48766 "content" : {
48767 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
48768 "format" : "pve-storage-content-list",
48769 "optional" : 1,
013dc89f
DM
48770 "type" : "string",
48771 "typetext" : "<string>"
44660702 48772 },
9d2e98ed
TL
48773 "content-dirs" : {
48774 "description" : "Overrides for default content type directories.",
48775 "format" : "pve-dir-override-list",
48776 "optional" : 1,
48777 "type" : "string",
48778 "typetext" : "<string>"
48779 },
4a407cfd
TL
48780 "create-base-path" : {
48781 "default" : "yes",
48782 "description" : "Create the base directory if it doesn't exist.",
48783 "optional" : 1,
48784 "type" : "boolean",
48785 "typetext" : "<boolean>"
48786 },
48787 "create-subdirs" : {
48788 "default" : "yes",
48789 "description" : "Populate the directory with the default structure.",
48790 "optional" : 1,
48791 "type" : "boolean",
48792 "typetext" : "<boolean>"
48793 },
c30bb419
TL
48794 "data-pool" : {
48795 "description" : "Data Pool (for erasure coding only)",
48796 "optional" : 1,
48797 "type" : "string",
48798 "typetext" : "<string>"
48799 },
c5aa7e14 48800 "datastore" : {
4772952b 48801 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
48802 "optional" : 1,
48803 "type" : "string",
48804 "typetext" : "<string>"
48805 },
44660702
DM
48806 "disable" : {
48807 "description" : "Flag to disable the storage.",
48808 "optional" : 1,
013dc89f
DM
48809 "type" : "boolean",
48810 "typetext" : "<boolean>"
44660702 48811 },
27a7acb2
DM
48812 "domain" : {
48813 "description" : "CIFS domain.",
48814 "maxLength" : 256,
48815 "optional" : 1,
48816 "type" : "string",
48817 "typetext" : "<string>"
48818 },
04d22a9f
TL
48819 "encryption-key" : {
48820 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
48821 "optional" : 1,
48822 "type" : "string",
48823 "typetext" : "<string>"
48824 },
44660702
DM
48825 "export" : {
48826 "description" : "NFS export path.",
48827 "format" : "pve-storage-path",
48828 "optional" : 1,
013dc89f
DM
48829 "type" : "string",
48830 "typetext" : "<string>"
44660702 48831 },
c5aa7e14
TL
48832 "fingerprint" : {
48833 "description" : "Certificate SHA 256 fingerprint.",
48834 "optional" : 1,
48835 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
48836 "type" : "string"
48837 },
44660702
DM
48838 "format" : {
48839 "description" : "Default image format.",
48840 "format" : "pve-storage-format",
48841 "optional" : 1,
013dc89f
DM
48842 "type" : "string",
48843 "typetext" : "<string>"
44660702 48844 },
5370fa8c
TL
48845 "fs-name" : {
48846 "description" : "The Ceph filesystem name.",
48847 "format" : "pve-configid",
48848 "optional" : 1,
48849 "type" : "string",
48850 "typetext" : "<string>"
48851 },
5da3d723
TL
48852 "fuse" : {
48853 "description" : "Mount CephFS through FUSE.",
48854 "optional" : 1,
48855 "type" : "boolean",
48856 "typetext" : "<boolean>"
48857 },
2c0dde61
DM
48858 "is_mountpoint" : {
48859 "default" : "no",
2489d6df 48860 "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 48861 "optional" : 1,
2489d6df
WB
48862 "type" : "string",
48863 "typetext" : "<string>"
2c0dde61 48864 },
44660702
DM
48865 "iscsiprovider" : {
48866 "description" : "iscsi provider",
48867 "optional" : 1,
013dc89f
DM
48868 "type" : "string",
48869 "typetext" : "<string>"
44660702 48870 },
5370fa8c
TL
48871 "keyring" : {
48872 "description" : "Client keyring contents (for external clusters).",
48873 "optional" : 1,
48874 "type" : "string",
48875 "typetext" : "<string>"
48876 },
44660702 48877 "krbd" : {
e2d681b3 48878 "description" : "Always access rbd through krbd kernel module.",
44660702 48879 "optional" : 1,
013dc89f
DM
48880 "type" : "boolean",
48881 "typetext" : "<boolean>"
56122987 48882 },
4d47f125
TL
48883 "lio_tpg" : {
48884 "description" : "target portal group for Linux LIO targets",
48885 "optional" : 1,
48886 "type" : "string",
48887 "typetext" : "<string>"
48888 },
d2656385 48889 "master-pubkey" : {
5f4e66fe 48890 "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
48891 "optional" : 1,
48892 "type" : "string",
48893 "typetext" : "<string>"
48894 },
7af2edf9
TL
48895 "max-protected-backups" : {
48896 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
48897 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
48898 "minimum" : -1,
48899 "optional" : 1,
48900 "type" : "integer",
48901 "typetext" : "<integer> (-1 - N)"
48902 },
44660702 48903 "maxfiles" : {
5f4e66fe 48904 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
48905 "minimum" : 0,
48906 "optional" : 1,
4bd7df8b 48907 "type" : "integer",
013dc89f 48908 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
48909 },
48910 "mkdir" : {
48911 "default" : "yes",
4a407cfd 48912 "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 48913 "optional" : 1,
013dc89f
DM
48914 "type" : "boolean",
48915 "typetext" : "<boolean>"
7aacca6f 48916 },
44660702 48917 "monhost" : {
2489d6df 48918 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 48919 "format" : "pve-storage-portal-dns-list",
44660702 48920 "optional" : 1,
013dc89f
DM
48921 "type" : "string",
48922 "typetext" : "<string>"
7aacca6f 48923 },
5c1699e5
TL
48924 "mountpoint" : {
48925 "description" : "mount point",
48926 "format" : "pve-storage-path",
48927 "optional" : 1,
48928 "type" : "string",
48929 "typetext" : "<string>"
48930 },
d2656385 48931 "namespace" : {
de786b48 48932 "description" : "Namespace.",
d2656385
TL
48933 "optional" : 1,
48934 "type" : "string",
48935 "typetext" : "<string>"
48936 },
5f4e66fe
TL
48937 "nocow" : {
48938 "default" : 0,
48939 "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.",
48940 "optional" : 1,
48941 "type" : "boolean",
48942 "typetext" : "<boolean>"
48943 },
44660702
DM
48944 "nodes" : {
48945 "description" : "List of cluster node names.",
48946 "format" : "pve-node-list",
48947 "optional" : 1,
013dc89f
DM
48948 "type" : "string",
48949 "typetext" : "<string>"
7aacca6f 48950 },
44660702
DM
48951 "nowritecache" : {
48952 "description" : "disable write caching on the target",
48953 "optional" : 1,
013dc89f
DM
48954 "type" : "boolean",
48955 "typetext" : "<boolean>"
44660702
DM
48956 },
48957 "options" : {
159464a9 48958 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
48959 "format" : "pve-storage-options",
48960 "optional" : 1,
013dc89f
DM
48961 "type" : "string",
48962 "typetext" : "<string>"
44660702 48963 },
27a7acb2 48964 "password" : {
04d22a9f 48965 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
48966 "maxLength" : 256,
48967 "optional" : 1,
48968 "type" : "string",
48969 "typetext" : "<string>"
48970 },
44660702
DM
48971 "path" : {
48972 "description" : "File system path.",
48973 "format" : "pve-storage-path",
48974 "optional" : 1,
013dc89f
DM
48975 "type" : "string",
48976 "typetext" : "<string>"
44660702
DM
48977 },
48978 "pool" : {
48979 "description" : "Pool.",
48980 "optional" : 1,
013dc89f
DM
48981 "type" : "string",
48982 "typetext" : "<string>"
44660702 48983 },
4772952b
TL
48984 "port" : {
48985 "default" : 8007,
48986 "description" : "For non default port.",
48987 "maximum" : 65535,
48988 "minimum" : 1,
48989 "optional" : 1,
48990 "type" : "integer",
48991 "typetext" : "<integer> (1 - 65535)"
48992 },
44660702
DM
48993 "portal" : {
48994 "description" : "iSCSI portal (IP or DNS name with optional port).",
48995 "format" : "pve-storage-portal-dns",
48996 "optional" : 1,
013dc89f
DM
48997 "type" : "string",
48998 "typetext" : "<string>"
44660702 48999 },
5370fa8c
TL
49000 "preallocation" : {
49001 "default" : "metadata",
49002 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
49003 "enum" : [
49004 "off",
49005 "metadata",
49006 "falloc",
49007 "full"
49008 ],
49009 "optional" : 1,
49010 "type" : "string"
49011 },
739d4d64
TL
49012 "prune-backups" : {
49013 "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.",
49014 "format" : "prune-backups",
49015 "optional" : 1,
49016 "type" : "string",
4772952b 49017 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 49018 },
44660702
DM
49019 "saferemove" : {
49020 "description" : "Zero-out data when removing LVs.",
49021 "optional" : 1,
013dc89f
DM
49022 "type" : "boolean",
49023 "typetext" : "<boolean>"
44660702
DM
49024 },
49025 "saferemove_throughput" : {
49026 "description" : "Wipe throughput (cstream -t parameter value).",
49027 "optional" : 1,
013dc89f
DM
49028 "type" : "string",
49029 "typetext" : "<string>"
44660702
DM
49030 },
49031 "server" : {
49032 "description" : "Server IP or DNS name.",
49033 "format" : "pve-storage-server",
49034 "optional" : 1,
013dc89f
DM
49035 "type" : "string",
49036 "typetext" : "<string>"
44660702
DM
49037 },
49038 "server2" : {
49039 "description" : "Backup volfile server IP or DNS name.",
49040 "format" : "pve-storage-server",
49041 "optional" : 1,
49042 "requires" : "server",
013dc89f
DM
49043 "type" : "string",
49044 "typetext" : "<string>"
44660702 49045 },
27a7acb2
DM
49046 "share" : {
49047 "description" : "CIFS share.",
49048 "optional" : 1,
49049 "type" : "string",
49050 "typetext" : "<string>"
49051 },
44660702
DM
49052 "shared" : {
49053 "description" : "Mark storage as shared.",
49054 "optional" : 1,
013dc89f
DM
49055 "type" : "boolean",
49056 "typetext" : "<boolean>"
44660702 49057 },
27a7acb2 49058 "smbversion" : {
5370fa8c
TL
49059 "default" : "default",
49060 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 49061 "enum" : [
5370fa8c 49062 "default",
5da3d723
TL
49063 "2.0",
49064 "2.1",
5370fa8c
TL
49065 "3",
49066 "3.0",
49067 "3.11"
5da3d723 49068 ],
27a7acb2 49069 "optional" : 1,
5da3d723 49070 "type" : "string"
27a7acb2 49071 },
44660702
DM
49072 "sparse" : {
49073 "description" : "use sparse volumes",
49074 "optional" : 1,
013dc89f
DM
49075 "type" : "boolean",
49076 "typetext" : "<boolean>"
44660702
DM
49077 },
49078 "storage" : {
49079 "description" : "The storage identifier.",
49080 "format" : "pve-storage-id",
013dc89f
DM
49081 "type" : "string",
49082 "typetext" : "<string>"
44660702 49083 },
5da3d723
TL
49084 "subdir" : {
49085 "description" : "Subdir to mount.",
49086 "format" : "pve-storage-path",
49087 "optional" : 1,
49088 "type" : "string",
49089 "typetext" : "<string>"
49090 },
4bd7df8b
DM
49091 "tagged_only" : {
49092 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
49093 "optional" : 1,
013dc89f
DM
49094 "type" : "boolean",
49095 "typetext" : "<boolean>"
4bd7df8b 49096 },
44660702
DM
49097 "target" : {
49098 "description" : "iSCSI target.",
49099 "optional" : 1,
013dc89f
DM
49100 "type" : "string",
49101 "typetext" : "<string>"
44660702
DM
49102 },
49103 "thinpool" : {
49104 "description" : "LVM thin pool LV name.",
49105 "format" : "pve-storage-vgname",
49106 "optional" : 1,
013dc89f
DM
49107 "type" : "string",
49108 "typetext" : "<string>"
44660702
DM
49109 },
49110 "transport" : {
49111 "description" : "Gluster transport: tcp or rdma",
49112 "enum" : [
49113 "tcp",
49114 "rdma",
49115 "unix"
7aacca6f 49116 ],
44660702
DM
49117 "optional" : 1,
49118 "type" : "string"
56122987 49119 },
44660702
DM
49120 "type" : {
49121 "description" : "Storage type.",
49122 "enum" : [
5f4e66fe 49123 "btrfs",
5da3d723 49124 "cephfs",
27a7acb2 49125 "cifs",
44660702 49126 "dir",
44660702
DM
49127 "glusterfs",
49128 "iscsi",
49129 "iscsidirect",
49130 "lvm",
49131 "lvmthin",
49132 "nfs",
c5aa7e14 49133 "pbs",
44660702 49134 "rbd",
44660702
DM
49135 "zfs",
49136 "zfspool"
49137 ],
49138 "type" : "string"
56122987 49139 },
44660702
DM
49140 "username" : {
49141 "description" : "RBD Id.",
49142 "optional" : 1,
013dc89f
DM
49143 "type" : "string",
49144 "typetext" : "<string>"
7aacca6f 49145 },
44660702
DM
49146 "vgname" : {
49147 "description" : "Volume group name.",
49148 "format" : "pve-storage-vgname",
49149 "optional" : 1,
013dc89f
DM
49150 "type" : "string",
49151 "typetext" : "<string>"
44660702
DM
49152 },
49153 "volume" : {
49154 "description" : "Glusterfs Volume.",
49155 "optional" : 1,
013dc89f
DM
49156 "type" : "string",
49157 "typetext" : "<string>"
44660702
DM
49158 }
49159 },
49160 "type" : "object"
49161 },
49162 "permissions" : {
49163 "check" : [
49164 "perm",
49165 "/storage",
49166 [
49167 "Datastore.Allocate"
49168 ]
49169 ]
56122987 49170 },
44660702
DM
49171 "protected" : 1,
49172 "returns" : {
4772952b
TL
49173 "properties" : {
49174 "config" : {
49175 "additionalProperties" : 1,
49176 "description" : "Partial, possible server generated, configuration properties.",
49177 "optional" : 1,
49178 "properties" : {
49179 "encryption-key" : {
49180 "description" : "The, possible auto-generated, encryption-key.",
49181 "optional" : 1,
49182 "type" : "string"
49183 }
49184 },
49185 "type" : "object"
49186 },
49187 "storage" : {
49188 "description" : "The ID of the created storage.",
49189 "type" : "string"
49190 },
49191 "type" : {
49192 "description" : "The type of the created storage.",
49193 "enum" : [
5f4e66fe 49194 "btrfs",
4772952b
TL
49195 "cephfs",
49196 "cifs",
49197 "dir",
4772952b
TL
49198 "glusterfs",
49199 "iscsi",
49200 "iscsidirect",
49201 "lvm",
49202 "lvmthin",
49203 "nfs",
49204 "pbs",
49205 "rbd",
49206 "zfs",
49207 "zfspool"
49208 ],
49209 "type" : "string"
49210 }
49211 },
49212 "type" : "object"
44660702
DM
49213 }
49214 }
49215 },
49216 "leaf" : 0,
49217 "path" : "/storage",
49218 "text" : "storage"
49219 },
49220 {
49221 "children" : [
49222 {
56122987
DM
49223 "children" : [
49224 {
bb4c8cf8
TL
49225 "children" : [
49226 {
49227 "info" : {
49228 "GET" : {
e9cd3bd4 49229 "allowtoken" : 1,
bb4c8cf8
TL
49230 "description" : "Get user TFA types (Personal and Realm).",
49231 "method" : "GET",
49232 "name" : "read_user_tfa_type",
49233 "parameters" : {
49234 "additionalProperties" : 0,
49235 "properties" : {
5370fa8c
TL
49236 "multiple" : {
49237 "default" : 0,
49238 "description" : "Request all entries as an array.",
49239 "optional" : 1,
49240 "type" : "boolean",
49241 "typetext" : "<boolean>"
49242 },
bb4c8cf8 49243 "userid" : {
9d2e98ed 49244 "description" : "Full User ID, in the `name@realm` format.",
bb4c8cf8
TL
49245 "format" : "pve-userid",
49246 "maxLength" : 64,
49247 "type" : "string",
49248 "typetext" : "<string>"
49249 }
49250 }
49251 },
49252 "permissions" : {
49253 "check" : [
49254 "or",
49255 [
49256 "userid-param",
49257 "self"
49258 ],
49259 [
49260 "userid-group",
49261 [
49262 "User.Modify",
49263 "Sys.Audit"
49264 ]
49265 ]
49266 ]
49267 },
49268 "protected" : 1,
49269 "returns" : {
49270 "additionalProperties" : 0,
49271 "properties" : {
49272 "realm" : {
49273 "description" : "The type of TFA the users realm has set, if any.",
49274 "enum" : [
49275 "oath",
49276 "yubico"
49277 ],
49278 "optional" : 1,
49279 "type" : "string"
49280 },
5370fa8c
TL
49281 "types" : {
49282 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
49283 "items" : {
49284 "description" : "A TFA type.",
49285 "enum" : [
49286 "totp",
49287 "u2f",
49288 "yubico",
49289 "webauthn",
49290 "recovedry"
49291 ],
49292 "type" : "string"
49293 },
49294 "optional" : 1,
49295 "type" : "array"
49296 },
bb4c8cf8 49297 "user" : {
5370fa8c 49298 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
49299 "enum" : [
49300 "oath",
49301 "u2f"
49302 ],
49303 "optional" : 1,
49304 "type" : "string"
49305 }
49306 },
49307 "type" : "object"
49308 }
49309 }
49310 },
49311 "leaf" : 1,
49312 "path" : "/access/users/{userid}/tfa",
49313 "text" : "tfa"
e9cd3bd4 49314 },
4a407cfd
TL
49315 {
49316 "info" : {
49317 "PUT" : {
49318 "allowtoken" : 1,
49319 "description" : "Unlock a user's TFA authentication.",
49320 "method" : "PUT",
49321 "name" : "unlock_tfa",
49322 "parameters" : {
49323 "additionalProperties" : 0,
49324 "properties" : {
49325 "userid" : {
49326 "description" : "Full User ID, in the `name@realm` format.",
49327 "format" : "pve-userid",
49328 "maxLength" : 64,
49329 "type" : "string",
49330 "typetext" : "<string>"
49331 }
49332 }
49333 },
49334 "permissions" : {
49335 "check" : [
49336 "userid-group",
49337 [
49338 "User.Modify"
49339 ]
49340 ]
49341 },
49342 "protected" : 1,
49343 "returns" : {
49344 "type" : "boolean"
49345 }
49346 }
49347 },
49348 "leaf" : 1,
49349 "path" : "/access/users/{userid}/unlock-tfa",
49350 "text" : "unlock-tfa"
49351 },
e9cd3bd4
TL
49352 {
49353 "children" : [
49354 {
49355 "info" : {
49356 "DELETE" : {
49357 "allowtoken" : 1,
49358 "description" : "Remove API token for a specific user.",
49359 "method" : "DELETE",
49360 "name" : "remove_token",
49361 "parameters" : {
49362 "additionalProperties" : 0,
49363 "properties" : {
49364 "tokenid" : {
49365 "description" : "User-specific token identifier.",
49366 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
49367 "type" : "string"
49368 },
49369 "userid" : {
9d2e98ed 49370 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
49371 "format" : "pve-userid",
49372 "maxLength" : 64,
49373 "type" : "string",
49374 "typetext" : "<string>"
49375 }
49376 }
49377 },
49378 "permissions" : {
49379 "check" : [
49380 "or",
49381 [
49382 "userid-param",
49383 "self"
49384 ],
49385 [
de786b48 49386 "userid-group",
e9cd3bd4
TL
49387 [
49388 "User.Modify"
49389 ]
49390 ]
49391 ]
49392 },
49393 "protected" : 1,
49394 "returns" : {
c5aa7e14
TL
49395 "type" : "null"
49396 }
49397 },
49398 "GET" : {
49399 "allowtoken" : 1,
49400 "description" : "Get specific API token information.",
49401 "method" : "GET",
49402 "name" : "read_token",
49403 "parameters" : {
49404 "additionalProperties" : 0,
49405 "properties" : {
49406 "tokenid" : {
49407 "description" : "User-specific token identifier.",
49408 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
49409 "type" : "string"
49410 },
49411 "userid" : {
9d2e98ed 49412 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
49413 "format" : "pve-userid",
49414 "maxLength" : 64,
49415 "type" : "string",
49416 "typetext" : "<string>"
49417 }
49418 }
49419 },
49420 "permissions" : {
49421 "check" : [
49422 "or",
49423 [
49424 "userid-param",
49425 "self"
49426 ],
49427 [
de786b48 49428 "userid-group",
c5aa7e14
TL
49429 [
49430 "User.Modify"
49431 ]
49432 ]
49433 ]
49434 },
49435 "returns" : {
49436 "properties" : {
49437 "comment" : {
49438 "optional" : 1,
49439 "type" : "string"
49440 },
49441 "expire" : {
49442 "default" : "same as user",
49443 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49444 "minimum" : 0,
49445 "optional" : 1,
49446 "type" : "integer"
49447 },
49448 "privsep" : {
49449 "default" : 1,
49450 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49451 "optional" : 1,
49452 "type" : "boolean"
49453 }
49454 },
49455 "type" : "object"
49456 }
49457 },
49458 "POST" : {
49459 "allowtoken" : 1,
49460 "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!",
49461 "method" : "POST",
49462 "name" : "generate_token",
49463 "parameters" : {
49464 "additionalProperties" : 0,
49465 "properties" : {
49466 "comment" : {
49467 "optional" : 1,
49468 "type" : "string",
49469 "typetext" : "<string>"
49470 },
49471 "expire" : {
49472 "default" : "same as user",
49473 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49474 "minimum" : 0,
49475 "optional" : 1,
49476 "type" : "integer",
49477 "typetext" : "<integer> (0 - N)"
49478 },
49479 "privsep" : {
49480 "default" : 1,
49481 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49482 "optional" : 1,
49483 "type" : "boolean",
49484 "typetext" : "<boolean>"
49485 },
49486 "tokenid" : {
49487 "description" : "User-specific token identifier.",
49488 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
49489 "type" : "string"
49490 },
49491 "userid" : {
9d2e98ed 49492 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
49493 "format" : "pve-userid",
49494 "maxLength" : 64,
49495 "type" : "string",
49496 "typetext" : "<string>"
49497 }
49498 }
49499 },
49500 "permissions" : {
49501 "check" : [
49502 "or",
49503 [
49504 "userid-param",
49505 "self"
49506 ],
49507 [
de786b48 49508 "userid-group",
c5aa7e14
TL
49509 [
49510 "User.Modify"
49511 ]
49512 ]
49513 ]
49514 },
49515 "protected" : 1,
49516 "returns" : {
e9cd3bd4
TL
49517 "additionalProperties" : 0,
49518 "properties" : {
c5aa7e14
TL
49519 "full-tokenid" : {
49520 "description" : "The full token id.",
49521 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
49522 "type" : "string"
49523 },
e9cd3bd4
TL
49524 "info" : {
49525 "properties" : {
49526 "comment" : {
49527 "optional" : 1,
49528 "type" : "string"
49529 },
49530 "expire" : {
49531 "default" : "same as user",
49532 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49533 "minimum" : 0,
49534 "optional" : 1,
49535 "type" : "integer"
49536 },
49537 "privsep" : {
49538 "default" : 1,
49539 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49540 "optional" : 1,
49541 "type" : "boolean"
49542 }
49543 },
49544 "type" : "object"
49545 },
49546 "value" : {
49547 "description" : "API token value used for authentication.",
49548 "type" : "string"
49549 }
49550 },
49551 "type" : "object"
49552 }
49553 },
49554 "PUT" : {
49555 "allowtoken" : 1,
49556 "description" : "Update API token for a specific user.",
49557 "method" : "PUT",
49558 "name" : "update_token_info",
49559 "parameters" : {
49560 "additionalProperties" : 0,
49561 "properties" : {
49562 "comment" : {
49563 "optional" : 1,
49564 "type" : "string",
49565 "typetext" : "<string>"
49566 },
49567 "expire" : {
49568 "default" : "same as user",
49569 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49570 "minimum" : 0,
49571 "optional" : 1,
49572 "type" : "integer",
49573 "typetext" : "<integer> (0 - N)"
49574 },
49575 "privsep" : {
49576 "default" : 1,
49577 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49578 "optional" : 1,
49579 "type" : "boolean",
49580 "typetext" : "<boolean>"
49581 },
49582 "tokenid" : {
49583 "description" : "User-specific token identifier.",
49584 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
49585 "type" : "string"
49586 },
49587 "userid" : {
9d2e98ed 49588 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
49589 "format" : "pve-userid",
49590 "maxLength" : 64,
49591 "type" : "string",
49592 "typetext" : "<string>"
49593 }
49594 }
49595 },
49596 "permissions" : {
49597 "check" : [
49598 "or",
49599 [
49600 "userid-param",
49601 "self"
49602 ],
49603 [
de786b48 49604 "userid-group",
e9cd3bd4
TL
49605 [
49606 "User.Modify"
49607 ]
49608 ]
49609 ]
49610 },
49611 "protected" : 1,
49612 "returns" : {
49613 "description" : "Updated token information.",
49614 "properties" : {
49615 "comment" : {
49616 "optional" : 1,
49617 "type" : "string"
49618 },
49619 "expire" : {
49620 "default" : "same as user",
49621 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49622 "minimum" : 0,
49623 "optional" : 1,
49624 "type" : "integer"
49625 },
49626 "privsep" : {
49627 "default" : 1,
49628 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49629 "optional" : 1,
49630 "type" : "boolean"
49631 }
49632 },
49633 "type" : "object"
49634 }
49635 }
49636 },
49637 "leaf" : 1,
49638 "path" : "/access/users/{userid}/token/{tokenid}",
49639 "text" : "{tokenid}"
49640 }
49641 ],
49642 "info" : {
49643 "GET" : {
49644 "allowtoken" : 1,
49645 "description" : "Get user API tokens.",
49646 "method" : "GET",
49647 "name" : "token_index",
49648 "parameters" : {
49649 "additionalProperties" : 0,
49650 "properties" : {
49651 "userid" : {
9d2e98ed 49652 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
49653 "format" : "pve-userid",
49654 "maxLength" : 64,
49655 "type" : "string",
49656 "typetext" : "<string>"
49657 }
49658 }
49659 },
49660 "permissions" : {
49661 "check" : [
49662 "or",
49663 [
49664 "userid-param",
49665 "self"
49666 ],
49667 [
de786b48 49668 "userid-group",
e9cd3bd4
TL
49669 [
49670 "User.Modify"
49671 ]
49672 ]
49673 ]
49674 },
49675 "returns" : {
49676 "items" : {
49677 "properties" : {
49678 "comment" : {
49679 "optional" : 1,
49680 "type" : "string"
49681 },
49682 "expire" : {
49683 "default" : "same as user",
49684 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49685 "minimum" : 0,
49686 "optional" : 1,
49687 "type" : "integer"
49688 },
49689 "privsep" : {
49690 "default" : 1,
49691 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49692 "optional" : 1,
49693 "type" : "boolean"
49694 },
49695 "tokenid" : {
49696 "description" : "User-specific token identifier.",
49697 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
49698 "type" : "string"
49699 }
49700 },
49701 "type" : "object"
49702 },
49703 "links" : [
49704 {
49705 "href" : "{tokenid}",
49706 "rel" : "child"
49707 }
49708 ],
49709 "type" : "array"
49710 }
49711 }
49712 },
49713 "leaf" : 0,
49714 "path" : "/access/users/{userid}/token",
49715 "text" : "token"
bb4c8cf8
TL
49716 }
49717 ],
56122987 49718 "info" : {
44660702 49719 "DELETE" : {
e9cd3bd4 49720 "allowtoken" : 1,
44660702
DM
49721 "description" : "Delete user.",
49722 "method" : "DELETE",
49723 "name" : "delete_user",
56122987 49724 "parameters" : {
7aacca6f 49725 "additionalProperties" : 0,
56122987 49726 "properties" : {
56122987 49727 "userid" : {
9d2e98ed 49728 "description" : "Full User ID, in the `name@realm` format.",
56122987 49729 "format" : "pve-userid",
44660702 49730 "maxLength" : 64,
013dc89f
DM
49731 "type" : "string",
49732 "typetext" : "<string>"
56122987 49733 }
7aacca6f 49734 }
56122987 49735 },
56122987
DM
49736 "permissions" : {
49737 "check" : [
44660702 49738 "and",
56122987 49739 [
44660702
DM
49740 "userid-param",
49741 "Realm.AllocateUser"
56122987 49742 ],
44660702
DM
49743 [
49744 "userid-group",
49745 [
49746 "User.Modify"
49747 ]
49748 ]
56122987 49749 ]
7aacca6f 49750 },
44660702 49751 "protected" : 1,
56122987
DM
49752 "returns" : {
49753 "type" : "null"
44660702 49754 }
7aacca6f 49755 },
44660702 49756 "GET" : {
e9cd3bd4 49757 "allowtoken" : 1,
44660702
DM
49758 "description" : "Get user configuration.",
49759 "method" : "GET",
49760 "name" : "read_user",
56122987
DM
49761 "parameters" : {
49762 "additionalProperties" : 0,
49763 "properties" : {
49764 "userid" : {
9d2e98ed 49765 "description" : "Full User ID, in the `name@realm` format.",
56122987 49766 "format" : "pve-userid",
44660702 49767 "maxLength" : 64,
013dc89f
DM
49768 "type" : "string",
49769 "typetext" : "<string>"
56122987
DM
49770 }
49771 }
49772 },
56122987
DM
49773 "permissions" : {
49774 "check" : [
44660702 49775 "userid-group",
56122987 49776 [
44660702
DM
49777 "User.Modify",
49778 "Sys.Audit"
56122987
DM
49779 ]
49780 ]
49781 },
56122987 49782 "returns" : {
7aacca6f 49783 "additionalProperties" : 0,
56122987 49784 "properties" : {
44660702
DM
49785 "comment" : {
49786 "optional" : 1,
49787 "type" : "string"
56122987 49788 },
44660702 49789 "email" : {
e2d681b3 49790 "format" : "email-opt",
44660702
DM
49791 "optional" : 1,
49792 "type" : "string"
7aacca6f
DM
49793 },
49794 "enable" : {
e2d681b3
TL
49795 "default" : 1,
49796 "description" : "Enable the account (default). You can set this to '0' to disable the account",
49797 "optional" : 1,
7aacca6f
DM
49798 "type" : "boolean"
49799 },
44660702 49800 "expire" : {
e2d681b3
TL
49801 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49802 "minimum" : 0,
44660702
DM
49803 "optional" : 1,
49804 "type" : "integer"
49805 },
49806 "firstname" : {
56122987
DM
49807 "optional" : 1,
49808 "type" : "string"
49809 },
44660702 49810 "groups" : {
e9cd3bd4
TL
49811 "items" : {
49812 "format" : "pve-groupid",
49813 "type" : "string"
49814 },
49815 "optional" : 1,
44660702 49816 "type" : "array"
56122987 49817 },
44660702 49818 "keys" : {
e2d681b3 49819 "description" : "Keys for two factor auth (yubico).",
44660702
DM
49820 "optional" : 1,
49821 "type" : "string"
7aacca6f 49822 },
44660702
DM
49823 "lastname" : {
49824 "optional" : 1,
49825 "type" : "string"
e9cd3bd4
TL
49826 },
49827 "tokens" : {
c30bb419
TL
49828 "additionalProperties" : {
49829 "properties" : {
49830 "comment" : {
49831 "optional" : 1,
49832 "type" : "string"
49833 },
49834 "expire" : {
49835 "default" : "same as user",
49836 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49837 "minimum" : 0,
49838 "optional" : 1,
49839 "type" : "integer"
49840 },
49841 "privsep" : {
49842 "default" : 1,
49843 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49844 "optional" : 1,
49845 "type" : "boolean"
49846 }
49847 },
49848 "type" : "object"
49849 },
e9cd3bd4
TL
49850 "optional" : 1,
49851 "type" : "object"
56122987 49852 }
e2d681b3
TL
49853 },
49854 "type" : "object"
44660702
DM
49855 }
49856 },
49857 "PUT" : {
e9cd3bd4 49858 "allowtoken" : 1,
44660702
DM
49859 "description" : "Update user configuration.",
49860 "method" : "PUT",
49861 "name" : "update_user",
56122987 49862 "parameters" : {
44660702 49863 "additionalProperties" : 0,
56122987 49864 "properties" : {
44660702
DM
49865 "append" : {
49866 "optional" : 1,
49867 "requires" : "groups",
013dc89f
DM
49868 "type" : "boolean",
49869 "typetext" : "<boolean>"
44660702
DM
49870 },
49871 "comment" : {
49872 "optional" : 1,
013dc89f
DM
49873 "type" : "string",
49874 "typetext" : "<string>"
44660702
DM
49875 },
49876 "email" : {
49877 "format" : "email-opt",
49878 "optional" : 1,
013dc89f
DM
49879 "type" : "string",
49880 "typetext" : "<string>"
44660702
DM
49881 },
49882 "enable" : {
e2d681b3
TL
49883 "default" : 1,
49884 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 49885 "optional" : 1,
013dc89f
DM
49886 "type" : "boolean",
49887 "typetext" : "<boolean>"
44660702
DM
49888 },
49889 "expire" : {
49890 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49891 "minimum" : 0,
49892 "optional" : 1,
4bd7df8b 49893 "type" : "integer",
013dc89f 49894 "typetext" : "<integer> (0 - N)"
44660702
DM
49895 },
49896 "firstname" : {
49897 "optional" : 1,
013dc89f
DM
49898 "type" : "string",
49899 "typetext" : "<string>"
44660702
DM
49900 },
49901 "groups" : {
49902 "format" : "pve-groupid-list",
49903 "optional" : 1,
013dc89f
DM
49904 "type" : "string",
49905 "typetext" : "<string>"
44660702
DM
49906 },
49907 "keys" : {
49908 "description" : "Keys for two factor auth (yubico).",
49909 "optional" : 1,
013dc89f
DM
49910 "type" : "string",
49911 "typetext" : "<string>"
44660702
DM
49912 },
49913 "lastname" : {
49914 "optional" : 1,
013dc89f
DM
49915 "type" : "string",
49916 "typetext" : "<string>"
44660702 49917 },
56122987 49918 "userid" : {
9d2e98ed 49919 "description" : "Full User ID, in the `name@realm` format.",
56122987 49920 "format" : "pve-userid",
44660702 49921 "maxLength" : 64,
013dc89f
DM
49922 "type" : "string",
49923 "typetext" : "<string>"
56122987 49924 }
44660702 49925 }
56122987 49926 },
56122987
DM
49927 "permissions" : {
49928 "check" : [
49929 "userid-group",
49930 [
44660702
DM
49931 "User.Modify"
49932 ],
49933 "groups_param",
c30bb419 49934 "update"
56122987
DM
49935 ]
49936 },
44660702
DM
49937 "protected" : 1,
49938 "returns" : {
49939 "type" : "null"
49940 }
56122987
DM
49941 }
49942 },
bb4c8cf8 49943 "leaf" : 0,
44660702 49944 "path" : "/access/users/{userid}",
7aacca6f 49945 "text" : "{userid}"
56122987 49946 }
7aacca6f 49947 ],
56122987 49948 "info" : {
7aacca6f 49949 "GET" : {
e9cd3bd4 49950 "allowtoken" : 1,
44660702
DM
49951 "description" : "User index.",
49952 "method" : "GET",
7aacca6f 49953 "name" : "index",
56122987 49954 "parameters" : {
44660702
DM
49955 "additionalProperties" : 0,
49956 "properties" : {
49957 "enabled" : {
49958 "description" : "Optional filter for enable property.",
49959 "optional" : 1,
013dc89f
DM
49960 "type" : "boolean",
49961 "typetext" : "<boolean>"
e9cd3bd4
TL
49962 },
49963 "full" : {
49964 "default" : 0,
49965 "description" : "Include group and token information.",
49966 "optional" : 1,
49967 "type" : "boolean",
49968 "typetext" : "<boolean>"
44660702
DM
49969 }
49970 }
49971 },
49972 "permissions" : {
49973 "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.",
49974 "user" : "all"
56122987 49975 },
4a407cfd 49976 "protected" : 1,
7aacca6f 49977 "returns" : {
7aacca6f
DM
49978 "items" : {
49979 "properties" : {
e2d681b3
TL
49980 "comment" : {
49981 "optional" : 1,
49982 "type" : "string"
49983 },
49984 "email" : {
49985 "format" : "email-opt",
49986 "optional" : 1,
49987 "type" : "string"
49988 },
49989 "enable" : {
49990 "default" : 1,
49991 "description" : "Enable the account (default). You can set this to '0' to disable the account",
49992 "optional" : 1,
49993 "type" : "boolean"
49994 },
49995 "expire" : {
49996 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49997 "minimum" : 0,
49998 "optional" : 1,
49999 "type" : "integer"
50000 },
50001 "firstname" : {
50002 "optional" : 1,
50003 "type" : "string"
50004 },
e9cd3bd4
TL
50005 "groups" : {
50006 "format" : "pve-groupid-list",
50007 "optional" : 1,
50008 "type" : "string"
50009 },
e2d681b3
TL
50010 "keys" : {
50011 "description" : "Keys for two factor auth (yubico).",
50012 "optional" : 1,
50013 "type" : "string"
50014 },
50015 "lastname" : {
50016 "optional" : 1,
50017 "type" : "string"
50018 },
34f3e481
TL
50019 "realm-type" : {
50020 "description" : "The type of the users realm",
50021 "format" : "pve-realm",
50022 "optional" : 1,
50023 "type" : "string"
50024 },
4a407cfd
TL
50025 "tfa-locked-until" : {
50026 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
50027 "optional" : 1,
50028 "type" : "integer"
50029 },
e9cd3bd4
TL
50030 "tokens" : {
50031 "items" : {
50032 "properties" : {
50033 "comment" : {
50034 "optional" : 1,
50035 "type" : "string"
50036 },
50037 "expire" : {
50038 "default" : "same as user",
50039 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50040 "minimum" : 0,
50041 "optional" : 1,
50042 "type" : "integer"
50043 },
50044 "privsep" : {
50045 "default" : 1,
50046 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50047 "optional" : 1,
50048 "type" : "boolean"
50049 },
50050 "tokenid" : {
50051 "description" : "User-specific token identifier.",
50052 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
50053 "type" : "string"
50054 }
50055 },
50056 "type" : "object"
50057 },
50058 "optional" : 1,
50059 "type" : "array"
50060 },
4a407cfd
TL
50061 "totp-locked" : {
50062 "description" : "True if the user is currently locked out of TOTP factors.",
50063 "optional" : 1,
50064 "type" : "boolean"
50065 },
44660702 50066 "userid" : {
9d2e98ed 50067 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
50068 "format" : "pve-userid",
50069 "maxLength" : 64,
7aacca6f
DM
50070 "type" : "string"
50071 }
50072 },
50073 "type" : "object"
50074 },
44660702
DM
50075 "links" : [
50076 {
50077 "href" : "{userid}",
50078 "rel" : "child"
50079 }
50080 ],
7aacca6f
DM
50081 "type" : "array"
50082 }
50083 },
50084 "POST" : {
e9cd3bd4 50085 "allowtoken" : 1,
44660702 50086 "description" : "Create new user.",
7aacca6f 50087 "method" : "POST",
44660702 50088 "name" : "create_user",
56122987 50089 "parameters" : {
7aacca6f
DM
50090 "additionalProperties" : 0,
50091 "properties" : {
44660702
DM
50092 "comment" : {
50093 "optional" : 1,
013dc89f
DM
50094 "type" : "string",
50095 "typetext" : "<string>"
7aacca6f 50096 },
44660702
DM
50097 "email" : {
50098 "format" : "email-opt",
50099 "optional" : 1,
013dc89f
DM
50100 "type" : "string",
50101 "typetext" : "<string>"
44660702
DM
50102 },
50103 "enable" : {
50104 "default" : 1,
e2d681b3 50105 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 50106 "optional" : 1,
013dc89f
DM
50107 "type" : "boolean",
50108 "typetext" : "<boolean>"
44660702
DM
50109 },
50110 "expire" : {
50111 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
50112 "minimum" : 0,
50113 "optional" : 1,
4bd7df8b 50114 "type" : "integer",
013dc89f 50115 "typetext" : "<integer> (0 - N)"
44660702
DM
50116 },
50117 "firstname" : {
50118 "optional" : 1,
013dc89f
DM
50119 "type" : "string",
50120 "typetext" : "<string>"
44660702
DM
50121 },
50122 "groups" : {
50123 "format" : "pve-groupid-list",
50124 "optional" : 1,
013dc89f
DM
50125 "type" : "string",
50126 "typetext" : "<string>"
44660702
DM
50127 },
50128 "keys" : {
50129 "description" : "Keys for two factor auth (yubico).",
50130 "optional" : 1,
013dc89f
DM
50131 "type" : "string",
50132 "typetext" : "<string>"
44660702
DM
50133 },
50134 "lastname" : {
7aacca6f 50135 "optional" : 1,
013dc89f
DM
50136 "type" : "string",
50137 "typetext" : "<string>"
44660702
DM
50138 },
50139 "password" : {
50140 "description" : "Initial password.",
50141 "maxLength" : 64,
50142 "minLength" : 5,
50143 "optional" : 1,
013dc89f
DM
50144 "type" : "string",
50145 "typetext" : "<string>"
44660702
DM
50146 },
50147 "userid" : {
9d2e98ed 50148 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
50149 "format" : "pve-userid",
50150 "maxLength" : 64,
013dc89f
DM
50151 "type" : "string",
50152 "typetext" : "<string>"
56122987 50153 }
7aacca6f 50154 }
56122987 50155 },
44660702
DM
50156 "permissions" : {
50157 "check" : [
50158 "and",
50159 [
50160 "userid-param",
50161 "Realm.AllocateUser"
50162 ],
50163 [
50164 "userid-group",
50165 [
50166 "User.Modify"
50167 ],
50168 "groups_param",
c30bb419 50169 "create"
44660702
DM
50170 ]
50171 ],
50172 "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."
50173 },
50174 "protected" : 1,
50175 "returns" : {
50176 "type" : "null"
50177 }
56122987
DM
50178 }
50179 },
44660702
DM
50180 "leaf" : 0,
50181 "path" : "/access/users",
50182 "text" : "users"
50183 },
50184 {
56122987
DM
50185 "children" : [
50186 {
56122987
DM
50187 "info" : {
50188 "DELETE" : {
e9cd3bd4 50189 "allowtoken" : 1,
44660702
DM
50190 "description" : "Delete group.",
50191 "method" : "DELETE",
50192 "name" : "delete_group",
50193 "parameters" : {
50194 "additionalProperties" : 0,
50195 "properties" : {
50196 "groupid" : {
50197 "format" : "pve-groupid",
013dc89f
DM
50198 "type" : "string",
50199 "typetext" : "<string>"
44660702
DM
50200 }
50201 }
50202 },
7aacca6f
DM
50203 "permissions" : {
50204 "check" : [
50205 "perm",
50206 "/access/groups",
50207 [
50208 "Group.Allocate"
50209 ]
50210 ]
50211 },
7aacca6f 50212 "protected" : 1,
7aacca6f
DM
50213 "returns" : {
50214 "type" : "null"
44660702 50215 }
7aacca6f 50216 },
44660702 50217 "GET" : {
e9cd3bd4 50218 "allowtoken" : 1,
44660702
DM
50219 "description" : "Get group configuration.",
50220 "method" : "GET",
50221 "name" : "read_group",
50222 "parameters" : {
50223 "additionalProperties" : 0,
50224 "properties" : {
50225 "groupid" : {
50226 "format" : "pve-groupid",
013dc89f
DM
50227 "type" : "string",
50228 "typetext" : "<string>"
44660702
DM
50229 }
50230 }
56122987 50231 },
7aacca6f
DM
50232 "permissions" : {
50233 "check" : [
50234 "perm",
50235 "/access/groups",
50236 [
44660702 50237 "Sys.Audit",
7aacca6f 50238 "Group.Allocate"
44660702
DM
50239 ],
50240 "any",
50241 1
7aacca6f
DM
50242 ]
50243 },
7aacca6f 50244 "returns" : {
44660702 50245 "additionalProperties" : 0,
7aacca6f
DM
50246 "properties" : {
50247 "comment" : {
44660702
DM
50248 "optional" : 1,
50249 "type" : "string"
7aacca6f
DM
50250 },
50251 "members" : {
50252 "items" : {
9d2e98ed 50253 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
50254 "format" : "pve-userid",
50255 "maxLength" : 64,
7aacca6f
DM
50256 "type" : "string"
50257 },
50258 "type" : "array"
50259 }
50260 },
44660702
DM
50261 "type" : "object"
50262 }
50263 },
50264 "PUT" : {
e9cd3bd4 50265 "allowtoken" : 1,
44660702
DM
50266 "description" : "Update group data.",
50267 "method" : "PUT",
50268 "name" : "update_group",
56122987 50269 "parameters" : {
44660702 50270 "additionalProperties" : 0,
56122987 50271 "properties" : {
44660702
DM
50272 "comment" : {
50273 "optional" : 1,
013dc89f
DM
50274 "type" : "string",
50275 "typetext" : "<string>"
44660702 50276 },
56122987
DM
50277 "groupid" : {
50278 "format" : "pve-groupid",
013dc89f
DM
50279 "type" : "string",
50280 "typetext" : "<string>"
56122987 50281 }
44660702 50282 }
56122987 50283 },
56122987
DM
50284 "permissions" : {
50285 "check" : [
50286 "perm",
50287 "/access/groups",
50288 [
50289 "Group.Allocate"
44660702 50290 ]
56122987
DM
50291 ]
50292 },
44660702
DM
50293 "protected" : 1,
50294 "returns" : {
50295 "type" : "null"
50296 }
7aacca6f
DM
50297 }
50298 },
7aacca6f 50299 "leaf" : 1,
44660702
DM
50300 "path" : "/access/groups/{groupid}",
50301 "text" : "{groupid}"
50302 }
50303 ],
50304 "info" : {
50305 "GET" : {
e9cd3bd4 50306 "allowtoken" : 1,
44660702
DM
50307 "description" : "Group index.",
50308 "method" : "GET",
50309 "name" : "index",
50310 "parameters" : {
50311 "additionalProperties" : 0
50312 },
50313 "permissions" : {
50314 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
50315 "user" : "all"
50316 },
50317 "returns" : {
50318 "items" : {
50319 "properties" : {
e2d681b3
TL
50320 "comment" : {
50321 "optional" : 1,
50322 "type" : "string"
50323 },
44660702 50324 "groupid" : {
e2d681b3 50325 "format" : "pve-groupid",
44660702 50326 "type" : "string"
e9cd3bd4
TL
50327 },
50328 "users" : {
50329 "description" : "list of users which form this group",
50330 "format" : "pve-userid-list",
50331 "optional" : 1,
50332 "type" : "string"
44660702
DM
50333 }
50334 },
50335 "type" : "object"
50336 },
50337 "links" : [
50338 {
50339 "href" : "{groupid}",
50340 "rel" : "child"
50341 }
50342 ],
50343 "type" : "array"
50344 }
50345 },
50346 "POST" : {
e9cd3bd4 50347 "allowtoken" : 1,
44660702
DM
50348 "description" : "Create new group.",
50349 "method" : "POST",
50350 "name" : "create_group",
50351 "parameters" : {
50352 "additionalProperties" : 0,
50353 "properties" : {
50354 "comment" : {
50355 "optional" : 1,
013dc89f
DM
50356 "type" : "string",
50357 "typetext" : "<string>"
44660702
DM
50358 },
50359 "groupid" : {
50360 "format" : "pve-groupid",
013dc89f
DM
50361 "type" : "string",
50362 "typetext" : "<string>"
44660702
DM
50363 }
50364 }
50365 },
50366 "permissions" : {
50367 "check" : [
50368 "perm",
50369 "/access/groups",
50370 [
50371 "Group.Allocate"
50372 ]
50373 ]
50374 },
50375 "protected" : 1,
50376 "returns" : {
50377 "type" : "null"
50378 }
7aacca6f 50379 }
44660702 50380 },
7aacca6f 50381 "leaf" : 0,
44660702
DM
50382 "path" : "/access/groups",
50383 "text" : "groups"
7aacca6f
DM
50384 },
50385 {
50386 "children" : [
50387 {
7aacca6f 50388 "info" : {
7aacca6f 50389 "DELETE" : {
e9cd3bd4 50390 "allowtoken" : 1,
7aacca6f 50391 "description" : "Delete role.",
44660702 50392 "method" : "DELETE",
7aacca6f 50393 "name" : "delete_role",
56122987
DM
50394 "parameters" : {
50395 "additionalProperties" : 0,
50396 "properties" : {
7aacca6f
DM
50397 "roleid" : {
50398 "format" : "pve-roleid",
013dc89f
DM
50399 "type" : "string",
50400 "typetext" : "<string>"
56122987
DM
50401 }
50402 }
50403 },
56122987
DM
50404 "permissions" : {
50405 "check" : [
50406 "perm",
7aacca6f 50407 "/access",
56122987 50408 [
7aacca6f
DM
50409 "Sys.Modify"
50410 ]
56122987 50411 ]
44660702
DM
50412 },
50413 "protected" : 1,
50414 "returns" : {
50415 "type" : "null"
56122987
DM
50416 }
50417 },
44660702 50418 "GET" : {
e9cd3bd4 50419 "allowtoken" : 1,
44660702
DM
50420 "description" : "Get role configuration.",
50421 "method" : "GET",
50422 "name" : "read_role",
50423 "parameters" : {
50424 "additionalProperties" : 0,
50425 "properties" : {
50426 "roleid" : {
50427 "format" : "pve-roleid",
013dc89f
DM
50428 "type" : "string",
50429 "typetext" : "<string>"
44660702
DM
50430 }
50431 }
50432 },
7aacca6f 50433 "permissions" : {
44660702 50434 "user" : "all"
56122987 50435 },
e2d681b3
TL
50436 "returns" : {
50437 "additionalProperties" : 0,
50438 "properties" : {
50439 "Datastore.Allocate" : {
50440 "optional" : 1,
50441 "type" : "boolean"
50442 },
50443 "Datastore.AllocateSpace" : {
50444 "optional" : 1,
50445 "type" : "boolean"
50446 },
50447 "Datastore.AllocateTemplate" : {
50448 "optional" : 1,
50449 "type" : "boolean"
50450 },
50451 "Datastore.Audit" : {
50452 "optional" : 1,
50453 "type" : "boolean"
50454 },
50455 "Group.Allocate" : {
50456 "optional" : 1,
50457 "type" : "boolean"
50458 },
159464a9
TL
50459 "Mapping.Audit" : {
50460 "optional" : 1,
50461 "type" : "boolean"
50462 },
50463 "Mapping.Modify" : {
50464 "optional" : 1,
50465 "type" : "boolean"
50466 },
50467 "Mapping.Use" : {
50468 "optional" : 1,
50469 "type" : "boolean"
50470 },
e2d681b3
TL
50471 "Permissions.Modify" : {
50472 "optional" : 1,
50473 "type" : "boolean"
50474 },
50475 "Pool.Allocate" : {
50476 "optional" : 1,
50477 "type" : "boolean"
50478 },
0695fdaf
TL
50479 "Pool.Audit" : {
50480 "optional" : 1,
50481 "type" : "boolean"
50482 },
e2d681b3
TL
50483 "Realm.Allocate" : {
50484 "optional" : 1,
50485 "type" : "boolean"
50486 },
50487 "Realm.AllocateUser" : {
50488 "optional" : 1,
50489 "type" : "boolean"
50490 },
5c1699e5
TL
50491 "SDN.Allocate" : {
50492 "optional" : 1,
50493 "type" : "boolean"
50494 },
50495 "SDN.Audit" : {
50496 "optional" : 1,
159464a9
TL
50497 "type" : "boolean"
50498 },
50499 "SDN.Use" : {
50500 "optional" : 1,
5c1699e5
TL
50501 "type" : "boolean"
50502 },
e2d681b3
TL
50503 "Sys.Audit" : {
50504 "optional" : 1,
50505 "type" : "boolean"
50506 },
50507 "Sys.Console" : {
50508 "optional" : 1,
50509 "type" : "boolean"
50510 },
81a3384d
TL
50511 "Sys.Incoming" : {
50512 "optional" : 1,
50513 "type" : "boolean"
50514 },
e2d681b3
TL
50515 "Sys.Modify" : {
50516 "optional" : 1,
50517 "type" : "boolean"
50518 },
50519 "Sys.PowerMgmt" : {
50520 "optional" : 1,
50521 "type" : "boolean"
50522 },
50523 "Sys.Syslog" : {
50524 "optional" : 1,
50525 "type" : "boolean"
50526 },
50527 "User.Modify" : {
50528 "optional" : 1,
50529 "type" : "boolean"
50530 },
50531 "VM.Allocate" : {
50532 "optional" : 1,
50533 "type" : "boolean"
50534 },
50535 "VM.Audit" : {
50536 "optional" : 1,
50537 "type" : "boolean"
50538 },
50539 "VM.Backup" : {
50540 "optional" : 1,
50541 "type" : "boolean"
50542 },
50543 "VM.Clone" : {
50544 "optional" : 1,
50545 "type" : "boolean"
50546 },
50547 "VM.Config.CDROM" : {
50548 "optional" : 1,
50549 "type" : "boolean"
50550 },
50551 "VM.Config.CPU" : {
50552 "optional" : 1,
50553 "type" : "boolean"
50554 },
ac70d7d1
TL
50555 "VM.Config.Cloudinit" : {
50556 "optional" : 1,
50557 "type" : "boolean"
50558 },
e2d681b3
TL
50559 "VM.Config.Disk" : {
50560 "optional" : 1,
50561 "type" : "boolean"
50562 },
50563 "VM.Config.HWType" : {
50564 "optional" : 1,
50565 "type" : "boolean"
50566 },
50567 "VM.Config.Memory" : {
50568 "optional" : 1,
50569 "type" : "boolean"
50570 },
50571 "VM.Config.Network" : {
50572 "optional" : 1,
50573 "type" : "boolean"
50574 },
50575 "VM.Config.Options" : {
50576 "optional" : 1,
50577 "type" : "boolean"
50578 },
50579 "VM.Console" : {
50580 "optional" : 1,
50581 "type" : "boolean"
50582 },
50583 "VM.Migrate" : {
50584 "optional" : 1,
50585 "type" : "boolean"
50586 },
50587 "VM.Monitor" : {
50588 "optional" : 1,
50589 "type" : "boolean"
50590 },
50591 "VM.PowerMgmt" : {
50592 "optional" : 1,
50593 "type" : "boolean"
50594 },
50595 "VM.Snapshot" : {
50596 "optional" : 1,
50597 "type" : "boolean"
50598 },
50599 "VM.Snapshot.Rollback" : {
50600 "optional" : 1,
50601 "type" : "boolean"
50602 }
50603 },
50604 "type" : "object"
50605 }
44660702
DM
50606 },
50607 "PUT" : {
e9cd3bd4 50608 "allowtoken" : 1,
e2d681b3 50609 "description" : "Update an existing role.",
44660702
DM
50610 "method" : "PUT",
50611 "name" : "update_role",
56122987
DM
50612 "parameters" : {
50613 "additionalProperties" : 0,
50614 "properties" : {
7aacca6f 50615 "append" : {
44660702 50616 "optional" : 1,
7aacca6f 50617 "requires" : "privs",
013dc89f
DM
50618 "type" : "boolean",
50619 "typetext" : "<boolean>"
7aacca6f
DM
50620 },
50621 "privs" : {
50622 "format" : "pve-priv-list",
e2d681b3 50623 "optional" : 1,
013dc89f
DM
50624 "type" : "string",
50625 "typetext" : "<string>"
44660702
DM
50626 },
50627 "roleid" : {
50628 "format" : "pve-roleid",
013dc89f
DM
50629 "type" : "string",
50630 "typetext" : "<string>"
56122987
DM
50631 }
50632 }
50633 },
44660702
DM
50634 "permissions" : {
50635 "check" : [
50636 "perm",
50637 "/access",
50638 [
50639 "Sys.Modify"
50640 ]
50641 ]
50642 },
56122987 50643 "protected" : 1,
7aacca6f
DM
50644 "returns" : {
50645 "type" : "null"
56122987
DM
50646 }
50647 }
50648 },
44660702 50649 "leaf" : 1,
7aacca6f 50650 "path" : "/access/roles/{roleid}",
44660702 50651 "text" : "{roleid}"
56122987
DM
50652 }
50653 ],
56122987 50654 "info" : {
7aacca6f 50655 "GET" : {
e9cd3bd4 50656 "allowtoken" : 1,
7aacca6f 50657 "description" : "Role index.",
44660702 50658 "method" : "GET",
7aacca6f 50659 "name" : "index",
56122987 50660 "parameters" : {
56122987
DM
50661 "additionalProperties" : 0
50662 },
7aacca6f
DM
50663 "permissions" : {
50664 "user" : "all"
50665 },
56122987 50666 "returns" : {
7aacca6f 50667 "items" : {
7aacca6f 50668 "properties" : {
e2d681b3
TL
50669 "privs" : {
50670 "format" : "pve-priv-list",
50671 "optional" : 1,
50672 "type" : "string"
50673 },
7aacca6f 50674 "roleid" : {
e2d681b3 50675 "format" : "pve-roleid",
7aacca6f 50676 "type" : "string"
e2d681b3
TL
50677 },
50678 "special" : {
50679 "default" : 0,
50680 "optional" : 1,
50681 "type" : "boolean"
7aacca6f 50682 }
44660702
DM
50683 },
50684 "type" : "object"
50685 },
50686 "links" : [
50687 {
50688 "href" : "{roleid}",
50689 "rel" : "child"
7aacca6f 50690 }
44660702
DM
50691 ],
50692 "type" : "array"
50693 }
7aacca6f
DM
50694 },
50695 "POST" : {
e9cd3bd4 50696 "allowtoken" : 1,
7aacca6f 50697 "description" : "Create new role.",
44660702
DM
50698 "method" : "POST",
50699 "name" : "create_role",
7aacca6f
DM
50700 "parameters" : {
50701 "additionalProperties" : 0,
50702 "properties" : {
7aacca6f
DM
50703 "privs" : {
50704 "format" : "pve-priv-list",
50705 "optional" : 1,
013dc89f
DM
50706 "type" : "string",
50707 "typetext" : "<string>"
44660702
DM
50708 },
50709 "roleid" : {
50710 "format" : "pve-roleid",
013dc89f
DM
50711 "type" : "string",
50712 "typetext" : "<string>"
7aacca6f
DM
50713 }
50714 }
50715 },
44660702
DM
50716 "permissions" : {
50717 "check" : [
50718 "perm",
50719 "/access",
50720 [
50721 "Sys.Modify"
50722 ]
50723 ]
50724 },
50725 "protected" : 1,
7aacca6f
DM
50726 "returns" : {
50727 "type" : "null"
50728 }
50729 }
50730 },
44660702 50731 "leaf" : 0,
7aacca6f 50732 "path" : "/access/roles",
44660702 50733 "text" : "roles"
7aacca6f
DM
50734 },
50735 {
50736 "info" : {
56122987 50737 "GET" : {
e9cd3bd4 50738 "allowtoken" : 1,
44660702
DM
50739 "description" : "Get Access Control List (ACLs).",
50740 "method" : "GET",
50741 "name" : "read_acl",
7aacca6f
DM
50742 "parameters" : {
50743 "additionalProperties" : 0
50744 },
44660702
DM
50745 "permissions" : {
50746 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
50747 "user" : "all"
50748 },
56122987 50749 "returns" : {
56122987 50750 "items" : {
44660702 50751 "additionalProperties" : 0,
56122987 50752 "properties" : {
7aacca6f 50753 "path" : {
e2d681b3 50754 "description" : "Access control path",
7aacca6f
DM
50755 "type" : "string"
50756 },
44660702 50757 "propagate" : {
e2d681b3
TL
50758 "default" : 1,
50759 "description" : "Allow to propagate (inherit) permissions.",
50760 "optional" : 1,
44660702
DM
50761 "type" : "boolean"
50762 },
50763 "roleid" : {
50764 "type" : "string"
50765 },
7aacca6f
DM
50766 "type" : {
50767 "enum" : [
50768 "user",
e9cd3bd4
TL
50769 "group",
50770 "token"
7aacca6f
DM
50771 ],
50772 "type" : "string"
50773 },
7aacca6f
DM
50774 "ugid" : {
50775 "type" : "string"
56122987 50776 }
7aacca6f 50777 },
44660702 50778 "type" : "object"
7aacca6f
DM
50779 },
50780 "type" : "array"
44660702 50781 }
7aacca6f
DM
50782 },
50783 "PUT" : {
e9cd3bd4 50784 "allowtoken" : 1,
44660702
DM
50785 "description" : "Update Access Control List (add or remove permissions).",
50786 "method" : "PUT",
7aacca6f
DM
50787 "name" : "update_acl",
50788 "parameters" : {
50789 "additionalProperties" : 0,
50790 "properties" : {
50791 "delete" : {
44660702 50792 "description" : "Remove permissions (instead of adding it).",
7aacca6f 50793 "optional" : 1,
013dc89f
DM
50794 "type" : "boolean",
50795 "typetext" : "<boolean>"
7aacca6f 50796 },
44660702
DM
50797 "groups" : {
50798 "description" : "List of groups.",
50799 "format" : "pve-groupid-list",
7aacca6f 50800 "optional" : 1,
013dc89f
DM
50801 "type" : "string",
50802 "typetext" : "<string>"
7aacca6f
DM
50803 },
50804 "path" : {
50805 "description" : "Access control path",
013dc89f
DM
50806 "type" : "string",
50807 "typetext" : "<string>"
7aacca6f 50808 },
7aacca6f 50809 "propagate" : {
44660702 50810 "default" : 1,
7aacca6f 50811 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 50812 "optional" : 1,
013dc89f
DM
50813 "type" : "boolean",
50814 "typetext" : "<boolean>"
7aacca6f 50815 },
44660702
DM
50816 "roles" : {
50817 "description" : "List of roles.",
50818 "format" : "pve-roleid-list",
013dc89f
DM
50819 "type" : "string",
50820 "typetext" : "<string>"
44660702 50821 },
e9cd3bd4
TL
50822 "tokens" : {
50823 "description" : "List of API tokens.",
50824 "format" : "pve-tokenid-list",
50825 "optional" : 1,
50826 "type" : "string",
50827 "typetext" : "<string>"
50828 },
44660702
DM
50829 "users" : {
50830 "description" : "List of users.",
50831 "format" : "pve-userid-list",
7aacca6f 50832 "optional" : 1,
013dc89f
DM
50833 "type" : "string",
50834 "typetext" : "<string>"
56122987
DM
50835 }
50836 }
50837 },
56122987 50838 "permissions" : {
7aacca6f
DM
50839 "check" : [
50840 "perm-modify",
50841 "{path}"
50842 ]
50843 },
7aacca6f
DM
50844 "protected" : 1,
50845 "returns" : {
50846 "type" : "null"
44660702 50847 }
56122987
DM
50848 }
50849 },
7aacca6f 50850 "leaf" : 1,
44660702
DM
50851 "path" : "/access/acl",
50852 "text" : "acl"
7aacca6f
DM
50853 },
50854 {
56122987
DM
50855 "children" : [
50856 {
c5aa7e14
TL
50857 "children" : [
50858 {
50859 "info" : {
50860 "POST" : {
50861 "allowtoken" : 1,
50862 "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.",
50863 "method" : "POST",
50864 "name" : "sync",
50865 "parameters" : {
50866 "additionalProperties" : 0,
50867 "properties" : {
50868 "dry-run" : {
50869 "default" : 0,
50870 "description" : "If set, does not write anything.",
50871 "optional" : 1,
50872 "type" : "boolean",
50873 "typetext" : "<boolean>"
50874 },
50875 "enable-new" : {
50876 "default" : "1",
50877 "description" : "Enable newly synced users immediately.",
50878 "optional" : "1",
50879 "type" : "boolean",
50880 "typetext" : "<boolean>"
50881 },
50882 "full" : {
7af2edf9 50883 "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
50884 "optional" : "1",
50885 "type" : "boolean",
50886 "typetext" : "<boolean>"
50887 },
50888 "purge" : {
7af2edf9 50889 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
50890 "optional" : "1",
50891 "type" : "boolean",
50892 "typetext" : "<boolean>"
50893 },
50894 "realm" : {
50895 "description" : "Authentication domain ID",
50896 "format" : "pve-realm",
50897 "maxLength" : 32,
50898 "type" : "string",
50899 "typetext" : "<string>"
50900 },
7af2edf9 50901 "remove-vanished" : {
9d2e98ed
TL
50902 "default" : "none",
50903 "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 50904 "optional" : "1",
9d2e98ed 50905 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
7af2edf9 50906 "type" : "string",
9d2e98ed 50907 "typetext" : "([acl];[properties];[entry])|none"
7af2edf9 50908 },
c5aa7e14
TL
50909 "scope" : {
50910 "description" : "Select what to sync.",
50911 "enum" : [
50912 "users",
50913 "groups",
50914 "both"
50915 ],
50916 "optional" : "1",
50917 "type" : "string"
50918 }
50919 }
50920 },
50921 "permissions" : {
50922 "check" : [
50923 "and",
50924 [
c30bb419
TL
50925 "perm",
50926 "/access/realm/{realm}",
50927 [
50928 "Realm.AllocateUser"
50929 ]
c5aa7e14
TL
50930 ],
50931 [
c30bb419
TL
50932 "perm",
50933 "/access/groups",
c5aa7e14
TL
50934 [
50935 "User.Modify"
50936 ]
50937 ]
50938 ],
50939 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
50940 },
50941 "protected" : 1,
50942 "returns" : {
50943 "description" : "Worker Task-UPID",
50944 "type" : "string"
50945 }
50946 }
50947 },
50948 "leaf" : 1,
50949 "path" : "/access/domains/{realm}/sync",
50950 "text" : "sync"
50951 }
50952 ],
56122987 50953 "info" : {
44660702 50954 "DELETE" : {
e9cd3bd4 50955 "allowtoken" : 1,
44660702
DM
50956 "description" : "Delete an authentication server.",
50957 "method" : "DELETE",
50958 "name" : "delete",
50959 "parameters" : {
50960 "additionalProperties" : 0,
50961 "properties" : {
50962 "realm" : {
50963 "description" : "Authentication domain ID",
50964 "format" : "pve-realm",
50965 "maxLength" : 32,
013dc89f
DM
50966 "type" : "string",
50967 "typetext" : "<string>"
56122987 50968 }
44660702 50969 }
56122987 50970 },
56122987
DM
50971 "permissions" : {
50972 "check" : [
50973 "perm",
7aacca6f 50974 "/access/realm",
56122987 50975 [
7aacca6f 50976 "Realm.Allocate"
56122987
DM
50977 ]
50978 ]
50979 },
7aacca6f 50980 "protected" : 1,
7aacca6f
DM
50981 "returns" : {
50982 "type" : "null"
44660702 50983 }
7aacca6f 50984 },
44660702 50985 "GET" : {
e9cd3bd4 50986 "allowtoken" : 1,
44660702
DM
50987 "description" : "Get auth server configuration.",
50988 "method" : "GET",
50989 "name" : "read",
56122987 50990 "parameters" : {
44660702 50991 "additionalProperties" : 0,
56122987 50992 "properties" : {
7aacca6f 50993 "realm" : {
44660702 50994 "description" : "Authentication domain ID",
7aacca6f
DM
50995 "format" : "pve-realm",
50996 "maxLength" : 32,
013dc89f
DM
50997 "type" : "string",
50998 "typetext" : "<string>"
56122987 50999 }
44660702 51000 }
7aacca6f 51001 },
7aacca6f
DM
51002 "permissions" : {
51003 "check" : [
51004 "perm",
51005 "/access/realm",
51006 [
44660702
DM
51007 "Realm.Allocate",
51008 "Sys.Audit"
51009 ],
51010 "any",
51011 1
7aacca6f 51012 ]
44660702
DM
51013 },
51014 "returns" : {}
7aacca6f 51015 },
44660702 51016 "PUT" : {
e9cd3bd4 51017 "allowtoken" : 1,
44660702
DM
51018 "description" : "Update authentication server settings.",
51019 "method" : "PUT",
51020 "name" : "update",
7aacca6f 51021 "parameters" : {
44660702 51022 "additionalProperties" : 0,
7aacca6f 51023 "properties" : {
c30bb419
TL
51024 "acr-values" : {
51025 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
51026 "optional" : 1,
51027 "type" : "string",
51028 "typetext" : "<string>"
51029 },
34f3e481
TL
51030 "autocreate" : {
51031 "default" : 0,
51032 "description" : "Automatically create users if they do not exist.",
51033 "optional" : 1,
51034 "type" : "boolean",
51035 "typetext" : "<boolean>"
51036 },
44660702
DM
51037 "base_dn" : {
51038 "description" : "LDAP base domain name",
51039 "maxLength" : 256,
51040 "optional" : 1,
287a95cf 51041 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
44660702
DM
51042 "type" : "string"
51043 },
4bd7df8b
DM
51044 "bind_dn" : {
51045 "description" : "LDAP bind domain name",
51046 "maxLength" : 256,
51047 "optional" : 1,
287a95cf 51048 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
4bd7df8b
DM
51049 "type" : "string"
51050 },
2489d6df
WB
51051 "capath" : {
51052 "default" : "/etc/ssl/certs",
51053 "description" : "Path to the CA certificate store",
51054 "optional" : 1,
51055 "type" : "string",
51056 "typetext" : "<string>"
51057 },
4772952b
TL
51058 "case-sensitive" : {
51059 "default" : 1,
51060 "description" : "username is case-sensitive",
51061 "optional" : 1,
51062 "type" : "boolean",
51063 "typetext" : "<boolean>"
51064 },
2489d6df
WB
51065 "cert" : {
51066 "description" : "Path to the client certificate",
51067 "optional" : 1,
51068 "type" : "string",
51069 "typetext" : "<string>"
51070 },
51071 "certkey" : {
51072 "description" : "Path to the client certificate key",
51073 "optional" : 1,
51074 "type" : "string",
51075 "typetext" : "<string>"
51076 },
34f3e481
TL
51077 "client-id" : {
51078 "description" : "OpenID Client ID",
51079 "maxLength" : 256,
51080 "optional" : 1,
51081 "type" : "string",
51082 "typetext" : "<string>"
51083 },
51084 "client-key" : {
51085 "description" : "OpenID Client Key",
51086 "maxLength" : 256,
51087 "optional" : 1,
51088 "type" : "string",
51089 "typetext" : "<string>"
51090 },
44660702
DM
51091 "comment" : {
51092 "description" : "Description.",
51093 "maxLength" : 4096,
51094 "optional" : 1,
013dc89f
DM
51095 "type" : "string",
51096 "typetext" : "<string>"
44660702
DM
51097 },
51098 "default" : {
51099 "description" : "Use this as default realm",
51100 "optional" : 1,
013dc89f
DM
51101 "type" : "boolean",
51102 "typetext" : "<boolean>"
44660702
DM
51103 },
51104 "delete" : {
51105 "description" : "A list of settings you want to delete.",
51106 "format" : "pve-configid-list",
51107 "maxLength" : 4096,
51108 "optional" : 1,
013dc89f
DM
51109 "type" : "string",
51110 "typetext" : "<string>"
44660702
DM
51111 },
51112 "digest" : {
51113 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
51114 "maxLength" : 40,
51115 "optional" : 1,
013dc89f
DM
51116 "type" : "string",
51117 "typetext" : "<string>"
44660702
DM
51118 },
51119 "domain" : {
51120 "description" : "AD domain name",
51121 "maxLength" : 256,
51122 "optional" : 1,
51123 "pattern" : "\\S+",
51124 "type" : "string"
51125 },
c5aa7e14
TL
51126 "filter" : {
51127 "description" : "LDAP filter for user sync.",
51128 "maxLength" : 2048,
51129 "optional" : 1,
51130 "type" : "string",
51131 "typetext" : "<string>"
51132 },
51133 "group_classes" : {
51134 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
51135 "description" : "The objectclasses for groups.",
51136 "format" : "ldap-simple-attr-list",
51137 "optional" : 1,
51138 "type" : "string",
51139 "typetext" : "<string>"
51140 },
51141 "group_dn" : {
51142 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
51143 "maxLength" : 256,
51144 "optional" : 1,
287a95cf 51145 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
c5aa7e14
TL
51146 "type" : "string"
51147 },
51148 "group_filter" : {
51149 "description" : "LDAP filter for group sync.",
51150 "maxLength" : 2048,
51151 "optional" : 1,
51152 "type" : "string",
51153 "typetext" : "<string>"
51154 },
51155 "group_name_attr" : {
51156 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
51157 "format" : "ldap-simple-attr",
51158 "maxLength" : 256,
51159 "optional" : 1,
51160 "type" : "string",
51161 "typetext" : "<string>"
51162 },
34f3e481
TL
51163 "issuer-url" : {
51164 "description" : "OpenID Issuer Url",
51165 "maxLength" : 256,
51166 "optional" : 1,
51167 "type" : "string",
51168 "typetext" : "<string>"
51169 },
c5aa7e14
TL
51170 "mode" : {
51171 "default" : "ldap",
51172 "description" : "LDAP protocol mode.",
51173 "enum" : [
51174 "ldap",
51175 "ldaps",
51176 "ldap+starttls"
51177 ],
51178 "optional" : 1,
51179 "type" : "string"
51180 },
51181 "password" : {
51182 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
51183 "optional" : 1,
51184 "type" : "string",
51185 "typetext" : "<string>"
51186 },
44660702
DM
51187 "port" : {
51188 "description" : "Server port.",
51189 "maximum" : 65535,
51190 "minimum" : 1,
51191 "optional" : 1,
4bd7df8b 51192 "type" : "integer",
013dc89f 51193 "typetext" : "<integer> (1 - 65535)"
44660702 51194 },
c30bb419
TL
51195 "prompt" : {
51196 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
51197 "optional" : 1,
51198 "pattern" : "(?:none|login|consent|select_account|\\S+)",
51199 "type" : "string"
51200 },
7aacca6f 51201 "realm" : {
7aacca6f
DM
51202 "description" : "Authentication domain ID",
51203 "format" : "pve-realm",
44660702 51204 "maxLength" : 32,
013dc89f
DM
51205 "type" : "string",
51206 "typetext" : "<string>"
44660702 51207 },
c30bb419
TL
51208 "scopes" : {
51209 "default" : "email profile",
51210 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
51211 "optional" : 1,
51212 "type" : "string",
51213 "typetext" : "<string>"
51214 },
44660702 51215 "secure" : {
c5aa7e14 51216 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 51217 "optional" : 1,
013dc89f
DM
51218 "type" : "boolean",
51219 "typetext" : "<boolean>"
44660702
DM
51220 },
51221 "server1" : {
51222 "description" : "Server IP address (or DNS name)",
51223 "format" : "address",
51224 "maxLength" : 256,
51225 "optional" : 1,
013dc89f
DM
51226 "type" : "string",
51227 "typetext" : "<string>"
44660702
DM
51228 },
51229 "server2" : {
51230 "description" : "Fallback Server IP address (or DNS name)",
51231 "format" : "address",
51232 "maxLength" : 256,
51233 "optional" : 1,
013dc89f
DM
51234 "type" : "string",
51235 "typetext" : "<string>"
44660702 51236 },
1c532546
TL
51237 "sslversion" : {
51238 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
51239 "enum" : [
51240 "tlsv1",
51241 "tlsv1_1",
51242 "tlsv1_2",
51243 "tlsv1_3"
51244 ],
51245 "optional" : 1,
51246 "type" : "string"
51247 },
c5aa7e14
TL
51248 "sync-defaults-options" : {
51249 "description" : "The default options for behavior of synchronizations.",
51250 "format" : "realm-sync-options",
51251 "optional" : 1,
51252 "type" : "string",
9d2e98ed 51253 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
51254 },
51255 "sync_attributes" : {
51256 "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.",
51257 "optional" : 1,
51258 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
51259 "type" : "string"
51260 },
44660702
DM
51261 "tfa" : {
51262 "description" : "Use Two-factor authentication.",
51263 "format" : "pve-tfa-config",
51264 "maxLength" : 128,
51265 "optional" : 1,
013dc89f 51266 "type" : "string",
95895385 51267 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
51268 },
51269 "user_attr" : {
51270 "description" : "LDAP user attribute name",
51271 "maxLength" : 256,
51272 "optional" : 1,
51273 "pattern" : "\\S{2,}",
51274 "type" : "string"
2489d6df 51275 },
c5aa7e14
TL
51276 "user_classes" : {
51277 "default" : "inetorgperson, posixaccount, person, user",
51278 "description" : "The objectclasses for users.",
51279 "format" : "ldap-simple-attr-list",
51280 "optional" : 1,
51281 "type" : "string",
51282 "typetext" : "<string>"
51283 },
2489d6df
WB
51284 "verify" : {
51285 "default" : 0,
51286 "description" : "Verify the server's SSL certificate",
51287 "optional" : 1,
51288 "type" : "boolean",
51289 "typetext" : "<boolean>"
7aacca6f 51290 }
56122987 51291 },
44660702 51292 "type" : "object"
56122987 51293 },
7aacca6f
DM
51294 "permissions" : {
51295 "check" : [
51296 "perm",
51297 "/access/realm",
51298 [
44660702
DM
51299 "Realm.Allocate"
51300 ]
7aacca6f
DM
51301 ]
51302 },
44660702
DM
51303 "protected" : 1,
51304 "returns" : {
51305 "type" : "null"
51306 }
56122987 51307 }
44660702 51308 },
c5aa7e14 51309 "leaf" : 0,
44660702
DM
51310 "path" : "/access/domains/{realm}",
51311 "text" : "{realm}"
56122987 51312 }
7aacca6f 51313 ],
56122987
DM
51314 "info" : {
51315 "GET" : {
e9cd3bd4 51316 "allowtoken" : 1,
44660702
DM
51317 "description" : "Authentication domain index.",
51318 "method" : "GET",
51319 "name" : "index",
51320 "parameters" : {
51321 "additionalProperties" : 0
51322 },
51323 "permissions" : {
51324 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
51325 "user" : "world"
51326 },
56122987 51327 "returns" : {
56122987
DM
51328 "items" : {
51329 "properties" : {
7aacca6f 51330 "comment" : {
52e44c50 51331 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
51332 "optional" : 1,
51333 "type" : "string"
51334 },
56122987
DM
51335 "realm" : {
51336 "type" : "string"
51337 },
51338 "tfa" : {
7aacca6f 51339 "description" : "Two-factor authentication provider.",
56122987
DM
51340 "enum" : [
51341 "yubico",
51342 "oath"
51343 ],
44660702
DM
51344 "optional" : 1,
51345 "type" : "string"
c5aa7e14
TL
51346 },
51347 "type" : {
51348 "type" : "string"
56122987
DM
51349 }
51350 },
51351 "type" : "object"
44660702
DM
51352 },
51353 "links" : [
51354 {
51355 "href" : "{realm}",
51356 "rel" : "child"
51357 }
51358 ],
51359 "type" : "array"
51360 }
56122987
DM
51361 },
51362 "POST" : {
e9cd3bd4 51363 "allowtoken" : 1,
7aacca6f 51364 "description" : "Add an authentication server.",
44660702 51365 "method" : "POST",
7aacca6f 51366 "name" : "create",
56122987 51367 "parameters" : {
44660702 51368 "additionalProperties" : 0,
56122987 51369 "properties" : {
c30bb419
TL
51370 "acr-values" : {
51371 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
51372 "optional" : 1,
51373 "type" : "string",
51374 "typetext" : "<string>"
51375 },
34f3e481
TL
51376 "autocreate" : {
51377 "default" : 0,
51378 "description" : "Automatically create users if they do not exist.",
51379 "optional" : 1,
51380 "type" : "boolean",
51381 "typetext" : "<boolean>"
51382 },
44660702
DM
51383 "base_dn" : {
51384 "description" : "LDAP base domain name",
56122987 51385 "maxLength" : 256,
44660702 51386 "optional" : 1,
287a95cf 51387 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
7aacca6f 51388 "type" : "string"
56122987 51389 },
4bd7df8b
DM
51390 "bind_dn" : {
51391 "description" : "LDAP bind domain name",
51392 "maxLength" : 256,
51393 "optional" : 1,
287a95cf 51394 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
4bd7df8b
DM
51395 "type" : "string"
51396 },
2489d6df
WB
51397 "capath" : {
51398 "default" : "/etc/ssl/certs",
51399 "description" : "Path to the CA certificate store",
51400 "optional" : 1,
51401 "type" : "string",
51402 "typetext" : "<string>"
51403 },
4772952b
TL
51404 "case-sensitive" : {
51405 "default" : 1,
51406 "description" : "username is case-sensitive",
51407 "optional" : 1,
51408 "type" : "boolean",
51409 "typetext" : "<boolean>"
51410 },
2489d6df
WB
51411 "cert" : {
51412 "description" : "Path to the client certificate",
51413 "optional" : 1,
51414 "type" : "string",
51415 "typetext" : "<string>"
51416 },
51417 "certkey" : {
51418 "description" : "Path to the client certificate key",
51419 "optional" : 1,
51420 "type" : "string",
51421 "typetext" : "<string>"
51422 },
34f3e481
TL
51423 "client-id" : {
51424 "description" : "OpenID Client ID",
51425 "maxLength" : 256,
51426 "optional" : 1,
51427 "type" : "string",
51428 "typetext" : "<string>"
51429 },
51430 "client-key" : {
51431 "description" : "OpenID Client Key",
51432 "maxLength" : 256,
51433 "optional" : 1,
51434 "type" : "string",
51435 "typetext" : "<string>"
51436 },
44660702
DM
51437 "comment" : {
51438 "description" : "Description.",
51439 "maxLength" : 4096,
56122987 51440 "optional" : 1,
013dc89f
DM
51441 "type" : "string",
51442 "typetext" : "<string>"
56122987 51443 },
44660702
DM
51444 "default" : {
51445 "description" : "Use this as default realm",
7aacca6f 51446 "optional" : 1,
013dc89f
DM
51447 "type" : "boolean",
51448 "typetext" : "<boolean>"
56122987 51449 },
44660702
DM
51450 "domain" : {
51451 "description" : "AD domain name",
51452 "maxLength" : 256,
7aacca6f 51453 "optional" : 1,
44660702
DM
51454 "pattern" : "\\S+",
51455 "type" : "string"
56122987 51456 },
c5aa7e14
TL
51457 "filter" : {
51458 "description" : "LDAP filter for user sync.",
51459 "maxLength" : 2048,
51460 "optional" : 1,
51461 "type" : "string",
51462 "typetext" : "<string>"
51463 },
51464 "group_classes" : {
51465 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
51466 "description" : "The objectclasses for groups.",
51467 "format" : "ldap-simple-attr-list",
51468 "optional" : 1,
51469 "type" : "string",
51470 "typetext" : "<string>"
51471 },
51472 "group_dn" : {
51473 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
51474 "maxLength" : 256,
51475 "optional" : 1,
287a95cf 51476 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
c5aa7e14
TL
51477 "type" : "string"
51478 },
51479 "group_filter" : {
51480 "description" : "LDAP filter for group sync.",
51481 "maxLength" : 2048,
51482 "optional" : 1,
51483 "type" : "string",
51484 "typetext" : "<string>"
51485 },
51486 "group_name_attr" : {
51487 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
51488 "format" : "ldap-simple-attr",
51489 "maxLength" : 256,
51490 "optional" : 1,
51491 "type" : "string",
51492 "typetext" : "<string>"
51493 },
34f3e481
TL
51494 "issuer-url" : {
51495 "description" : "OpenID Issuer Url",
51496 "maxLength" : 256,
51497 "optional" : 1,
51498 "type" : "string",
51499 "typetext" : "<string>"
51500 },
c5aa7e14
TL
51501 "mode" : {
51502 "default" : "ldap",
51503 "description" : "LDAP protocol mode.",
51504 "enum" : [
51505 "ldap",
51506 "ldaps",
51507 "ldap+starttls"
51508 ],
51509 "optional" : 1,
51510 "type" : "string"
51511 },
51512 "password" : {
51513 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
51514 "optional" : 1,
51515 "type" : "string",
51516 "typetext" : "<string>"
51517 },
7aacca6f 51518 "port" : {
44660702 51519 "description" : "Server port.",
7aacca6f 51520 "maximum" : 65535,
44660702 51521 "minimum" : 1,
7aacca6f 51522 "optional" : 1,
4bd7df8b 51523 "type" : "integer",
013dc89f 51524 "typetext" : "<integer> (1 - 65535)"
56122987 51525 },
c30bb419
TL
51526 "prompt" : {
51527 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
51528 "optional" : 1,
51529 "pattern" : "(?:none|login|consent|select_account|\\S+)",
51530 "type" : "string"
51531 },
44660702
DM
51532 "realm" : {
51533 "description" : "Authentication domain ID",
51534 "format" : "pve-realm",
51535 "maxLength" : 32,
013dc89f
DM
51536 "type" : "string",
51537 "typetext" : "<string>"
44660702 51538 },
c30bb419
TL
51539 "scopes" : {
51540 "default" : "email profile",
51541 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
51542 "optional" : 1,
51543 "type" : "string",
51544 "typetext" : "<string>"
51545 },
44660702 51546 "secure" : {
c5aa7e14 51547 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 51548 "optional" : 1,
013dc89f
DM
51549 "type" : "boolean",
51550 "typetext" : "<boolean>"
56122987 51551 },
44660702
DM
51552 "server1" : {
51553 "description" : "Server IP address (or DNS name)",
51554 "format" : "address",
51555 "maxLength" : 256,
51556 "optional" : 1,
013dc89f
DM
51557 "type" : "string",
51558 "typetext" : "<string>"
56122987 51559 },
44660702
DM
51560 "server2" : {
51561 "description" : "Fallback Server IP address (or DNS name)",
51562 "format" : "address",
7aacca6f 51563 "maxLength" : 256,
7aacca6f 51564 "optional" : 1,
013dc89f
DM
51565 "type" : "string",
51566 "typetext" : "<string>"
7aacca6f 51567 },
1c532546
TL
51568 "sslversion" : {
51569 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
51570 "enum" : [
51571 "tlsv1",
51572 "tlsv1_1",
51573 "tlsv1_2",
51574 "tlsv1_3"
51575 ],
51576 "optional" : 1,
51577 "type" : "string"
51578 },
c5aa7e14
TL
51579 "sync-defaults-options" : {
51580 "description" : "The default options for behavior of synchronizations.",
51581 "format" : "realm-sync-options",
51582 "optional" : 1,
51583 "type" : "string",
9d2e98ed 51584 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
51585 },
51586 "sync_attributes" : {
51587 "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.",
51588 "optional" : 1,
51589 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
51590 "type" : "string"
51591 },
44660702
DM
51592 "tfa" : {
51593 "description" : "Use Two-factor authentication.",
51594 "format" : "pve-tfa-config",
51595 "maxLength" : 128,
51596 "optional" : 1,
013dc89f 51597 "type" : "string",
95895385 51598 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
51599 },
51600 "type" : {
51601 "description" : "Realm type.",
51602 "enum" : [
51603 "ad",
51604 "ldap",
34f3e481 51605 "openid",
44660702
DM
51606 "pam",
51607 "pve"
51608 ],
51609 "type" : "string"
51610 },
51611 "user_attr" : {
51612 "description" : "LDAP user attribute name",
7aacca6f 51613 "maxLength" : 256,
7aacca6f 51614 "optional" : 1,
44660702
DM
51615 "pattern" : "\\S{2,}",
51616 "type" : "string"
2489d6df 51617 },
c5aa7e14
TL
51618 "user_classes" : {
51619 "default" : "inetorgperson, posixaccount, person, user",
51620 "description" : "The objectclasses for users.",
51621 "format" : "ldap-simple-attr-list",
51622 "optional" : 1,
51623 "type" : "string",
51624 "typetext" : "<string>"
51625 },
34f3e481
TL
51626 "username-claim" : {
51627 "description" : "OpenID claim used to generate the unique username.",
34f3e481 51628 "optional" : 1,
c30bb419
TL
51629 "type" : "string",
51630 "typetext" : "<string>"
34f3e481 51631 },
2489d6df
WB
51632 "verify" : {
51633 "default" : 0,
51634 "description" : "Verify the server's SSL certificate",
51635 "optional" : 1,
51636 "type" : "boolean",
51637 "typetext" : "<boolean>"
7aacca6f
DM
51638 }
51639 },
7aacca6f 51640 "type" : "object"
56122987 51641 },
7aacca6f
DM
51642 "permissions" : {
51643 "check" : [
51644 "perm",
51645 "/access/realm",
51646 [
51647 "Realm.Allocate"
51648 ]
51649 ]
44660702
DM
51650 },
51651 "protected" : 1,
51652 "returns" : {
51653 "type" : "null"
7aacca6f 51654 }
56122987 51655 }
7aacca6f 51656 },
44660702 51657 "leaf" : 0,
56122987 51658 "path" : "/access/domains",
44660702 51659 "text" : "domains"
56122987 51660 },
34f3e481
TL
51661 {
51662 "children" : [
51663 {
51664 "info" : {
51665 "POST" : {
51666 "allowtoken" : 1,
51667 "description" : "Get the OpenId Authorization Url for the specified realm.",
51668 "method" : "POST",
51669 "name" : "auth_url",
51670 "parameters" : {
51671 "additionalProperties" : 0,
51672 "properties" : {
51673 "realm" : {
51674 "description" : "Authentication domain ID",
51675 "format" : "pve-realm",
51676 "maxLength" : 32,
51677 "type" : "string",
51678 "typetext" : "<string>"
51679 },
51680 "redirect-url" : {
51681 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
51682 "maxLength" : 255,
51683 "type" : "string",
51684 "typetext" : "<string>"
51685 }
51686 }
51687 },
51688 "permissions" : {
51689 "user" : "world"
51690 },
51691 "protected" : 1,
51692 "returns" : {
51693 "description" : "Redirection URL.",
51694 "type" : "string"
51695 }
51696 }
51697 },
51698 "leaf" : 1,
51699 "path" : "/access/openid/auth-url",
51700 "text" : "auth-url"
51701 },
51702 {
51703 "info" : {
51704 "POST" : {
51705 "allowtoken" : 1,
51706 "description" : " Verify OpenID authorization code and create a ticket.",
51707 "method" : "POST",
51708 "name" : "login",
51709 "parameters" : {
51710 "additionalProperties" : 0,
51711 "properties" : {
51712 "code" : {
51713 "description" : "OpenId authorization code.",
de786b48 51714 "maxLength" : 4096,
34f3e481
TL
51715 "type" : "string",
51716 "typetext" : "<string>"
51717 },
51718 "redirect-url" : {
51719 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
51720 "maxLength" : 255,
51721 "type" : "string",
51722 "typetext" : "<string>"
51723 },
51724 "state" : {
51725 "description" : "OpenId state.",
51726 "maxLength" : 1024,
51727 "type" : "string",
51728 "typetext" : "<string>"
51729 }
51730 }
51731 },
51732 "permissions" : {
51733 "user" : "world"
51734 },
51735 "protected" : 1,
51736 "returns" : {
51737 "properties" : {
51738 "CSRFPreventionToken" : {
51739 "type" : "string"
51740 },
51741 "cap" : {
51742 "type" : "object"
51743 },
51744 "clustername" : {
51745 "optional" : 1,
51746 "type" : "string"
51747 },
51748 "ticket" : {
51749 "type" : "string"
51750 },
51751 "username" : {
51752 "type" : "string"
51753 }
51754 }
51755 }
51756 }
51757 },
51758 "leaf" : 1,
51759 "path" : "/access/openid/login",
51760 "text" : "login"
51761 }
51762 ],
51763 "info" : {
51764 "GET" : {
51765 "allowtoken" : 1,
51766 "description" : "Directory index.",
51767 "method" : "GET",
51768 "name" : "index",
51769 "parameters" : {
51770 "additionalProperties" : 0
51771 },
51772 "permissions" : {
51773 "user" : "all"
51774 },
51775 "returns" : {
51776 "items" : {
51777 "properties" : {
51778 "subdir" : {
51779 "type" : "string"
51780 }
51781 },
51782 "type" : "object"
51783 },
51784 "links" : [
51785 {
51786 "href" : "{subdir}",
51787 "rel" : "child"
51788 }
51789 ],
51790 "type" : "array"
51791 }
51792 }
51793 },
51794 "leaf" : 0,
51795 "path" : "/access/openid",
51796 "text" : "openid"
51797 },
5370fa8c
TL
51798 {
51799 "children" : [
51800 {
51801 "children" : [
51802 {
51803 "info" : {
51804 "DELETE" : {
51805 "allowtoken" : 0,
51806 "description" : "Delete a TFA entry by ID.",
51807 "method" : "DELETE",
51808 "name" : "delete_tfa",
51809 "parameters" : {
51810 "additionalProperties" : 0,
51811 "properties" : {
51812 "id" : {
51813 "description" : "A TFA entry id.",
51814 "type" : "string",
51815 "typetext" : "<string>"
51816 },
51817 "password" : {
51818 "description" : "The current password.",
51819 "maxLength" : 64,
51820 "minLength" : 5,
51821 "optional" : 1,
51822 "type" : "string",
51823 "typetext" : "<string>"
51824 },
51825 "userid" : {
9d2e98ed 51826 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51827 "format" : "pve-userid",
51828 "maxLength" : 64,
51829 "type" : "string",
51830 "typetext" : "<string>"
51831 }
51832 }
51833 },
51834 "permissions" : {
51835 "check" : [
51836 "or",
51837 [
51838 "userid-param",
51839 "self"
51840 ],
51841 [
51842 "userid-group",
51843 [
51844 "User.Modify"
51845 ]
51846 ]
51847 ]
51848 },
51849 "protected" : 1,
51850 "returns" : {
51851 "type" : "null"
51852 }
51853 },
51854 "GET" : {
51855 "allowtoken" : 0,
51856 "description" : "Fetch a requested TFA entry if present.",
51857 "method" : "GET",
51858 "name" : "get_tfa_entry",
51859 "parameters" : {
51860 "additionalProperties" : 0,
51861 "properties" : {
51862 "id" : {
51863 "description" : "A TFA entry id.",
51864 "type" : "string",
51865 "typetext" : "<string>"
51866 },
51867 "userid" : {
9d2e98ed 51868 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51869 "format" : "pve-userid",
51870 "maxLength" : 64,
51871 "type" : "string",
51872 "typetext" : "<string>"
51873 }
51874 }
51875 },
51876 "permissions" : {
51877 "check" : [
51878 "or",
51879 [
51880 "userid-param",
51881 "self"
51882 ],
51883 [
51884 "userid-group",
51885 [
51886 "User.Modify",
51887 "Sys.Audit"
51888 ]
51889 ]
51890 ]
51891 },
51892 "protected" : 1,
51893 "returns" : {
51894 "description" : "TFA Entry.",
51895 "properties" : {
51896 "created" : {
51897 "description" : "Creation time of this entry as unix epoch.",
51898 "type" : "integer"
51899 },
51900 "description" : {
51901 "description" : "User chosen description for this entry.",
51902 "type" : "string"
51903 },
51904 "enable" : {
51905 "default" : 1,
51906 "description" : "Whether this TFA entry is currently enabled.",
51907 "optional" : 1,
51908 "type" : "boolean"
51909 },
51910 "id" : {
51911 "description" : "The id used to reference this entry.",
51912 "type" : "string"
51913 },
51914 "type" : {
51915 "description" : "TFA Entry Type.",
51916 "enum" : [
51917 "totp",
51918 "u2f",
51919 "webauthn",
51920 "recovery",
51921 "yubico"
51922 ],
51923 "type" : "string"
51924 }
51925 },
51926 "type" : "object"
51927 }
51928 },
51929 "PUT" : {
51930 "allowtoken" : 0,
51931 "description" : "Add a TFA entry for a user.",
51932 "method" : "PUT",
51933 "name" : "update_tfa_entry",
51934 "parameters" : {
51935 "additionalProperties" : 0,
51936 "properties" : {
51937 "description" : {
51938 "description" : "A description to distinguish multiple entries from one another",
51939 "maxLength" : 255,
51940 "optional" : 1,
51941 "type" : "string",
51942 "typetext" : "<string>"
51943 },
51944 "enable" : {
51945 "description" : "Whether the entry should be enabled for login.",
51946 "optional" : 1,
51947 "type" : "boolean",
51948 "typetext" : "<boolean>"
51949 },
51950 "id" : {
51951 "description" : "A TFA entry id.",
51952 "type" : "string",
51953 "typetext" : "<string>"
51954 },
51955 "password" : {
51956 "description" : "The current password.",
51957 "maxLength" : 64,
51958 "minLength" : 5,
51959 "optional" : 1,
51960 "type" : "string",
51961 "typetext" : "<string>"
51962 },
51963 "userid" : {
9d2e98ed 51964 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51965 "format" : "pve-userid",
51966 "maxLength" : 64,
51967 "type" : "string",
51968 "typetext" : "<string>"
51969 }
51970 }
51971 },
51972 "permissions" : {
51973 "check" : [
51974 "or",
51975 [
51976 "userid-param",
51977 "self"
51978 ],
51979 [
51980 "userid-group",
51981 [
51982 "User.Modify"
51983 ]
51984 ]
51985 ]
51986 },
51987 "protected" : 1,
51988 "returns" : {
51989 "type" : "null"
51990 }
51991 }
51992 },
51993 "leaf" : 1,
51994 "path" : "/access/tfa/{userid}/{id}",
51995 "text" : "{id}"
51996 }
51997 ],
51998 "info" : {
51999 "GET" : {
52000 "allowtoken" : 0,
52001 "description" : "List TFA configurations of users.",
52002 "method" : "GET",
52003 "name" : "list_user_tfa",
52004 "parameters" : {
52005 "additionalProperties" : 0,
52006 "properties" : {
52007 "userid" : {
9d2e98ed 52008 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
52009 "format" : "pve-userid",
52010 "maxLength" : 64,
52011 "type" : "string",
52012 "typetext" : "<string>"
52013 }
52014 }
52015 },
52016 "permissions" : {
52017 "check" : [
52018 "or",
52019 [
52020 "userid-param",
52021 "self"
52022 ],
52023 [
52024 "userid-group",
52025 [
52026 "User.Modify",
52027 "Sys.Audit"
52028 ]
52029 ]
52030 ]
52031 },
52032 "protected" : 1,
52033 "returns" : {
52034 "description" : "A list of the user's TFA entries.",
52035 "items" : {
52036 "description" : "TFA Entry.",
52037 "properties" : {
52038 "created" : {
52039 "description" : "Creation time of this entry as unix epoch.",
52040 "type" : "integer"
52041 },
52042 "description" : {
52043 "description" : "User chosen description for this entry.",
52044 "type" : "string"
52045 },
52046 "enable" : {
52047 "default" : 1,
52048 "description" : "Whether this TFA entry is currently enabled.",
52049 "optional" : 1,
52050 "type" : "boolean"
52051 },
52052 "id" : {
52053 "description" : "The id used to reference this entry.",
52054 "type" : "string"
52055 },
52056 "type" : {
52057 "description" : "TFA Entry Type.",
52058 "enum" : [
52059 "totp",
52060 "u2f",
52061 "webauthn",
52062 "recovery",
52063 "yubico"
52064 ],
52065 "type" : "string"
52066 }
52067 },
52068 "type" : "object"
52069 },
52070 "type" : "array"
52071 }
52072 },
52073 "POST" : {
52074 "allowtoken" : 0,
52075 "description" : "Add a TFA entry for a user.",
52076 "method" : "POST",
52077 "name" : "add_tfa_entry",
52078 "parameters" : {
52079 "additionalProperties" : 0,
52080 "properties" : {
52081 "challenge" : {
52082 "description" : "When responding to a u2f challenge: the original challenge string",
52083 "optional" : 1,
52084 "type" : "string",
52085 "typetext" : "<string>"
52086 },
52087 "description" : {
52088 "description" : "A description to distinguish multiple entries from one another",
52089 "maxLength" : 255,
52090 "optional" : 1,
52091 "type" : "string",
52092 "typetext" : "<string>"
52093 },
52094 "password" : {
52095 "description" : "The current password.",
52096 "maxLength" : 64,
52097 "minLength" : 5,
52098 "optional" : 1,
52099 "type" : "string",
52100 "typetext" : "<string>"
52101 },
52102 "totp" : {
52103 "description" : "A totp URI.",
52104 "optional" : 1,
52105 "type" : "string",
52106 "typetext" : "<string>"
52107 },
52108 "type" : {
52109 "description" : "TFA Entry Type.",
52110 "enum" : [
52111 "totp",
52112 "u2f",
52113 "webauthn",
52114 "recovery",
52115 "yubico"
52116 ],
52117 "type" : "string"
52118 },
52119 "userid" : {
9d2e98ed 52120 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
52121 "format" : "pve-userid",
52122 "maxLength" : 64,
52123 "type" : "string",
52124 "typetext" : "<string>"
52125 },
52126 "value" : {
52127 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
52128 "optional" : 1,
52129 "type" : "string",
52130 "typetext" : "<string>"
52131 }
52132 }
52133 },
52134 "permissions" : {
52135 "check" : [
52136 "or",
52137 [
52138 "userid-param",
52139 "self"
52140 ],
52141 [
52142 "userid-group",
52143 [
52144 "User.Modify"
52145 ]
52146 ]
52147 ]
52148 },
52149 "protected" : 1,
52150 "returns" : {
52151 "properties" : {
52152 "challenge" : {
52153 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
52154 "optional" : 1,
52155 "type" : "string"
52156 },
52157 "id" : {
52158 "description" : "The id of a newly added TFA entry.",
52159 "type" : "string"
52160 },
52161 "recovery" : {
52162 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
52163 "items" : {
52164 "description" : "A recovery entry.",
52165 "type" : "string"
52166 },
52167 "optional" : 1,
52168 "type" : "array"
52169 }
52170 },
52171 "type" : "object"
52172 }
52173 }
52174 },
52175 "leaf" : 0,
52176 "path" : "/access/tfa/{userid}",
52177 "text" : "{userid}"
52178 }
52179 ],
52180 "info" : {
52181 "GET" : {
52182 "allowtoken" : 0,
52183 "description" : "List TFA configurations of users.",
52184 "method" : "GET",
52185 "name" : "list_tfa",
52186 "parameters" : {
52187 "additionalProperties" : 0
52188 },
52189 "permissions" : {
52190 "description" : "Returns all or just the logged-in user, depending on privileges.",
52191 "user" : "all"
52192 },
52193 "protected" : 1,
52194 "returns" : {
52195 "description" : "The list tuples of user and TFA entries.",
52196 "items" : {
52197 "properties" : {
52198 "entries" : {
52199 "items" : {
52200 "description" : "TFA Entry.",
52201 "properties" : {
52202 "created" : {
52203 "description" : "Creation time of this entry as unix epoch.",
52204 "type" : "integer"
52205 },
52206 "description" : {
52207 "description" : "User chosen description for this entry.",
52208 "type" : "string"
52209 },
52210 "enable" : {
52211 "default" : 1,
52212 "description" : "Whether this TFA entry is currently enabled.",
52213 "optional" : 1,
52214 "type" : "boolean"
52215 },
52216 "id" : {
52217 "description" : "The id used to reference this entry.",
52218 "type" : "string"
52219 },
52220 "type" : {
52221 "description" : "TFA Entry Type.",
52222 "enum" : [
52223 "totp",
52224 "u2f",
52225 "webauthn",
52226 "recovery",
52227 "yubico"
52228 ],
52229 "type" : "string"
52230 }
52231 },
52232 "type" : "object"
52233 },
52234 "type" : "array"
52235 },
4a407cfd
TL
52236 "tfa-locked-until" : {
52237 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
52238 "optional" : 1,
52239 "type" : "integer"
52240 },
52241 "totp-locked" : {
52242 "description" : "True if the user is currently locked out of TOTP factors.",
52243 "optional" : 1,
52244 "type" : "boolean"
52245 },
5370fa8c
TL
52246 "userid" : {
52247 "description" : "User this entry belongs to.",
52248 "type" : "string"
52249 }
52250 },
52251 "type" : "object"
52252 },
52253 "type" : "array"
52254 }
5370fa8c
TL
52255 }
52256 },
52257 "leaf" : 0,
52258 "path" : "/access/tfa",
52259 "text" : "tfa"
52260 },
56122987 52261 {
56122987 52262 "info" : {
44660702 52263 "GET" : {
e9cd3bd4 52264 "allowtoken" : 1,
2489d6df 52265 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
52266 "method" : "GET",
52267 "name" : "get_ticket",
52268 "parameters" : {
52269 "additionalProperties" : 0
52270 },
52271 "permissions" : {
52272 "user" : "world"
52273 },
52274 "returns" : {
52275 "type" : "null"
52276 }
52277 },
56122987 52278 "POST" : {
e9cd3bd4 52279 "allowtoken" : 0,
44660702 52280 "description" : "Create or verify authentication ticket.",
56122987 52281 "method" : "POST",
44660702
DM
52282 "name" : "create_ticket",
52283 "parameters" : {
52284 "additionalProperties" : 0,
56122987 52285 "properties" : {
5370fa8c 52286 "new-format" : {
4a407cfd
TL
52287 "default" : 1,
52288 "description" : "This parameter is now ignored and assumed to be 1.",
5370fa8c
TL
52289 "optional" : 1,
52290 "type" : "boolean",
52291 "typetext" : "<boolean>"
52292 },
44660702
DM
52293 "otp" : {
52294 "description" : "One-time password for Two-factor authentication.",
7aacca6f 52295 "optional" : 1,
013dc89f
DM
52296 "type" : "string",
52297 "typetext" : "<string>"
56122987 52298 },
7aacca6f
DM
52299 "password" : {
52300 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
52301 "type" : "string",
52302 "typetext" : "<string>"
7aacca6f 52303 },
44660702
DM
52304 "path" : {
52305 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 52306 "maxLength" : 64,
56122987 52307 "optional" : 1,
56122987 52308 "requires" : "privs",
013dc89f
DM
52309 "type" : "string",
52310 "typetext" : "<string>"
44660702
DM
52311 },
52312 "privs" : {
7aacca6f 52313 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
52314 "format" : "pve-priv-list",
52315 "maxLength" : 64,
56122987 52316 "optional" : 1,
44660702 52317 "requires" : "path",
013dc89f
DM
52318 "type" : "string",
52319 "typetext" : "<string>"
56122987
DM
52320 },
52321 "realm" : {
56122987 52322 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 52323 "format" : "pve-realm",
7aacca6f 52324 "maxLength" : 32,
44660702 52325 "optional" : 1,
013dc89f
DM
52326 "type" : "string",
52327 "typetext" : "<string>"
56122987 52328 },
5370fa8c
TL
52329 "tfa-challenge" : {
52330 "description" : "The signed TFA challenge string the user wants to respond to.",
52331 "optional" : 1,
52332 "type" : "string",
52333 "typetext" : "<string>"
52334 },
56122987
DM
52335 "username" : {
52336 "description" : "User name",
44660702 52337 "maxLength" : 64,
013dc89f
DM
52338 "type" : "string",
52339 "typetext" : "<string>"
56122987 52340 }
44660702 52341 }
7aacca6f 52342 },
56122987 52343 "permissions" : {
44660702 52344 "description" : "You need to pass valid credientials.",
56122987
DM
52345 "user" : "world"
52346 },
44660702 52347 "protected" : 1,
7aacca6f 52348 "returns" : {
56122987 52349 "properties" : {
44660702
DM
52350 "CSRFPreventionToken" : {
52351 "optional" : 1,
52352 "type" : "string"
56122987 52353 },
e2d681b3
TL
52354 "clustername" : {
52355 "optional" : 1,
52356 "type" : "string"
52357 },
44660702
DM
52358 "ticket" : {
52359 "optional" : 1,
52360 "type" : "string"
52361 },
52362 "username" : {
56122987
DM
52363 "type" : "string"
52364 }
52365 },
44660702 52366 "type" : "object"
7aacca6f 52367 }
7aacca6f
DM
52368 }
52369 },
44660702
DM
52370 "leaf" : 1,
52371 "path" : "/access/ticket",
52372 "text" : "ticket"
7aacca6f 52373 },
56122987 52374 {
56122987 52375 "info" : {
7aacca6f 52376 "PUT" : {
e9cd3bd4 52377 "allowtoken" : 0,
44660702 52378 "description" : "Change user password.",
7aacca6f 52379 "method" : "PUT",
e2d681b3 52380 "name" : "change_password",
56122987
DM
52381 "parameters" : {
52382 "additionalProperties" : 0,
52383 "properties" : {
44660702
DM
52384 "password" : {
52385 "description" : "The new password.",
52386 "maxLength" : 64,
52387 "minLength" : 5,
013dc89f
DM
52388 "type" : "string",
52389 "typetext" : "<string>"
7aacca6f 52390 },
44660702 52391 "userid" : {
9d2e98ed 52392 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
52393 "format" : "pve-userid",
52394 "maxLength" : 64,
013dc89f
DM
52395 "type" : "string",
52396 "typetext" : "<string>"
56122987 52397 }
7aacca6f 52398 }
56122987
DM
52399 },
52400 "permissions" : {
52401 "check" : [
44660702 52402 "or",
56122987 52403 [
44660702
DM
52404 "userid-param",
52405 "self"
52406 ],
52407 [
52408 "and",
52409 [
52410 "userid-param",
52411 "Realm.AllocateUser"
52412 ],
52413 [
52414 "userid-group",
52415 [
52416 "User.Modify"
52417 ]
52418 ]
56122987 52419 ]
7aacca6f 52420 ],
44660702 52421 "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 52422 },
44660702 52423 "protected" : 1,
7aacca6f
DM
52424 "returns" : {
52425 "type" : "null"
44660702
DM
52426 }
52427 }
52428 },
52429 "leaf" : 1,
52430 "path" : "/access/password",
52431 "text" : "password"
95895385 52432 },
e9cd3bd4
TL
52433 {
52434 "info" : {
52435 "GET" : {
52436 "allowtoken" : 1,
52437 "description" : "Retrieve effective permissions of given user/token.",
52438 "method" : "GET",
52439 "name" : "permissions",
52440 "parameters" : {
52441 "additionalProperties" : 0,
52442 "properties" : {
52443 "path" : {
52444 "description" : "Only dump this specific path, not the whole tree.",
52445 "optional" : 1,
52446 "type" : "string",
52447 "typetext" : "<string>"
52448 },
52449 "userid" : {
52450 "description" : "User ID or full API token ID",
52451 "optional" : 1,
52452 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
52453 "type" : "string"
52454 }
52455 }
52456 },
52457 "permissions" : {
52458 "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.",
52459 "user" : "all"
52460 },
52461 "returns" : {
52462 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
52463 "type" : "object"
52464 }
52465 }
52466 },
52467 "leaf" : 1,
52468 "path" : "/access/permissions",
52469 "text" : "permissions"
44660702
DM
52470 }
52471 ],
52472 "info" : {
52473 "GET" : {
e9cd3bd4 52474 "allowtoken" : 1,
44660702
DM
52475 "description" : "Directory index.",
52476 "method" : "GET",
52477 "name" : "index",
52478 "parameters" : {
52479 "additionalProperties" : 0
52480 },
52481 "permissions" : {
52482 "user" : "all"
52483 },
52484 "returns" : {
52485 "items" : {
52486 "properties" : {
52487 "subdir" : {
52488 "type" : "string"
52489 }
7aacca6f 52490 },
44660702
DM
52491 "type" : "object"
52492 },
52493 "links" : [
52494 {
52495 "href" : "{subdir}",
52496 "rel" : "child"
52497 }
52498 ],
52499 "type" : "array"
52500 }
52501 }
52502 },
52503 "leaf" : 0,
52504 "path" : "/access",
52505 "text" : "access"
52506 },
52507 {
52508 "children" : [
52509 {
52510 "info" : {
52511 "DELETE" : {
e9cd3bd4 52512 "allowtoken" : 1,
7aacca6f 52513 "description" : "Delete pool.",
44660702
DM
52514 "method" : "DELETE",
52515 "name" : "delete_pool",
7aacca6f
DM
52516 "parameters" : {
52517 "additionalProperties" : 0,
52518 "properties" : {
52519 "poolid" : {
52520 "format" : "pve-poolid",
013dc89f
DM
52521 "type" : "string",
52522 "typetext" : "<string>"
7aacca6f
DM
52523 }
52524 }
52525 },
56122987
DM
52526 "permissions" : {
52527 "check" : [
52528 "perm",
52529 "/pool/{poolid}",
52530 [
52531 "Pool.Allocate"
52532 ]
44660702
DM
52533 ],
52534 "description" : "You can only delete empty pools (no members)."
52535 },
52536 "protected" : 1,
52537 "returns" : {
52538 "type" : "null"
7aacca6f
DM
52539 }
52540 },
52541 "GET" : {
e9cd3bd4 52542 "allowtoken" : 1,
7aacca6f 52543 "description" : "Get pool configuration.",
44660702 52544 "method" : "GET",
7aacca6f 52545 "name" : "read_pool",
56122987 52546 "parameters" : {
44660702 52547 "additionalProperties" : 0,
56122987
DM
52548 "properties" : {
52549 "poolid" : {
44660702 52550 "format" : "pve-poolid",
013dc89f
DM
52551 "type" : "string",
52552 "typetext" : "<string>"
c30bb419
TL
52553 },
52554 "type" : {
52555 "enum" : [
52556 "qemu",
52557 "lxc",
52558 "storage"
52559 ],
52560 "optional" : 1,
52561 "type" : "string"
56122987 52562 }
44660702 52563 }
56122987 52564 },
56122987 52565 "permissions" : {
56122987
DM
52566 "check" : [
52567 "perm",
52568 "/pool/{poolid}",
52569 [
0695fdaf 52570 "Pool.Audit"
56122987
DM
52571 ]
52572 ]
52573 },
7aacca6f 52574 "returns" : {
44660702 52575 "additionalProperties" : 0,
56122987 52576 "properties" : {
44660702
DM
52577 "comment" : {
52578 "optional" : 1,
52579 "type" : "string"
52580 },
7aacca6f 52581 "members" : {
7aacca6f
DM
52582 "items" : {
52583 "additionalProperties" : 1,
7aacca6f 52584 "properties" : {
7aacca6f
DM
52585 "id" : {
52586 "type" : "string"
52587 },
52588 "node" : {
52589 "type" : "string"
52590 },
44660702
DM
52591 "storage" : {
52592 "optional" : 1,
52593 "type" : "string"
52594 },
7aacca6f 52595 "type" : {
7aacca6f
DM
52596 "enum" : [
52597 "qemu",
52598 "lxc",
52599 "openvz",
52600 "storage"
44660702
DM
52601 ],
52602 "type" : "string"
52603 },
52604 "vmid" : {
52605 "optional" : 1,
52606 "type" : "integer"
7aacca6f 52607 }
44660702
DM
52608 },
52609 "type" : "object"
52610 },
52611 "type" : "array"
52612 }
52613 },
52614 "type" : "object"
52615 }
52616 },
52617 "PUT" : {
e9cd3bd4 52618 "allowtoken" : 1,
44660702
DM
52619 "description" : "Update pool data.",
52620 "method" : "PUT",
52621 "name" : "update_pool",
52622 "parameters" : {
52623 "additionalProperties" : 0,
52624 "properties" : {
56122987
DM
52625 "comment" : {
52626 "optional" : 1,
013dc89f
DM
52627 "type" : "string",
52628 "typetext" : "<string>"
44660702
DM
52629 },
52630 "delete" : {
52631 "description" : "Remove vms/storage (instead of adding it).",
52632 "optional" : 1,
013dc89f
DM
52633 "type" : "boolean",
52634 "typetext" : "<boolean>"
44660702
DM
52635 },
52636 "poolid" : {
52637 "format" : "pve-poolid",
013dc89f
DM
52638 "type" : "string",
52639 "typetext" : "<string>"
44660702
DM
52640 },
52641 "storage" : {
52642 "description" : "List of storage IDs.",
52643 "format" : "pve-storage-id-list",
52644 "optional" : 1,
013dc89f
DM
52645 "type" : "string",
52646 "typetext" : "<string>"
44660702
DM
52647 },
52648 "vms" : {
52649 "description" : "List of virtual machines.",
52650 "format" : "pve-vmid-list",
52651 "optional" : 1,
013dc89f
DM
52652 "type" : "string",
52653 "typetext" : "<string>"
56122987 52654 }
44660702
DM
52655 }
52656 },
52657 "permissions" : {
52658 "check" : [
52659 "perm",
52660 "/pool/{poolid}",
52661 [
52662 "Pool.Allocate"
52663 ]
52664 ],
52665 "description" : "You also need the right to modify permissions on any object you add/delete."
52666 },
52667 "protected" : 1,
52668 "returns" : {
52669 "type" : "null"
56122987
DM
52670 }
52671 }
52672 },
44660702
DM
52673 "leaf" : 1,
52674 "path" : "/pools/{poolid}",
7aacca6f 52675 "text" : "{poolid}"
56122987 52676 }
7aacca6f 52677 ],
56122987
DM
52678 "info" : {
52679 "GET" : {
e9cd3bd4 52680 "allowtoken" : 1,
44660702
DM
52681 "description" : "Pool index.",
52682 "method" : "GET",
52683 "name" : "index",
52684 "parameters" : {
52685 "additionalProperties" : 0
52686 },
52687 "permissions" : {
0695fdaf 52688 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
44660702
DM
52689 "user" : "all"
52690 },
56122987 52691 "returns" : {
44660702
DM
52692 "items" : {
52693 "properties" : {
52694 "poolid" : {
52695 "type" : "string"
52696 }
56122987 52697 },
44660702
DM
52698 "type" : "object"
52699 },
52700 "links" : [
52701 {
52702 "href" : "{poolid}",
52703 "rel" : "child"
52704 }
52705 ],
52706 "type" : "array"
52707 }
52708 },
52709 "POST" : {
e9cd3bd4 52710 "allowtoken" : 1,
44660702
DM
52711 "description" : "Create new pool.",
52712 "method" : "POST",
52713 "name" : "create_pool",
52714 "parameters" : {
52715 "additionalProperties" : 0,
52716 "properties" : {
52717 "comment" : {
52718 "optional" : 1,
013dc89f
DM
52719 "type" : "string",
52720 "typetext" : "<string>"
7aacca6f 52721 },
44660702
DM
52722 "poolid" : {
52723 "format" : "pve-poolid",
013dc89f
DM
52724 "type" : "string",
52725 "typetext" : "<string>"
56122987
DM
52726 }
52727 }
52728 },
56122987 52729 "permissions" : {
44660702
DM
52730 "check" : [
52731 "perm",
52732 "/pool/{poolid}",
52733 [
52734 "Pool.Allocate"
52735 ]
52736 ]
56122987 52737 },
44660702
DM
52738 "protected" : 1,
52739 "returns" : {
52740 "type" : "null"
52741 }
52742 }
52743 },
52744 "leaf" : 0,
52745 "path" : "/pools",
52746 "text" : "pools"
52747 },
52748 {
52749 "info" : {
52750 "GET" : {
e9cd3bd4 52751 "allowtoken" : 1,
5370fa8c 52752 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
52753 "method" : "GET",
52754 "name" : "version",
7aacca6f
DM
52755 "parameters" : {
52756 "additionalProperties" : 0
52757 },
44660702
DM
52758 "permissions" : {
52759 "user" : "all"
52760 },
52761 "returns" : {
52762 "properties" : {
5370fa8c
TL
52763 "console" : {
52764 "description" : "The default console viewer to use.",
52765 "enum" : [
52766 "applet",
52767 "vv",
52768 "html5",
52769 "xtermjs"
52770 ],
52771 "optional" : 1,
52772 "type" : "string"
52773 },
44660702 52774 "release" : {
5370fa8c 52775 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
52776 "type" : "string"
52777 },
52778 "repoid" : {
5370fa8c 52779 "description" : "The short git revision from which this version was build.",
4a407cfd 52780 "pattern" : "[0-9a-fA-F]{8,64}",
44660702
DM
52781 "type" : "string"
52782 },
52783 "version" : {
5370fa8c 52784 "description" : "The full pve-manager package version of this node.",
44660702
DM
52785 "type" : "string"
52786 }
52787 },
52788 "type" : "object"
52789 }
56122987
DM
52790 }
52791 },
44660702
DM
52792 "leaf" : 1,
52793 "path" : "/version",
56122987
DM
52794 "text" : "version"
52795 }
52796]
52797;
52798