diff --git a/plugins/module_utils/models/README.md b/plugins/module_utils/models/README.md new file mode 100644 index 00000000..33d9c40e --- /dev/null +++ b/plugins/module_utils/models/README.md @@ -0,0 +1,3 @@ +wget https://raw.githubusercontent.com/LUMASERV/proxmox-ve-openapi/refs/heads/main/reference/spec.v2.yaml +pip install datamodel-codegen +datamodel-codegen --openapi-scopes paths --use-annotated --use-title-as-name --reuse-model --input spec.v2.yaml --input-file-type openapi --output paths2.py --output-model-type pydantic_v2.BaseModel diff --git a/plugins/module_utils/models/paths.py b/plugins/module_utils/models/paths.py new file mode 100644 index 00000000..9a68ed53 --- /dev/null +++ b/plugins/module_utils/models/paths.py @@ -0,0 +1,5788 @@ +# generated by datamodel-codegen: +# filename: spec.v2.yaml +# timestamp: 2025-07-18T12:47:05+00:00 + +from __future__ import annotations + +from typing import Annotated, Any, Dict, List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class ClusterGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Dict[str, Any]]], Field(description='')] = None + + +ClusterReplicationGetResponse = ClusterGetResponse + + +class ClusterReplicationPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[str], Field(description='')] = None + + +ClusterReplicationIdDeleteResponse = ClusterReplicationPostResponse + + +class ClusterReplicationIdGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Dict[str, Any]], Field(description='')] = None + + +ClusterReplicationIdPutResponse = ClusterReplicationPostResponse + + +ClusterMetricsGetResponse = ClusterGetResponse + + +class Datum(BaseModel): + disable: Annotated[ + Optional[int], Field(description='Flag to disable the plugin.') + ] = None + id: Annotated[Optional[str], Field(description='The ID of the entry.')] = None + port: Annotated[Optional[int], Field(description='Server network port')] = None + server: Annotated[ + Optional[str], Field(description='Server dns name or IP address') + ] = None + type: Annotated[Optional[str], Field(description='Plugin type.')] = None + + +class ClusterMetricsServerGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum]], Field(description='')] = None + + +ClusterMetricsServerIdDeleteResponse = ClusterReplicationPostResponse + + +ClusterMetricsServerIdGetResponse = ClusterReplicationIdGetResponse + + +ClusterMetricsServerIdPostResponse = ClusterReplicationPostResponse + + +ClusterMetricsServerIdPutResponse = ClusterReplicationPostResponse + + +ClusterConfigGetResponse = ClusterGetResponse + + +ClusterConfigPostResponse = ClusterReplicationPostResponse + + +class ClusterConfigApiversionGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[int], Field(description='Cluster Join API version, currently 1') + ] = None + + +class Datum1(BaseModel): + node: Annotated[Optional[str], Field(description='')] = None + + +class ClusterConfigNodesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum1]], Field(description='')] = None + + +ClusterConfigNodesNodeDeleteResponse = ClusterReplicationPostResponse + + +class Data(BaseModel): + corosync_authkey: Annotated[Optional[str], Field(description='')] = None + corosync_conf: Annotated[Optional[str], Field(description='')] = None + warnings: Annotated[Optional[List[str]], Field(description='')] = None + + +class ClusterConfigNodesNodePostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data], Field(description='')] = None + + +class NodelistItem(BaseModel): + name: Annotated[Optional[str], Field(description='The cluster node name.')] = None + nodeid: Annotated[Optional[int], Field(description='Node id for this node.')] = None + pve_addr: Annotated[Optional[str], Field(description='')] = None + pve_fp: Annotated[ + Optional[str], Field(description='Certificate SHA 256 fingerprint.') + ] = None + quorum_votes: Annotated[Optional[int], Field(description='')] = None + ring0_addr: Annotated[ + Optional[str], + Field( + description='Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)' + ), + ] = None + + +class Data1(BaseModel): + config_digest: Annotated[Optional[str], Field(description='')] = None + nodelist: Annotated[Optional[List[NodelistItem]], Field(description='')] = None + preferred_node: Annotated[ + Optional[str], Field(description='The cluster node name.') + ] = None + totem: Annotated[Optional[Dict[str, Any]], Field(description='')] = None + + +class ClusterConfigJoinGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data1], Field(description='')] = None + + +ClusterConfigJoinPostResponse = ClusterReplicationPostResponse + + +ClusterConfigTotemGetResponse = ClusterReplicationIdGetResponse + + +ClusterConfigQdeviceGetResponse = ClusterReplicationIdGetResponse + + +ClusterFirewallGetResponse = ClusterGetResponse + + +class Datum2(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + digest: Annotated[ + Optional[str], + Field( + description='Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.' + ), + ] = None + group: Annotated[Optional[str], Field(description='Security Group name.')] = None + + +class ClusterFirewallGroupsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum2]], Field(description='')] = None + + +ClusterFirewallGroupsPostResponse = ClusterReplicationPostResponse + + +ClusterFirewallGroupsGroupDeleteResponse = ClusterReplicationPostResponse + + +class Datum3(BaseModel): + pos: Annotated[Optional[int], Field(description='')] = None + + +class ClusterFirewallGroupsGroupGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum3]], Field(description='')] = None + + +ClusterFirewallGroupsGroupPostResponse = ClusterReplicationPostResponse + + +ClusterFirewallGroupsGroupPosDeleteResponse = ClusterReplicationPostResponse + + +class Data2(BaseModel): + action: Annotated[Optional[str], Field(description='')] = None + comment: Annotated[Optional[str], Field(description='')] = None + dest: Annotated[Optional[str], Field(description='')] = None + dport: Annotated[Optional[str], Field(description='')] = None + enable: Annotated[Optional[int], Field(description='')] = None + icmp_type: Annotated[Optional[str], Field(alias='icmp-type', description='')] = None + iface: Annotated[Optional[str], Field(description='')] = None + ipversion: Annotated[Optional[int], Field(description='')] = None + log: Annotated[Optional[str], Field(description='Log level for firewall rule')] = ( + None + ) + macro: Annotated[Optional[str], Field(description='')] = None + pos: Annotated[Optional[int], Field(description='')] = None + proto: Annotated[Optional[str], Field(description='')] = None + source: Annotated[Optional[str], Field(description='')] = None + sport: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + + +class ClusterFirewallGroupsGroupPosGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data2], Field(description='')] = None + + +ClusterFirewallGroupsGroupPosPutResponse = ClusterReplicationPostResponse + + +ClusterFirewallRulesGetResponse = ClusterFirewallGroupsGroupGetResponse + + +ClusterFirewallRulesPostResponse = ClusterReplicationPostResponse + + +ClusterFirewallRulesPosDeleteResponse = ClusterReplicationPostResponse + + +ClusterFirewallRulesPosGetResponse = ClusterFirewallGroupsGroupPosGetResponse + + +ClusterFirewallRulesPosPutResponse = ClusterReplicationPostResponse + + +class Datum5(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + digest: Annotated[ + Optional[str], + Field( + description='Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.' + ), + ] = None + name: Annotated[Optional[str], Field(description='IP set name.')] = None + + +class ClusterFirewallIpsetGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum5]], Field(description='')] = None + + +ClusterFirewallIpsetPostResponse = ClusterReplicationPostResponse + + +ClusterFirewallIpsetNameDeleteResponse = ClusterReplicationPostResponse + + +class Datum6(BaseModel): + cidr: Annotated[Optional[str], Field(description='')] = None + comment: Annotated[Optional[str], Field(description='')] = None + digest: Annotated[ + Optional[str], + Field( + description='Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.' + ), + ] = None + nomatch: Annotated[Optional[int], Field(description='')] = None + + +class ClusterFirewallIpsetNameGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum6]], Field(description='')] = None + + +ClusterFirewallIpsetNamePostResponse = ClusterReplicationPostResponse + + +ClusterFirewallIpsetNameCidrDeleteResponse = ClusterReplicationPostResponse + + +ClusterFirewallIpsetNameCidrGetResponse = ClusterReplicationIdGetResponse + + +ClusterFirewallIpsetNameCidrPutResponse = ClusterReplicationPostResponse + + +class Datum7(BaseModel): + cidr: Annotated[Optional[str], Field(description='')] = None + comment: Annotated[Optional[str], Field(description='')] = None + digest: Annotated[ + Optional[str], + Field( + description='Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.' + ), + ] = None + name: Annotated[Optional[str], Field(description='')] = None + + +class ClusterFirewallAliasesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum7]], Field(description='')] = None + + +ClusterFirewallAliasesPostResponse = ClusterReplicationPostResponse + + +ClusterFirewallAliasesNameDeleteResponse = ClusterReplicationPostResponse + + +ClusterFirewallAliasesNameGetResponse = ClusterReplicationIdGetResponse + + +ClusterFirewallAliasesNamePutResponse = ClusterReplicationPostResponse + + +class Data4(BaseModel): + ebtables: Annotated[ + Optional[int], Field(description='Enable ebtables rules cluster wide.') + ] = None + enable: Annotated[ + Optional[int], Field(description='Enable or disable the firewall cluster wide.') + ] = None + log_ratelimit: Annotated[ + Optional[str], Field(description='Log ratelimiting settings') + ] = None + policy_in: Annotated[Optional[str], Field(description='Input policy.')] = None + policy_out: Annotated[Optional[str], Field(description='Output policy.')] = None + + +class ClusterFirewallOptionsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data4], Field(description='')] = None + + +ClusterFirewallOptionsPutResponse = ClusterReplicationPostResponse + + +class Datum8(BaseModel): + descr: Annotated[ + Optional[str], Field(description='More verbose description (if available).') + ] = None + macro: Annotated[Optional[str], Field(description='Macro name.')] = None + + +class ClusterFirewallMacrosGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum8]], Field(description='')] = None + + +class Datum9(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + name: Annotated[Optional[str], Field(description='')] = None + ref: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + + +class ClusterFirewallRefsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum9]], Field(description='')] = None + + +class Datum10(BaseModel): + id: Annotated[Optional[str], Field(description='The job ID.')] = None + + +class ClusterBackupGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum10]], Field(description='')] = None + + +ClusterBackupPostResponse = ClusterReplicationPostResponse + + +ClusterBackupIdDeleteResponse = ClusterReplicationPostResponse + + +ClusterBackupIdGetResponse = ClusterReplicationIdGetResponse + + +ClusterBackupIdPutResponse = ClusterReplicationPostResponse + + +class Child1(BaseModel): + id: Annotated[ + Optional[str], Field(description='Configuration key of the volume.') + ] = None + included: Annotated[ + Optional[int], + Field(description='Whether the volume is included in the backup or not.'), + ] = None + name: Annotated[Optional[str], Field(description='Name of the volume.')] = None + reason: Annotated[ + Optional[str], + Field(description='The reason why the volume is included (or excluded).'), + ] = None + + +class Child(BaseModel): + children: Annotated[ + Optional[List[Child1]], + Field( + description='The volumes of the guest with the information if they will be included in backups.' + ), + ] = None + id: Annotated[Optional[int], Field(description='VMID of the guest.')] = None + name: Annotated[Optional[str], Field(description='Name of the guest')] = None + type: Annotated[ + Optional[str], + Field( + description='Type of the guest, VM, CT or unknown for removed but not purged guests.' + ), + ] = None + + +class Data5(BaseModel): + """ + Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest. + """ + + children: Annotated[Optional[List[Child]], Field(description='')] = None + + +class ClusterBackupIdIncludedVolumesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[Data5], + Field( + description='Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.' + ), + ] = None + + +class ClusterBackupinfoGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[str], Field(description='Shows stub message')] = None + + +class Datum11(BaseModel): + name: Annotated[Optional[str], Field(description='Name of the guest')] = None + type: Annotated[Optional[str], Field(description='Type of the guest.')] = None + vmid: Annotated[Optional[int], Field(description='VMID of the guest.')] = None + + +class ClusterBackupinfoNotBackedUpGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[List[Datum11]], Field(description='Contains the guest objects.') + ] = None + + +class Datum12(BaseModel): + id: Annotated[Optional[str], Field(description='')] = None + + +class ClusterHaGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum12]], Field(description='')] = None + + +class Datum13(BaseModel): + sid: Annotated[Optional[str], Field(description='')] = None + + +class ClusterHaResourcesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum13]], Field(description='')] = None + + +ClusterHaResourcesPostResponse = ClusterReplicationPostResponse + + +ClusterHaResourcesSidDeleteResponse = ClusterReplicationPostResponse + + +class Data6(BaseModel): + comment: Annotated[Optional[str], Field(description='Description.')] = None + digest: Annotated[ + Optional[str], + Field(description='Can be used to prevent concurrent modifications.'), + ] = None + group: Annotated[Optional[str], Field(description='The HA group identifier.')] = ( + None + ) + max_relocate: Annotated[ + Optional[int], + Field( + description='Maximal number of service relocate tries when a service failes to start.' + ), + ] = None + max_restart: Annotated[ + Optional[int], + Field( + description='Maximal number of tries to restart the service on a node after its start failed.' + ), + ] = None + sid: Annotated[ + Optional[str], + Field( + 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).' + ), + ] = None + state: Annotated[Optional[str], Field(description='Requested resource state.')] = ( + None + ) + type: Annotated[Optional[str], Field(description='The type of the resources.')] = ( + None + ) + + +class ClusterHaResourcesSidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data6], Field(description='')] = None + + +ClusterHaResourcesSidPutResponse = ClusterReplicationPostResponse + + +ClusterHaResourcesSidMigratePostResponse = ClusterReplicationPostResponse + + +ClusterHaResourcesSidRelocatePostResponse = ClusterReplicationPostResponse + + +class Datum14(BaseModel): + group: Annotated[Optional[str], Field(description='')] = None + + +class ClusterHaGroupsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum14]], Field(description='')] = None + + +ClusterHaGroupsPostResponse = ClusterReplicationPostResponse + + +ClusterHaGroupsGroupDeleteResponse = ClusterReplicationPostResponse + + +ClusterHaGroupsGroupGetResponse = ClusterReplicationPostResponse + + +ClusterHaGroupsGroupPutResponse = ClusterReplicationPostResponse + + +ClusterHaStatusGetResponse = ClusterGetResponse + + +class ClusterHaStatusCurrentGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List], Field(description='')] = None + + +ClusterHaStatusManagerStatusGetResponse = ClusterReplicationIdGetResponse + + +ClusterAcmeGetResponse = ClusterGetResponse + + +class Datum15(BaseModel): + plugin: Annotated[ + Optional[str], Field(description='Unique identifier for ACME plugin instance.') + ] = None + + +class ClusterAcmePluginsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum15]], Field(description='')] = None + + +ClusterAcmePluginsPostResponse = ClusterReplicationPostResponse + + +ClusterAcmePluginsIdDeleteResponse = ClusterReplicationPostResponse + + +ClusterAcmePluginsIdGetResponse = ClusterReplicationIdGetResponse + + +ClusterAcmePluginsIdPutResponse = ClusterReplicationPostResponse + + +ClusterAcmeAccountGetResponse = ClusterGetResponse + + +ClusterAcmeAccountPostResponse = ClusterReplicationPostResponse + + +ClusterAcmeAccountNameDeleteResponse = ClusterReplicationPostResponse + + +class Data7(BaseModel): + account: Annotated[Optional[Dict[str, Any]], Field(description='')] = None + directory: Annotated[ + Optional[str], Field(description='URL of ACME CA directory endpoint.') + ] = None + location: Annotated[Optional[str], Field(description='')] = None + tos: Annotated[Optional[str], Field(description='')] = None + + +class ClusterAcmeAccountNameGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data7], Field(description='')] = None + + +ClusterAcmeAccountNamePutResponse = ClusterReplicationPostResponse + + +class ClusterAcmeTosGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[str], Field(description='ACME TermsOfService URL.')] = None + + +class Datum16(BaseModel): + name: Annotated[Optional[str], Field(description='')] = None + url: Annotated[ + Optional[str], Field(description='URL of ACME CA directory endpoint.') + ] = None + + +class ClusterAcmeDirectoriesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum16]], Field(description='')] = None + + +class Datum17(BaseModel): + id: Annotated[Optional[str], Field(description='')] = None + name: Annotated[ + Optional[str], Field(description='Human readable name, falls back to id') + ] = None + schema_: Annotated[ + Optional[Dict[str, Any]], Field(alias='schema', description='') + ] = None + type: Annotated[Optional[str], Field(description='')] = None + + +class ClusterAcmeChallengeSchemaGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum17]], Field(description='')] = None + + +ClusterCephGetResponse = ClusterGetResponse + + +ClusterCephMetadataGetResponse = ClusterReplicationIdGetResponse + + +ClusterCephStatusGetResponse = ClusterReplicationIdGetResponse + + +class Datum18(BaseModel): + name: Annotated[Optional[str], Field(description='Flag name.')] = None + + +class ClusterCephFlagsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum18]], Field(description='')] = None + + +ClusterCephFlagsPutResponse = ClusterReplicationPostResponse + + +class ClusterCephFlagsFlagGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[int], Field(description='')] = None + + +ClusterCephFlagsFlagPutResponse = ClusterReplicationPostResponse + + +Datum19 = Datum12 + + +class ClusterSdnGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum19]], Field(description='')] = None + + +ClusterSdnPutResponse = ClusterReplicationPostResponse + + +ClusterSdnVnetsGetResponse = ClusterGetResponse + + +ClusterSdnVnetsPostResponse = ClusterReplicationPostResponse + + +ClusterSdnVnetsVnetDeleteResponse = ClusterReplicationPostResponse + + +ClusterSdnVnetsVnetGetResponse = ClusterReplicationIdGetResponse + + +ClusterSdnVnetsVnetPutResponse = ClusterReplicationPostResponse + + +class Datum20(BaseModel): + type: Annotated[Optional[str], Field(description='')] = None + zone: Annotated[Optional[str], Field(description='')] = None + + +class ClusterSdnZonesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum20]], Field(description='')] = None + + +ClusterSdnZonesPostResponse = ClusterReplicationPostResponse + + +ClusterSdnZonesZoneDeleteResponse = ClusterReplicationPostResponse + + +ClusterSdnZonesZoneGetResponse = ClusterReplicationIdGetResponse + + +ClusterSdnZonesZonePutResponse = ClusterReplicationPostResponse + + +class Datum21(BaseModel): + controller: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + + +class ClusterSdnControllersGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum21]], Field(description='')] = None + + +ClusterSdnControllersPostResponse = ClusterReplicationPostResponse + + +ClusterSdnControllersControllerDeleteResponse = ClusterReplicationPostResponse + + +ClusterSdnControllersControllerGetResponse = ClusterReplicationIdGetResponse + + +ClusterSdnControllersControllerPutResponse = ClusterReplicationPostResponse + + +ClusterLogGetResponse = ClusterGetResponse + + +class Datum22(BaseModel): + content: Annotated[ + Optional[str], + Field(description='Allowed storage content types (when type == storage).'), + ] = None + cpu: Annotated[ + Optional[float], + Field(description='CPU utilization (when type in node,qemu,lxc).'), + ] = None + disk: Annotated[ + Optional[str], + Field( + description='Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).' + ), + ] = None + hastate: Annotated[ + Optional[str], Field(description='HA service status (for HA managed VMs).') + ] = None + id: Annotated[Optional[str], Field(description='')] = None + level: Annotated[ + Optional[str], Field(description='Support level (when type == node).') + ] = None + maxcpu: Annotated[ + Optional[float], + Field(description='Number of available CPUs (when type in node,qemu,lxc).'), + ] = None + maxdisk: Annotated[ + Optional[int], + Field( + description='Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).' + ), + ] = None + maxmem: Annotated[ + Optional[int], + Field( + description='Number of available memory in bytes (when type in node,qemu,lxc).' + ), + ] = None + mem: Annotated[ + Optional[str], + Field(description='Used memory in bytes (when type in node,qemu,lxc).'), + ] = None + node: Annotated[ + Optional[str], + Field( + description='The cluster node name (when type in node,storage,qemu,lxc).' + ), + ] = None + pool: Annotated[ + Optional[str], Field(description='The pool name (when type in pool,qemu,lxc).') + ] = None + status: Annotated[ + Optional[str], Field(description='Resource type dependent status.') + ] = None + storage: Annotated[ + Optional[str], + Field(description='The storage identifier (when type == storage).'), + ] = None + type: Annotated[Optional[str], Field(description='Resource type.')] = None + uptime: Annotated[ + Optional[int], + Field(description='Node uptime in seconds (when type in node,qemu,lxc).'), + ] = None + + +class ClusterResourcesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum22]], Field(description='')] = None + + +class Datum23(BaseModel): + upid: Annotated[Optional[str], Field(description='')] = None + + +class ClusterTasksGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum23]], Field(description='')] = None + + +ClusterOptionsGetResponse = ClusterReplicationIdGetResponse + + +ClusterOptionsPutResponse = ClusterReplicationPostResponse + + +class Datum24(BaseModel): + id: Annotated[Optional[str], Field(description='')] = None + ip: Annotated[ + Optional[str], Field(description='[node] IP of the resolved nodename.') + ] = None + level: Annotated[ + Optional[str], + Field( + description='[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.' + ), + ] = None + local: Annotated[ + Optional[int], + Field(description='[node] Indicates if this is the responding node.'), + ] = None + name: Annotated[Optional[str], Field(description='')] = None + nodeid: Annotated[ + Optional[int], + Field(description='[node] ID of the node from the corosync configuration.'), + ] = None + nodes: Annotated[ + Optional[int], + Field(description='[cluster] Nodes count, including offline nodes.'), + ] = None + online: Annotated[ + Optional[int], + Field(description='[node] Indicates if the node is online or offline.'), + ] = None + quorate: Annotated[ + Optional[int], + Field( + description='[cluster] Indicates if there is a majority of nodes online to make decisions' + ), + ] = None + type: Annotated[ + Optional[str], + Field( + description='Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.' + ), + ] = None + version: Annotated[ + Optional[int], + Field( + description='[cluster] Current version of the corosync configuration file.' + ), + ] = None + + +class ClusterStatusGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum24]], Field(description='')] = None + + +class ClusterNextidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[int], Field(description='The next free VMID.')] = None + + +class Datum25(BaseModel): + cpu: Annotated[Optional[float], Field(description='CPU utilization.')] = None + level: Annotated[Optional[str], Field(description='Support level.')] = None + maxcpu: Annotated[Optional[int], Field(description='Number of available CPUs.')] = ( + None + ) + maxmem: Annotated[ + Optional[int], Field(description='Number of available memory in bytes.') + ] = None + mem: Annotated[Optional[int], Field(description='Used memory in bytes.')] = None + node: Annotated[Optional[str], Field(description='The cluster node name.')] = None + ssl_fingerprint: Annotated[ + Optional[str], + Field(description='The SSL fingerprint for the node certificate.'), + ] = None + status: Annotated[Optional[str], Field(description='Node status.')] = None + uptime: Annotated[Optional[int], Field(description='Node uptime in seconds.')] = ( + None + ) + + +class NodesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum25]], Field(description='')] = None + + +NodesNodeGetResponse = ClusterGetResponse + + +class Datum26(BaseModel): + cpus: Annotated[Optional[float], Field(description='Maximum usable CPUs.')] = None + lock: Annotated[ + Optional[str], Field(description='The current config lock, if any.') + ] = None + maxdisk: Annotated[Optional[int], Field(description='Root disk size in bytes.')] = ( + None + ) + maxmem: Annotated[Optional[int], Field(description='Maximum memory in bytes.')] = ( + None + ) + name: Annotated[Optional[str], Field(description='VM name.')] = None + pid: Annotated[Optional[int], Field(description='PID of running qemu process.')] = ( + None + ) + qmpstatus: Annotated[Optional[str], Field(description='Qemu QMP agent status.')] = ( + None + ) + status: Annotated[Optional[str], Field(description='Qemu process status.')] = None + tags: Annotated[ + Optional[str], Field(description='The current configured tags, if any') + ] = None + uptime: Annotated[Optional[int], Field(description='Uptime.')] = None + vmid: Annotated[Optional[int], Field(description='The (unique) ID of the VM.')] = ( + None + ) + + +class NodesNodeQemuGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum26]], Field(description='')] = None + + +NodesNodeQemuPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidDeleteResponse = ClusterReplicationPostResponse + + +class Datum27(BaseModel): + subdir: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeQemuVmidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum27]], Field(description='')] = None + + +NodesNodeQemuVmidFirewallGetResponse = ClusterGetResponse + + +Datum28 = Datum3 + + +class NodesNodeQemuVmidFirewallRulesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum28]], Field(description='')] = None + + +NodesNodeQemuVmidFirewallRulesPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidFirewallRulesPosDeleteResponse = ClusterReplicationPostResponse + + +Data8 = Data2 + + +class NodesNodeQemuVmidFirewallRulesPosGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data8], Field(description='')] = None + + +NodesNodeQemuVmidFirewallRulesPosPutResponse = ClusterReplicationPostResponse + + +Datum29 = Datum7 + + +class NodesNodeQemuVmidFirewallAliasesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum29]], Field(description='')] = None + + +NodesNodeQemuVmidFirewallAliasesPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidFirewallAliasesNameDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidFirewallAliasesNameGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeQemuVmidFirewallAliasesNamePutResponse = ClusterReplicationPostResponse + + +Datum30 = Datum5 + + +class NodesNodeQemuVmidFirewallIpsetGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum30]], Field(description='')] = None + + +NodesNodeQemuVmidFirewallIpsetPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidFirewallIpsetNameDeleteResponse = ClusterReplicationPostResponse + + +Datum31 = Datum6 + + +class NodesNodeQemuVmidFirewallIpsetNameGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum31]], Field(description='')] = None + + +NodesNodeQemuVmidFirewallIpsetNamePostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidFirewallIpsetNameCidrDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidFirewallIpsetNameCidrGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeQemuVmidFirewallIpsetNameCidrPutResponse = ClusterReplicationPostResponse + + +class Data9(BaseModel): + dhcp: Annotated[Optional[int], Field(description='Enable DHCP.')] = None + enable: Annotated[ + Optional[int], Field(description='Enable/disable firewall rules.') + ] = None + ipfilter: Annotated[ + Optional[int], + Field( + description="Enable default IP filters. This is equivalent to adding an empty ipfilter-net 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." + ), + ] = None + log_level_in: Annotated[ + Optional[str], Field(description='Log level for incoming traffic.') + ] = None + log_level_out: Annotated[ + Optional[str], Field(description='Log level for outgoing traffic.') + ] = None + macfilter: Annotated[ + Optional[int], Field(description='Enable/disable MAC address filter.') + ] = None + ndp: Annotated[ + Optional[int], Field(description='Enable NDP (Neighbor Discovery Protocol).') + ] = None + policy_in: Annotated[Optional[str], Field(description='Input policy.')] = None + policy_out: Annotated[Optional[str], Field(description='Output policy.')] = None + radv: Annotated[ + Optional[int], Field(description='Allow sending Router Advertisement.') + ] = None + + +class NodesNodeQemuVmidFirewallOptionsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data9], Field(description='')] = None + + +NodesNodeQemuVmidFirewallOptionsPutResponse = ClusterReplicationPostResponse + + +class Datum32(BaseModel): + n: Annotated[Optional[int], Field(description='Line number')] = None + t: Annotated[Optional[str], Field(description='Line text')] = None + + +class NodesNodeQemuVmidFirewallLogGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum32]], Field(description='')] = None + + +class Datum33(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + name: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeQemuVmidFirewallRefsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum33]], Field(description='')] = None + + +class NodesNodeQemuVmidAgentGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[List[Dict[str, Any]]], + Field(description='Returns the list of Qemu Agent commands'), + ] = None + + +class NodesNodeQemuVmidAgentPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[Dict[str, Any]], + Field(description='Returns an object with a single `result` property.'), + ] = None + + +NodesNodeQemuVmidAgentFsfreezeFreezePostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentFsfreezeStatusPostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentFsfreezeThawPostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentFstrimPostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetFsinfoGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetHostNameGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetMemoryBlockInfoGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetMemoryBlocksGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetOsinfoGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetTimeGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetTimezoneGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetUsersGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentGetVcpusGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentInfoGetResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentNetworkGetInterfacesGetResponse = ( + NodesNodeQemuVmidAgentPostResponse +) + + +NodesNodeQemuVmidAgentPingPostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentShutdownPostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentSuspendDiskPostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentSuspendHybridPostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentSuspendRamPostResponse = NodesNodeQemuVmidAgentPostResponse + + +NodesNodeQemuVmidAgentSetUserPasswordPostResponse = NodesNodeQemuVmidAgentPostResponse + + +class Data10(BaseModel): + pid: Annotated[ + Optional[int], + Field(description='The PID of the process started by the guest-agent.'), + ] = None + + +class NodesNodeQemuVmidAgentExecPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data10], Field(description='')] = None + + +class Data11(BaseModel): + err_data: Annotated[ + Optional[str], Field(alias='err-data', description='stderr of the process') + ] = None + err_truncated: Annotated[ + Optional[int], + Field( + alias='err-truncated', description='true if stderr was not fully captured' + ), + ] = None + exitcode: Annotated[ + Optional[int], + Field(description='process exit code if it was normally terminated.'), + ] = None + exited: Annotated[ + Optional[int], Field(description='Tells if the given command has exited yet.') + ] = None + out_data: Annotated[ + Optional[str], Field(alias='out-data', description='stdout of the process') + ] = None + out_truncated: Annotated[ + Optional[int], + Field( + alias='out-truncated', description='true if stdout was not fully captured' + ), + ] = None + signal: Annotated[ + Optional[int], + Field( + description='signal number or exception code if the process was abnormally terminated.' + ), + ] = None + + +class NodesNodeQemuVmidAgentExecStatusGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data11], Field(description='')] = None + + +class Data12(BaseModel): + """ + Returns an object with a `content` property. + """ + + content: Annotated[ + Optional[str], Field(description='The content of the file, maximum 16777216') + ] = None + truncated: Annotated[ + Optional[int], + Field(description='If set to 1, the output is truncated and not complete'), + ] = None + + +class NodesNodeQemuVmidAgentFileReadGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[Data12], + Field(description='Returns an object with a `content` property.'), + ] = None + + +NodesNodeQemuVmidAgentFileWritePostResponse = ClusterReplicationPostResponse + + +class Data13(BaseModel): + filename: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeQemuVmidRrdGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data13], Field(description='')] = None + + +NodesNodeQemuVmidRrddataGetResponse = ClusterGetResponse + + +class Data14(BaseModel): + """ + The VM configuration. + """ + + acpi: Annotated[Optional[int], Field(description='Enable/disable ACPI.')] = None + agent: Annotated[ + Optional[str], + Field(description='Enable/disable Qemu GuestAgent and its properties.'), + ] = None + arch: Annotated[ + Optional[str], + Field(description='Virtual processor architecture. Defaults to the host.'), + ] = None + args: Annotated[ + Optional[str], Field(description='Arbitrary arguments passed to kvm.') + ] = None + audio0: Annotated[ + Optional[str], + Field( + description='Configure a audio device, useful in combination with QXL/Spice.' + ), + ] = None + autostart: Annotated[ + Optional[int], + Field(description='Automatic restart after crash (currently ignored).'), + ] = None + balloon: Annotated[ + Optional[int], + Field( + description='Amount of target RAM for the VM in MB. Using zero disables the ballon driver.' + ), + ] = None + bios: Annotated[Optional[str], Field(description='Select BIOS implementation.')] = ( + None + ) + boot: Annotated[ + Optional[str], + Field( + description="Specify guest boot order. Use with 'order=', usage with no key or 'legacy=' is deprecated." + ), + ] = None + bootdisk: Annotated[ + Optional[str], + Field( + description="Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead." + ), + ] = None + cdrom: Annotated[ + Optional[str], Field(description='This is an alias for option -ide2') + ] = None + cicustom: Annotated[ + Optional[str], + Field( + description='cloud-init: Specify custom files to replace the automatically generated ones at start.' + ), + ] = None + cipassword: Annotated[ + Optional[str], + Field( + 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.' + ), + ] = None + citype: Annotated[ + Optional[str], + Field( + 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.' + ), + ] = None + ciuser: Annotated[ + Optional[str], + Field( + description="cloud-init: User name to change ssh keys and password for instead of the image's configured default user." + ), + ] = None + cores: Annotated[ + Optional[int], Field(description='The number of cores per socket.') + ] = None + cpu: Annotated[Optional[str], Field(description='Emulated CPU type.')] = None + cpulimit: Annotated[Optional[float], Field(description='Limit of CPU usage.')] = ( + None + ) + cpuunits: Annotated[Optional[int], Field(description='CPU weight for a VM.')] = None + description: Annotated[ + Optional[str], + Field( + description='Description for the VM. Only used on the configuration web interface. This is saved as comment inside the configuration file.' + ), + ] = None + digest: Annotated[ + Optional[str], + Field( + description='SHA1 digest of configuration file. This can be used to prevent concurrent modifications.' + ), + ] = None + efidisk0: Annotated[ + Optional[str], Field(description='Configure a Disk for storing EFI vars') + ] = None + freeze: Annotated[ + Optional[int], + Field( + description="Freeze CPU at startup (use 'c' monitor command to start execution)." + ), + ] = None + hookscript: Annotated[ + Optional[str], + Field( + description='Script that will be executed during various steps in the vms lifetime.' + ), + ] = None + hostpci0: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci1: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci2: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci3: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci4: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci5: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci6: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci7: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci8: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci9: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci10: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci11: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci12: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci13: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci14: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci15: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci16: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci17: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci18: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci19: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci20: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci21: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci22: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci23: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci24: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci25: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci26: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci27: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci28: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hostpci29: Annotated[ + Optional[str], Field(description='Map host PCI devices into guest.') + ] = None + hotplug: Annotated[ + Optional[str], + Field( + description="Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Value '1' is an alias for the default 'network,disk,usb'." + ), + ] = None + hugepages: Annotated[ + Optional[str], Field(description='Enable/disable hugepages memory.') + ] = None + ide0: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide1: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide2: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide3: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide4: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide5: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide6: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide7: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide8: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide9: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide10: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide11: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide12: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide13: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide14: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide15: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide16: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide17: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide18: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide19: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide20: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide21: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide22: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide23: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide24: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide25: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide26: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide27: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide28: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ide29: Annotated[ + Optional[str], + Field(description='Use volume as IDE hard disk or CD-ROM (n is 0 to 3).'), + ] = None + ipconfig0: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig1: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig2: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig3: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig4: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig5: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig6: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig7: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig8: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig9: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig10: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig11: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig12: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig13: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig14: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig15: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig16: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig17: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig18: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig19: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig20: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig21: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig22: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig23: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig24: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig25: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig26: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig27: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig28: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ipconfig29: Annotated[ + Optional[str], + Field( + 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.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n" + ), + ] = None + ivshmem: Annotated[ + Optional[str], + Field( + description='Inter-VM shared memory. Useful for direct communication between VMs, or to the host.' + ), + ] = None + keephugepages: Annotated[ + Optional[int], + Field( + description='Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.' + ), + ] = None + keyboard: Annotated[ + Optional[str], + Field( + description="Keybord layout for vnc server. Default is read from the '/etc/pve/datacenter.cfg' configuration file.It should not be necessary to set it." + ), + ] = None + kvm: Annotated[ + Optional[int], Field(description='Enable/disable KVM hardware virtualization.') + ] = None + localtime: Annotated[ + Optional[int], + Field( + description='Set the real time clock to local time. This is enabled by default if ostype indicates a Microsoft OS.' + ), + ] = None + lock: Annotated[Optional[str], Field(description='Lock/unlock the VM.')] = None + machine: Annotated[ + Optional[str], Field(description='Specifies the Qemu machine type.') + ] = None + memory: Annotated[ + Optional[int], + Field( + description='Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.' + ), + ] = None + migrate_downtime: Annotated[ + Optional[float], + Field( + description='Set maximum tolerated downtime (in seconds) for migrations.' + ), + ] = None + migrate_speed: Annotated[ + Optional[int], + Field( + description='Set maximum speed (in MB/s) for migrations. Value 0 is no limit.' + ), + ] = None + name: Annotated[ + Optional[str], + Field( + description='Set a name for the VM. Only used on the configuration web interface.' + ), + ] = None + nameserver: Annotated[ + Optional[str], + Field( + description="cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set." + ), + ] = None + net0: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net1: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net2: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net3: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net4: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net5: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net6: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net7: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net8: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net9: Annotated[Optional[str], Field(description='Specify network devices.')] = None + net10: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net11: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net12: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net13: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net14: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net15: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net16: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net17: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net18: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net19: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net20: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net21: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net22: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net23: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net24: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net25: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net26: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net27: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net28: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + net29: Annotated[Optional[str], Field(description='Specify network devices.')] = ( + None + ) + numa: Annotated[Optional[int], Field(description='Enable/disable NUMA.')] = None + numa0: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa1: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa2: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa3: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa4: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa5: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa6: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa7: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa8: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa9: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa10: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa11: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa12: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa13: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa14: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa15: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa16: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa17: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa18: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa19: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa20: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa21: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa22: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa23: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa24: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa25: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa26: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa27: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa28: Annotated[Optional[str], Field(description='NUMA topology.')] = None + numa29: Annotated[Optional[str], Field(description='NUMA topology.')] = None + onboot: Annotated[ + Optional[int], + Field( + description='Specifies whether a VM will be started during system bootup.' + ), + ] = None + ostype: Annotated[ + Optional[str], Field(description='Specify guest operating system.') + ] = None + parallel0: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel1: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel2: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel3: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel4: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel5: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel6: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel7: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel8: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel9: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel10: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel11: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel12: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel13: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel14: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel15: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel16: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel17: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel18: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel19: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel20: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel21: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel22: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel23: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel24: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel25: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel26: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel27: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel28: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + parallel29: Annotated[ + Optional[str], Field(description='Map host parallel devices (n is 0 to 2).') + ] = None + protection: Annotated[ + Optional[int], + Field( + description='Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.' + ), + ] = None + reboot: Annotated[ + Optional[int], + Field(description="Allow reboot. If set to '0' the VM exit on reboot."), + ] = None + rng0: Annotated[ + Optional[str], + Field(description='Configure a VirtIO-based Random Number Generator.'), + ] = None + sata0: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata1: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata2: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata3: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata4: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata5: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata6: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata7: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata8: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata9: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata10: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata11: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata12: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata13: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata14: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata15: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata16: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata17: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata18: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata19: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata20: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata21: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata22: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata23: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata24: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata25: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata26: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata27: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata28: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + sata29: Annotated[ + Optional[str], + Field(description='Use volume as SATA hard disk or CD-ROM (n is 0 to 5).'), + ] = None + scsi0: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi1: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi2: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi3: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi4: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi5: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi6: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi7: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi8: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi9: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi10: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi11: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi12: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi13: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi14: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi15: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi16: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi17: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi18: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi19: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi20: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi21: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi22: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi23: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi24: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi25: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi26: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi27: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi28: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsi29: Annotated[ + Optional[str], + Field(description='Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).'), + ] = None + scsihw: Annotated[Optional[str], Field(description='SCSI controller model')] = None + searchdomain: Annotated[ + Optional[str], + Field( + description="cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set." + ), + ] = None + serial0: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial1: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial2: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial3: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial4: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial5: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial6: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial7: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial8: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial9: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial10: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial11: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial12: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial13: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial14: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial15: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial16: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial17: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial18: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial19: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial20: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial21: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial22: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial23: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial24: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial25: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial26: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial27: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial28: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + serial29: Annotated[ + Optional[str], + Field(description='Create a serial device inside the VM (n is 0 to 3)'), + ] = None + shares: Annotated[ + Optional[int], + Field( + 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.' + ), + ] = None + smbios1: Annotated[ + Optional[str], Field(description='Specify SMBIOS type 1 fields.') + ] = None + smp: Annotated[ + Optional[int], + Field(description='The number of CPUs. Please use option -sockets instead.'), + ] = None + sockets: Annotated[ + Optional[int], Field(description='The number of CPU sockets.') + ] = None + spice_enhancements: Annotated[ + Optional[str], Field(description='Configure additional enhancements for SPICE.') + ] = None + sshkeys: Annotated[ + Optional[str], + Field( + description='cloud-init: Setup public SSH keys (one key per line, OpenSSH format).' + ), + ] = None + startdate: Annotated[ + Optional[str], + Field( + 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'." + ), + ] = None + startup: Annotated[ + Optional[str], + Field( + 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." + ), + ] = None + tablet: Annotated[ + Optional[int], Field(description='Enable/disable the USB tablet device.') + ] = None + tags: Annotated[ + Optional[str], + Field(description='Tags of the VM. This is only meta information.'), + ] = None + tdf: Annotated[ + Optional[int], Field(description='Enable/disable time drift fix.') + ] = None + template: Annotated[ + Optional[int], Field(description='Enable/disable Template.') + ] = None + unused0: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused1: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused2: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused3: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused4: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused5: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused6: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused7: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused8: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused9: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused10: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused11: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused12: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused13: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused14: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused15: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused16: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused17: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused18: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused19: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused20: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused21: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused22: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused23: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused24: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused25: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused26: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused27: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused28: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused29: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + usb0: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb1: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb2: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb3: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb4: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb5: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb6: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb7: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb8: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb9: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb10: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb11: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb12: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb13: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb14: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb15: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb16: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb17: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb18: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb19: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb20: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb21: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb22: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb23: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb24: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb25: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb26: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb27: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb28: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + usb29: Annotated[ + Optional[str], Field(description='Configure an USB device (n is 0 to 4).') + ] = None + vcpus: Annotated[ + Optional[int], Field(description='Number of hotplugged vcpus.') + ] = None + vga: Annotated[Optional[str], Field(description='Configure the VGA hardware.')] = ( + None + ) + virtio0: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio1: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio2: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio3: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio4: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio5: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio6: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio7: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio8: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio9: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio10: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio11: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio12: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio13: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio14: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio15: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio16: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio17: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio18: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio19: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio20: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio21: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio22: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio23: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio24: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio25: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio26: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio27: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio28: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + virtio29: Annotated[ + Optional[str], + Field(description='Use volume as VIRTIO hard disk (n is 0 to 15).'), + ] = None + vmgenid: Annotated[ + Optional[str], + Field( + description="Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly." + ), + ] = None + vmstatestorage: Annotated[ + Optional[str], Field(description='Default storage for VM state volumes/files.') + ] = None + watchdog: Annotated[ + Optional[str], Field(description='Create a virtual hardware watchdog device.') + ] = None + + +class NodesNodeQemuVmidConfigGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data14], Field(description='The VM configuration.')] = None + + +NodesNodeQemuVmidConfigPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidConfigPutResponse = ClusterReplicationPostResponse + + +class Datum34(BaseModel): + delete: Annotated[ + Optional[int], + Field( + description='Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.' + ), + ] = None + key: Annotated[Optional[str], Field(description='Configuration option name.')] = ( + None + ) + pending: Annotated[Optional[str], Field(description='Pending value.')] = None + value: Annotated[Optional[str], Field(description='Current value.')] = None + + +class NodesNodeQemuVmidPendingGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum34]], Field(description='')] = None + + +NodesNodeQemuVmidUnlinkPutResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidVncproxyPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidTermproxyPostResponse = ClusterReplicationPostResponse + + +class Data15(BaseModel): + port: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeQemuVmidVncwebsocketGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data15], Field(description='')] = None + + +class NodesNodeQemuVmidSpiceproxyPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[str], + Field( + description="Returned values can be directly passed to the 'remote-viewer' application." + ), + ] = None + + +Datum35 = Datum27 + + +class NodesNodeQemuVmidStatusGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum35]], Field(description='')] = None + + +class Data16(BaseModel): + agent: Annotated[ + Optional[int], Field(description='Qemu GuestAgent enabled in config.') + ] = None + cpus: Annotated[Optional[float], Field(description='Maximum usable CPUs.')] = None + ha: Annotated[ + Optional[Dict[str, Any]], Field(description='HA manager service status.') + ] = None + lock: Annotated[ + Optional[str], Field(description='The current config lock, if any.') + ] = None + maxdisk: Annotated[Optional[int], Field(description='Root disk size in bytes.')] = ( + None + ) + maxmem: Annotated[Optional[int], Field(description='Maximum memory in bytes.')] = ( + None + ) + name: Annotated[Optional[str], Field(description='VM name.')] = None + pid: Annotated[Optional[int], Field(description='PID of running qemu process.')] = ( + None + ) + qmpstatus: Annotated[Optional[str], Field(description='Qemu QMP agent status.')] = ( + None + ) + spice: Annotated[ + Optional[int], Field(description='Qemu VGA configuration supports spice.') + ] = None + status: Annotated[Optional[str], Field(description='Qemu process status.')] = None + tags: Annotated[ + Optional[str], Field(description='The current configured tags, if any') + ] = None + uptime: Annotated[Optional[int], Field(description='Uptime.')] = None + vmid: Annotated[Optional[int], Field(description='The (unique) ID of the VM.')] = ( + None + ) + + +class NodesNodeQemuVmidStatusCurrentGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data16], Field(description='')] = None + + +NodesNodeQemuVmidStatusStartPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidStatusStopPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidStatusResetPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidStatusShutdownPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidStatusRebootPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidStatusSuspendPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidStatusResumePostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidSendkeyPutResponse = ClusterReplicationPostResponse + + +class Data17(BaseModel): + hasFeature: Annotated[Optional[int], Field(description='')] = None + nodes: Annotated[Optional[List[str]], Field(description='')] = None + + +class NodesNodeQemuVmidFeatureGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data17], Field(description='')] = None + + +NodesNodeQemuVmidClonePostResponse = ClusterReplicationPostResponse + + +class NodesNodeQemuVmidMoveDiskPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[str], Field(description='the task ID.')] = None + + +class Data18(BaseModel): + allowed_nodes: Annotated[ + Optional[List], + Field( + description='List nodes allowed for offline migration, only passed if VM is offline' + ), + ] = None + local_disks: Annotated[ + Optional[List], + Field( + description='List local disks including CD-Rom, unsused and not referenced disks' + ), + ] = None + local_resources: Annotated[ + Optional[List], Field(description='List local resources e.g. pci, usb') + ] = None + not_allowed_nodes: Annotated[ + Optional[Dict[str, Any]], + Field( + description='List not allowed nodes with additional informations, only passed if VM is offline' + ), + ] = None + running: Annotated[Optional[int], Field(description='')] = None + + +class NodesNodeQemuVmidMigrateGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data18], Field(description='')] = None + + +NodesNodeQemuVmidMigratePostResponse = NodesNodeQemuVmidMoveDiskPostResponse + + +NodesNodeQemuVmidMonitorPostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidResizePutResponse = ClusterReplicationPostResponse + + +class Datum36(BaseModel): + description: Annotated[ + Optional[str], Field(description='Snapshot description.') + ] = None + name: Annotated[ + Optional[str], + Field( + description="Snapshot identifier. Value 'current' identifies the current VM." + ), + ] = None + parent: Annotated[ + Optional[str], Field(description='Parent snapshot identifier.') + ] = None + snaptime: Annotated[Optional[int], Field(description='Snapshot creation time')] = ( + None + ) + vmstate: Annotated[Optional[int], Field(description='Snapshot includes RAM.')] = ( + None + ) + + +class NodesNodeQemuVmidSnapshotGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum36]], Field(description='')] = None + + +NodesNodeQemuVmidSnapshotPostResponse = NodesNodeQemuVmidMoveDiskPostResponse + + +NodesNodeQemuVmidSnapshotSnapnameDeleteResponse = NodesNodeQemuVmidMoveDiskPostResponse + + +NodesNodeQemuVmidSnapshotSnapnameGetResponse = ClusterGetResponse + + +NodesNodeQemuVmidSnapshotSnapnameConfigGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeQemuVmidSnapshotSnapnameConfigPutResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidSnapshotSnapnameRollbackPostResponse = ( + NodesNodeQemuVmidMoveDiskPostResponse +) + + +NodesNodeQemuVmidTemplatePostResponse = ClusterReplicationPostResponse + + +NodesNodeQemuVmidCloudinitDumpGetResponse = ClusterReplicationPostResponse + + +class Datum37(BaseModel): + custom: Annotated[ + Optional[int], Field(description='True if this is a custom CPU model.') + ] = None + name: Annotated[ + Optional[str], + Field( + description="Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models." + ), + ] = None + vendor: Annotated[ + Optional[str], + Field( + description="CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models." + ), + ] = None + + +class NodesNodeCpuGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum37]], Field(description='')] = None + + +class Datum38(BaseModel): + cpus: Annotated[Optional[float], Field(description='Maximum usable CPUs.')] = None + lock: Annotated[ + Optional[str], Field(description='The current config lock, if any.') + ] = None + maxdisk: Annotated[Optional[int], Field(description='Root disk size in bytes.')] = ( + None + ) + maxmem: Annotated[Optional[int], Field(description='Maximum memory in bytes.')] = ( + None + ) + maxswap: Annotated[ + Optional[int], Field(description='Maximum SWAP memory in bytes.') + ] = None + name: Annotated[Optional[str], Field(description='Container name.')] = None + status: Annotated[Optional[str], Field(description='LXC Container status.')] = None + tags: Annotated[ + Optional[str], Field(description='The current configured tags, if any.') + ] = None + uptime: Annotated[Optional[int], Field(description='Uptime.')] = None + vmid: Annotated[Optional[int], Field(description='The (unique) ID of the VM.')] = ( + None + ) + + +class NodesNodeLxcGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum38]], Field(description='')] = None + + +NodesNodeLxcPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidDeleteResponse = ClusterReplicationPostResponse + + +Datum39 = Datum27 + + +class NodesNodeLxcVmidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum39]], Field(description='')] = None + + +class Data19(BaseModel): + arch: Annotated[Optional[str], Field(description='OS architecture type.')] = None + cmode: Annotated[ + Optional[str], + Field( + 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)." + ), + ] = None + console: Annotated[ + Optional[int], + Field(description='Attach a console device (/dev/console) to the container.'), + ] = None + cores: Annotated[ + Optional[int], + Field( + description='The number of cores assigned to the container. A container can use all available cores by default.' + ), + ] = None + cpulimit: Annotated[ + Optional[float], + Field( + 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." + ), + ] = None + cpuunits: Annotated[ + Optional[int], + Field( + 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 the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.' + ), + ] = None + debug: Annotated[ + Optional[int], + Field( + description='Try to be more verbose. For now this only enables debug log-level on start.' + ), + ] = None + description: Annotated[ + Optional[str], + Field( + description='Container description. Only used on the configuration web interface.' + ), + ] = None + digest: Annotated[ + Optional[str], + Field( + description='SHA1 digest of configuration file. This can be used to prevent concurrent modifications.' + ), + ] = None + features: Annotated[ + Optional[str], + Field(description='Allow containers access to advanced features.'), + ] = None + hookscript: Annotated[ + Optional[str], + Field( + description='Script that will be exectued during various steps in the containers lifetime.' + ), + ] = None + hostname: Annotated[ + Optional[str], Field(description='Set a host name for the container.') + ] = None + lock: Annotated[Optional[str], Field(description='Lock/unlock the VM.')] = None + lxc: Annotated[ + Optional[List[List[str]]], + Field( + description='Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).' + ), + ] = None + memory: Annotated[ + Optional[int], Field(description='Amount of RAM for the VM in MB.') + ] = None + mp0: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp1: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp2: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp3: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp4: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp5: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp6: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp7: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp8: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp9: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp10: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp11: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp12: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp13: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp14: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp15: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp16: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp17: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp18: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp19: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp20: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp21: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp22: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp23: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp24: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp25: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp26: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp27: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp28: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + mp29: Annotated[ + Optional[str], Field(description='Use volume as container mount point.') + ] = None + nameserver: Annotated[ + Optional[str], + Field( + 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.' + ), + ] = None + net0: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net1: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net2: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net3: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net4: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net5: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net6: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net7: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net8: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net9: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net10: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net11: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net12: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net13: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net14: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net15: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net16: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net17: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net18: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net19: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net20: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net21: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net22: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net23: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net24: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net25: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net26: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net27: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net28: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + net29: Annotated[ + Optional[str], + Field(description='Specifies network interfaces for the container.'), + ] = None + onboot: Annotated[ + Optional[int], + Field( + description='Specifies whether a VM will be started during system bootup.' + ), + ] = None + ostype: Annotated[ + Optional[str], + Field( + description="OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/.common.conf. Value 'unmanaged' can be used to skip and OS specific setup." + ), + ] = None + protection: Annotated[ + Optional[int], + Field( + description="Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation." + ), + ] = None + rootfs: Annotated[ + Optional[str], Field(description='Use volume as container root.') + ] = None + searchdomain: Annotated[ + Optional[str], + Field( + description='Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.' + ), + ] = None + startup: Annotated[ + Optional[str], + Field( + 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." + ), + ] = None + swap: Annotated[ + Optional[int], Field(description='Amount of SWAP for the VM in MB.') + ] = None + tags: Annotated[ + Optional[str], + Field(description='Tags of the Container. This is only meta information.'), + ] = None + template: Annotated[ + Optional[int], Field(description='Enable/disable Template.') + ] = None + timezone: Annotated[ + Optional[str], + Field( + 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" + ), + ] = None + tty: Annotated[ + Optional[int], + Field(description='Specify the number of tty available to the container'), + ] = None + unprivileged: Annotated[ + Optional[int], + Field( + description='Makes the container run as unprivileged user. (Should not be modified manually.)' + ), + ] = None + unused0: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused1: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused2: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused3: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused4: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused5: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused6: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused7: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused8: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused9: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused10: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused11: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused12: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused13: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused14: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused15: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused16: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused17: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused18: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused19: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused20: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused21: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused22: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused23: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused24: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused25: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused26: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused27: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused28: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + unused29: Annotated[ + Optional[str], + Field( + description='Reference to unused volumes. This is used internally, and should not be modified manually.' + ), + ] = None + + +class NodesNodeLxcVmidConfigGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data19], Field(description='')] = None + + +NodesNodeLxcVmidConfigPutResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidStatusGetResponse = NodesNodeLxcVmidGetResponse + + +class Data20(BaseModel): + cpus: Annotated[Optional[float], Field(description='Maximum usable CPUs.')] = None + ha: Annotated[ + Optional[Dict[str, Any]], Field(description='HA manager service status.') + ] = None + lock: Annotated[ + Optional[str], Field(description='The current config lock, if any.') + ] = None + maxdisk: Annotated[Optional[int], Field(description='Root disk size in bytes.')] = ( + None + ) + maxmem: Annotated[Optional[int], Field(description='Maximum memory in bytes.')] = ( + None + ) + maxswap: Annotated[ + Optional[int], Field(description='Maximum SWAP memory in bytes.') + ] = None + name: Annotated[Optional[str], Field(description='Container name.')] = None + status: Annotated[Optional[str], Field(description='LXC Container status.')] = None + tags: Annotated[ + Optional[str], Field(description='The current configured tags, if any.') + ] = None + uptime: Annotated[Optional[int], Field(description='Uptime.')] = None + vmid: Annotated[Optional[int], Field(description='The (unique) ID of the VM.')] = ( + None + ) + + +class NodesNodeLxcVmidStatusCurrentGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data20], Field(description='')] = None + + +NodesNodeLxcVmidStatusStartPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidStatusStopPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidStatusShutdownPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidStatusSuspendPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidStatusResumePostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidStatusRebootPostResponse = ClusterReplicationPostResponse + + +class Datum41(BaseModel): + description: Annotated[ + Optional[str], Field(description='Snapshot description.') + ] = None + name: Annotated[ + Optional[str], + Field( + description="Snapshot identifier. Value 'current' identifies the current VM." + ), + ] = None + parent: Annotated[ + Optional[str], Field(description='Parent snapshot identifier.') + ] = None + snaptime: Annotated[Optional[int], Field(description='Snapshot creation time')] = ( + None + ) + + +class NodesNodeLxcVmidSnapshotGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum41]], Field(description='')] = None + + +NodesNodeLxcVmidSnapshotPostResponse = NodesNodeQemuVmidMoveDiskPostResponse + + +NodesNodeLxcVmidSnapshotSnapnameDeleteResponse = NodesNodeQemuVmidMoveDiskPostResponse + + +NodesNodeLxcVmidSnapshotSnapnameGetResponse = ClusterGetResponse + + +NodesNodeLxcVmidSnapshotSnapnameRollbackPostResponse = ( + NodesNodeQemuVmidMoveDiskPostResponse +) + + +NodesNodeLxcVmidSnapshotSnapnameConfigGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeLxcVmidSnapshotSnapnameConfigPutResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidFirewallGetResponse = ClusterGetResponse + + +Datum42 = Datum3 + + +class NodesNodeLxcVmidFirewallRulesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum42]], Field(description='')] = None + + +NodesNodeLxcVmidFirewallRulesPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidFirewallRulesPosDeleteResponse = ClusterReplicationPostResponse + + +Data21 = Data2 + + +class NodesNodeLxcVmidFirewallRulesPosGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data21], Field(description='')] = None + + +NodesNodeLxcVmidFirewallRulesPosPutResponse = ClusterReplicationPostResponse + + +Datum43 = Datum7 + + +class NodesNodeLxcVmidFirewallAliasesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum43]], Field(description='')] = None + + +NodesNodeLxcVmidFirewallAliasesPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidFirewallAliasesNameDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidFirewallAliasesNameGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeLxcVmidFirewallAliasesNamePutResponse = ClusterReplicationPostResponse + + +Datum44 = Datum5 + + +class NodesNodeLxcVmidFirewallIpsetGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum44]], Field(description='')] = None + + +NodesNodeLxcVmidFirewallIpsetPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidFirewallIpsetNameDeleteResponse = ClusterReplicationPostResponse + + +Datum45 = Datum6 + + +class NodesNodeLxcVmidFirewallIpsetNameGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum45]], Field(description='')] = None + + +NodesNodeLxcVmidFirewallIpsetNamePostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidFirewallIpsetNameCidrDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidFirewallIpsetNameCidrGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeLxcVmidFirewallIpsetNameCidrPutResponse = ClusterReplicationPostResponse + + +Data22 = Data9 + + +class NodesNodeLxcVmidFirewallOptionsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data22], Field(description='')] = None + + +NodesNodeLxcVmidFirewallOptionsPutResponse = ClusterReplicationPostResponse + + +Datum46 = Datum32 + + +class NodesNodeLxcVmidFirewallLogGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum46]], Field(description='')] = None + + +Datum47 = Datum33 + + +class NodesNodeLxcVmidFirewallRefsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum47]], Field(description='')] = None + + +Data23 = Data13 + + +class NodesNodeLxcVmidRrdGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data23], Field(description='')] = None + + +NodesNodeLxcVmidRrddataGetResponse = ClusterGetResponse + + +NodesNodeLxcVmidVncproxyPostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidTermproxyPostResponse = ClusterReplicationPostResponse + + +Data24 = Data15 + + +class NodesNodeLxcVmidVncwebsocketGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data24], Field(description='')] = None + + +NodesNodeLxcVmidSpiceproxyPostResponse = NodesNodeQemuVmidSpiceproxyPostResponse + + +NodesNodeLxcVmidMigratePostResponse = NodesNodeQemuVmidMoveDiskPostResponse + + +class Data25(BaseModel): + hasFeature: Annotated[Optional[int], Field(description='')] = None + + +class NodesNodeLxcVmidFeatureGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data25], Field(description='')] = None + + +NodesNodeLxcVmidTemplatePostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidClonePostResponse = ClusterReplicationPostResponse + + +NodesNodeLxcVmidResizePutResponse = NodesNodeQemuVmidMoveDiskPostResponse + + +NodesNodeLxcVmidMoveVolumePostResponse = ClusterReplicationPostResponse + + +class Datum48(BaseModel): + delete: Annotated[ + Optional[int], + Field(description='Indicates a pending delete request if present and not 0.'), + ] = None + key: Annotated[Optional[str], Field(description='Configuration option name.')] = ( + None + ) + pending: Annotated[Optional[str], Field(description='Pending value.')] = None + value: Annotated[Optional[str], Field(description='Current value.')] = None + + +class NodesNodeLxcVmidPendingGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum48]], Field(description='')] = None + + +NodesNodeCephGetResponse = ClusterGetResponse + + +NodesNodeCephOsdGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeCephOsdPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephOsdOsdidDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeCephOsdOsdidInPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephOsdOsdidOutPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephOsdOsdidScrubPostResponse = ClusterReplicationPostResponse + + +class Datum49(BaseModel): + addr: Annotated[Optional[str], Field(description='')] = None + host: Annotated[Optional[str], Field(description='')] = None + name: Annotated[Optional[str], Field(description='The name (ID) for the MDS')] = ( + None + ) + rank: Annotated[Optional[int], Field(description='')] = None + standby_replay: Annotated[ + Optional[int], + Field( + description='If true, the standby MDS is polling the active MDS for faster recovery (hot standby).' + ), + ] = None + state: Annotated[Optional[str], Field(description='State of the MDS')] = None + + +class NodesNodeCephMdsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum49]], Field(description='')] = None + + +NodesNodeCephMdsNameDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeCephMdsNamePostResponse = ClusterReplicationPostResponse + + +class Datum50(BaseModel): + addr: Annotated[Optional[str], Field(description='')] = None + host: Annotated[Optional[str], Field(description='')] = None + name: Annotated[Optional[str], Field(description='The name (ID) for the MGR')] = ( + None + ) + state: Annotated[Optional[str], Field(description='State of the MGR')] = None + + +class NodesNodeCephMgrGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum50]], Field(description='')] = None + + +NodesNodeCephMgrIdDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeCephMgrIdPostResponse = ClusterReplicationPostResponse + + +class Datum51(BaseModel): + addr: Annotated[Optional[str], Field(description='')] = None + host: Annotated[Optional[str], Field(description='')] = None + name: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeCephMonGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum51]], Field(description='')] = None + + +NodesNodeCephMonMonidDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeCephMonMonidPostResponse = ClusterReplicationPostResponse + + +class Datum52(BaseModel): + data_pool: Annotated[ + Optional[str], Field(description='The name of the data pool.') + ] = None + metadata_pool: Annotated[ + Optional[str], Field(description='The name of the metadata pool.') + ] = None + name: Annotated[Optional[str], Field(description='The ceph filesystem name.')] = ( + None + ) + + +class NodesNodeCephFsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum52]], Field(description='')] = None + + +NodesNodeCephFsNamePostResponse = ClusterReplicationPostResponse + + +class Datum53(BaseModel): + dev: Annotated[Optional[str], Field(description='')] = None + gpt: Annotated[Optional[int], Field(description='')] = None + model: Annotated[Optional[str], Field(description='')] = None + osdid: Annotated[Optional[int], Field(description='')] = None + serial: Annotated[Optional[str], Field(description='')] = None + size: Annotated[Optional[int], Field(description='')] = None + used: Annotated[Optional[str], Field(description='')] = None + vendor: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeCephDisksGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum53]], Field(description='')] = None + + +NodesNodeCephConfigGetResponse = ClusterReplicationPostResponse + + +class Datum54(BaseModel): + can_update_at_runtime: Annotated[Optional[int], Field(description='')] = None + level: Annotated[Optional[str], Field(description='')] = None + mask: Annotated[Optional[str], Field(description='')] = None + name: Annotated[Optional[str], Field(description='')] = None + section: Annotated[Optional[str], Field(description='')] = None + value: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeCephConfigdbGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum54]], Field(description='')] = None + + +NodesNodeCephInitPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephStopPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephStartPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephRestartPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephStatusGetResponse = ClusterReplicationIdGetResponse + + +class Datum55(BaseModel): + bytes_used: Annotated[Optional[int], Field(description='')] = None + crush_rule: Annotated[Optional[int], Field(description='')] = None + crush_rule_name: Annotated[Optional[str], Field(description='')] = None + min_size: Annotated[Optional[int], Field(description='')] = None + percent_used: Annotated[Optional[float], Field(description='')] = None + pg_autoscale_mode: Annotated[Optional[str], Field(description='')] = None + pg_num: Annotated[Optional[int], Field(description='')] = None + pool: Annotated[Optional[int], Field(description='')] = None + pool_name: Annotated[Optional[str], Field(description='')] = None + size: Annotated[Optional[int], Field(description='')] = None + + +class NodesNodeCephPoolsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum55]], Field(description='')] = None + + +NodesNodeCephPoolsPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephPoolsNameDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeCephPoolsNamePutResponse = ClusterReplicationPostResponse + + +NodesNodeCephFlagsGetResponse = ClusterReplicationPostResponse + + +NodesNodeCephFlagsFlagDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeCephFlagsFlagPostResponse = ClusterReplicationPostResponse + + +NodesNodeCephCrushGetResponse = ClusterReplicationPostResponse + + +Datum56 = Datum32 + + +class NodesNodeCephLogGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum56]], Field(description='')] = None + + +NodesNodeCephRulesGetResponse = ClusterGetResponse + + +NodesNodeVzdumpPostResponse = ClusterReplicationPostResponse + + +NodesNodeVzdumpExtractconfigGetResponse = ClusterReplicationPostResponse + + +NodesNodeServicesGetResponse = ClusterGetResponse + + +Datum57 = Datum27 + + +class NodesNodeServicesServiceGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum57]], Field(description='')] = None + + +NodesNodeServicesServiceStateGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeServicesServiceStartPostResponse = ClusterReplicationPostResponse + + +NodesNodeServicesServiceStopPostResponse = ClusterReplicationPostResponse + + +NodesNodeServicesServiceRestartPostResponse = ClusterReplicationPostResponse + + +NodesNodeServicesServiceReloadPostResponse = ClusterReplicationPostResponse + + +NodesNodeSubscriptionDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeSubscriptionGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeSubscriptionPostResponse = ClusterReplicationPostResponse + + +NodesNodeSubscriptionPutResponse = ClusterReplicationPostResponse + + +NodesNodeNetworkDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeNetworkGetResponse = ClusterGetResponse + + +NodesNodeNetworkPostResponse = ClusterReplicationPostResponse + + +NodesNodeNetworkPutResponse = ClusterReplicationPostResponse + + +NodesNodeNetworkIfaceDeleteResponse = ClusterReplicationPostResponse + + +class Data26(BaseModel): + method: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeNetworkIfaceGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data26], Field(description='')] = None + + +NodesNodeNetworkIfacePutResponse = ClusterReplicationPostResponse + + +class Datum58(BaseModel): + endtime: Annotated[Optional[int], Field(description='')] = None + id: Annotated[Optional[str], Field(description='')] = None + node: Annotated[Optional[str], Field(description='')] = None + pid: Annotated[Optional[int], Field(description='')] = None + pstart: Annotated[Optional[int], Field(description='')] = None + starttime: Annotated[Optional[int], Field(description='')] = None + status: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + upid: Annotated[Optional[str], Field(description='')] = None + user: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeTasksGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum58]], Field(description='')] = None + + +NodesNodeTasksUpidDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeTasksUpidGetResponse = ClusterGetResponse + + +Datum59 = Datum32 + + +class NodesNodeTasksUpidLogGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum59]], Field(description='')] = None + + +class Data27(BaseModel): + pid: Annotated[Optional[int], Field(description='')] = None + status: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeTasksUpidStatusGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data27], Field(description='')] = None + + +class Datum60(BaseModel): + method: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeScanGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum60]], Field(description='')] = None + + +class Datum61(BaseModel): + pool: Annotated[Optional[str], Field(description='ZFS pool name.')] = None + + +class NodesNodeScanZfsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum61]], Field(description='')] = None + + +class Datum62(BaseModel): + options: Annotated[Optional[str], Field(description='NFS export options.')] = None + path: Annotated[Optional[str], Field(description='The exported path.')] = None + + +class NodesNodeScanNfsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum62]], Field(description='')] = None + + +class Datum63(BaseModel): + description: Annotated[ + Optional[str], Field(description='Descriptive text from server.') + ] = None + share: Annotated[Optional[str], Field(description='The cifs share name.')] = None + + +class NodesNodeScanCifsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum63]], Field(description='')] = None + + +class Datum64(BaseModel): + volname: Annotated[Optional[str], Field(description='The volume name.')] = None + + +class NodesNodeScanGlusterfsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum64]], Field(description='')] = None + + +class Datum65(BaseModel): + portal: Annotated[Optional[str], Field(description='The iSCSI portal name.')] = None + target: Annotated[Optional[str], Field(description='The iSCSI target name.')] = None + + +class NodesNodeScanIscsiGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum65]], Field(description='')] = None + + +class Datum66(BaseModel): + vg: Annotated[ + Optional[str], Field(description='The LVM logical volume group name.') + ] = None + + +class NodesNodeScanLvmGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum66]], Field(description='')] = None + + +class Datum67(BaseModel): + lv: Annotated[ + Optional[str], Field(description='The LVM Thin Pool name (LVM logical volume).') + ] = None + + +class NodesNodeScanLvmthinGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum67]], Field(description='')] = None + + +class Datum68(BaseModel): + busnum: Annotated[Optional[int], Field(description='')] = None + class_: Annotated[Optional[int], Field(alias='class', description='')] = None + devnum: Annotated[Optional[int], Field(description='')] = None + level: Annotated[Optional[int], Field(description='')] = None + manufacturer: Annotated[Optional[str], Field(description='')] = None + port: Annotated[Optional[int], Field(description='')] = None + prodid: Annotated[Optional[str], Field(description='')] = None + product: Annotated[Optional[str], Field(description='')] = None + serial: Annotated[Optional[str], Field(description='')] = None + speed: Annotated[Optional[str], Field(description='')] = None + usbpath: Annotated[Optional[str], Field(description='')] = None + vendid: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeScanUsbGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum68]], Field(description='')] = None + + +class Datum69(BaseModel): + type: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeHardwareGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum69]], Field(description='')] = None + + +class Datum70(BaseModel): + class_: Annotated[ + Optional[str], Field(alias='class', description='The PCI Class of the device.') + ] = None + device: Annotated[Optional[str], Field(description='The Device ID.')] = None + device_name: Annotated[Optional[str], Field(description='')] = None + id: Annotated[Optional[str], Field(description='The PCI ID.')] = None + iommugroup: Annotated[ + Optional[int], + Field( + description='The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.' + ), + ] = None + mdev: Annotated[ + Optional[int], + Field( + description='If set, marks that the device is capable of creating mediated devices.' + ), + ] = None + subsystem_device: Annotated[ + Optional[str], Field(description='The Subsystem Device ID.') + ] = None + subsystem_device_name: Annotated[Optional[str], Field(description='')] = None + subsystem_vendor: Annotated[ + Optional[str], Field(description='The Subsystem Vendor ID.') + ] = None + subsystem_vendor_name: Annotated[Optional[str], Field(description='')] = None + vendor: Annotated[Optional[str], Field(description='The Vendor ID.')] = None + vendor_name: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeHardwarePciGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum70]], Field(description='')] = None + + +Datum71 = Datum60 + + +class NodesNodeHardwarePciPciidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum71]], Field(description='')] = None + + +class Datum72(BaseModel): + available: Annotated[ + Optional[int], + Field(description='The number of still available instances of this type.'), + ] = None + description: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='The name of the mdev type.')] = ( + None + ) + + +class NodesNodeHardwarePciPciidMdevGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum72]], Field(description='')] = None + + +class Datum73(BaseModel): + active: Annotated[ + Optional[int], Field(description='Set when storage is accessible.') + ] = None + avail: Annotated[ + Optional[int], Field(description='Available storage space in bytes.') + ] = None + content: Annotated[ + Optional[str], Field(description='Allowed storage content types.') + ] = None + enabled: Annotated[ + Optional[int], Field(description='Set when storage is enabled (not disabled).') + ] = None + shared: Annotated[ + Optional[int], Field(description='Shared flag from storage configuration.') + ] = None + storage: Annotated[Optional[str], Field(description='The storage identifier.')] = ( + None + ) + total: Annotated[ + Optional[int], Field(description='Total storage space in bytes.') + ] = None + type: Annotated[Optional[str], Field(description='Storage type.')] = None + used: Annotated[ + Optional[int], Field(description='Used storage space in bytes.') + ] = None + used_fraction: Annotated[ + Optional[float], Field(description='Used fraction (used/total).') + ] = None + + +class NodesNodeStorageGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum73]], Field(description='')] = None + + +Datum74 = Datum27 + + +class NodesNodeStorageStorageGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum74]], Field(description='')] = None + + +NodesNodeStorageStoragePrunebackupsDeleteResponse = ClusterReplicationPostResponse + + +class Datum75(BaseModel): + ctime: Annotated[ + Optional[int], + Field( + description='Creation time of the backup (seconds since the UNIX epoch).' + ), + ] = None + mark: Annotated[ + Optional[str], + Field( + description="Whether the backup would be kept or removed. For backups that don't use the standard naming scheme, it's 'protected'." + ), + ] = None + type: Annotated[ + Optional[str], Field(description="One of 'qemu', 'lxc', 'openvz' or 'unknown'.") + ] = None + vmid: Annotated[ + Optional[int], Field(description='The VM the backup belongs to.') + ] = None + volid: Annotated[Optional[str], Field(description='Backup volume ID.')] = None + + +class NodesNodeStorageStoragePrunebackupsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum75]], Field(description='')] = None + + +class Verification(BaseModel): + """ + Last backup verification result, only useful for PBS storages. + """ + + state: Annotated[ + Optional[str], Field(description='Last backup verification state.') + ] = None + upid: Annotated[ + Optional[str], Field(description='Last backup verification UPID.') + ] = None + + +class Datum76(BaseModel): + ctime: Annotated[ + Optional[int], + Field(description='Creation time (seconds since the UNIX Epoch).'), + ] = None + format: Annotated[ + Optional[str], + Field( + description="Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)" + ), + ] = None + notes: Annotated[ + Optional[str], + Field( + description='Optional notes. If they contain multiple lines, only the first one is returned here.' + ), + ] = None + parent: Annotated[ + Optional[str], + Field(description='Volume identifier of parent (for linked cloned).'), + ] = None + size: Annotated[Optional[int], Field(description='Volume size in bytes.')] = None + used: Annotated[ + Optional[int], + Field( + description='Used space. Please note that most storage plugins do not report anything useful here.' + ), + ] = None + verification: Annotated[ + Optional[Verification], + Field( + description='Last backup verification result, only useful for PBS storages.' + ), + ] = None + vmid: Annotated[Optional[int], Field(description='Associated Owner VMID.')] = None + volid: Annotated[Optional[str], Field(description='Volume identifier.')] = None + + +class NodesNodeStorageStorageContentGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum76]], Field(description='')] = None + + +class NodesNodeStorageStorageContentPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[str], Field(description='Volume identifier')] = None + + +NodesNodeStorageStorageContentVolumeDeleteResponse = ClusterReplicationPostResponse + + +class Data28(BaseModel): + format: Annotated[ + Optional[str], + Field( + description="Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)" + ), + ] = None + notes: Annotated[Optional[str], Field(description='Optional notes.')] = None + path: Annotated[Optional[str], Field(description='The Path')] = None + size: Annotated[Optional[int], Field(description='Volume size in bytes.')] = None + used: Annotated[ + Optional[int], + Field( + description='Used space. Please note that most storage plugins do not report anything useful here.' + ), + ] = None + + +class NodesNodeStorageStorageContentVolumeGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data28], Field(description='')] = None + + +NodesNodeStorageStorageContentVolumePostResponse = ClusterReplicationPostResponse + + +NodesNodeStorageStorageContentVolumePutResponse = ClusterReplicationPostResponse + + +NodesNodeStorageStorageStatusGetResponse = ClusterReplicationIdGetResponse + + +Data29 = Data13 + + +class NodesNodeStorageStorageRrdGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data29], Field(description='')] = None + + +NodesNodeStorageStorageRrddataGetResponse = ClusterGetResponse + + +NodesNodeStorageStorageUploadPostResponse = ClusterReplicationPostResponse + + +NodesNodeDisksGetResponse = ClusterGetResponse + + +class Child3(BaseModel): + free: Annotated[ + Optional[int], Field(description='The free bytes in the physical volume') + ] = None + leaf: Annotated[Optional[int], Field(description='')] = None + name: Annotated[ + Optional[str], Field(description='The name of the physical volume') + ] = None + size: Annotated[ + Optional[int], Field(description='The size of the physical volume in bytes') + ] = None + + +class Child2(BaseModel): + children: Annotated[ + Optional[List[Child3]], Field(description='The underlying physical volumes') + ] = None + free: Annotated[ + Optional[int], Field(description='The free bytes in the volume group') + ] = None + leaf: Annotated[Optional[int], Field(description='')] = None + name: Annotated[ + Optional[str], Field(description='The name of the volume group') + ] = None + size: Annotated[ + Optional[int], Field(description='The size of the volume group in bytes') + ] = None + + +class Data30(BaseModel): + children: Annotated[Optional[List[Child2]], Field(description='')] = None + leaf: Annotated[Optional[int], Field(description='')] = None + + +class NodesNodeDisksLvmGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data30], Field(description='')] = None + + +NodesNodeDisksLvmPostResponse = ClusterReplicationPostResponse + + +class Datum77(BaseModel): + lv: Annotated[Optional[str], Field(description='The name of the thinpool.')] = None + lv_size: Annotated[ + Optional[int], Field(description='The size of the thinpool in bytes.') + ] = None + metadata_size: Annotated[ + Optional[int], Field(description='The size of the metadata lv in bytes.') + ] = None + metadata_used: Annotated[ + Optional[int], Field(description='The used bytes of the metadata lv.') + ] = None + used: Annotated[ + Optional[int], Field(description='The used bytes of the thinpool.') + ] = None + + +class NodesNodeDisksLvmthinGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum77]], Field(description='')] = None + + +NodesNodeDisksLvmthinPostResponse = ClusterReplicationPostResponse + + +class Datum78(BaseModel): + device: Annotated[Optional[str], Field(description='The mounted device.')] = None + options: Annotated[Optional[str], Field(description='The mount options.')] = None + path: Annotated[Optional[str], Field(description='The mount path.')] = None + type: Annotated[Optional[str], Field(description='The filesystem type.')] = None + unitfile: Annotated[ + Optional[str], Field(description='The path of the mount unit.') + ] = None + + +class NodesNodeDisksDirectoryGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum78]], Field(description='')] = None + + +NodesNodeDisksDirectoryPostResponse = ClusterReplicationPostResponse + + +class Datum79(BaseModel): + alloc: Annotated[Optional[int], Field(description='')] = None + dedup: Annotated[Optional[float], Field(description='')] = None + frag: Annotated[Optional[int], Field(description='')] = None + free: Annotated[Optional[int], Field(description='')] = None + health: Annotated[Optional[str], Field(description='')] = None + name: Annotated[Optional[str], Field(description='')] = None + size: Annotated[Optional[int], Field(description='')] = None + + +class NodesNodeDisksZfsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum79]], Field(description='')] = None + + +NodesNodeDisksZfsPostResponse = ClusterReplicationPostResponse + + +class Child4(BaseModel): + cksum: Annotated[Optional[float], Field(description='')] = None + msg: Annotated[ + Optional[str], Field(description='An optional message about the vdev.') + ] = None + name: Annotated[ + Optional[str], Field(description='The name of the vdev or section.') + ] = None + read: Annotated[Optional[float], Field(description='')] = None + state: Annotated[Optional[str], Field(description='The state of the vdev.')] = None + write: Annotated[Optional[float], Field(description='')] = None + + +class Data31(BaseModel): + action: Annotated[ + Optional[str], + Field(description='Information about the recommended action to fix the state.'), + ] = None + children: Annotated[ + Optional[List[Child4]], + Field( + description='The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.' + ), + ] = None + errors: Annotated[ + Optional[str], Field(description='Information about the errors on the zpool.') + ] = None + name: Annotated[Optional[str], Field(description='The name of the zpool.')] = None + scan: Annotated[ + Optional[str], Field(description='Information about the last/current scrub.') + ] = None + state: Annotated[Optional[str], Field(description='The state of the zpool.')] = None + status: Annotated[ + Optional[str], Field(description='Information about the state of the zpool.') + ] = None + + +class NodesNodeDisksZfsNameGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data31], Field(description='')] = None + + +class Datum80(BaseModel): + devpath: Annotated[Optional[str], Field(description='The device path')] = None + gpt: Annotated[Optional[int], Field(description='')] = None + health: Annotated[Optional[str], Field(description='')] = None + model: Annotated[Optional[str], Field(description='')] = None + osdid: Annotated[Optional[int], Field(description='')] = None + serial: Annotated[Optional[str], Field(description='')] = None + size: Annotated[Optional[int], Field(description='')] = None + used: Annotated[Optional[str], Field(description='')] = None + vendor: Annotated[Optional[str], Field(description='')] = None + wwn: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeDisksListGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum80]], Field(description='')] = None + + +class Data32(BaseModel): + attributes: Annotated[Optional[List], Field(description='')] = None + health: Annotated[Optional[str], Field(description='')] = None + text: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + + +class NodesNodeDisksSmartGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data32], Field(description='')] = None + + +NodesNodeDisksInitgptPostResponse = ClusterReplicationPostResponse + + +Datum81 = Datum12 + + +class NodesNodeAptGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum81]], Field(description='')] = None + + +NodesNodeAptUpdateGetResponse = ClusterGetResponse + + +NodesNodeAptUpdatePostResponse = ClusterReplicationPostResponse + + +NodesNodeAptChangelogGetResponse = ClusterReplicationPostResponse + + +NodesNodeAptVersionsGetResponse = ClusterGetResponse + + +NodesNodeFirewallGetResponse = ClusterGetResponse + + +Datum82 = Datum3 + + +class NodesNodeFirewallRulesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum82]], Field(description='')] = None + + +NodesNodeFirewallRulesPostResponse = ClusterReplicationPostResponse + + +NodesNodeFirewallRulesPosDeleteResponse = ClusterReplicationPostResponse + + +Data33 = Data2 + + +class NodesNodeFirewallRulesPosGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data33], Field(description='')] = None + + +NodesNodeFirewallRulesPosPutResponse = ClusterReplicationPostResponse + + +class Data34(BaseModel): + enable: Annotated[ + Optional[int], Field(description='Enable host firewall rules.') + ] = None + log_level_in: Annotated[ + Optional[str], Field(description='Log level for incoming traffic.') + ] = None + log_level_out: Annotated[ + Optional[str], Field(description='Log level for outgoing traffic.') + ] = None + log_nf_conntrack: Annotated[ + Optional[int], Field(description='Enable logging of conntrack information.') + ] = None + ndp: Annotated[ + Optional[int], Field(description='Enable NDP (Neighbor Discovery Protocol).') + ] = None + nf_conntrack_allow_invalid: Annotated[ + Optional[int], + Field(description='Allow invalid packets on connection tracking.'), + ] = None + nf_conntrack_max: Annotated[ + Optional[int], Field(description='Maximum number of tracked connections.') + ] = None + nf_conntrack_tcp_timeout_established: Annotated[ + Optional[int], Field(description='Conntrack established timeout.') + ] = None + nf_conntrack_tcp_timeout_syn_recv: Annotated[ + Optional[int], Field(description='Conntrack syn recv timeout.') + ] = None + nosmurfs: Annotated[Optional[int], Field(description='Enable SMURFS filter.')] = ( + None + ) + protection_synflood: Annotated[ + Optional[int], Field(description='Enable synflood protection') + ] = None + protection_synflood_burst: Annotated[ + Optional[int], Field(description='Synflood protection rate burst by ip src.') + ] = None + protection_synflood_rate: Annotated[ + Optional[int], Field(description='Synflood protection rate syn/sec by ip src.') + ] = None + smurf_log_level: Annotated[ + Optional[str], Field(description='Log level for SMURFS filter.') + ] = None + tcp_flags_log_level: Annotated[ + Optional[str], Field(description='Log level for illegal tcp flags filter.') + ] = None + tcpflags: Annotated[ + Optional[int], Field(description='Filter illegal combinations of TCP flags.') + ] = None + + +class NodesNodeFirewallOptionsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data34], Field(description='')] = None + + +NodesNodeFirewallOptionsPutResponse = ClusterReplicationPostResponse + + +Datum83 = Datum32 + + +class NodesNodeFirewallLogGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum83]], Field(description='')] = None + + +Datum84 = Datum12 + + +class NodesNodeReplicationGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum84]], Field(description='')] = None + + +NodesNodeReplicationIdGetResponse = ClusterGetResponse + + +NodesNodeReplicationIdStatusGetResponse = ClusterReplicationIdGetResponse + + +Datum85 = Datum32 + + +class NodesNodeReplicationIdLogGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum85]], Field(description='')] = None + + +NodesNodeReplicationIdScheduleNowPostResponse = ClusterReplicationPostResponse + + +NodesNodeCertificatesGetResponse = ClusterGetResponse + + +NodesNodeCertificatesAcmeGetResponse = ClusterGetResponse + + +NodesNodeCertificatesAcmeCertificateDeleteResponse = ClusterReplicationPostResponse + + +NodesNodeCertificatesAcmeCertificatePostResponse = ClusterReplicationPostResponse + + +NodesNodeCertificatesAcmeCertificatePutResponse = ClusterReplicationPostResponse + + +class Datum86(BaseModel): + filename: Annotated[Optional[str], Field(description='')] = None + fingerprint: Annotated[ + Optional[str], Field(description='Certificate SHA 256 fingerprint.') + ] = None + issuer: Annotated[Optional[str], Field(description='Certificate issuer name.')] = ( + None + ) + notafter: Annotated[ + Optional[int], + Field(description="Certificate's notAfter timestamp (UNIX epoch)."), + ] = None + notbefore: Annotated[ + Optional[int], + Field(description="Certificate's notBefore timestamp (UNIX epoch)."), + ] = None + pem: Annotated[Optional[str], Field(description='Certificate in PEM format')] = None + public_key_bits: Annotated[ + Optional[int], + Field(alias='public-key-bits', description="Certificate's public key size"), + ] = None + public_key_type: Annotated[ + Optional[str], + Field( + alias='public-key-type', description="Certificate's public key algorithm" + ), + ] = None + san: Annotated[ + Optional[List[str]], + Field(description="List of Certificate's SubjectAlternativeName entries."), + ] = None + subject: Annotated[ + Optional[str], Field(description='Certificate subject name.') + ] = None + + +class NodesNodeCertificatesInfoGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum86]], Field(description='')] = None + + +NodesNodeCertificatesCustomDeleteResponse = ClusterReplicationPostResponse + + +Data35 = Datum86 + + +class NodesNodeCertificatesCustomPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data35], Field(description='')] = None + + +NodesNodeConfigGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeConfigPutResponse = ClusterReplicationPostResponse + + +NodesNodeSdnGetResponse = ClusterGetResponse + + +class Datum87(BaseModel): + status: Annotated[Optional[str], Field(description='Status of zone')] = None + zone: Annotated[ + Optional[str], Field(description='The SDN zone object identifier.') + ] = None + + +class NodesNodeSdnZonesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum87]], Field(description='')] = None + + +Datum88 = Datum27 + + +class NodesNodeSdnZonesZoneGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum88]], Field(description='')] = None + + +class Datum89(BaseModel): + status: Annotated[Optional[str], Field(description='Status.')] = None + statusmsg: Annotated[Optional[str], Field(description='Status details')] = None + vnet: Annotated[Optional[str], Field(description='Vnet identifier.')] = None + + +class NodesNodeSdnZonesZoneContentGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum89]], Field(description='')] = None + + +class Data36(BaseModel): + release: Annotated[ + Optional[str], Field(description='The current installed Proxmox VE Release') + ] = None + repoid: Annotated[ + Optional[str], + Field( + description='The short git commit hash ID from which this version was build' + ), + ] = None + version: Annotated[ + Optional[str], + Field(description='The current installed pve-manager package version'), + ] = None + + +class NodesNodeVersionGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data36], Field(description='')] = None + + +NodesNodeStatusGetResponse = ClusterReplicationIdGetResponse + + +NodesNodeStatusPostResponse = ClusterReplicationPostResponse + + +NodesNodeNetstatGetResponse = ClusterGetResponse + + +NodesNodeExecutePostResponse = ClusterHaStatusCurrentGetResponse + + +class NodesNodeWakeonlanPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[str], + Field(description='MAC address used to assemble the WoL magic packet.'), + ] = None + + +Data37 = Data13 + + +class NodesNodeRrdGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data37], Field(description='')] = None + + +NodesNodeRrddataGetResponse = ClusterGetResponse + + +Datum90 = Datum32 + + +class NodesNodeSyslogGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum90]], Field(description='')] = None + + +class NodesNodeJournalGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[str]], Field(description='')] = None + + +NodesNodeVncshellPostResponse = ClusterReplicationPostResponse + + +NodesNodeTermproxyPostResponse = ClusterReplicationPostResponse + + +Data38 = Data15 + + +class NodesNodeVncwebsocketGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data38], Field(description='')] = None + + +NodesNodeSpiceshellPostResponse = NodesNodeQemuVmidSpiceproxyPostResponse + + +class Data39(BaseModel): + dns1: Annotated[ + Optional[str], Field(description='First name server IP address.') + ] = None + dns2: Annotated[ + Optional[str], Field(description='Second name server IP address.') + ] = None + dns3: Annotated[ + Optional[str], Field(description='Third name server IP address.') + ] = None + search: Annotated[ + Optional[str], Field(description='Search domain for host-name lookup.') + ] = None + + +class NodesNodeDnsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data39], Field(description='')] = None + + +NodesNodeDnsPutResponse = ClusterReplicationPostResponse + + +class Data40(BaseModel): + localtime: Annotated[ + Optional[int], + Field(description='Seconds since 1970-01-01 00:00:00 (local time)'), + ] = None + time: Annotated[ + Optional[int], Field(description='Seconds since 1970-01-01 00:00:00 UTC.') + ] = None + timezone: Annotated[Optional[str], Field(description='Time zone')] = None + + +class NodesNodeTimeGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data40], Field(description='')] = None + + +NodesNodeTimePutResponse = ClusterReplicationPostResponse + + +NodesNodeAplinfoGetResponse = ClusterGetResponse + + +NodesNodeAplinfoPostResponse = ClusterReplicationPostResponse + + +NodesNodeReportGetResponse = ClusterReplicationPostResponse + + +NodesNodeStartallPostResponse = ClusterReplicationPostResponse + + +NodesNodeStopallPostResponse = ClusterReplicationPostResponse + + +NodesNodeMigrateallPostResponse = ClusterReplicationPostResponse + + +class Data41(BaseModel): + data: Annotated[Optional[str], Field(description='The content of /etc/hosts.')] = ( + None + ) + digest: Annotated[ + Optional[str], + Field( + description='Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.' + ), + ] = None + + +class NodesNodeHostsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data41], Field(description='')] = None + + +NodesNodeHostsPostResponse = ClusterReplicationPostResponse + + +class Datum91(BaseModel): + storage: Annotated[Optional[str], Field(description='')] = None + + +class StorageGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum91]], Field(description='')] = None + + +class Config(BaseModel): + """ + Partial, possible server generated, configuration properties. + """ + + encryption_key: Annotated[ + Optional[str], + Field( + alias='encryption-key', + description='The, possible auto-generated, encryption-key.', + ), + ] = None + + +class Data42(BaseModel): + config: Annotated[ + Optional[Config], + Field( + description='Partial, possible server generated, configuration properties.' + ), + ] = None + storage: Annotated[ + Optional[str], Field(description='The ID of the created storage.') + ] = None + type: Annotated[ + Optional[str], Field(description='The type of the created storage.') + ] = None + + +class StoragePostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data42], Field(description='')] = None + + +StorageStorageDeleteResponse = ClusterReplicationPostResponse + + +StorageStorageGetResponse = ClusterReplicationIdGetResponse + + +Data43 = Data42 + + +class StorageStoragePutResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data43], Field(description='')] = None + + +Datum92 = Datum27 + + +class AccessGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum92]], Field(description='')] = None + + +class Token(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + expire: Annotated[ + Optional[int], + Field( + description="API token expiration date (seconds since epoch). '0' means no expiration date." + ), + ] = None + privsep: Annotated[ + Optional[int], + Field( + description='Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.' + ), + ] = None + tokenid: Annotated[ + Optional[str], Field(description='User-specific token identifier.') + ] = None + + +class Datum93(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + email: Annotated[Optional[str], Field(description='')] = None + enable: Annotated[ + Optional[int], + Field( + description="Enable the account (default). You can set this to '0' to disable the account" + ), + ] = None + expire: Annotated[ + Optional[int], + Field( + description="Account expiration date (seconds since epoch). '0' means no expiration date." + ), + ] = None + firstname: Annotated[Optional[str], Field(description='')] = None + groups: Annotated[Optional[str], Field(description='')] = None + keys: Annotated[ + Optional[str], Field(description='Keys for two factor auth (yubico).') + ] = None + lastname: Annotated[Optional[str], Field(description='')] = None + tokens: Annotated[Optional[List[Token]], Field(description='')] = None + userid: Annotated[Optional[str], Field(description='User ID')] = None + + +class AccessUsersGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum93]], Field(description='')] = None + + +AccessUsersPostResponse = ClusterReplicationPostResponse + + +AccessUsersUseridDeleteResponse = ClusterReplicationPostResponse + + +class Data44(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + email: Annotated[Optional[str], Field(description='')] = None + enable: Annotated[ + Optional[int], + Field( + description="Enable the account (default). You can set this to '0' to disable the account" + ), + ] = None + expire: Annotated[ + Optional[int], + Field( + description="Account expiration date (seconds since epoch). '0' means no expiration date." + ), + ] = None + firstname: Annotated[Optional[str], Field(description='')] = None + groups: Annotated[Optional[List[str]], Field(description='')] = None + keys: Annotated[ + Optional[str], Field(description='Keys for two factor auth (yubico).') + ] = None + lastname: Annotated[Optional[str], Field(description='')] = None + tokens: Annotated[Optional[Dict[str, Any]], Field(description='')] = None + + +class AccessUsersUseridGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data44], Field(description='')] = None + + +AccessUsersUseridPutResponse = ClusterReplicationPostResponse + + +class Data45(BaseModel): + realm: Annotated[ + Optional[str], + Field(description='The type of TFA the users realm has set, if any.'), + ] = None + user: Annotated[ + Optional[str], Field(description='The type of TFA the user has set, if any.') + ] = None + + +class AccessUsersUseridTfaGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data45], Field(description='')] = None + + +Datum94 = Token + + +class AccessUsersUseridTokenGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum94]], Field(description='')] = None + + +AccessUsersUseridTokenTokenidDeleteResponse = ClusterReplicationPostResponse + + +class Data46(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + expire: Annotated[ + Optional[int], + Field( + description="API token expiration date (seconds since epoch). '0' means no expiration date." + ), + ] = None + privsep: Annotated[ + Optional[int], + Field( + description='Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.' + ), + ] = None + + +class AccessUsersUseridTokenTokenidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data46], Field(description='')] = None + + +Info = Data46 + + +class Data47(BaseModel): + full_tokenid: Annotated[ + Optional[str], Field(alias='full-tokenid', description='The full token id.') + ] = None + info: Annotated[Optional[Info], Field(description='')] = None + value: Annotated[ + Optional[str], Field(description='API token value used for authentication.') + ] = None + + +class AccessUsersUseridTokenTokenidPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data47], Field(description='')] = None + + +class Data48(BaseModel): + """ + Updated token information. + """ + + comment: Annotated[Optional[str], Field(description='')] = None + expire: Annotated[ + Optional[int], + Field( + description="API token expiration date (seconds since epoch). '0' means no expiration date." + ), + ] = None + privsep: Annotated[ + Optional[int], + Field( + description='Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.' + ), + ] = None + + +class AccessUsersUseridTokenTokenidPutResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[Data48], Field(description='Updated token information.') + ] = None + + +class AccessGroupsGetResponseItem(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + groupid: Annotated[Optional[str], Field(description='')] = None + users: Annotated[ + Optional[str], Field(description='list of users which form this group') + ] = None + + +class AccessGroupsGetResponse(RootModel[List[AccessGroupsGetResponseItem]]): + root: Annotated[List[AccessGroupsGetResponseItem], Field(description='')] + + +AccessGroupsPostResponse = ClusterReplicationPostResponse + + +AccessGroupsGroupidDeleteResponse = ClusterReplicationPostResponse + + +class Data49(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + members: Annotated[Optional[List[str]], Field(description='')] = None + + +class AccessGroupsGroupidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data49], Field(description='')] = None + + +AccessGroupsGroupidPutResponse = ClusterReplicationPostResponse + + +class Datum95(BaseModel): + privs: Annotated[Optional[str], Field(description='')] = None + roleid: Annotated[Optional[str], Field(description='')] = None + special: Annotated[Optional[int], Field(description='')] = None + + +class AccessRolesGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum95]], Field(description='')] = None + + +AccessRolesPostResponse = ClusterReplicationPostResponse + + +AccessRolesRoleidDeleteResponse = ClusterReplicationPostResponse + + +class Data50(BaseModel): + Datastore_Allocate: Annotated[ + Optional[int], Field(alias='Datastore.Allocate', description='') + ] = None + Datastore_AllocateSpace: Annotated[ + Optional[int], Field(alias='Datastore.AllocateSpace', description='') + ] = None + Datastore_AllocateTemplate: Annotated[ + Optional[int], Field(alias='Datastore.AllocateTemplate', description='') + ] = None + Datastore_Audit: Annotated[ + Optional[int], Field(alias='Datastore.Audit', description='') + ] = None + Group_Allocate: Annotated[ + Optional[int], Field(alias='Group.Allocate', description='') + ] = None + Permissions_Modify: Annotated[ + Optional[int], Field(alias='Permissions.Modify', description='') + ] = None + Pool_Allocate: Annotated[ + Optional[int], Field(alias='Pool.Allocate', description='') + ] = None + Realm_Allocate: Annotated[ + Optional[int], Field(alias='Realm.Allocate', description='') + ] = None + Realm_AllocateUser: Annotated[ + Optional[int], Field(alias='Realm.AllocateUser', description='') + ] = None + SDN_Allocate: Annotated[ + Optional[int], Field(alias='SDN.Allocate', description='') + ] = None + SDN_Audit: Annotated[Optional[int], Field(alias='SDN.Audit', description='')] = None + Sys_Audit: Annotated[Optional[int], Field(alias='Sys.Audit', description='')] = None + Sys_Console: Annotated[ + Optional[int], Field(alias='Sys.Console', description='') + ] = None + Sys_Modify: Annotated[Optional[int], Field(alias='Sys.Modify', description='')] = ( + None + ) + Sys_PowerMgmt: Annotated[ + Optional[int], Field(alias='Sys.PowerMgmt', description='') + ] = None + Sys_Syslog: Annotated[Optional[int], Field(alias='Sys.Syslog', description='')] = ( + None + ) + User_Modify: Annotated[ + Optional[int], Field(alias='User.Modify', description='') + ] = None + VM_Allocate: Annotated[ + Optional[int], Field(alias='VM.Allocate', description='') + ] = None + VM_Audit: Annotated[Optional[int], Field(alias='VM.Audit', description='')] = None + VM_Backup: Annotated[Optional[int], Field(alias='VM.Backup', description='')] = None + VM_Clone: Annotated[Optional[int], Field(alias='VM.Clone', description='')] = None + VM_Config_CDROM: Annotated[ + Optional[int], Field(alias='VM.Config.CDROM', description='') + ] = None + VM_Config_CPU: Annotated[ + Optional[int], Field(alias='VM.Config.CPU', description='') + ] = None + VM_Config_Cloudinit: Annotated[ + Optional[int], Field(alias='VM.Config.Cloudinit', description='') + ] = None + VM_Config_Disk: Annotated[ + Optional[int], Field(alias='VM.Config.Disk', description='') + ] = None + VM_Config_HWType: Annotated[ + Optional[int], Field(alias='VM.Config.HWType', description='') + ] = None + VM_Config_Memory: Annotated[ + Optional[int], Field(alias='VM.Config.Memory', description='') + ] = None + VM_Config_Network: Annotated[ + Optional[int], Field(alias='VM.Config.Network', description='') + ] = None + VM_Config_Options: Annotated[ + Optional[int], Field(alias='VM.Config.Options', description='') + ] = None + VM_Console: Annotated[Optional[int], Field(alias='VM.Console', description='')] = ( + None + ) + VM_Migrate: Annotated[Optional[int], Field(alias='VM.Migrate', description='')] = ( + None + ) + VM_Monitor: Annotated[Optional[int], Field(alias='VM.Monitor', description='')] = ( + None + ) + VM_PowerMgmt: Annotated[ + Optional[int], Field(alias='VM.PowerMgmt', description='') + ] = None + VM_Snapshot: Annotated[ + Optional[int], Field(alias='VM.Snapshot', description='') + ] = None + VM_Snapshot_Rollback: Annotated[ + Optional[int], Field(alias='VM.Snapshot.Rollback', description='') + ] = None + + +class AccessRolesRoleidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data50], Field(description='')] = None + + +AccessRolesRoleidPutResponse = ClusterReplicationPostResponse + + +class AccessAcl(BaseModel): + path: Annotated[Optional[str], Field(description='Access control path')] = None + propagate: Annotated[ + Optional[int], Field(description='Allow to propagate (inherit) permissions.') + ] = None + roleid: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + ugid: Annotated[Optional[str], Field(description='')] = None + + +class AccessAclGetResponse(RootModel[List[AccessAcl]]): + root: Annotated[List[AccessAcl], Field(description='')] + + +AccessAclPutResponse = ClusterReplicationPostResponse + + +class Datum96(BaseModel): + comment: Annotated[ + Optional[str], + Field( + description='A comment. The GUI use this text when you select a domain (Realm) on the login window.' + ), + ] = None + realm: Annotated[Optional[str], Field(description='')] = None + tfa: Annotated[ + Optional[str], Field(description='Two-factor authentication provider.') + ] = None + type: Annotated[Optional[str], Field(description='')] = None + + +class AccessDomainsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[List[Datum96]], Field(description='')] = None + + +AccessDomainsPostResponse = ClusterReplicationPostResponse + + +AccessDomainsRealmDeleteResponse = ClusterReplicationPostResponse + + +AccessDomainsRealmGetResponse = ClusterReplicationPostResponse + + +AccessDomainsRealmPutResponse = ClusterReplicationPostResponse + + +class AccessDomainsRealmSyncPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[str], Field(description='Worker Task-UPID')] = None + + +AccessTicketGetResponse = ClusterReplicationPostResponse + + +class Data51(BaseModel): + CSRFPreventionToken: Annotated[Optional[str], Field(description='')] = None + clustername: Annotated[Optional[str], Field(description='')] = None + ticket: Annotated[Optional[str], Field(description='')] = None + username: Annotated[Optional[str], Field(description='')] = None + + +class AccessTicketPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data51], Field(description='')] = None + + +AccessPasswordPutResponse = ClusterReplicationPostResponse + + +class Data52(BaseModel): + ticket: Annotated[Optional[str], Field(description='')] = None + + +class AccessTfaPostResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data52], Field(description='')] = None + + +AccessTfaPutResponse = ClusterReplicationIdGetResponse + + +class AccessPermissionsGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[ + Optional[Dict[str, Any]], + Field( + description='Map of "path" => (Map of "privilege" => "propagate boolean").' + ), + ] = None + + +class PoolsGetResponseItem(BaseModel): + poolid: Annotated[Optional[str], Field(description='')] = None + + +class PoolsGetResponse(RootModel[List[PoolsGetResponseItem]]): + root: Annotated[List[PoolsGetResponseItem], Field(description='')] + + +PoolsPostResponse = ClusterReplicationPostResponse + + +PoolsPoolidDeleteResponse = ClusterReplicationPostResponse + + +class Member(BaseModel): + id: Annotated[Optional[str], Field(description='')] = None + node: Annotated[Optional[str], Field(description='')] = None + storage: Annotated[Optional[str], Field(description='')] = None + type: Annotated[Optional[str], Field(description='')] = None + vmid: Annotated[Optional[int], Field(description='')] = None + + +class Data53(BaseModel): + comment: Annotated[Optional[str], Field(description='')] = None + members: Annotated[Optional[List[Member]], Field(description='')] = None + + +class PoolsPoolidGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data53], Field(description='')] = None + + +PoolsPoolidPutResponse = ClusterReplicationPostResponse + + +class Data54(BaseModel): + release: Annotated[Optional[str], Field(description='')] = None + repoid: Annotated[Optional[str], Field(description='')] = None + version: Annotated[Optional[str], Field(description='')] = None + + +class VersionGetResponse(BaseModel): + errors: Optional[List[str]] = None + data: Annotated[Optional[Data54], Field(description='')] = None diff --git a/plugins/module_utils/models/spec.v2.yaml b/plugins/module_utils/models/spec.v2.yaml new file mode 100644 index 00000000..8aa4423f --- /dev/null +++ b/plugins/module_utils/models/spec.v2.yaml @@ -0,0 +1,25259 @@ +openapi: 3.0.0 +info: + title: ProxMox VE API + version: '2.0' + description: ProxMox VE API + contact: + name: LUMASERV Support Team + email: support@lumaserv.com +servers: + - description: local + url: 'https://cluster.local:8006/api2/json' +tags: + - name: cluster + - name: nodes + - name: storage + - name: access + - name: pools + - name: version +paths: + /cluster: + get: + operationId: getCluster + summary: getCluster + description: Cluster index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterResponse' + /cluster/replication: + get: + operationId: getClusterReplication + summary: getClusterReplication + description: List replication jobs. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterReplicationResponse' + post: + operationId: createClusterReplication + summary: createClusterReplication + description: Create a new replication job + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterReplicationResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterReplicationRequest' + '/cluster/replication/{id}': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + delete: + operationId: deleteClusterReplicationSingle + summary: deleteClusterReplicationSingle + description: Mark replication job for removal. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterReplicationSingleResponse' + get: + operationId: getClusterReplicationSingle + summary: getClusterReplicationSingle + description: Read replication job configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterReplicationSingleResponse' + put: + operationId: updateClusterReplicationSingle + summary: updateClusterReplicationSingle + description: Update replication job configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterReplicationSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterReplicationSingleRequest' + /cluster/metrics: + get: + operationId: getClusterMetrics + summary: getClusterMetrics + description: Metrics index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterMetricsResponse' + /cluster/metrics/server: + get: + operationId: getClusterMetricsServer + summary: getClusterMetricsServer + description: List configured metric servers. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterMetricsServerResponse' + '/cluster/metrics/server/{id}': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + delete: + operationId: deleteClusterMetricsServerSingle + summary: deleteClusterMetricsServerSingle + description: Remove Metric server. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterMetricsServerSingleResponse' + get: + operationId: getClusterMetricsServerSingle + summary: getClusterMetricsServerSingle + description: Read metric server configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterMetricsServerSingleResponse' + post: + operationId: createClusterMetricsServerSingle + summary: createClusterMetricsServerSingle + description: Create a new external metric server config + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterMetricsServerSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterMetricsServerSingleRequest' + put: + operationId: updateClusterMetricsServerSingle + summary: updateClusterMetricsServerSingle + description: Update metric server configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterMetricsServerSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterMetricsServerSingleRequest' + /cluster/config: + get: + operationId: getClusterConfig + summary: getClusterConfig + description: Directory index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterConfigResponse' + post: + operationId: createClusterConfig + summary: createClusterConfig + description: >- + Generate new cluster configuration. If no links given, default to local + IP address as link0. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterConfigResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterConfigRequest' + /cluster/config/apiversion: + get: + operationId: getClusterConfigApiversion + summary: getClusterConfigApiversion + description: Return the version of the cluster join API available on this node. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterConfigApiversionResponse' + /cluster/config/nodes: + get: + operationId: getClusterConfigNodes + summary: getClusterConfigNodes + description: Corosync node list. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterConfigNodesResponse' + '/cluster/config/nodes/{node}': + parameters: + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteClusterConfigNodesSingle + summary: deleteClusterConfigNodesSingle + description: Removes a node from the cluster configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterConfigNodesSingleResponse' + post: + operationId: createClusterConfigNodesSingle + summary: createClusterConfigNodesSingle + description: Adds a node to the cluster configuration. This call is for internal use. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterConfigNodesSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterConfigNodesSingleRequest' + /cluster/config/join: + get: + operationId: getClusterConfigJoin + summary: getClusterConfigJoin + description: Get information needed to join this cluster over the connected node. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterConfigJoinResponse' + post: + operationId: createClusterConfigJoin + summary: createClusterConfigJoin + 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). + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterConfigJoinResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterConfigJoinRequest' + /cluster/config/totem: + get: + operationId: getClusterConfigTotem + summary: getClusterConfigTotem + description: Get corosync totem protocol settings. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterConfigTotemResponse' + /cluster/config/qdevice: + get: + operationId: getClusterConfigQdevice + summary: getClusterConfigQdevice + description: Get QDevice status + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterConfigQdeviceResponse' + /cluster/firewall: + get: + operationId: getClusterFirewall + summary: getClusterFirewall + description: Directory index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallResponse' + /cluster/firewall/groups: + get: + operationId: getClusterFirewallGroups + summary: getClusterFirewallGroups + description: List security groups. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallGroupsResponse' + post: + operationId: createClusterFirewallGroup + summary: createClusterFirewallGroup + description: Create new security group. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterFirewallGroupResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterFirewallGroupRequest' + '/cluster/firewall/groups/{group}': + parameters: + - name: group + in: path + required: true + description: group + schema: + type: string + delete: + operationId: deleteClusterFirewallGroup + summary: deleteClusterFirewallGroup + description: Delete security group. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterFirewallGroupResponse' + get: + operationId: getClusterFirewallGroupRules + summary: getClusterFirewallGroupRules + description: List rules. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallGroupRulesResponse' + post: + operationId: addClusterFirewallGroupRule + summary: addClusterFirewallGroupRule + description: Create new rule. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/AddClusterFirewallGroupRuleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddClusterFirewallGroupRuleRequest' + '/cluster/firewall/groups/{group}/{pos}': + parameters: + - name: group + in: path + required: true + description: group + schema: + type: string + - name: pos + in: path + required: true + description: pos + schema: + type: integer + delete: + operationId: removeClusterFirewallGroupRule + summary: removeClusterFirewallGroupRule + description: Delete rule. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/RemoveClusterFirewallGroupRuleResponse' + get: + operationId: getClusterFirewallGroupRule + summary: getClusterFirewallGroupRule + description: Get single rule data. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallGroupRuleResponse' + put: + operationId: updateClusterFirewallGroupRule + summary: updateClusterFirewallGroupRule + description: Modify rule data. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterFirewallGroupRuleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterFirewallGroupRuleRequest' + /cluster/firewall/rules: + get: + operationId: getClusterFirewallRules + summary: getClusterFirewallRules + description: List rules. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallRulesResponse' + post: + operationId: addClusterFirewallRule + summary: addClusterFirewallRule + description: Create new rule. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/AddClusterFirewallRuleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddClusterFirewallRuleRequest' + '/cluster/firewall/rules/{pos}': + parameters: + - name: pos + in: path + required: true + description: pos + schema: + type: integer + delete: + operationId: removeClusterFirewallRule + summary: removeClusterFirewallRule + description: Delete rule. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/RemoveClusterFirewallRuleResponse' + get: + operationId: getClusterFirewallRule + summary: getClusterFirewallRule + description: Get single rule data. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallRuleResponse' + put: + operationId: updateClusterFirewallRule + summary: updateClusterFirewallRule + description: Modify rule data. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterFirewallRuleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterFirewallRuleRequest' + /cluster/firewall/ipset: + get: + operationId: getClusterFirewallIPSets + summary: getClusterFirewallIPSets + description: List IPSets + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallIPSetsResponse' + post: + operationId: createClusterFirewallIPSet + summary: createClusterFirewallIPSet + description: Create new IPSet + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterFirewallIPSetResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterFirewallIPSetRequest' + '/cluster/firewall/ipset/{name}': + parameters: + - $ref: "#/components/parameters/Name" + delete: + operationId: deleteClusterFirewallIPSet + summary: deleteClusterFirewallIPSet + description: Delete IPSet + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterFirewallIPSetResponse' + get: + operationId: getClusterFirewallIPSet + summary: getClusterFirewallIPSet + description: List IPSet content + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallIPSetResponse' + post: + operationId: addClusterFirewallIPSetIP + summary: addClusterFirewallIPSetIP + description: Add IP or Network to IPSet. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/AddClusterFirewallIPSetIPResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddClusterFirewallIPSetIPRequest' + '/cluster/firewall/ipset/{name}/{cidr}': + parameters: + - $ref: "#/components/parameters/CIDR" + - $ref: "#/components/parameters/Name" + delete: + operationId: removeClusterFirewallIPSetIP + summary: removeClusterFirewallIPSetIP + description: Remove IP or Network from IPSet. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/RemoveClusterFirewallIPSetIPResponse' + get: + operationId: getClusterFirewallIPSetIP + summary: getClusterFirewallIPSetIP + description: Read IP or Network settings from IPSet. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallIPSetIPResponse' + put: + operationId: updateClusterFirewallIPSetIP + summary: updateClusterFirewallIPSetIP + description: Update IP or Network settings + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterFirewallIPSetIPResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterFirewallIPSetIPRequest' + /cluster/firewall/aliases: + get: + operationId: getClusterFirewallAliases + summary: getClusterFirewallAliases + description: List aliases + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallAliasesResponse' + post: + operationId: createClusterFirewallAliases + summary: createClusterFirewallAliases + description: Create IP or Network Alias. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterFirewallAliasesResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterFirewallAliasesRequest' + '/cluster/firewall/aliases/{name}': + parameters: + - $ref: "#/components/parameters/Name" + delete: + operationId: deleteClusterFirewallAliasesSingle + summary: deleteClusterFirewallAliasesSingle + description: Remove IP or Network alias. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterFirewallAliasesSingleResponse' + get: + operationId: getClusterFirewallAliasesSingle + summary: getClusterFirewallAliasesSingle + description: Read alias. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallAliasesSingleResponse' + put: + operationId: updateClusterFirewallAliasesSingle + summary: updateClusterFirewallAliasesSingle + description: Update IP or Network alias. + tags: + - cluster + parameters: + - $ref: "#/components/parameters/Name" + responses: + '200': + $ref: '#/components/responses/UpdateClusterFirewallAliasesSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterFirewallAliasesSingleRequest' + /cluster/firewall/options: + get: + operationId: getClusterFirewallOptions + summary: getClusterFirewallOptions + description: Get Firewall options. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallOptionsResponse' + put: + operationId: updateClusterFirewallOptions + summary: updateClusterFirewallOptions + description: Set Firewall options. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterFirewallOptionsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterFirewallOptionsRequest' + /cluster/firewall/macros: + get: + operationId: getClusterFirewallMacros + summary: getClusterFirewallMacros + description: List available macros + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallMacrosResponse' + /cluster/firewall/refs: + get: + operationId: getClusterFirewallRefs + summary: getClusterFirewallRefs + description: >- + Lists possible IPSet/Alias reference which are allowed in source/dest + properties. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterFirewallRefsResponse' + /cluster/backup: + get: + operationId: getClusterBackup + summary: getClusterBackup + description: List vzdump backup schedule. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterBackupResponse' + post: + operationId: createClusterBackup + summary: createClusterBackup + description: Create new vzdump backup job. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterBackupResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterBackupRequest' + '/cluster/backup/{id}': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + + delete: + operationId: deleteClusterBackupSingle + summary: deleteClusterBackupSingle + description: Delete vzdump backup job definition. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterBackupSingleResponse' + get: + operationId: getClusterBackupSingle + summary: getClusterBackupSingle + description: Read vzdump backup job definition. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterBackupSingleResponse' + put: + operationId: updateClusterBackupSingle + summary: updateClusterBackupSingle + description: Update vzdump backup job definition. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterBackupSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterBackupSingleRequest' + '/cluster/backup/{id}/included_volumes': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + get: + operationId: getClusterBackupSingleIncludedvolumes + summary: getClusterBackupSingleIncludedvolumes + description: >- + Returns included guests and the backup status of their disks. Optimized + to be used in ExtJS tree views. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterBackupSingleIncludedvolumesResponse' + /cluster/backupinfo: + get: + operationId: getClusterBackupinfo + summary: getClusterBackupinfo + description: 'Stub, waits for future use.' + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterBackupinfoResponse' + /cluster/backupinfo/not_backed_up: + get: + operationId: getClusterBackupinfoNotbackedup + summary: getClusterBackupinfoNotbackedup + description: Shows all guests which are not covered by any backup job. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterBackupinfoNotbackedupResponse' + /cluster/ha: + get: + operationId: getClusterHa + summary: getClusterHa + description: Directory index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterHaResponse' + /cluster/ha/resources: + get: + operationId: getClusterHaResources + summary: getClusterHaResources + description: List HA resources. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterHaResourcesResponse' + post: + operationId: createClusterHaResources + summary: createClusterHaResources + description: Create a new HA resource. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterHaResourcesResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterHaResourcesRequest' + '/cluster/ha/resources/{sid}': + parameters: + - name: sid + in: path + required: true + description: sid + schema: + type: string + delete: + operationId: deleteClusterHaResourcesSingle + summary: deleteClusterHaResourcesSingle + description: Delete resource configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterHaResourcesSingleResponse' + get: + operationId: getClusterHaResourcesSingle + summary: getClusterHaResourcesSingle + description: Read resource configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterHaResourcesSingleResponse' + put: + operationId: updateClusterHaResourcesSingle + summary: updateClusterHaResourcesSingle + description: Update resource configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterHaResourcesSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterHaResourcesSingleRequest' + '/cluster/ha/resources/{sid}/migrate': + parameters: + - name: sid + in: path + required: true + description: sid + schema: + type: string + post: + operationId: createClusterHaResourcesSingleMigrate + summary: createClusterHaResourcesSingleMigrate + description: Request resource migration (online) to another node. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterHaResourcesSingleMigrateResponse' + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateClusterHaResourcesSingleMigrateRequest + '/cluster/ha/resources/{sid}/relocate': + parameters: + - name: sid + in: path + required: true + description: sid + schema: + type: string + post: + operationId: createClusterHaResourcesSingleRelocate + summary: createClusterHaResourcesSingleRelocate + description: >- + Request resource relocatzion to another node. This stops the service on + the old node, and restarts it on the target node. + tags: + - cluster + responses: + '200': + $ref: >- + #/components/responses/CreateClusterHaResourcesSingleRelocateResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateClusterHaResourcesSingleRelocateRequest + /cluster/ha/groups: + get: + operationId: getClusterHaGroups + summary: getClusterHaGroups + description: Get HA groups. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterHaGroupsResponse' + post: + operationId: createClusterHaGroups + summary: createClusterHaGroups + description: Create a new HA group. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterHaGroupsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterHaGroupsRequest' + '/cluster/ha/groups/{group}': + parameters: + - name: group + in: path + required: true + description: group + schema: + type: string + delete: + operationId: deleteClusterHaGroupsSingle + summary: deleteClusterHaGroupsSingle + description: Delete ha group configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterHaGroupsSingleResponse' + get: + operationId: getClusterHaGroupsSingle + summary: getClusterHaGroupsSingle + description: Read ha group configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterHaGroupsSingleResponse' + put: + operationId: updateClusterHaGroupsSingle + summary: updateClusterHaGroupsSingle + description: Update ha group configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterHaGroupsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterHaGroupsSingleRequest' + /cluster/ha/status: + get: + operationId: getClusterHaStatus + summary: getClusterHaStatus + description: Directory index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterHaStatusResponse' + /cluster/ha/status/current: + get: + operationId: getClusterHaStatusCurrent + summary: getClusterHaStatusCurrent + description: Get HA manger status. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterHaStatusCurrentResponse' + /cluster/ha/status/manager_status: + get: + operationId: getClusterHaStatusManagerstatus + summary: getClusterHaStatusManagerstatus + description: 'Get full HA manger status, including LRM status.' + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterHaStatusManagerstatusResponse' + /cluster/acme: + get: + operationId: getClusterAcme + summary: getClusterAcme + description: ACMEAccount index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterAcmeResponse' + /cluster/acme/plugins: + get: + operationId: getClusterAcmePlugins + summary: getClusterAcmePlugins + description: ACME plugin index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterAcmePluginsResponse' + post: + operationId: createClusterAcmePlugins + summary: createClusterAcmePlugins + description: Add ACME plugin configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterAcmePluginsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterAcmePluginsRequest' + '/cluster/acme/plugins/{id}': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + delete: + operationId: deleteClusterAcmePluginsSingle + summary: deleteClusterAcmePluginsSingle + description: Delete ACME plugin configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterAcmePluginsSingleResponse' + get: + operationId: getClusterAcmePluginsSingle + summary: getClusterAcmePluginsSingle + description: Get ACME plugin configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterAcmePluginsSingleResponse' + put: + operationId: updateClusterAcmePluginsSingle + summary: updateClusterAcmePluginsSingle + description: Update ACME plugin configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterAcmePluginsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterAcmePluginsSingleRequest' + /cluster/acme/account: + get: + operationId: getClusterAcmeAccount + summary: getClusterAcmeAccount + description: ACMEAccount index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterAcmeAccountResponse' + post: + operationId: createClusterAcmeAccount + summary: createClusterAcmeAccount + description: Register a new ACME account with CA. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterAcmeAccountResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterAcmeAccountRequest' + '/cluster/acme/account/{name}': + parameters: + - $ref: "#/components/parameters/Name" + delete: + operationId: deleteClusterAcmeAccountSingle + summary: deleteClusterAcmeAccountSingle + description: Deactivate existing ACME account at CA. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterAcmeAccountSingleResponse' + get: + operationId: getClusterAcmeAccountSingle + summary: getClusterAcmeAccountSingle + description: Return existing ACME account information. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterAcmeAccountSingleResponse' + put: + operationId: updateClusterAcmeAccountSingle + summary: updateClusterAcmeAccountSingle + description: >- + Update existing ACME account information with CA. Note: not specifying + any new account information triggers a refresh. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterAcmeAccountSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterAcmeAccountSingleRequest' + /cluster/acme/tos: + get: + operationId: getClusterAcmeTos + summary: getClusterAcmeTos + description: Retrieve ACME TermsOfService URL from CA. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterAcmeTosResponse' + /cluster/acme/directories: + get: + operationId: getClusterAcmeDirectories + summary: getClusterAcmeDirectories + description: Get named known ACME directory endpoints. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterAcmeDirectoriesResponse' + /cluster/acme/challenge-schema: + get: + operationId: getClusterAcmeChallengeschema + summary: getClusterAcmeChallengeschema + description: Get schema of ACME challenge types. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterAcmeChallengeschemaResponse' + /cluster/ceph: + get: + operationId: getClusterCeph + summary: getClusterCeph + description: Cluster ceph index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterCephResponse' + /cluster/ceph/metadata: + get: + operationId: getClusterCephMetadata + summary: getClusterCephMetadata + description: Get ceph metadata. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterCephMetadataResponse' + /cluster/ceph/status: + get: + operationId: getClusterCephStatus + summary: getClusterCephStatus + description: Get ceph status. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterCephStatusResponse' + /cluster/ceph/flags: + get: + operationId: getClusterCephFlags + summary: getClusterCephFlags + description: get the status of all ceph flags + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterCephFlagsResponse' + put: + operationId: updateClusterCephFlags + summary: updateClusterCephFlags + description: Set/Unset multiple ceph flags at once. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterCephFlagsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterCephFlagsRequest' + '/cluster/ceph/flags/{flag}': + parameters: + - name: flag + in: path + required: true + description: flag + schema: + type: string + get: + operationId: getClusterCephFlagsSingle + summary: getClusterCephFlagsSingle + description: Get the status of a specific ceph flag. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterCephFlagsSingleResponse' + put: + operationId: updateClusterCephFlagsSingle + summary: updateClusterCephFlagsSingle + description: Set or clear (unset) a specific ceph flag + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterCephFlagsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterCephFlagsSingleRequest' + /cluster/sdn: + get: + operationId: getClusterSDN + summary: getClusterSDN + description: Directory index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterSDNResponse' + put: + operationId: updateClusterSDN + summary: updateClusterSDN + description: Apply sdn controller changes && reload. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterSDNResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterSDNRequest' + /cluster/sdn/vnets: + get: + operationId: getClusterSDNVnets + summary: getClusterSDNVnets + description: SDN vnets index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterSDNVnetsResponse' + post: + operationId: createClusterSDNVnet + summary: createClusterSDNVnet + description: Create a new sdn vnet object. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterSDNVnetResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterSDNVnetRequest' + '/cluster/sdn/vnets/{vnet}': + parameters: + - name: vnet + in: path + required: true + description: vnet + schema: + type: string + delete: + operationId: deleteClusterSDNVnet + summary: deleteClusterSDNVnet + description: Delete sdn vnet object configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterSDNVnetResponse' + get: + operationId: getClusterSDNVnet + summary: getClusterSDNVnet + description: Read sdn vnet configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterSDNVnetResponse' + put: + operationId: updateClusterSDNVnet + summary: updateClusterSDNVnet + description: Update sdn vnet object configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterSDNVnetResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterSDNVnetRequest' + /cluster/sdn/zones: + get: + operationId: getClusterSDNZones + summary: getClusterSDNZones + description: SDN zones index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterSDNZonesResponse' + post: + operationId: createClusterSDNZone + summary: createClusterSDNZone + description: Create a new sdn zone object. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterSDNZoneResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterSDNZoneRequest' + '/cluster/sdn/zones/{zone}': + parameters: + - name: zone + in: path + required: true + description: zone + schema: + type: string + delete: + operationId: deleteClusterSDNZone + summary: deleteClusterSDNZone + description: Delete sdn zone object configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterSDNZoneResponse' + get: + operationId: getClusterSDNZone + summary: getClusterSDNZone + description: Read sdn zone configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterSDNZoneResponse' + put: + operationId: updateClusterSDNZone + summary: updateClusterSDNZone + description: Update sdn zone object configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterSDNZoneResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterSDNZoneRequest' + /cluster/sdn/controllers: + get: + operationId: getClusterSDNControllers + summary: getClusterSDNControllers + description: SDN controllers index. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterSDNControllersResponse' + post: + operationId: createClusterSDNController + summary: createClusterSDNController + description: Create a new sdn controller object. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/CreateClusterSDNControllerResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateClusterSDNControllerRequest' + '/cluster/sdn/controllers/{controller}': + parameters: + - name: controller + in: path + required: true + description: controller + schema: + type: string + delete: + operationId: deleteClusterSDNController + summary: deleteClusterSDNController + description: Delete sdn controller object configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/DeleteClusterSDNControllerResponse' + get: + operationId: getClusterSDNController + summary: getClusterSDNController + description: Read sdn controller configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterSDNControllerResponse' + put: + operationId: updateClusterSDNController + summary: updateClusterSDNController + description: Update sdn controller object configuration. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterSDNControllerResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterSDNControllerRequest' + /cluster/log: + get: + operationId: getClusterLog + summary: getClusterLog + description: Read cluster log + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterLogResponse' + /cluster/resources: + get: + operationId: getClusterResources + summary: getClusterResources + description: Resources index (cluster wide). + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterResourcesResponse' + /cluster/tasks: + get: + operationId: getClusterTasks + summary: getClusterTasks + description: List recent tasks (cluster wide). + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterTasksResponse' + /cluster/options: + get: + operationId: getClusterOptions + summary: getClusterOptions + description: Get datacenter options. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterOptionsResponse' + put: + operationId: updateClusterOptions + summary: updateClusterOptions + description: Set datacenter options. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/UpdateClusterOptionsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateClusterOptionsRequest' + /cluster/status: + get: + operationId: getClusterStatus + summary: getClusterStatus + description: Get cluster status information. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterStatusResponse' + /cluster/nextid: + get: + operationId: getClusterNextid + summary: getClusterNextid + description: >- + Get next free VMID. If you pass an VMID it will raise an error if the ID + is already used. + tags: + - cluster + responses: + '200': + $ref: '#/components/responses/GetClusterNextidResponse' + /nodes: + get: + operationId: getNodes + summary: getNodes + description: Cluster node index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesResponse' + '/nodes/{node}': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNode + summary: getNode + description: Node index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeResponse' + '/nodes/{node}/qemu': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getVMs + summary: getVMs + description: Virtual machine index (per node). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMsResponse' + post: + operationId: createVM + summary: createVM + description: Create or restore a virtual machine. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVMRequest' + '/nodes/{node}/qemu/{vmid}': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteVM + summary: deleteVM + description: Destroy the vm (also delete all used/owned volumes). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteVMResponse' + get: + operationId: getVM + summary: getVM + description: Directory index + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMResponse' + '/nodes/{node}/qemu/{vmid}/firewall': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMFirewall + summary: getVMFirewall + description: Directory index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMFirewallResponse' + '/nodes/{node}/qemu/{vmid}/firewall/rules': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMFirewallRules + summary: getVMFirewallRules + description: List rules. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMFirewallRulesResponse' + post: + operationId: createVMFirewallRule + summary: createVMFirewallRule + description: Create new rule. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateVMFirewallRuleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVMFirewallRuleRequest' + '/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}': + parameters: + - $ref: "#/components/parameters/Node" + - name: pos + in: path + required: true + description: pos + schema: + type: integer + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteVMFirewallRule + summary: deleteVMFirewallRule + description: Delete rule. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteVMFirewallRuleResponse' + get: + operationId: getVMFirewallRule + summary: getVMFirewallRule + description: Get single rule data. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMFirewallRuleResponse' + put: + operationId: updateVMFirewallRule + summary: updateVMFirewallRule + description: Modify rule data. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateVMFirewallRuleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateVMFirewallRuleRequest' + '/nodes/{node}/qemu/{vmid}/firewall/aliases': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleFirewallAliases + summary: getNodesSingleQemuSingleFirewallAliases + description: List aliases + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleFirewallAliasesResponse + post: + operationId: createNodesSingleQemuSingleFirewallAliases + summary: createNodesSingleQemuSingleFirewallAliases + description: Create IP or Network Alias. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleFirewallAliasesResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleFirewallAliasesRequest + '/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}': + parameters: + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteNodesSingleQemuSingleFirewallAliasesSingle + summary: deleteNodesSingleQemuSingleFirewallAliasesSingle + description: Remove IP or Network alias. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleQemuSingleFirewallAliasesSingleResponse + get: + operationId: getNodesSingleQemuSingleFirewallAliasesSingle + summary: getNodesSingleQemuSingleFirewallAliasesSingle + description: Read alias. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleFirewallAliasesSingleResponse + put: + operationId: updateNodesSingleQemuSingleFirewallAliasesSingle + summary: updateNodesSingleQemuSingleFirewallAliasesSingle + description: Update IP or Network alias. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/UpdateNodesSingleQemuSingleFirewallAliasesSingleResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest + '/nodes/{node}/qemu/{vmid}/firewall/ipset': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMFirewallIPSets + summary: getVMFirewallIPSets + description: List IPSets + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMFirewallIPSetsResponse' + post: + operationId: createVMFirewallIPSet + summary: createVMFirewallIPSet + description: Create new IPSet + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateVMFirewallIPSetResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVMFirewallIPSetRequest' + '/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}': + parameters: + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteVMFirewallIPSet + summary: deleteVMFirewallIPSet + description: Delete IPSet + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteVMFirewallIPSetResponse' + get: + operationId: getVMFirewallIPSet + summary: getVMFirewallIPSet + description: List IPSet content + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMFirewallIPSetResponse' + post: + operationId: addVMFirewallIPSetIP + summary: addVMFirewallIPSetIP + description: Add IP or Network to IPSet. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/AddVMFirewallIPSetIPResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddVMFirewallIPSetIPRequest' + '/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}': + parameters: + - $ref: "#/components/parameters/CIDR" + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + delete: + operationId: removeVMFirewallIPSetIP + summary: removeVMFirewallIPSetIP + description: Remove IP or Network from IPSet. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/RemoveVMFirewallIPSetIPResponse' + get: + operationId: getVMFirewallIPSetIP + summary: getVMFirewallIPSetIP + description: Read IP or Network settings from IPSet. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMFirewallIPSetIPResponse' + put: + operationId: updateVMFirewallIPSetIP + summary: updateVMFirewallIPSetIP + description: Update IP or Network settings + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateVMFirewallIPSetIPResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateVMFirewallIPSetIPRequest' + '/nodes/{node}/qemu/{vmid}/firewall/options': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMFirewallOptions + summary: getVMFirewallOptions + description: Get VM firewall options. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMFirewallOptionsResponse' + put: + operationId: updateVMFirewallOptions + summary: updateVMFirewallOptions + description: Set Firewall options. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateVMFirewallOptionsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateVMFirewallOptionsRequest' + '/nodes/{node}/qemu/{vmid}/firewall/log': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleFirewallLog + summary: getNodesSingleQemuSingleFirewallLog + description: Read firewall log + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleFirewallLogResponse' + '/nodes/{node}/qemu/{vmid}/firewall/refs': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleFirewallRefs + summary: getNodesSingleQemuSingleFirewallRefs + description: >- + Lists possible IPSet/Alias reference which are allowed in source/dest + properties. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleFirewallRefsResponse' + '/nodes/{node}/qemu/{vmid}/agent': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgent + summary: getNodesSingleQemuSingleAgent + description: Qemu Agent command index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleAgentResponse' + post: + operationId: createNodesSingleQemuSingleAgent + summary: createNodesSingleQemuSingleAgent + description: Execute Qemu Guest Agent commands. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleAgentResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleAgentRequest' + '/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentFsfreezefreeze + summary: createNodesSingleQemuSingleAgentFsfreezefreeze + description: Execute fsfreeze-freeze. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentFsfreezefreezeResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentFsfreezefreezeRequest + '/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentFsfreezestatus + summary: createNodesSingleQemuSingleAgentFsfreezestatus + description: Execute fsfreeze-status. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentFsfreezestatusResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentFsfreezestatusRequest + '/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentFsfreezethaw + summary: createNodesSingleQemuSingleAgentFsfreezethaw + description: Execute fsfreeze-thaw. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentFsfreezethawResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentFsfreezethawRequest + '/nodes/{node}/qemu/{vmid}/agent/fstrim': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentFstrim + summary: createNodesSingleQemuSingleAgentFstrim + description: Execute fstrim. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentFstrimResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentFstrimRequest + '/nodes/{node}/qemu/{vmid}/agent/get-fsinfo': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGetfsinfo + summary: getNodesSingleQemuSingleAgentGetfsinfo + description: Execute get-fsinfo. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleAgentGetfsinfoResponse + '/nodes/{node}/qemu/{vmid}/agent/get-host-name': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGethostname + summary: getNodesSingleQemuSingleAgentGethostname + description: Execute get-host-name. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleAgentGethostnameResponse + '/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGetmemoryblockinfo + summary: getNodesSingleQemuSingleAgentGetmemoryblockinfo + description: Execute get-memory-block-info. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleAgentGetmemoryblockinfoResponse + '/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGetmemoryblocks + summary: getNodesSingleQemuSingleAgentGetmemoryblocks + description: Execute get-memory-blocks. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleAgentGetmemoryblocksResponse + '/nodes/{node}/qemu/{vmid}/agent/get-osinfo': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGetosinfo + summary: getNodesSingleQemuSingleAgentGetosinfo + description: Execute get-osinfo. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleAgentGetosinfoResponse + '/nodes/{node}/qemu/{vmid}/agent/get-time': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGettime + summary: getNodesSingleQemuSingleAgentGettime + description: Execute get-time. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleAgentGettimeResponse' + '/nodes/{node}/qemu/{vmid}/agent/get-timezone': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGettimezone + summary: getNodesSingleQemuSingleAgentGettimezone + description: Execute get-timezone. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleAgentGettimezoneResponse + '/nodes/{node}/qemu/{vmid}/agent/get-users': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGetusers + summary: getNodesSingleQemuSingleAgentGetusers + description: Execute get-users. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleAgentGetusersResponse' + '/nodes/{node}/qemu/{vmid}/agent/get-vcpus': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentGetvcpus + summary: getNodesSingleQemuSingleAgentGetvcpus + description: Execute get-vcpus. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleAgentGetvcpusResponse' + '/nodes/{node}/qemu/{vmid}/agent/info': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentInfo + summary: getNodesSingleQemuSingleAgentInfo + description: Execute info. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleAgentInfoResponse' + '/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentNetworkgetinterfaces + summary: getNodesSingleQemuSingleAgentNetworkgetinterfaces + description: Execute network-get-interfaces. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleAgentNetworkgetinterfacesResponse + '/nodes/{node}/qemu/{vmid}/agent/ping': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentPing + summary: createNodesSingleQemuSingleAgentPing + description: Execute ping. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleAgentPingResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleAgentPingRequest' + '/nodes/{node}/qemu/{vmid}/agent/shutdown': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentShutdown + summary: createNodesSingleQemuSingleAgentShutdown + description: Execute shutdown. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentShutdownResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentShutdownRequest + '/nodes/{node}/qemu/{vmid}/agent/suspend-disk': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentSuspenddisk + summary: createNodesSingleQemuSingleAgentSuspenddisk + description: Execute suspend-disk. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentSuspenddiskResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentSuspenddiskRequest + '/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentSuspendhybrid + summary: createNodesSingleQemuSingleAgentSuspendhybrid + description: Execute suspend-hybrid. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentSuspendhybridResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentSuspendhybridRequest + '/nodes/{node}/qemu/{vmid}/agent/suspend-ram': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentSuspendram + summary: createNodesSingleQemuSingleAgentSuspendram + description: Execute suspend-ram. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentSuspendramResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentSuspendramRequest + '/nodes/{node}/qemu/{vmid}/agent/set-user-password': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentSetuserpassword + summary: createNodesSingleQemuSingleAgentSetuserpassword + description: Sets the password for the given user to the given password + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentSetuserpasswordResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentSetuserpasswordRequest + '/nodes/{node}/qemu/{vmid}/agent/exec': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentExec + summary: createNodesSingleQemuSingleAgentExec + description: >- + Executes the given command in the vm via the guest-agent and returns an + object with the pid. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleAgentExecResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleAgentExecRequest' + '/nodes/{node}/qemu/{vmid}/agent/exec-status': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentExecstatus + summary: getNodesSingleQemuSingleAgentExecstatus + description: Gets the status of the given pid started by the guest-agent + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleQemuSingleAgentExecstatusResponse + '/nodes/{node}/qemu/{vmid}/agent/file-read': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleAgentFileread + summary: getNodesSingleQemuSingleAgentFileread + description: Reads the given file via guest agent. Is limited to 16777216 bytes. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleAgentFilereadResponse' + '/nodes/{node}/qemu/{vmid}/agent/file-write': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleAgentFilewrite + summary: createNodesSingleQemuSingleAgentFilewrite + description: Writes the given file via guest agent. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleQemuSingleAgentFilewriteResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleAgentFilewriteRequest + '/nodes/{node}/qemu/{vmid}/rrd': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMRRD + summary: getVMRRD + description: Read VM RRD statistics (returns PNG) + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMRRDResponse' + '/nodes/{node}/qemu/{vmid}/rrddata': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMRRDData + summary: getVMRRDData + description: Read VM RRD statistics + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMRRDDataResponse' + '/nodes/{node}/qemu/{vmid}/config': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMConfig + summary: getVMConfig + description: >- + Get the virtual machine configuration with pending configuration changes + applied. Set the 'current' parameter to get the current configuration + instead. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMConfigResponse' + post: + operationId: updateVMConfig + summary: updateVMConfig + description: Set virtual machine options (asynchrounous API). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateVMConfigResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateVMConfigRequest' + put: + operationId: updateVMConfigSync + summary: updateVMConfigSync + description: >- + Set virtual machine options (synchrounous API) - You should consider + using the POST method instead for any actions involving hotplug or + storage allocation. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateVMConfigSyncResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateVMConfigSyncRequest' + '/nodes/{node}/qemu/{vmid}/pending': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMConfigPending + summary: getVMConfigPending + description: >- + Get the virtual machine configuration with both current and pending + values. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMConfigPendingResponse' + '/nodes/{node}/qemu/{vmid}/unlink': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + put: + operationId: unlinkVMDiskImages + summary: unlinkVMDiskImages + description: Unlink/delete disk images. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UnlinkVMDiskImagesResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UnlinkVMDiskImagesRequest' + '/nodes/{node}/qemu/{vmid}/vncproxy': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleVncproxy + summary: createNodesSingleQemuSingleVncproxy + description: Creates a TCP VNC proxy connections. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleVncproxyResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleVncproxyRequest' + '/nodes/{node}/qemu/{vmid}/termproxy': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleTermproxy + summary: createNodesSingleQemuSingleTermproxy + description: Creates a TCP proxy connections. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleTermproxyResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleTermproxyRequest' + '/nodes/{node}/qemu/{vmid}/vncwebsocket': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleVncwebsocket + summary: getNodesSingleQemuSingleVncwebsocket + description: Opens a weksocket for VNC traffic. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleVncwebsocketResponse' + '/nodes/{node}/qemu/{vmid}/spiceproxy': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleSpiceproxy + summary: createNodesSingleQemuSingleSpiceproxy + description: Returns a SPICE configuration to connect to the VM. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleSpiceproxyResponse' + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleQemuSingleSpiceproxyRequest + '/nodes/{node}/qemu/{vmid}/status': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMStatus + summary: getVMStatus + description: Directory index + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMStatusResponse' + '/nodes/{node}/qemu/{vmid}/status/current': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getCurrentVMStatus + summary: getCurrentVMStatus + description: Get virtual machine status. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetCurrentVMStatusResponse' + '/nodes/{node}/qemu/{vmid}/status/start': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: startVM + summary: startVM + description: Start virtual machine. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/StartVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StartVMRequest' + '/nodes/{node}/qemu/{vmid}/status/stop': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: stopVM + summary: stopVM + 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 + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/StopVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StopVMRequest' + '/nodes/{node}/qemu/{vmid}/status/reset': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: resetVM + summary: resetVM + description: Reset virtual machine. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/ResetVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResetVMRequest' + '/nodes/{node}/qemu/{vmid}/status/shutdown': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: shutdownVM + summary: shutdownVM + 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. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/ShutdownVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ShutdownVMRequest' + '/nodes/{node}/qemu/{vmid}/status/reboot': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: rebootVM + summary: rebootVM + description: >- + Reboot the VM by shutting it down, and starting it again. Applies + pending changes. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/RebootVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RebootVMRequest' + '/nodes/{node}/qemu/{vmid}/status/suspend': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: suspendVM + summary: suspendVM + description: Suspend virtual machine. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/SuspendVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SuspendVMRequest' + '/nodes/{node}/qemu/{vmid}/status/resume': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: resumeVM + summary: resumeVM + description: Resume virtual machine. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/ResumeVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResumeVMRequest' + '/nodes/{node}/qemu/{vmid}/sendkey': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + put: + operationId: updateNodesSingleQemuSingleSendkey + summary: updateNodesSingleQemuSingleSendkey + description: Send key event to virtual machine. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleQemuSingleSendkeyResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleQemuSingleSendkeyRequest' + '/nodes/{node}/qemu/{vmid}/feature': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleFeature + summary: getNodesSingleQemuSingleFeature + description: Check if feature for virtual machine is available. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleFeatureResponse' + '/nodes/{node}/qemu/{vmid}/clone': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: cloneVM + summary: cloneVM + description: Create a copy of virtual machine/template. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CloneVMResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloneVMRequest' + '/nodes/{node}/qemu/{vmid}/move_disk': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleMovedisk + summary: createNodesSingleQemuSingleMovedisk + description: Move volume to different storage. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleMovediskResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleMovediskRequest' + '/nodes/{node}/qemu/{vmid}/migrate': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: migrateVM + summary: migrateVM + description: Get preconditions for migration. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/MigrateVMResponse' + post: + operationId: createNodesSingleQemuSingleMigrate + summary: createNodesSingleQemuSingleMigrate + description: Migrate virtual machine. Creates a new migration task. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleMigrateResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleMigrateRequest' + '/nodes/{node}/qemu/{vmid}/monitor': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleMonitor + summary: createNodesSingleQemuSingleMonitor + description: Execute Qemu monitor commands. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleMonitorResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleMonitorRequest' + '/nodes/{node}/qemu/{vmid}/resize': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + put: + operationId: resizeVMDisk + summary: resizeVMDisk + description: Extend volume size. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/ResizeVMDiskResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResizeVMDiskRequest' + '/nodes/{node}/qemu/{vmid}/snapshot': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMSnapshots + summary: getVMSnapshots + description: List all snapshots. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMSnapshotsResponse' + post: + operationId: createVMSnapshot + summary: createVMSnapshot + description: Snapshot a VM. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateVMSnapshotResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVMSnapshotRequest' + '/nodes/{node}/qemu/{vmid}/snapshot/{snapname}': + parameters: + - $ref: "#/components/parameters/Node" + - name: snapname + in: path + required: true + description: snapname + schema: + type: string + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteVMSnapshot + summary: deleteVMSnapshot + description: Delete a VM snapshot. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteVMSnapshotResponse' + get: + operationId: getVMSnapshot + summary: getVMSnapshot + description: getVMSnapshot + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMSnapshotResponse' + '/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config': + parameters: + - $ref: "#/components/parameters/Node" + - name: snapname + in: path + required: true + description: snapname + schema: + type: string + - $ref: "#/components/parameters/VMId" + get: + operationId: getVMSnapshotConfig + summary: getVMSnapshotConfig + description: Get snapshot configuration + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetVMSnapshotConfigResponse' + put: + operationId: updateVMSnapshotConfig + summary: updateVMSnapshotConfig + description: Update snapshot metadata. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateVMSnapshotConfigResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateVMSnapshotConfigRequest' + '/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback': + parameters: + - $ref: "#/components/parameters/Node" + - name: snapname + in: path + required: true + description: snapname + schema: + type: string + - $ref: "#/components/parameters/VMId" + post: + operationId: rollbackVMSnapshot + summary: rollbackVMSnapshot + description: Rollback VM state to specified snapshot. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/RollbackVMSnapshotResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RollbackVMSnapshotRequest' + '/nodes/{node}/qemu/{vmid}/template': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleQemuSingleTemplate + summary: createNodesSingleQemuSingleTemplate + description: Create a Template. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleQemuSingleTemplateResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleQemuSingleTemplateRequest' + '/nodes/{node}/qemu/{vmid}/cloudinit/dump': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleQemuSingleCloudinitDump + summary: getNodesSingleQemuSingleCloudinitDump + description: Get automatically generated cloudinit config. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleQemuSingleCloudinitDumpResponse' + '/nodes/{node}/cpu': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCpu + summary: getNodesSingleCpu + description: List all custom and default CPU models. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCpuResponse' + '/nodes/{node}/lxc': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleLxc + summary: getNodesSingleLxc + description: LXC container index (per node). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcResponse' + post: + operationId: createNodesSingleLxc + summary: createNodesSingleLxc + description: Create or restore a container. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcRequest' + '/nodes/{node}/lxc/{vmid}': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteNodesSingleLxcSingle + summary: deleteNodesSingleLxcSingle + description: Destroy the container (also delete all uses files). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleLxcSingleResponse' + get: + operationId: getNodesSingleLxcSingle + summary: getNodesSingleLxcSingle + description: Directory index + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleResponse' + '/nodes/{node}/lxc/{vmid}/config': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleConfig + summary: getNodesSingleLxcSingleConfig + description: Get container configuration. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleConfigResponse' + put: + operationId: updateNodesSingleLxcSingleConfig + summary: updateNodesSingleLxcSingleConfig + description: Set container options. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleLxcSingleConfigResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleLxcSingleConfigRequest' + '/nodes/{node}/lxc/{vmid}/status': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleStatus + summary: getNodesSingleLxcSingleStatus + description: Directory index + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleStatusResponse' + '/nodes/{node}/lxc/{vmid}/status/current': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleStatusCurrent + summary: getNodesSingleLxcSingleStatusCurrent + description: Get virtual machine status. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleStatusCurrentResponse' + '/nodes/{node}/lxc/{vmid}/status/start': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleStatusStart + summary: createNodesSingleLxcSingleStatusStart + description: Start the container. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleStatusStartResponse' + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleStatusStartRequest + '/nodes/{node}/lxc/{vmid}/status/stop': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleStatusStop + summary: createNodesSingleLxcSingleStatusStop + description: >- + Stop the container. This will abruptly stop all processes running in the + container. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleStatusStopResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleStatusStopRequest' + '/nodes/{node}/lxc/{vmid}/status/shutdown': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleStatusShutdown + summary: createNodesSingleLxcSingleStatusShutdown + description: >- + Shutdown the container. This will trigger a clean shutdown of the + container, see lxc-stop(1) for details. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleStatusShutdownResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleStatusShutdownRequest + '/nodes/{node}/lxc/{vmid}/status/suspend': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleStatusSuspend + summary: createNodesSingleLxcSingleStatusSuspend + description: Suspend the container. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleStatusSuspendResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleStatusSuspendRequest + '/nodes/{node}/lxc/{vmid}/status/resume': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleStatusResume + summary: createNodesSingleLxcSingleStatusResume + description: Resume the container. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleStatusResumeResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleStatusResumeRequest + '/nodes/{node}/lxc/{vmid}/status/reboot': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleStatusReboot + summary: createNodesSingleLxcSingleStatusReboot + description: >- + Reboot the container by shutting it down, and starting it again. Applies + pending changes. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleStatusRebootResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleStatusRebootRequest + '/nodes/{node}/lxc/{vmid}/snapshot': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleSnapshot + summary: getNodesSingleLxcSingleSnapshot + description: List all snapshots. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleSnapshotResponse' + post: + operationId: createNodesSingleLxcSingleSnapshot + summary: createNodesSingleLxcSingleSnapshot + description: Snapshot a container. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleSnapshotResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleSnapshotRequest' + '/nodes/{node}/lxc/{vmid}/snapshot/{snapname}': + parameters: + - $ref: "#/components/parameters/Node" + - name: snapname + in: path + required: true + description: snapname + schema: + type: string + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteNodesSingleLxcSingleSnapshotSingle + summary: deleteNodesSingleLxcSingleSnapshotSingle + description: Delete a LXC snapshot. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleLxcSingleSnapshotSingleResponse + get: + operationId: getNodesSingleLxcSingleSnapshotSingle + summary: getNodesSingleLxcSingleSnapshotSingle + description: getNodesSingleLxcSingleSnapshotSingle + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleSnapshotSingleResponse' + '/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback': + parameters: + - $ref: "#/components/parameters/Node" + - name: snapname + in: path + required: true + description: snapname + schema: + type: string + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleSnapshotSingleRollback + summary: createNodesSingleLxcSingleSnapshotSingleRollback + description: Rollback LXC state to specified snapshot. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleSnapshotSingleRollbackResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest + '/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config': + parameters: + - $ref: "#/components/parameters/Node" + - name: snapname + in: path + required: true + description: snapname + schema: + type: string + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleSnapshotSingleConfig + summary: getNodesSingleLxcSingleSnapshotSingleConfig + description: Get snapshot configuration + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleLxcSingleSnapshotSingleConfigResponse + put: + operationId: updateNodesSingleLxcSingleSnapshotSingleConfig + summary: updateNodesSingleLxcSingleSnapshotSingleConfig + description: Update snapshot metadata. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/UpdateNodesSingleLxcSingleSnapshotSingleConfigResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest + '/nodes/{node}/lxc/{vmid}/firewall': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleFirewall + summary: getNodesSingleLxcSingleFirewall + description: Directory index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleFirewallResponse' + '/nodes/{node}/lxc/{vmid}/firewall/rules': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleFirewallRules + summary: getNodesSingleLxcSingleFirewallRules + description: List rules. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleFirewallRulesResponse' + post: + operationId: createNodesSingleLxcSingleFirewallRules + summary: createNodesSingleLxcSingleFirewallRules + description: Create new rule. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleFirewallRulesResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleFirewallRulesRequest + '/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}': + parameters: + - $ref: "#/components/parameters/Node" + - name: pos + in: path + required: true + description: pos + schema: + type: integer + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteNodesSingleLxcSingleFirewallRulesSingle + summary: deleteNodesSingleLxcSingleFirewallRulesSingle + description: Delete rule. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleLxcSingleFirewallRulesSingleResponse + get: + operationId: getNodesSingleLxcSingleFirewallRulesSingle + summary: getNodesSingleLxcSingleFirewallRulesSingle + description: Get single rule data. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleLxcSingleFirewallRulesSingleResponse + put: + operationId: updateNodesSingleLxcSingleFirewallRulesSingle + summary: updateNodesSingleLxcSingleFirewallRulesSingle + description: Modify rule data. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/UpdateNodesSingleLxcSingleFirewallRulesSingleResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/UpdateNodesSingleLxcSingleFirewallRulesSingleRequest + '/nodes/{node}/lxc/{vmid}/firewall/aliases': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleFirewallAliases + summary: getNodesSingleLxcSingleFirewallAliases + description: List aliases + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleLxcSingleFirewallAliasesResponse + post: + operationId: createNodesSingleLxcSingleFirewallAliases + summary: createNodesSingleLxcSingleFirewallAliases + description: Create IP or Network Alias. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleFirewallAliasesResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleFirewallAliasesRequest + '/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}': + parameters: + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteNodesSingleLxcSingleFirewallAliasesSingle + summary: deleteNodesSingleLxcSingleFirewallAliasesSingle + description: Remove IP or Network alias. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleLxcSingleFirewallAliasesSingleResponse + get: + operationId: getNodesSingleLxcSingleFirewallAliasesSingle + summary: getNodesSingleLxcSingleFirewallAliasesSingle + description: Read alias. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleLxcSingleFirewallAliasesSingleResponse + put: + operationId: updateNodesSingleLxcSingleFirewallAliasesSingle + summary: updateNodesSingleLxcSingleFirewallAliasesSingle + description: Update IP or Network alias. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/UpdateNodesSingleLxcSingleFirewallAliasesSingleResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest + '/nodes/{node}/lxc/{vmid}/firewall/ipset': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleFirewallIpset + summary: getNodesSingleLxcSingleFirewallIpset + description: List IPSets + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleFirewallIpsetResponse' + post: + operationId: createNodesSingleLxcSingleFirewallIpset + summary: createNodesSingleLxcSingleFirewallIpset + description: Create new IPSet + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleFirewallIpsetResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleFirewallIpsetRequest + '/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}': + parameters: + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteNodesSingleLxcSingleFirewallIpsetSingle + summary: deleteNodesSingleLxcSingleFirewallIpsetSingle + description: Delete IPSet + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleLxcSingleFirewallIpsetSingleResponse + get: + operationId: getNodesSingleLxcSingleFirewallIpsetSingle + summary: getNodesSingleLxcSingleFirewallIpsetSingle + description: List IPSet content + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleLxcSingleFirewallIpsetSingleResponse + post: + operationId: createNodesSingleLxcSingleFirewallIpsetSingle + summary: createNodesSingleLxcSingleFirewallIpsetSingle + description: Add IP or Network to IPSet. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleLxcSingleFirewallIpsetSingleResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleLxcSingleFirewallIpsetSingleRequest + '/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}': + parameters: + - $ref: "#/components/parameters/CIDR" + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + delete: + operationId: deleteNodesSingleLxcSingleFirewallIpsetSingleSingle + summary: deleteNodesSingleLxcSingleFirewallIpsetSingleSingle + description: Remove IP or Network from IPSet. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleResponse + get: + operationId: getNodesSingleLxcSingleFirewallIpsetSingleSingle + summary: getNodesSingleLxcSingleFirewallIpsetSingleSingle + description: Read IP or Network settings from IPSet. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleLxcSingleFirewallIpsetSingleSingleResponse + put: + operationId: updateNodesSingleLxcSingleFirewallIpsetSingleSingle + summary: updateNodesSingleLxcSingleFirewallIpsetSingleSingle + description: Update IP or Network settings + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest + '/nodes/{node}/lxc/{vmid}/firewall/options': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleFirewallOptions + summary: getNodesSingleLxcSingleFirewallOptions + description: Get VM firewall options. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleLxcSingleFirewallOptionsResponse + put: + operationId: updateNodesSingleLxcSingleFirewallOptions + summary: updateNodesSingleLxcSingleFirewallOptions + description: Set Firewall options. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/UpdateNodesSingleLxcSingleFirewallOptionsResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/UpdateNodesSingleLxcSingleFirewallOptionsRequest + '/nodes/{node}/lxc/{vmid}/firewall/log': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleFirewallLog + summary: getNodesSingleLxcSingleFirewallLog + description: Read firewall log + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleFirewallLogResponse' + '/nodes/{node}/lxc/{vmid}/firewall/refs': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleFirewallRefs + summary: getNodesSingleLxcSingleFirewallRefs + description: >- + Lists possible IPSet/Alias reference which are allowed in source/dest + properties. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleFirewallRefsResponse' + '/nodes/{node}/lxc/{vmid}/rrd': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleRrd + summary: getNodesSingleLxcSingleRrd + description: Read VM RRD statistics (returns PNG) + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleRrdResponse' + '/nodes/{node}/lxc/{vmid}/rrddata': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleRrddata + summary: getNodesSingleLxcSingleRrddata + description: Read VM RRD statistics + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleRrddataResponse' + '/nodes/{node}/lxc/{vmid}/vncproxy': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleVncproxy + summary: createNodesSingleLxcSingleVncproxy + description: Creates a TCP VNC proxy connections. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleVncproxyResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleVncproxyRequest' + '/nodes/{node}/lxc/{vmid}/termproxy': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleTermproxy + summary: createNodesSingleLxcSingleTermproxy + description: Creates a TCP proxy connection. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleTermproxyResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleTermproxyRequest' + '/nodes/{node}/lxc/{vmid}/vncwebsocket': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleVncwebsocket + summary: getNodesSingleLxcSingleVncwebsocket + description: Opens a weksocket for VNC traffic. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleVncwebsocketResponse' + '/nodes/{node}/lxc/{vmid}/spiceproxy': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleSpiceproxy + summary: createNodesSingleLxcSingleSpiceproxy + description: Returns a SPICE configuration to connect to the CT. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleSpiceproxyResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleSpiceproxyRequest' + '/nodes/{node}/lxc/{vmid}/migrate': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleMigrate + summary: createNodesSingleLxcSingleMigrate + description: Migrate the container to another node. Creates a new migration task. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleMigrateResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleMigrateRequest' + '/nodes/{node}/lxc/{vmid}/feature': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSingleFeature + summary: getNodesSingleLxcSingleFeature + description: Check if feature for virtual machine is available. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSingleFeatureResponse' + '/nodes/{node}/lxc/{vmid}/template': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleTemplate + summary: createNodesSingleLxcSingleTemplate + description: Create a Template. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleTemplateResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleTemplateRequest' + '/nodes/{node}/lxc/{vmid}/clone': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleClone + summary: createNodesSingleLxcSingleClone + description: Create a container clone/copy + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleCloneResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleCloneRequest' + '/nodes/{node}/lxc/{vmid}/resize': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + put: + operationId: updateNodesSingleLxcSingleResize + summary: updateNodesSingleLxcSingleResize + description: Resize a container mount point. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleLxcSingleResizeResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleLxcSingleResizeRequest' + '/nodes/{node}/lxc/{vmid}/move_volume': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + post: + operationId: createNodesSingleLxcSingleMovevolume + summary: createNodesSingleLxcSingleMovevolume + description: Move a rootfs-/mp-volume to a different storage + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleLxcSingleMovevolumeResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleLxcSingleMovevolumeRequest' + '/nodes/{node}/lxc/{vmid}/pending': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/VMId" + get: + operationId: getNodesSingleLxcSinglePending + summary: getNodesSingleLxcSinglePending + description: 'Get container configuration, including pending changes.' + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleLxcSinglePendingResponse' + '/nodes/{node}/ceph': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCeph + summary: getNodesSingleCeph + description: Directory index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephResponse' + '/nodes/{node}/ceph/osd': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephOsd + summary: getNodesSingleCephOsd + description: Get Ceph osd list/tree. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephOsdResponse' + post: + operationId: createNodesSingleCephOsd + summary: createNodesSingleCephOsd + description: Create OSD + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephOsdResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephOsdRequest' + '/nodes/{node}/ceph/osd/{osdid}': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/OSDId" + delete: + operationId: deleteNodesSingleCephOsdSingle + summary: deleteNodesSingleCephOsdSingle + description: Destroy OSD + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleCephOsdSingleResponse' + '/nodes/{node}/ceph/osd/{osdid}/in': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/OSDId" + post: + operationId: createNodesSingleCephOsdSingleIn + summary: createNodesSingleCephOsdSingleIn + description: ceph osd in + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephOsdSingleInResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephOsdSingleInRequest' + '/nodes/{node}/ceph/osd/{osdid}/out': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/OSDId" + post: + operationId: createNodesSingleCephOsdSingleOut + summary: createNodesSingleCephOsdSingleOut + description: ceph osd out + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephOsdSingleOutResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephOsdSingleOutRequest' + '/nodes/{node}/ceph/osd/{osdid}/scrub': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/OSDId" + post: + operationId: createNodesSingleCephOsdSingleScrub + summary: createNodesSingleCephOsdSingleScrub + description: Instruct the OSD to scrub. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephOsdSingleScrubResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephOsdSingleScrubRequest' + '/nodes/{node}/ceph/mds': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephMds + summary: getNodesSingleCephMds + description: MDS directory index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephMdsResponse' + '/nodes/{node}/ceph/mds/{name}': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Name" + + delete: + operationId: deleteNodesSingleCephMdsSingle + summary: deleteNodesSingleCephMdsSingle + description: Destroy Ceph Metadata Server + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleCephMdsSingleResponse' + post: + operationId: createNodesSingleCephMdsSingle + summary: createNodesSingleCephMdsSingle + description: Create Ceph Metadata Server (MDS) + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephMdsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephMdsSingleRequest' + '/nodes/{node}/ceph/mgr': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephMgr + summary: getNodesSingleCephMgr + description: MGR directory index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephMgrResponse' + '/nodes/{node}/ceph/mgr/{id}': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleCephMgrSingle + summary: deleteNodesSingleCephMgrSingle + description: Destroy Ceph Manager. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleCephMgrSingleResponse' + post: + operationId: createNodesSingleCephMgrSingle + summary: createNodesSingleCephMgrSingle + description: Create Ceph Manager + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephMgrSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephMgrSingleRequest' + '/nodes/{node}/ceph/mon': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephMon + summary: getNodesSingleCephMon + description: Get Ceph monitor list. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephMonResponse' + '/nodes/{node}/ceph/mon/{monid}': + parameters: + - name: monid + in: path + required: true + description: monid + schema: + type: string + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleCephMonSingle + summary: deleteNodesSingleCephMonSingle + description: Destroy Ceph Monitor and Manager. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleCephMonSingleResponse' + post: + operationId: createNodesSingleCephMonSingle + summary: createNodesSingleCephMonSingle + description: Create Ceph Monitor and Manager + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephMonSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephMonSingleRequest' + '/nodes/{node}/ceph/fs': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephFs + summary: getNodesSingleCephFs + description: Directory index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephFsResponse' + '/nodes/{node}/ceph/fs/{name}': + parameters: + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleCephFsSingle + summary: createNodesSingleCephFsSingle + description: Create a Ceph filesystem + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephFsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephFsSingleRequest' + '/nodes/{node}/ceph/disks': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephDisks + summary: getNodesSingleCephDisks + description: List local disks. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephDisksResponse' + '/nodes/{node}/ceph/config': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephConfig + summary: getNodesSingleCephConfig + description: Get Ceph configuration. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephConfigResponse' + '/nodes/{node}/ceph/configdb': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephConfigdb + summary: getNodesSingleCephConfigdb + description: Get Ceph configuration database. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephConfigdbResponse' + '/nodes/{node}/ceph/init': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleCephInit + summary: createNodesSingleCephInit + description: Create initial ceph default configuration and setup symlinks. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephInitResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephInitRequest' + '/nodes/{node}/ceph/stop': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleCephStop + summary: createNodesSingleCephStop + description: Stop ceph services. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephStopResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephStopRequest' + '/nodes/{node}/ceph/start': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleCephStart + summary: createNodesSingleCephStart + description: Start ceph services. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephStartResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephStartRequest' + '/nodes/{node}/ceph/restart': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleCephRestart + summary: createNodesSingleCephRestart + description: Restart ceph services. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephRestartResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephRestartRequest' + '/nodes/{node}/ceph/status': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephStatus + summary: getNodesSingleCephStatus + description: Get ceph status. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephStatusResponse' + '/nodes/{node}/ceph/pools': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephPools + summary: getNodesSingleCephPools + description: List all pools. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephPoolsResponse' + post: + operationId: createNodesSingleCephPools + summary: createNodesSingleCephPools + description: Create POOL + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephPoolsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephPoolsRequest' + '/nodes/{node}/ceph/pools/{name}': + parameters: + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleCephPoolsSingle + summary: deleteNodesSingleCephPoolsSingle + description: Destroy pool + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleCephPoolsSingleResponse' + put: + operationId: updateNodesSingleCephPoolsSingle + summary: updateNodesSingleCephPoolsSingle + description: Change POOL settings + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleCephPoolsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleCephPoolsSingleRequest' + '/nodes/{node}/ceph/flags': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephFlags + summary: getNodesSingleCephFlags + description: get all set ceph flags + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephFlagsResponse' + '/nodes/{node}/ceph/flags/{flag}': + parameters: + - name: flag + in: path + required: true + description: flag + schema: + type: string + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleCephFlagsSingle + summary: deleteNodesSingleCephFlagsSingle + description: Unset a ceph flag + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleCephFlagsSingleResponse' + post: + operationId: createNodesSingleCephFlagsSingle + summary: createNodesSingleCephFlagsSingle + description: Set a specific ceph flag + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCephFlagsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCephFlagsSingleRequest' + '/nodes/{node}/ceph/crush': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephCrush + summary: getNodesSingleCephCrush + description: Get OSD crush map + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephCrushResponse' + '/nodes/{node}/ceph/log': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephLog + summary: getNodesSingleCephLog + description: Read ceph log + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephLogResponse' + '/nodes/{node}/ceph/rules': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCephRules + summary: getNodesSingleCephRules + description: List ceph rules. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCephRulesResponse' + '/nodes/{node}/vzdump': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleVzdump + summary: createNodesSingleVzdump + description: Create backup. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleVzdumpResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleVzdumpRequest' + '/nodes/{node}/vzdump/extractconfig': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleVzdumpExtractconfig + summary: getNodesSingleVzdumpExtractconfig + description: Extract configuration from vzdump backup archive. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleVzdumpExtractconfigResponse' + '/nodes/{node}/services': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleServices + summary: getNodesSingleServices + description: Service list. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleServicesResponse' + '/nodes/{node}/services/{service}': + parameters: + - $ref: "#/components/parameters/Node" + - name: service + in: path + required: true + description: service + schema: + type: string + get: + operationId: getNodesSingleServicesSingle + summary: getNodesSingleServicesSingle + description: Directory index + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleServicesSingleResponse' + '/nodes/{node}/services/{service}/state': + parameters: + - $ref: "#/components/parameters/Node" + - name: service + in: path + required: true + description: service + schema: + type: string + get: + operationId: getNodesSingleServicesSingleState + summary: getNodesSingleServicesSingleState + description: Read service properties + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleServicesSingleStateResponse' + '/nodes/{node}/services/{service}/start': + parameters: + - $ref: "#/components/parameters/Node" + - name: service + in: path + required: true + description: service + schema: + type: string + post: + operationId: createNodesSingleServicesSingleStart + summary: createNodesSingleServicesSingleStart + description: Start service. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleServicesSingleStartResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleServicesSingleStartRequest' + '/nodes/{node}/services/{service}/stop': + parameters: + - $ref: "#/components/parameters/Node" + - name: service + in: path + required: true + description: service + schema: + type: string + post: + operationId: createNodesSingleServicesSingleStop + summary: createNodesSingleServicesSingleStop + description: Stop service. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleServicesSingleStopResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleServicesSingleStopRequest' + '/nodes/{node}/services/{service}/restart': + parameters: + - $ref: "#/components/parameters/Node" + - name: service + in: path + required: true + description: service + schema: + type: string + post: + operationId: createNodesSingleServicesSingleRestart + summary: createNodesSingleServicesSingleRestart + description: Hard restart service. Use reload if you want to reduce interruptions. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleServicesSingleRestartResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleServicesSingleRestartRequest + '/nodes/{node}/services/{service}/reload': + parameters: + - $ref: "#/components/parameters/Node" + - name: service + in: path + required: true + description: service + schema: + type: string + post: + operationId: createNodesSingleServicesSingleReload + summary: createNodesSingleServicesSingleReload + description: Reload service. Falls back to restart if service cannot be reloaded. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleServicesSingleReloadResponse' + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleServicesSingleReloadRequest + '/nodes/{node}/subscription': + parameters: + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleSubscription + summary: deleteNodesSingleSubscription + description: Delete subscription key of this node. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleSubscriptionResponse' + get: + operationId: getNodesSingleSubscription + summary: getNodesSingleSubscription + description: Read subscription info. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleSubscriptionResponse' + post: + operationId: createNodesSingleSubscription + summary: createNodesSingleSubscription + description: Update subscription info. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleSubscriptionResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleSubscriptionRequest' + put: + operationId: updateNodesSingleSubscription + summary: updateNodesSingleSubscription + description: Set subscription key. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleSubscriptionResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleSubscriptionRequest' + '/nodes/{node}/network': + parameters: + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleNetwork + summary: deleteNodesSingleNetwork + description: Revert network configuration changes. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleNetworkResponse' + get: + operationId: getNodesSingleNetwork + summary: getNodesSingleNetwork + description: List available networks + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleNetworkResponse' + post: + operationId: createNodesSingleNetwork + summary: createNodesSingleNetwork + description: Create network device configuration + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleNetworkResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleNetworkRequest' + put: + operationId: updateNodesSingleNetwork + summary: updateNodesSingleNetwork + description: Reload network configuration + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleNetworkResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleNetworkRequest' + '/nodes/{node}/network/{iface}': + parameters: + - name: iface + in: path + required: true + description: iface + schema: + type: string + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleNetworkSingle + summary: deleteNodesSingleNetworkSingle + description: Delete network device configuration + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleNetworkSingleResponse' + get: + operationId: getNodesSingleNetworkSingle + summary: getNodesSingleNetworkSingle + description: Read network device configuration + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleNetworkSingleResponse' + put: + operationId: updateNodesSingleNetworkSingle + summary: updateNodesSingleNetworkSingle + description: Update network device configuration + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleNetworkSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleNetworkSingleRequest' + '/nodes/{node}/tasks': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodeTasks + summary: getNodeTasks + description: Read task list for one node (finished tasks). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeTasksResponse' + '/nodes/{node}/tasks/{upid}': + parameters: + - $ref: "#/components/parameters/Node" + - name: upid + in: path + required: true + description: upid + schema: + type: string + delete: + operationId: stopNodeTask + summary: stopNodeTask + description: Stop a task. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/StopNodeTaskResponse' + get: + operationId: getNodeTask + summary: getNodeTask + description: getNodeTask + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeTaskResponse' + '/nodes/{node}/tasks/{upid}/log': + parameters: + - $ref: "#/components/parameters/Node" + - name: upid + in: path + required: true + description: upid + schema: + type: string + get: + operationId: getNodeTaskLog + summary: getNodeTaskLog + description: Read task log. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeTaskLogResponse' + '/nodes/{node}/tasks/{upid}/status': + parameters: + - $ref: "#/components/parameters/Node" + - name: upid + in: path + required: true + description: upid + schema: + type: string + get: + operationId: getNodeTaskStatus + summary: getNodeTaskStatus + description: Read task status. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeTaskStatusResponse' + '/nodes/{node}/scan': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScan + summary: getNodesSingleScan + description: Index of available scan methods + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanResponse' + '/nodes/{node}/scan/zfs': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScanZfs + summary: getNodesSingleScanZfs + description: Scan zfs pool list on local node. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanZfsResponse' + '/nodes/{node}/scan/nfs': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScanNfs + summary: getNodesSingleScanNfs + description: Scan remote NFS server. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanNfsResponse' + '/nodes/{node}/scan/cifs': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScanCifs + summary: getNodesSingleScanCifs + description: Scan remote CIFS server. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanCifsResponse' + '/nodes/{node}/scan/glusterfs': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScanGlusterfs + summary: getNodesSingleScanGlusterfs + description: Scan remote GlusterFS server. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanGlusterfsResponse' + '/nodes/{node}/scan/iscsi': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScanIscsi + summary: getNodesSingleScanIscsi + description: Scan remote iSCSI server. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanIscsiResponse' + '/nodes/{node}/scan/lvm': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScanLvm + summary: getNodesSingleScanLvm + description: List local LVM volume groups. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanLvmResponse' + '/nodes/{node}/scan/lvmthin': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScanLvmthin + summary: getNodesSingleScanLvmthin + description: List local LVM Thin Pools. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanLvmthinResponse' + '/nodes/{node}/scan/usb': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleScanUsb + summary: getNodesSingleScanUsb + description: List local USB devices. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleScanUsbResponse' + '/nodes/{node}/hardware': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleHardware + summary: getNodesSingleHardware + description: Index of hardware types + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleHardwareResponse' + '/nodes/{node}/hardware/pci': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleHardwarePci + summary: getNodesSingleHardwarePci + description: List local PCI devices. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleHardwarePciResponse' + '/nodes/{node}/hardware/pci/{pciid}': + parameters: + - $ref: "#/components/parameters/Node" + - name: pciid + in: path + required: true + description: pciid + schema: + type: string + get: + operationId: getNodesSingleHardwarePciSingle + summary: getNodesSingleHardwarePciSingle + description: Index of available pci methods + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleHardwarePciSingleResponse' + '/nodes/{node}/hardware/pci/{pciid}/mdev': + parameters: + - $ref: "#/components/parameters/Node" + - name: pciid + in: path + required: true + description: pciid + schema: + type: string + get: + operationId: getNodesSingleHardwarePciSingleMdev + summary: getNodesSingleHardwarePciSingleMdev + description: List mediated device types for given PCI device. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleHardwarePciSingleMdevResponse' + '/nodes/{node}/storage': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleStorage + summary: getNodesSingleStorage + description: Get status for all datastores. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleStorageResponse' + '/nodes/{node}/storage/{storage}': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + get: + operationId: getNodesSingleStorageSingle + summary: getNodesSingleStorageSingle + description: getNodesSingleStorageSingle + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleStorageSingleResponse' + '/nodes/{node}/storage/{storage}/prunebackups': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + delete: + operationId: deleteNodesSingleStorageSinglePrunebackups + summary: deleteNodesSingleStorageSinglePrunebackups + description: >- + Prune backups. Only those using the standard naming scheme are + considered. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleStorageSinglePrunebackupsResponse + get: + operationId: getNodesSingleStorageSinglePrunebackups + summary: getNodesSingleStorageSinglePrunebackups + 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. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleStorageSinglePrunebackupsResponse + '/nodes/{node}/storage/{storage}/content': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + get: + operationId: getNodesSingleStorageSingleContent + summary: getNodesSingleStorageSingleContent + description: List storage content. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleStorageSingleContentResponse' + post: + operationId: createNodesSingleStorageSingleContent + summary: createNodesSingleStorageSingleContent + description: Allocate disk images. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleStorageSingleContentResponse' + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleStorageSingleContentRequest + '/nodes/{node}/storage/{storage}/content/{volume}': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + - name: volume + in: path + required: true + description: volume + schema: + type: string + delete: + operationId: deleteNodesSingleStorageSingleContentSingle + summary: deleteNodesSingleStorageSingleContentSingle + description: Delete volume + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleStorageSingleContentSingleResponse + get: + operationId: getNodesSingleStorageSingleContentSingle + summary: getNodesSingleStorageSingleContentSingle + description: Get volume attributes + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/GetNodesSingleStorageSingleContentSingleResponse + post: + operationId: createNodesSingleStorageSingleContentSingle + summary: createNodesSingleStorageSingleContentSingle + description: Copy a volume. This is experimental code - do not use. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleStorageSingleContentSingleResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleStorageSingleContentSingleRequest + put: + operationId: updateNodesSingleStorageSingleContentSingle + summary: updateNodesSingleStorageSingleContentSingle + description: Update volume attributes + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/UpdateNodesSingleStorageSingleContentSingleResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/UpdateNodesSingleStorageSingleContentSingleRequest + '/nodes/{node}/storage/{storage}/status': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + get: + operationId: getNodesSingleStorageSingleStatus + summary: getNodesSingleStorageSingleStatus + description: Read storage status. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleStorageSingleStatusResponse' + '/nodes/{node}/storage/{storage}/rrd': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + get: + operationId: getNodesSingleStorageSingleRrd + summary: getNodesSingleStorageSingleRrd + description: Read storage RRD statistics (returns PNG). + tags: + - nodes + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + responses: + '200': + $ref: '#/components/responses/GetNodesSingleStorageSingleRrdResponse' + '/nodes/{node}/storage/{storage}/rrddata': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + get: + operationId: getNodesSingleStorageSingleRrddata + summary: getNodesSingleStorageSingleRrddata + description: Read storage RRD statistics. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleStorageSingleRrddataResponse' + '/nodes/{node}/storage/{storage}/upload': + parameters: + - $ref: "#/components/parameters/Node" + - $ref: "#/components/parameters/Storage" + post: + operationId: createNodesSingleStorageSingleUpload + summary: createNodesSingleStorageSingleUpload + description: Upload templates and ISO images. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleStorageSingleUploadResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleStorageSingleUploadRequest' + '/nodes/{node}/disks': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDisks + summary: getNodesSingleDisks + description: Node index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDisksResponse' + '/nodes/{node}/disks/lvm': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDisksLvm + summary: getNodesSingleDisksLvm + description: List LVM Volume Groups + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDisksLvmResponse' + post: + operationId: createNodesSingleDisksLvm + summary: createNodesSingleDisksLvm + description: Create an LVM Volume Group + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleDisksLvmResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleDisksLvmRequest' + '/nodes/{node}/disks/lvmthin': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDisksLvmthin + summary: getNodesSingleDisksLvmthin + description: List LVM thinpools + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDisksLvmthinResponse' + post: + operationId: createNodesSingleDisksLvmthin + summary: createNodesSingleDisksLvmthin + description: Create an LVM thinpool + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleDisksLvmthinResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleDisksLvmthinRequest' + '/nodes/{node}/disks/directory': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDisksDirectory + summary: getNodesSingleDisksDirectory + description: PVE Managed Directory storages. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDisksDirectoryResponse' + post: + operationId: createNodesSingleDisksDirectory + summary: createNodesSingleDisksDirectory + description: >- + Create a Filesystem on an unused disk. Will be mounted under + '/mnt/pve/NAME'. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleDisksDirectoryResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleDisksDirectoryRequest' + '/nodes/{node}/disks/zfs': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDisksZfs + summary: getNodesSingleDisksZfs + description: List Zpools. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDisksZfsResponse' + post: + operationId: createNodesSingleDisksZfs + summary: createNodesSingleDisksZfs + description: Create a ZFS pool. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleDisksZfsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleDisksZfsRequest' + '/nodes/{node}/disks/zfs/{name}': + parameters: + - $ref: "#/components/parameters/Name" + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDisksZfsSingle + summary: getNodesSingleDisksZfsSingle + description: Get details about a zpool. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDisksZfsSingleResponse' + '/nodes/{node}/disks/list': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDisksList + summary: getNodesSingleDisksList + description: List local disks. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDisksListResponse' + '/nodes/{node}/disks/smart': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDisksSmart + summary: getNodesSingleDisksSmart + description: Get SMART Health of a disk. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDisksSmartResponse' + '/nodes/{node}/disks/initgpt': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleDisksInitgpt + summary: createNodesSingleDisksInitgpt + description: Initialize Disk with GPT + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleDisksInitgptResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleDisksInitgptRequest' + '/nodes/{node}/apt': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleApt + summary: getNodesSingleApt + description: Directory index for apt (Advanced Package Tool). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleAptResponse' + '/nodes/{node}/apt/update': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleAptUpdate + summary: getNodesSingleAptUpdate + description: List available updates. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleAptUpdateResponse' + post: + operationId: createNodesSingleAptUpdate + summary: createNodesSingleAptUpdate + description: >- + This is used to resynchronize the package index files from their sources + (apt-get update). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleAptUpdateResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleAptUpdateRequest' + '/nodes/{node}/apt/changelog': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleAptChangelog + summary: getNodesSingleAptChangelog + description: Get package changelogs. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleAptChangelogResponse' + '/nodes/{node}/apt/versions': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleAptVersions + summary: getNodesSingleAptVersions + description: Get package information for important Proxmox packages. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleAptVersionsResponse' + '/nodes/{node}/firewall': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodeFirewall + summary: getNodeFirewall + description: Directory index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeFirewallResponse' + '/nodes/{node}/firewall/rules': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodeFirewallRules + summary: getNodeFirewallRules + description: List rules. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeFirewallRulesResponse' + post: + operationId: createNodeFirewallRule + summary: createNodeFirewallRule + description: Create new rule. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodeFirewallRuleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodeFirewallRuleRequest' + '/nodes/{node}/firewall/rules/{pos}': + parameters: + - $ref: "#/components/parameters/Node" + - name: pos + in: path + required: true + description: pos + schema: + type: integer + delete: + operationId: deleteNodeFirewallRule + summary: deleteNodeFirewallRule + description: Delete rule. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodeFirewallRuleResponse' + get: + operationId: getNodeFirewallRule + summary: getNodeFirewallRule + description: Get single rule data. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeFirewallRuleResponse' + put: + operationId: updateNodeFirewallRule + summary: updateNodeFirewallRule + description: Modify rule data. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodeFirewallRuleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodeFirewallRuleRequest' + '/nodes/{node}/firewall/options': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodeFirewallOptions + summary: getNodeFirewallOptions + description: Get host firewall options. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeFirewallOptionsResponse' + put: + operationId: updateNodeFirewallOptions + summary: updateNodeFirewallOptions + description: Set Firewall options. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodeFirewallOptionsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodeFirewallOptionsRequest' + '/nodes/{node}/firewall/log': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleFirewallLog + summary: getNodesSingleFirewallLog + description: Read firewall log + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleFirewallLogResponse' + '/nodes/{node}/replication': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleReplication + summary: getNodesSingleReplication + description: List status of all replication jobs on this node. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleReplicationResponse' + '/nodes/{node}/replication/{id}': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleReplicationSingle + summary: getNodesSingleReplicationSingle + description: Directory index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleReplicationSingleResponse' + '/nodes/{node}/replication/{id}/status': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleReplicationSingleStatus + summary: getNodesSingleReplicationSingleStatus + description: Get replication job status. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleReplicationSingleStatusResponse' + '/nodes/{node}/replication/{id}/log': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleReplicationSingleLog + summary: getNodesSingleReplicationSingleLog + description: Read replication job log. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleReplicationSingleLogResponse' + '/nodes/{node}/replication/{id}/schedule_now': + parameters: + - name: id + in: path + required: true + description: id + schema: + type: string + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleReplicationSingleSchedulenow + summary: createNodesSingleReplicationSingleSchedulenow + description: Schedule replication job to start as soon as possible. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleReplicationSingleSchedulenowResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleReplicationSingleSchedulenowRequest + '/nodes/{node}/certificates': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCertificates + summary: getNodesSingleCertificates + description: Node index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCertificatesResponse' + '/nodes/{node}/certificates/acme': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCertificatesAcme + summary: getNodesSingleCertificatesAcme + description: ACME index. + tags: + - nodes + parameters: + - $ref: "#/components/parameters/Node" + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCertificatesAcmeResponse' + '/nodes/{node}/certificates/acme/certificate': + parameters: + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleCertificatesAcmeCertificate + summary: deleteNodesSingleCertificatesAcmeCertificate + description: Revoke existing certificate from CA. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/DeleteNodesSingleCertificatesAcmeCertificateResponse + post: + operationId: createNodesSingleCertificatesAcmeCertificate + summary: createNodesSingleCertificatesAcmeCertificate + description: Order a new certificate from ACME-compatible CA. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/CreateNodesSingleCertificatesAcmeCertificateResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreateNodesSingleCertificatesAcmeCertificateRequest + put: + operationId: updateNodesSingleCertificatesAcmeCertificate + summary: updateNodesSingleCertificatesAcmeCertificate + description: Renew existing certificate from CA. + tags: + - nodes + responses: + '200': + $ref: >- + #/components/responses/UpdateNodesSingleCertificatesAcmeCertificateResponse + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/UpdateNodesSingleCertificatesAcmeCertificateRequest + '/nodes/{node}/certificates/info': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleCertificatesInfo + summary: getNodesSingleCertificatesInfo + description: Get information about node's certificates. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleCertificatesInfoResponse' + '/nodes/{node}/certificates/custom': + parameters: + - $ref: "#/components/parameters/Node" + delete: + operationId: deleteNodesSingleCertificatesCustom + summary: deleteNodesSingleCertificatesCustom + description: DELETE custom certificate chain and key. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/DeleteNodesSingleCertificatesCustomResponse' + post: + operationId: createNodesSingleCertificatesCustom + summary: createNodesSingleCertificatesCustom + description: Upload or update custom certificate chain and key. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleCertificatesCustomResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleCertificatesCustomRequest' + '/nodes/{node}/config': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleConfig + summary: getNodesSingleConfig + description: Get node configuration options. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleConfigResponse' + put: + operationId: updateNodesSingleConfig + summary: updateNodesSingleConfig + description: Set node configuration options. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleConfigResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleConfigRequest' + '/nodes/{node}/sdn': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodeSDN + summary: getNodeSDN + description: SDN index. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeSDNResponse' + '/nodes/{node}/sdn/zones': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodeSDNZones + summary: getNodeSDNZones + description: Get status for all zones. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeSDNZonesResponse' + '/nodes/{node}/sdn/zones/{zone}': + parameters: + - $ref: "#/components/parameters/Node" + - name: zone + in: path + required: true + description: zone + schema: + type: string + get: + operationId: getNodeSDNZone + summary: getNodeSDNZone + description: getNodeSDNZone + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeSDNZoneResponse' + '/nodes/{node}/sdn/zones/{zone}/content': + parameters: + - $ref: "#/components/parameters/Node" + - name: zone + in: path + required: true + description: zone + schema: + type: string + get: + operationId: getNodeSDNZoneContent + summary: getNodeSDNZoneContent + description: List zone content. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeSDNZoneContentResponse' + '/nodes/{node}/version': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleVersion + summary: getNodesSingleVersion + description: API version details + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleVersionResponse' + '/nodes/{node}/status': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleStatus + summary: getNodesSingleStatus + description: Read node status + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleStatusResponse' + post: + operationId: createNodesSingleStatus + summary: createNodesSingleStatus + description: Reboot or shutdown a node. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleStatusResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleStatusRequest' + '/nodes/{node}/netstat': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleNetstat + summary: getNodesSingleNetstat + description: Read tap/vm network device interface counters + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleNetstatResponse' + '/nodes/{node}/execute': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleExecute + summary: createNodesSingleExecute + description: Execute multiple commands in order. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleExecuteResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleExecuteRequest' + '/nodes/{node}/wakeonlan': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleWakeonlan + summary: createNodesSingleWakeonlan + description: Try to wake a node via 'wake on LAN' network packet. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleWakeonlanResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleWakeonlanRequest' + '/nodes/{node}/rrd': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodeRRD + summary: getNodeRRD + description: Read node RRD statistics (returns PNG) + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeRRDResponse' + '/nodes/{node}/rrddata': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodeRRDData + summary: getNodeRRDData + description: Read node RRD statistics + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodeRRDDataResponse' + '/nodes/{node}/syslog': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleSyslog + summary: getNodesSingleSyslog + description: Read system log + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleSyslogResponse' + '/nodes/{node}/journal': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleJournal + summary: getNodesSingleJournal + description: Read Journal + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleJournalResponse' + '/nodes/{node}/vncshell': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleVncshell + summary: createNodesSingleVncshell + description: Creates a VNC Shell proxy. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleVncshellResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleVncshellRequest' + '/nodes/{node}/termproxy': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleTermproxy + summary: createNodesSingleTermproxy + description: Creates a VNC Shell proxy. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleTermproxyResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleTermproxyRequest' + '/nodes/{node}/vncwebsocket': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleVncwebsocket + summary: getNodesSingleVncwebsocket + description: Opens a weksocket for VNC traffic. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleVncwebsocketResponse' + '/nodes/{node}/spiceshell': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleSpiceshell + summary: createNodesSingleSpiceshell + description: Creates a SPICE shell. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleSpiceshellResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleSpiceshellRequest' + '/nodes/{node}/dns': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleDns + summary: getNodesSingleDns + description: Read DNS settings. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleDnsResponse' + put: + operationId: updateNodesSingleDns + summary: updateNodesSingleDns + description: Write DNS settings. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleDnsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleDnsRequest' + '/nodes/{node}/time': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleTime + summary: getNodesSingleTime + description: Read server time and time zone settings. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleTimeResponse' + put: + operationId: updateNodesSingleTime + summary: updateNodesSingleTime + description: Set time zone. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/UpdateNodesSingleTimeResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateNodesSingleTimeRequest' + '/nodes/{node}/aplinfo': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleAplinfo + summary: getNodesSingleAplinfo + description: Get list of appliances. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleAplinfoResponse' + post: + operationId: createNodesSingleAplinfo + summary: createNodesSingleAplinfo + description: Download appliance templates. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleAplinfoResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleAplinfoRequest' + '/nodes/{node}/report': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleReport + summary: getNodesSingleReport + description: Gather various systems information about a node + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleReportResponse' + '/nodes/{node}/startall': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleStartall + summary: createNodesSingleStartall + description: >- + Start all VMs and containers located on this node (by default only those + with onboot=1). + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleStartallResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleStartallRequest' + '/nodes/{node}/stopall': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleStopall + summary: createNodesSingleStopall + description: Stop all VMs and Containers. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleStopallResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleStopallRequest' + '/nodes/{node}/migrateall': + parameters: + - $ref: "#/components/parameters/Node" + post: + operationId: createNodesSingleMigrateall + summary: createNodesSingleMigrateall + description: Migrate all VMs and Containers. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleMigrateallResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleMigrateallRequest' + '/nodes/{node}/hosts': + parameters: + - $ref: "#/components/parameters/Node" + get: + operationId: getNodesSingleHosts + summary: getNodesSingleHosts + description: Get the content of /etc/hosts. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/GetNodesSingleHostsResponse' + post: + operationId: createNodesSingleHosts + summary: createNodesSingleHosts + description: Write /etc/hosts. + tags: + - nodes + responses: + '200': + $ref: '#/components/responses/CreateNodesSingleHostsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNodesSingleHostsRequest' + /storage: + get: + operationId: getStorage + summary: getStorage + description: Storage index. + tags: + - storage + responses: + '200': + $ref: '#/components/responses/GetStorageResponse' + post: + operationId: createStorage + summary: createStorage + description: Create a new storage. + tags: + - storage + responses: + '200': + $ref: '#/components/responses/CreateStorageResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateStorageRequest' + '/storage/{storage}': + parameters: + - $ref: "#/components/parameters/Storage" + delete: + operationId: deleteStorageSingle + summary: deleteStorageSingle + description: Delete storage configuration. + tags: + - storage + responses: + '200': + $ref: '#/components/responses/DeleteStorageSingleResponse' + get: + operationId: getStorageSingle + summary: getStorageSingle + description: Read storage configuration. + tags: + - storage + responses: + '200': + $ref: '#/components/responses/GetStorageSingleResponse' + put: + operationId: updateStorageSingle + summary: updateStorageSingle + description: Update storage configuration. + tags: + - storage + responses: + '200': + $ref: '#/components/responses/UpdateStorageSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateStorageSingleRequest' + /access: + get: + operationId: getAccess + summary: getAccess + description: Directory index. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessResponse' + /access/users: + get: + operationId: getAccessUsers + summary: getAccessUsers + description: User index. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessUsersResponse' + post: + operationId: createAccessUsers + summary: createAccessUsers + description: Create new user. + tags: + - access + responses: + '200': + $ref: '#/components/responses/CreateAccessUsersResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccessUsersRequest' + '/access/users/{userid}': + parameters: + - $ref: "#/components/parameters/User" + delete: + operationId: deleteAccessUsersSingle + summary: deleteAccessUsersSingle + description: Delete user. + tags: + - access + responses: + '200': + $ref: '#/components/responses/DeleteAccessUsersSingleResponse' + get: + operationId: getAccessUsersSingle + summary: getAccessUsersSingle + description: Get user configuration. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessUsersSingleResponse' + put: + operationId: updateAccessUsersSingle + summary: updateAccessUsersSingle + description: Update user configuration. + tags: + - access + responses: + '200': + $ref: '#/components/responses/UpdateAccessUsersSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAccessUsersSingleRequest' + '/access/users/{userid}/tfa': + parameters: + - $ref: "#/components/parameters/User" + get: + operationId: getAccessUsersSingleTfa + summary: getAccessUsersSingleTfa + description: Get user TFA types (Personal and Realm). + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessUsersSingleTfaResponse' + '/access/users/{userid}/token': + parameters: + - $ref: "#/components/parameters/User" + get: + operationId: getAccessUsersSingleToken + summary: getAccessUsersSingleToken + description: Get user API tokens. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessUsersSingleTokenResponse' + '/access/users/{userid}/token/{tokenid}': + parameters: + - name: tokenid + in: path + required: true + description: tokenid + schema: + type: string + - $ref: "#/components/parameters/User" + delete: + operationId: deleteAccessUsersSingleTokenSingle + summary: deleteAccessUsersSingleTokenSingle + description: Remove API token for a specific user. + tags: + - access + responses: + '200': + $ref: '#/components/responses/DeleteAccessUsersSingleTokenSingleResponse' + get: + operationId: getAccessUsersSingleTokenSingle + summary: getAccessUsersSingleTokenSingle + description: Get specific API token information. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessUsersSingleTokenSingleResponse' + post: + operationId: createAccessUsersSingleTokenSingle + summary: createAccessUsersSingleTokenSingle + 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! + tags: + - access + responses: + '200': + $ref: '#/components/responses/CreateAccessUsersSingleTokenSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccessUsersSingleTokenSingleRequest' + put: + operationId: updateAccessUsersSingleTokenSingle + summary: updateAccessUsersSingleTokenSingle + description: Update API token for a specific user. + tags: + - access + responses: + '200': + $ref: '#/components/responses/UpdateAccessUsersSingleTokenSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAccessUsersSingleTokenSingleRequest' + /access/groups: + get: + operationId: getAccessGroups + summary: getAccessGroups + description: Group index. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessGroupsResponse' + post: + operationId: createAccessGroups + summary: createAccessGroups + description: Create new group. + tags: + - access + responses: + '200': + $ref: '#/components/responses/CreateAccessGroupsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccessGroupsRequest' + '/access/groups/{groupid}': + parameters: + - name: groupid + in: path + required: true + description: groupid + schema: + type: string + delete: + operationId: deleteAccessGroupsSingle + summary: deleteAccessGroupsSingle + description: Delete group. + tags: + - access + responses: + '200': + $ref: '#/components/responses/DeleteAccessGroupsSingleResponse' + get: + operationId: getAccessGroupsSingle + summary: getAccessGroupsSingle + description: Get group configuration. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessGroupsSingleResponse' + put: + operationId: updateAccessGroupsSingle + summary: updateAccessGroupsSingle + description: Update group data. + tags: + - access + responses: + '200': + $ref: '#/components/responses/UpdateAccessGroupsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAccessGroupsSingleRequest' + /access/roles: + get: + operationId: getAccessRoles + summary: getAccessRoles + description: Role index. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessRolesResponse' + post: + operationId: createAccessRoles + summary: createAccessRoles + description: Create new role. + tags: + - access + responses: + '200': + $ref: '#/components/responses/CreateAccessRolesResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccessRolesRequest' + '/access/roles/{roleid}': + parameters: + - name: roleid + in: path + required: true + description: roleid + schema: + type: string + delete: + operationId: deleteAccessRolesSingle + summary: deleteAccessRolesSingle + description: Delete role. + tags: + - access + responses: + '200': + $ref: '#/components/responses/DeleteAccessRolesSingleResponse' + get: + operationId: getAccessRolesSingle + summary: getAccessRolesSingle + description: Get role configuration. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessRolesSingleResponse' + put: + operationId: updateAccessRolesSingle + summary: updateAccessRolesSingle + description: Update an existing role. + tags: + - access + responses: + '200': + $ref: '#/components/responses/UpdateAccessRolesSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAccessRolesSingleRequest' + /access/acl: + get: + operationId: getAccessAcl + summary: getAccessAcl + description: Get Access Control List (ACLs). + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessAclResponse' + put: + operationId: updateAccessAcl + summary: updateAccessAcl + description: Update Access Control List (add or remove permissions). + tags: + - access + responses: + '200': + $ref: '#/components/responses/UpdateAccessAclResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAccessAclRequest' + /access/domains: + get: + operationId: getAccessDomains + summary: getAccessDomains + description: Authentication domain index. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessDomainsResponse' + post: + operationId: createAccessDomains + summary: createAccessDomains + description: Add an authentication server. + tags: + - access + responses: + '200': + $ref: '#/components/responses/CreateAccessDomainsResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccessDomainsRequest' + '/access/domains/{realm}': + parameters: + - $ref: "#/components/parameters/Realm" + + delete: + operationId: deleteAccessDomainsSingle + summary: deleteAccessDomainsSingle + description: Delete an authentication server. + tags: + - access + responses: + '200': + $ref: '#/components/responses/DeleteAccessDomainsSingleResponse' + get: + operationId: getAccessDomainsSingle + summary: getAccessDomainsSingle + description: Get auth server configuration. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessDomainsSingleResponse' + put: + operationId: updateAccessDomainsSingle + summary: updateAccessDomainsSingle + description: Update authentication server settings. + tags: + - access + responses: + '200': + $ref: '#/components/responses/UpdateAccessDomainsSingleResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAccessDomainsSingleRequest' + '/access/domains/{realm}/sync': + parameters: + - $ref: "#/components/parameters/Realm" + post: + operationId: createAccessDomainsSingleSync + summary: createAccessDomainsSingleSync + 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. + tags: + - access + responses: + '200': + $ref: '#/components/responses/CreateAccessDomainsSingleSyncResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccessDomainsSingleSyncRequest' + /access/ticket: + get: + operationId: getAccessTicket + summary: getAccessTicket + description: Dummy. Useful for formatters which want to provide a login page. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessTicketResponse' + post: + operationId: createAccessTicket + summary: createAccessTicket + description: Create or verify authentication ticket. + tags: + - access + responses: + '200': + $ref: '#/components/responses/CreateAccessTicketResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccessTicketRequest' + /access/password: + put: + operationId: updateAccessPassword + summary: updateAccessPassword + description: Change user password. + tags: + - access + responses: + '200': + $ref: '#/components/responses/UpdateAccessPasswordResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAccessPasswordRequest' + /access/tfa: + post: + operationId: createAccessTfa + summary: createAccessTfa + description: Finish a u2f challenge. + tags: + - access + responses: + '200': + $ref: '#/components/responses/CreateAccessTfaResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccessTfaRequest' + put: + operationId: updateAccessTfa + summary: updateAccessTfa + description: Change user u2f authentication. + tags: + - access + responses: + '200': + $ref: '#/components/responses/UpdateAccessTfaResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAccessTfaRequest' + /access/permissions: + get: + operationId: getAccessPermissions + summary: getAccessPermissions + description: Retrieve effective permissions of given user/token. + tags: + - access + responses: + '200': + $ref: '#/components/responses/GetAccessPermissionsResponse' + /pools: + get: + operationId: getPools + summary: getPools + description: Pool index. + tags: + - pools + responses: + '200': + $ref: '#/components/responses/GetPoolsResponse' + post: + operationId: createPool + summary: createPool + description: Create new pool. + tags: + - pools + responses: + '200': + $ref: '#/components/responses/CreatePoolResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePoolRequest' + '/pools/{poolid}': + parameters: + - name: poolid + in: path + required: true + description: poolid + schema: + type: string + delete: + operationId: deletePool + summary: deletePool + description: Delete pool. + tags: + - pools + responses: + '200': + $ref: '#/components/responses/DeletePoolResponse' + get: + operationId: getPool + summary: getPool + description: Get pool configuration. + tags: + - pools + responses: + '200': + $ref: '#/components/responses/GetPoolResponse' + put: + operationId: updatePool + summary: updatePool + description: Update pool data. + tags: + - pools + responses: + '200': + $ref: '#/components/responses/UpdatePoolResponse' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdatePoolRequest' + /version: + get: + operationId: getVersion + summary: getVersion + description: >- + API version details. The result also includes the global datacenter + confguration. + tags: + - version + responses: + '200': + $ref: '#/components/responses/GetVersionResponse' +components: + schemas: + CreateClusterReplicationRequest: + title: CreateClusterReplicationRequest + type: object + properties: + comment: + type: string + disable: + type: boolean + id: + type: string + rate: + type: number + remove_job: + type: string + schedule: + type: string + source: + type: string + target: + type: string + type: + type: string + required: + - id + - target + - type + UpdateClusterReplicationSingleRequest: + title: UpdateClusterReplicationSingleRequest + type: object + properties: + comment: + type: string + delete: + type: string + digest: + type: string + disable: + type: boolean + rate: + type: number + remove_job: + type: string + schedule: + type: string + source: + type: string + CreateClusterMetricsServerSingleRequest: + title: CreateClusterMetricsServerSingleRequest + type: object + properties: + disable: + type: boolean + mtu: + type: integer + path: + type: string + port: + type: integer + proto: + type: string + server: + type: string + timeout: + type: integer + type: + type: string + required: + - port + - server + - type + UpdateClusterMetricsServerSingleRequest: + title: UpdateClusterMetricsServerSingleRequest + type: object + properties: + delete: + type: string + digest: + type: string + disable: + type: boolean + mtu: + type: integer + path: + type: string + port: + type: integer + proto: + type: string + server: + type: string + timeout: + type: integer + required: + - port + - server + CreateClusterConfigRequest: + title: CreateClusterConfigRequest + type: object + properties: + clustername: + type: string + link0: + type: string + link1: + type: string + link2: + type: string + link3: + type: string + link4: + type: string + link5: + type: string + link6: + type: string + link7: + type: string + link8: + type: string + link9: + type: string + link10: + type: string + link11: + type: string + link12: + type: string + link13: + type: string + link14: + type: string + link15: + type: string + link16: + type: string + link17: + type: string + link18: + type: string + link19: + type: string + link20: + type: string + link21: + type: string + link22: + type: string + link23: + type: string + link24: + type: string + link25: + type: string + link26: + type: string + link27: + type: string + link28: + type: string + link29: + type: string + nodeid: + type: integer + votes: + type: integer + required: + - clustername + CreateClusterConfigNodesSingleRequest: + title: CreateClusterConfigNodesSingleRequest + type: object + properties: + apiversion: + type: integer + force: + type: boolean + link0: + type: string + link1: + type: string + link2: + type: string + link3: + type: string + link4: + type: string + link5: + type: string + link6: + type: string + link7: + type: string + link8: + type: string + link9: + type: string + link10: + type: string + link11: + type: string + link12: + type: string + link13: + type: string + link14: + type: string + link15: + type: string + link16: + type: string + link17: + type: string + link18: + type: string + link19: + type: string + link20: + type: string + link21: + type: string + link22: + type: string + link23: + type: string + link24: + type: string + link25: + type: string + link26: + type: string + link27: + type: string + link28: + type: string + link29: + type: string + new_node_ip: + type: string + nodeid: + type: integer + votes: + type: integer + CreateClusterConfigJoinRequest: + title: CreateClusterConfigJoinRequest + type: object + properties: + fingerprint: + type: string + force: + type: boolean + hostname: + type: string + link0: + type: string + link1: + type: string + link2: + type: string + link3: + type: string + link4: + type: string + link5: + type: string + link6: + type: string + link7: + type: string + link8: + type: string + link9: + type: string + link10: + type: string + link11: + type: string + link12: + type: string + link13: + type: string + link14: + type: string + link15: + type: string + link16: + type: string + link17: + type: string + link18: + type: string + link19: + type: string + link20: + type: string + link21: + type: string + link22: + type: string + link23: + type: string + link24: + type: string + link25: + type: string + link26: + type: string + link27: + type: string + link28: + type: string + link29: + type: string + nodeid: + type: integer + password: + type: string + votes: + type: integer + required: + - fingerprint + - hostname + - password + CreateClusterFirewallGroupRequest: + title: CreateClusterFirewallGroupRequest + type: object + properties: + comment: + type: string + digest: + type: string + group: + type: string + rename: + type: string + required: + - group + AddClusterFirewallGroupRuleRequest: + title: AddClusterFirewallGroupRuleRequest + type: object + properties: + action: + type: string + comment: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + pos: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + required: + - action + - type + UpdateClusterFirewallGroupRuleRequest: + title: UpdateClusterFirewallGroupRuleRequest + type: object + properties: + action: + type: string + comment: + type: string + delete: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + moveto: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + AddClusterFirewallRuleRequest: + title: AddClusterFirewallRuleRequest + type: object + properties: + action: + type: string + comment: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + pos: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + required: + - action + - type + UpdateClusterFirewallRuleRequest: + title: UpdateClusterFirewallRuleRequest + type: object + properties: + action: + type: string + comment: + type: string + delete: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + moveto: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + CreateClusterFirewallIPSetRequest: + title: CreateClusterFirewallIPSetRequest + type: object + properties: + comment: + type: string + digest: + type: string + name: + type: string + rename: + type: string + required: + - name + AddClusterFirewallIPSetIPRequest: + title: AddClusterFirewallIPSetIPRequest + type: object + properties: + cidr: + type: string + comment: + type: string + nomatch: + type: boolean + required: + - cidr + UpdateClusterFirewallIPSetIPRequest: + title: UpdateClusterFirewallIPSetIPRequest + type: object + properties: + comment: + type: string + digest: + type: string + nomatch: + type: boolean + CreateClusterFirewallAliasesRequest: + title: CreateClusterFirewallAliasesRequest + type: object + properties: + cidr: + type: string + comment: + type: string + name: + type: string + required: + - cidr + - name + UpdateClusterFirewallAliasesSingleRequest: + title: UpdateClusterFirewallAliasesSingleRequest + type: object + properties: + cidr: + type: string + comment: + type: string + digest: + type: string + rename: + type: string + required: + - cidr + UpdateClusterFirewallOptionsRequest: + title: UpdateClusterFirewallOptionsRequest + type: object + properties: + delete: + type: string + digest: + type: string + ebtables: + type: boolean + enable: + type: integer + log_ratelimit: + type: string + policy_in: + type: string + policy_out: + type: string + CreateClusterBackupRequest: + title: CreateClusterBackupRequest + type: object + properties: + all: + type: boolean + bwlimit: + type: integer + compress: + type: string + dow: + type: string + dumpdir: + type: string + enabled: + type: boolean + exclude: + type: string + exclude-path: + type: string + ionice: + type: integer + lockwait: + type: integer + mailnotification: + type: string + mailto: + type: string + maxfiles: + type: integer + mode: + type: string + node: + type: string + pigz: + type: integer + pool: + type: string + prune-backups: + type: string + quiet: + type: boolean + remove: + type: boolean + script: + type: string + size: + type: integer + starttime: + type: string + stdexcludes: + type: boolean + stop: + type: boolean + stopwait: + type: integer + storage: + type: string + tmpdir: + type: string + vmid: + type: string + zstd: + type: integer + required: + - starttime + UpdateClusterBackupSingleRequest: + title: UpdateClusterBackupSingleRequest + type: object + properties: + all: + type: boolean + bwlimit: + type: integer + compress: + type: string + delete: + type: string + dow: + type: string + dumpdir: + type: string + enabled: + type: boolean + exclude: + type: string + exclude-path: + type: string + ionice: + type: integer + lockwait: + type: integer + mailnotification: + type: string + mailto: + type: string + maxfiles: + type: integer + mode: + type: string + node: + type: string + pigz: + type: integer + pool: + type: string + prune-backups: + type: string + quiet: + type: boolean + remove: + type: boolean + script: + type: string + size: + type: integer + starttime: + type: string + stdexcludes: + type: boolean + stop: + type: boolean + stopwait: + type: integer + storage: + type: string + tmpdir: + type: string + vmid: + type: string + zstd: + type: integer + required: + - starttime + CreateClusterHaResourcesRequest: + title: CreateClusterHaResourcesRequest + type: object + properties: + comment: + type: string + group: + type: string + max_relocate: + type: integer + max_restart: + type: integer + sid: + type: string + state: + type: string + type: + type: string + required: + - sid + UpdateClusterHaResourcesSingleRequest: + title: UpdateClusterHaResourcesSingleRequest + type: object + properties: + comment: + type: string + delete: + type: string + digest: + type: string + group: + type: string + max_relocate: + type: integer + max_restart: + type: integer + state: + type: string + CreateClusterHaResourcesSingleMigrateRequest: + title: CreateClusterHaResourcesSingleMigrateRequest + type: object + properties: + node: + type: string + required: + - node + CreateClusterHaResourcesSingleRelocateRequest: + title: CreateClusterHaResourcesSingleRelocateRequest + type: object + properties: + node: + type: string + required: + - node + CreateClusterHaGroupsRequest: + title: CreateClusterHaGroupsRequest + type: object + properties: + comment: + type: string + group: + type: string + nodes: + type: string + nofailback: + type: boolean + restricted: + type: boolean + type: + type: string + required: + - group + - nodes + UpdateClusterHaGroupsSingleRequest: + title: UpdateClusterHaGroupsSingleRequest + type: object + properties: + comment: + type: string + delete: + type: string + digest: + type: string + nodes: + type: string + nofailback: + type: boolean + restricted: + type: boolean + CreateClusterAcmePluginsRequest: + title: CreateClusterAcmePluginsRequest + type: object + properties: + api: + type: string + data: + type: string + disable: + type: boolean + id: + type: string + nodes: + type: string + type: + type: string + validation-delay: + type: integer + required: + - id + - type + UpdateClusterAcmePluginsSingleRequest: + title: UpdateClusterAcmePluginsSingleRequest + type: object + properties: + api: + type: string + data: + type: string + delete: + type: string + digest: + type: string + disable: + type: boolean + nodes: + type: string + validation-delay: + type: integer + CreateClusterAcmeAccountRequest: + title: CreateClusterAcmeAccountRequest + type: object + properties: + contact: + type: string + directory: + type: string + name: + type: string + tos_url: + type: string + required: + - contact + UpdateClusterAcmeAccountSingleRequest: + title: UpdateClusterAcmeAccountSingleRequest + type: object + properties: + contact: + type: string + UpdateClusterCephFlagsRequest: + title: UpdateClusterCephFlagsRequest + type: object + properties: + nobackfill: + type: boolean + nodeep-scrub: + type: boolean + nodown: + type: boolean + noin: + type: boolean + noout: + type: boolean + norebalance: + type: boolean + norecover: + type: boolean + noscrub: + type: boolean + notieragent: + type: boolean + noup: + type: boolean + pause: + type: boolean + UpdateClusterCephFlagsSingleRequest: + title: UpdateClusterCephFlagsSingleRequest + type: object + properties: + value: + type: boolean + required: + - value + UpdateClusterSDNRequest: + title: UpdateClusterSDNRequest + type: object + properties: {} + CreateClusterSDNVnetRequest: + title: CreateClusterSDNVnetRequest + type: object + properties: + alias: + type: string + ipv4: + type: string + ipv6: + type: string + mac: + type: string + tag: + type: integer + type: + type: string + vlanaware: + type: boolean + vnet: + type: string + zone: + type: string + required: + - vnet + - zone + UpdateClusterSDNVnetRequest: + title: UpdateClusterSDNVnetRequest + type: object + properties: + alias: + type: string + delete: + type: string + digest: + type: string + ipv4: + type: string + ipv6: + type: string + mac: + type: string + tag: + type: integer + vlanaware: + type: boolean + zone: + type: string + CreateClusterSDNZoneRequest: + title: CreateClusterSDNZoneRequest + type: object + properties: + bridge: + type: string + controller: + type: string + dp-id: + type: integer + mtu: + type: integer + nodes: + type: string + peers: + type: string + tag: + type: integer + type: + type: string + vlan-protocol: + type: string + vrf-vxlan: + type: integer + zone: + type: string + required: + - type + - zone + UpdateClusterSDNZoneRequest: + title: UpdateClusterSDNZoneRequest + type: object + properties: + bridge: + type: string + controller: + type: string + delete: + type: string + digest: + type: string + dp-id: + type: integer + mtu: + type: integer + nodes: + type: string + peers: + type: string + tag: + type: integer + vlan-protocol: + type: string + vrf-vxlan: + type: integer + CreateClusterSDNControllerRequest: + title: CreateClusterSDNControllerRequest + type: object + properties: + asn: + type: integer + controller: + type: string + gateway-external-peers: + type: string + gateway-nodes: + type: string + peers: + type: string + type: + type: string + required: + - controller + - type + UpdateClusterSDNControllerRequest: + title: UpdateClusterSDNControllerRequest + type: object + properties: + asn: + type: integer + delete: + type: string + digest: + type: string + gateway-external-peers: + type: string + gateway-nodes: + type: string + peers: + type: string + UpdateClusterOptionsRequest: + title: UpdateClusterOptionsRequest + type: object + properties: + bwlimit: + type: string + console: + type: string + delete: + type: string + email_from: + type: string + fencing: + type: string + ha: + type: string + http_proxy: + type: string + keyboard: + type: string + language: + type: string + mac_prefix: + type: string + max_workers: + type: integer + migration: + type: string + migration_unsecure: + type: boolean + u2f: + type: string + CreateVMRequest: + title: CreateVMRequest + type: object + properties: + acpi: + type: boolean + agent: + type: string + arch: + type: string + archive: + type: string + args: + type: string + audio0: + type: string + autostart: + type: boolean + balloon: + type: integer + bios: + type: string + boot: + type: string + bootdisk: + type: string + bwlimit: + type: integer + cdrom: + type: string + cicustom: + type: string + cipassword: + type: string + citype: + type: string + ciuser: + type: string + cores: + type: integer + cpu: + type: string + cpulimit: + type: number + cpuunits: + type: integer + description: + type: string + efidisk0: + type: string + force: + type: boolean + freeze: + type: boolean + hookscript: + type: string + hostpci0: + type: string + hostpci1: + type: string + hostpci2: + type: string + hostpci3: + type: string + hostpci4: + type: string + hostpci5: + type: string + hostpci6: + type: string + hostpci7: + type: string + hostpci8: + type: string + hostpci9: + type: string + hostpci10: + type: string + hostpci11: + type: string + hostpci12: + type: string + hostpci13: + type: string + hostpci14: + type: string + hostpci15: + type: string + hostpci16: + type: string + hostpci17: + type: string + hostpci18: + type: string + hostpci19: + type: string + hostpci20: + type: string + hostpci21: + type: string + hostpci22: + type: string + hostpci23: + type: string + hostpci24: + type: string + hostpci25: + type: string + hostpci26: + type: string + hostpci27: + type: string + hostpci28: + type: string + hostpci29: + type: string + hotplug: + type: string + hugepages: + type: string + ide0: + type: string + ide1: + type: string + ide2: + type: string + ide3: + type: string + ide4: + type: string + ide5: + type: string + ide6: + type: string + ide7: + type: string + ide8: + type: string + ide9: + type: string + ide10: + type: string + ide11: + type: string + ide12: + type: string + ide13: + type: string + ide14: + type: string + ide15: + type: string + ide16: + type: string + ide17: + type: string + ide18: + type: string + ide19: + type: string + ide20: + type: string + ide21: + type: string + ide22: + type: string + ide23: + type: string + ide24: + type: string + ide25: + type: string + ide26: + type: string + ide27: + type: string + ide28: + type: string + ide29: + type: string + ipconfig0: + type: string + ipconfig1: + type: string + ipconfig2: + type: string + ipconfig3: + type: string + ipconfig4: + type: string + ipconfig5: + type: string + ipconfig6: + type: string + ipconfig7: + type: string + ipconfig8: + type: string + ipconfig9: + type: string + ipconfig10: + type: string + ipconfig11: + type: string + ipconfig12: + type: string + ipconfig13: + type: string + ipconfig14: + type: string + ipconfig15: + type: string + ipconfig16: + type: string + ipconfig17: + type: string + ipconfig18: + type: string + ipconfig19: + type: string + ipconfig20: + type: string + ipconfig21: + type: string + ipconfig22: + type: string + ipconfig23: + type: string + ipconfig24: + type: string + ipconfig25: + type: string + ipconfig26: + type: string + ipconfig27: + type: string + ipconfig28: + type: string + ipconfig29: + type: string + ivshmem: + type: string + keephugepages: + type: boolean + keyboard: + type: string + kvm: + type: boolean + localtime: + type: boolean + lock: + type: string + machine: + type: string + memory: + type: integer + migrate_downtime: + type: number + migrate_speed: + type: integer + name: + type: string + nameserver: + type: string + net0: + type: string + net1: + type: string + net2: + type: string + net3: + type: string + net4: + type: string + net5: + type: string + net6: + type: string + net7: + type: string + net8: + type: string + net9: + type: string + net10: + type: string + net11: + type: string + net12: + type: string + net13: + type: string + net14: + type: string + net15: + type: string + net16: + type: string + net17: + type: string + net18: + type: string + net19: + type: string + net20: + type: string + net21: + type: string + net22: + type: string + net23: + type: string + net24: + type: string + net25: + type: string + net26: + type: string + net27: + type: string + net28: + type: string + net29: + type: string + numa: + type: boolean + numa0: + type: string + numa1: + type: string + numa2: + type: string + numa3: + type: string + numa4: + type: string + numa5: + type: string + numa6: + type: string + numa7: + type: string + numa8: + type: string + numa9: + type: string + numa10: + type: string + numa11: + type: string + numa12: + type: string + numa13: + type: string + numa14: + type: string + numa15: + type: string + numa16: + type: string + numa17: + type: string + numa18: + type: string + numa19: + type: string + numa20: + type: string + numa21: + type: string + numa22: + type: string + numa23: + type: string + numa24: + type: string + numa25: + type: string + numa26: + type: string + numa27: + type: string + numa28: + type: string + numa29: + type: string + onboot: + type: boolean + ostype: + type: string + parallel0: + type: string + parallel1: + type: string + parallel2: + type: string + parallel3: + type: string + parallel4: + type: string + parallel5: + type: string + parallel6: + type: string + parallel7: + type: string + parallel8: + type: string + parallel9: + type: string + parallel10: + type: string + parallel11: + type: string + parallel12: + type: string + parallel13: + type: string + parallel14: + type: string + parallel15: + type: string + parallel16: + type: string + parallel17: + type: string + parallel18: + type: string + parallel19: + type: string + parallel20: + type: string + parallel21: + type: string + parallel22: + type: string + parallel23: + type: string + parallel24: + type: string + parallel25: + type: string + parallel26: + type: string + parallel27: + type: string + parallel28: + type: string + parallel29: + type: string + pool: + type: string + protection: + type: boolean + reboot: + type: boolean + rng0: + type: string + sata0: + type: string + sata1: + type: string + sata2: + type: string + sata3: + type: string + sata4: + type: string + sata5: + type: string + sata6: + type: string + sata7: + type: string + sata8: + type: string + sata9: + type: string + sata10: + type: string + sata11: + type: string + sata12: + type: string + sata13: + type: string + sata14: + type: string + sata15: + type: string + sata16: + type: string + sata17: + type: string + sata18: + type: string + sata19: + type: string + sata20: + type: string + sata21: + type: string + sata22: + type: string + sata23: + type: string + sata24: + type: string + sata25: + type: string + sata26: + type: string + sata27: + type: string + sata28: + type: string + sata29: + type: string + scsi0: + type: string + scsi1: + type: string + scsi2: + type: string + scsi3: + type: string + scsi4: + type: string + scsi5: + type: string + scsi6: + type: string + scsi7: + type: string + scsi8: + type: string + scsi9: + type: string + scsi10: + type: string + scsi11: + type: string + scsi12: + type: string + scsi13: + type: string + scsi14: + type: string + scsi15: + type: string + scsi16: + type: string + scsi17: + type: string + scsi18: + type: string + scsi19: + type: string + scsi20: + type: string + scsi21: + type: string + scsi22: + type: string + scsi23: + type: string + scsi24: + type: string + scsi25: + type: string + scsi26: + type: string + scsi27: + type: string + scsi28: + type: string + scsi29: + type: string + scsihw: + type: string + searchdomain: + type: string + serial0: + type: string + serial1: + type: string + serial2: + type: string + serial3: + type: string + serial4: + type: string + serial5: + type: string + serial6: + type: string + serial7: + type: string + serial8: + type: string + serial9: + type: string + serial10: + type: string + serial11: + type: string + serial12: + type: string + serial13: + type: string + serial14: + type: string + serial15: + type: string + serial16: + type: string + serial17: + type: string + serial18: + type: string + serial19: + type: string + serial20: + type: string + serial21: + type: string + serial22: + type: string + serial23: + type: string + serial24: + type: string + serial25: + type: string + serial26: + type: string + serial27: + type: string + serial28: + type: string + serial29: + type: string + shares: + type: integer + smbios1: + type: string + smp: + type: integer + sockets: + type: integer + spice_enhancements: + type: string + sshkeys: + type: string + start: + type: boolean + startdate: + type: string + startup: + type: string + storage: + type: string + tablet: + type: boolean + tags: + type: string + tdf: + type: boolean + template: + type: boolean + unique: + type: boolean + unused0: + type: string + unused1: + type: string + unused2: + type: string + unused3: + type: string + unused4: + type: string + unused5: + type: string + unused6: + type: string + unused7: + type: string + unused8: + type: string + unused9: + type: string + unused10: + type: string + unused11: + type: string + unused12: + type: string + unused13: + type: string + unused14: + type: string + unused15: + type: string + unused16: + type: string + unused17: + type: string + unused18: + type: string + unused19: + type: string + unused20: + type: string + unused21: + type: string + unused22: + type: string + unused23: + type: string + unused24: + type: string + unused25: + type: string + unused26: + type: string + unused27: + type: string + unused28: + type: string + unused29: + type: string + usb0: + type: string + usb1: + type: string + usb2: + type: string + usb3: + type: string + usb4: + type: string + usb5: + type: string + usb6: + type: string + usb7: + type: string + usb8: + type: string + usb9: + type: string + usb10: + type: string + usb11: + type: string + usb12: + type: string + usb13: + type: string + usb14: + type: string + usb15: + type: string + usb16: + type: string + usb17: + type: string + usb18: + type: string + usb19: + type: string + usb20: + type: string + usb21: + type: string + usb22: + type: string + usb23: + type: string + usb24: + type: string + usb25: + type: string + usb26: + type: string + usb27: + type: string + usb28: + type: string + usb29: + type: string + vcpus: + type: integer + vga: + type: string + virtio0: + type: string + virtio1: + type: string + virtio2: + type: string + virtio3: + type: string + virtio4: + type: string + virtio5: + type: string + virtio6: + type: string + virtio7: + type: string + virtio8: + type: string + virtio9: + type: string + virtio10: + type: string + virtio11: + type: string + virtio12: + type: string + virtio13: + type: string + virtio14: + type: string + virtio15: + type: string + virtio16: + type: string + virtio17: + type: string + virtio18: + type: string + virtio19: + type: string + virtio20: + type: string + virtio21: + type: string + virtio22: + type: string + virtio23: + type: string + virtio24: + type: string + virtio25: + type: string + virtio26: + type: string + virtio27: + type: string + virtio28: + type: string + virtio29: + type: string + vmgenid: + type: string + vmid: + type: integer + vmstatestorage: + type: string + watchdog: + type: string + required: + - vmid + CreateVMFirewallRuleRequest: + title: CreateVMFirewallRuleRequest + type: object + properties: + action: + type: string + comment: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + pos: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + required: + - action + - type + UpdateVMFirewallRuleRequest: + title: UpdateVMFirewallRuleRequest + type: object + properties: + action: + type: string + comment: + type: string + delete: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + moveto: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + CreateNodesSingleQemuSingleFirewallAliasesRequest: + title: CreateNodesSingleQemuSingleFirewallAliasesRequest + type: object + properties: + cidr: + type: string + comment: + type: string + name: + type: string + required: + - cidr + - name + UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest: + title: UpdateNodesSingleQemuSingleFirewallAliasesSingleRequest + type: object + properties: + cidr: + type: string + comment: + type: string + digest: + type: string + rename: + type: string + required: + - cidr + CreateVMFirewallIPSetRequest: + title: CreateVMFirewallIPSetRequest + type: object + properties: + comment: + type: string + digest: + type: string + name: + type: string + rename: + type: string + required: + - name + AddVMFirewallIPSetIPRequest: + title: AddVMFirewallIPSetIPRequest + type: object + properties: + cidr: + type: string + comment: + type: string + nomatch: + type: boolean + required: + - cidr + UpdateVMFirewallIPSetIPRequest: + title: UpdateVMFirewallIPSetIPRequest + type: object + properties: + comment: + type: string + digest: + type: string + nomatch: + type: boolean + UpdateVMFirewallOptionsRequest: + title: UpdateVMFirewallOptionsRequest + type: object + properties: + delete: + type: string + dhcp: + type: boolean + digest: + type: string + enable: + type: boolean + ipfilter: + type: boolean + log_level_in: + type: string + log_level_out: + type: string + macfilter: + type: boolean + ndp: + type: boolean + policy_in: + type: string + policy_out: + type: string + radv: + type: boolean + CreateNodesSingleQemuSingleAgentRequest: + title: CreateNodesSingleQemuSingleAgentRequest + type: object + properties: + command: + type: string + required: + - command + CreateNodesSingleQemuSingleAgentFsfreezefreezeRequest: + title: CreateNodesSingleQemuSingleAgentFsfreezefreezeRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentFsfreezestatusRequest: + title: CreateNodesSingleQemuSingleAgentFsfreezestatusRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentFsfreezethawRequest: + title: CreateNodesSingleQemuSingleAgentFsfreezethawRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentFstrimRequest: + title: CreateNodesSingleQemuSingleAgentFstrimRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentPingRequest: + title: CreateNodesSingleQemuSingleAgentPingRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentShutdownRequest: + title: CreateNodesSingleQemuSingleAgentShutdownRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentSuspenddiskRequest: + title: CreateNodesSingleQemuSingleAgentSuspenddiskRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentSuspendhybridRequest: + title: CreateNodesSingleQemuSingleAgentSuspendhybridRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentSuspendramRequest: + title: CreateNodesSingleQemuSingleAgentSuspendramRequest + type: object + properties: {} + CreateNodesSingleQemuSingleAgentSetuserpasswordRequest: + title: CreateNodesSingleQemuSingleAgentSetuserpasswordRequest + type: object + properties: + crypted: + type: boolean + password: + type: string + username: + type: string + required: + - password + - username + CreateNodesSingleQemuSingleAgentExecRequest: + title: CreateNodesSingleQemuSingleAgentExecRequest + type: object + properties: + command: + type: string + input-data: + type: string + CreateNodesSingleQemuSingleAgentFilewriteRequest: + title: CreateNodesSingleQemuSingleAgentFilewriteRequest + type: object + properties: + content: + type: string + file: + type: string + required: + - content + - file + UpdateVMConfigRequest: + title: UpdateVMConfigRequest + type: object + properties: + acpi: + type: boolean + agent: + type: string + arch: + type: string + args: + type: string + audio0: + type: string + autostart: + type: boolean + background_delay: + type: integer + balloon: + type: integer + bios: + type: string + boot: + type: string + bootdisk: + type: string + cdrom: + type: string + cicustom: + type: string + cipassword: + type: string + citype: + type: string + ciuser: + type: string + cores: + type: integer + cpu: + type: string + cpulimit: + type: number + cpuunits: + type: integer + delete: + type: string + description: + type: string + digest: + type: string + efidisk0: + type: string + force: + type: boolean + freeze: + type: boolean + hookscript: + type: string + hostpci0: + type: string + hostpci1: + type: string + hostpci2: + type: string + hostpci3: + type: string + hostpci4: + type: string + hostpci5: + type: string + hostpci6: + type: string + hostpci7: + type: string + hostpci8: + type: string + hostpci9: + type: string + hostpci10: + type: string + hostpci11: + type: string + hostpci12: + type: string + hostpci13: + type: string + hostpci14: + type: string + hostpci15: + type: string + hostpci16: + type: string + hostpci17: + type: string + hostpci18: + type: string + hostpci19: + type: string + hostpci20: + type: string + hostpci21: + type: string + hostpci22: + type: string + hostpci23: + type: string + hostpci24: + type: string + hostpci25: + type: string + hostpci26: + type: string + hostpci27: + type: string + hostpci28: + type: string + hostpci29: + type: string + hotplug: + type: string + hugepages: + type: string + ide0: + type: string + ide1: + type: string + ide2: + type: string + ide3: + type: string + ide4: + type: string + ide5: + type: string + ide6: + type: string + ide7: + type: string + ide8: + type: string + ide9: + type: string + ide10: + type: string + ide11: + type: string + ide12: + type: string + ide13: + type: string + ide14: + type: string + ide15: + type: string + ide16: + type: string + ide17: + type: string + ide18: + type: string + ide19: + type: string + ide20: + type: string + ide21: + type: string + ide22: + type: string + ide23: + type: string + ide24: + type: string + ide25: + type: string + ide26: + type: string + ide27: + type: string + ide28: + type: string + ide29: + type: string + ipconfig0: + type: string + ipconfig1: + type: string + ipconfig2: + type: string + ipconfig3: + type: string + ipconfig4: + type: string + ipconfig5: + type: string + ipconfig6: + type: string + ipconfig7: + type: string + ipconfig8: + type: string + ipconfig9: + type: string + ipconfig10: + type: string + ipconfig11: + type: string + ipconfig12: + type: string + ipconfig13: + type: string + ipconfig14: + type: string + ipconfig15: + type: string + ipconfig16: + type: string + ipconfig17: + type: string + ipconfig18: + type: string + ipconfig19: + type: string + ipconfig20: + type: string + ipconfig21: + type: string + ipconfig22: + type: string + ipconfig23: + type: string + ipconfig24: + type: string + ipconfig25: + type: string + ipconfig26: + type: string + ipconfig27: + type: string + ipconfig28: + type: string + ipconfig29: + type: string + ivshmem: + type: string + keephugepages: + type: boolean + keyboard: + type: string + kvm: + type: boolean + localtime: + type: boolean + lock: + type: string + machine: + type: string + memory: + type: integer + migrate_downtime: + type: number + migrate_speed: + type: integer + name: + type: string + nameserver: + type: string + net0: + type: string + net1: + type: string + net2: + type: string + net3: + type: string + net4: + type: string + net5: + type: string + net6: + type: string + net7: + type: string + net8: + type: string + net9: + type: string + net10: + type: string + net11: + type: string + net12: + type: string + net13: + type: string + net14: + type: string + net15: + type: string + net16: + type: string + net17: + type: string + net18: + type: string + net19: + type: string + net20: + type: string + net21: + type: string + net22: + type: string + net23: + type: string + net24: + type: string + net25: + type: string + net26: + type: string + net27: + type: string + net28: + type: string + net29: + type: string + numa: + type: boolean + numa0: + type: string + numa1: + type: string + numa2: + type: string + numa3: + type: string + numa4: + type: string + numa5: + type: string + numa6: + type: string + numa7: + type: string + numa8: + type: string + numa9: + type: string + numa10: + type: string + numa11: + type: string + numa12: + type: string + numa13: + type: string + numa14: + type: string + numa15: + type: string + numa16: + type: string + numa17: + type: string + numa18: + type: string + numa19: + type: string + numa20: + type: string + numa21: + type: string + numa22: + type: string + numa23: + type: string + numa24: + type: string + numa25: + type: string + numa26: + type: string + numa27: + type: string + numa28: + type: string + numa29: + type: string + onboot: + type: boolean + ostype: + type: string + parallel0: + type: string + parallel1: + type: string + parallel2: + type: string + parallel3: + type: string + parallel4: + type: string + parallel5: + type: string + parallel6: + type: string + parallel7: + type: string + parallel8: + type: string + parallel9: + type: string + parallel10: + type: string + parallel11: + type: string + parallel12: + type: string + parallel13: + type: string + parallel14: + type: string + parallel15: + type: string + parallel16: + type: string + parallel17: + type: string + parallel18: + type: string + parallel19: + type: string + parallel20: + type: string + parallel21: + type: string + parallel22: + type: string + parallel23: + type: string + parallel24: + type: string + parallel25: + type: string + parallel26: + type: string + parallel27: + type: string + parallel28: + type: string + parallel29: + type: string + protection: + type: boolean + reboot: + type: boolean + revert: + type: string + rng0: + type: string + sata0: + type: string + sata1: + type: string + sata2: + type: string + sata3: + type: string + sata4: + type: string + sata5: + type: string + sata6: + type: string + sata7: + type: string + sata8: + type: string + sata9: + type: string + sata10: + type: string + sata11: + type: string + sata12: + type: string + sata13: + type: string + sata14: + type: string + sata15: + type: string + sata16: + type: string + sata17: + type: string + sata18: + type: string + sata19: + type: string + sata20: + type: string + sata21: + type: string + sata22: + type: string + sata23: + type: string + sata24: + type: string + sata25: + type: string + sata26: + type: string + sata27: + type: string + sata28: + type: string + sata29: + type: string + scsi0: + type: string + scsi1: + type: string + scsi2: + type: string + scsi3: + type: string + scsi4: + type: string + scsi5: + type: string + scsi6: + type: string + scsi7: + type: string + scsi8: + type: string + scsi9: + type: string + scsi10: + type: string + scsi11: + type: string + scsi12: + type: string + scsi13: + type: string + scsi14: + type: string + scsi15: + type: string + scsi16: + type: string + scsi17: + type: string + scsi18: + type: string + scsi19: + type: string + scsi20: + type: string + scsi21: + type: string + scsi22: + type: string + scsi23: + type: string + scsi24: + type: string + scsi25: + type: string + scsi26: + type: string + scsi27: + type: string + scsi28: + type: string + scsi29: + type: string + scsihw: + type: string + searchdomain: + type: string + serial0: + type: string + serial1: + type: string + serial2: + type: string + serial3: + type: string + serial4: + type: string + serial5: + type: string + serial6: + type: string + serial7: + type: string + serial8: + type: string + serial9: + type: string + serial10: + type: string + serial11: + type: string + serial12: + type: string + serial13: + type: string + serial14: + type: string + serial15: + type: string + serial16: + type: string + serial17: + type: string + serial18: + type: string + serial19: + type: string + serial20: + type: string + serial21: + type: string + serial22: + type: string + serial23: + type: string + serial24: + type: string + serial25: + type: string + serial26: + type: string + serial27: + type: string + serial28: + type: string + serial29: + type: string + shares: + type: integer + skiplock: + type: boolean + smbios1: + type: string + smp: + type: integer + sockets: + type: integer + spice_enhancements: + type: string + sshkeys: + type: string + startdate: + type: string + startup: + type: string + tablet: + type: boolean + tags: + type: string + tdf: + type: boolean + template: + type: boolean + unused0: + type: string + unused1: + type: string + unused2: + type: string + unused3: + type: string + unused4: + type: string + unused5: + type: string + unused6: + type: string + unused7: + type: string + unused8: + type: string + unused9: + type: string + unused10: + type: string + unused11: + type: string + unused12: + type: string + unused13: + type: string + unused14: + type: string + unused15: + type: string + unused16: + type: string + unused17: + type: string + unused18: + type: string + unused19: + type: string + unused20: + type: string + unused21: + type: string + unused22: + type: string + unused23: + type: string + unused24: + type: string + unused25: + type: string + unused26: + type: string + unused27: + type: string + unused28: + type: string + unused29: + type: string + usb0: + type: string + usb1: + type: string + usb2: + type: string + usb3: + type: string + usb4: + type: string + usb5: + type: string + usb6: + type: string + usb7: + type: string + usb8: + type: string + usb9: + type: string + usb10: + type: string + usb11: + type: string + usb12: + type: string + usb13: + type: string + usb14: + type: string + usb15: + type: string + usb16: + type: string + usb17: + type: string + usb18: + type: string + usb19: + type: string + usb20: + type: string + usb21: + type: string + usb22: + type: string + usb23: + type: string + usb24: + type: string + usb25: + type: string + usb26: + type: string + usb27: + type: string + usb28: + type: string + usb29: + type: string + vcpus: + type: integer + vga: + type: string + virtio0: + type: string + virtio1: + type: string + virtio2: + type: string + virtio3: + type: string + virtio4: + type: string + virtio5: + type: string + virtio6: + type: string + virtio7: + type: string + virtio8: + type: string + virtio9: + type: string + virtio10: + type: string + virtio11: + type: string + virtio12: + type: string + virtio13: + type: string + virtio14: + type: string + virtio15: + type: string + virtio16: + type: string + virtio17: + type: string + virtio18: + type: string + virtio19: + type: string + virtio20: + type: string + virtio21: + type: string + virtio22: + type: string + virtio23: + type: string + virtio24: + type: string + virtio25: + type: string + virtio26: + type: string + virtio27: + type: string + virtio28: + type: string + virtio29: + type: string + vmgenid: + type: string + vmstatestorage: + type: string + watchdog: + type: string + UpdateVMConfigSyncRequest: + title: UpdateVMConfigSyncRequest + type: object + properties: + acpi: + type: boolean + agent: + type: string + arch: + type: string + args: + type: string + audio0: + type: string + autostart: + type: boolean + balloon: + type: integer + bios: + type: string + boot: + type: string + bootdisk: + type: string + cdrom: + type: string + cicustom: + type: string + cipassword: + type: string + citype: + type: string + ciuser: + type: string + cores: + type: integer + cpu: + type: string + cpulimit: + type: number + cpuunits: + type: integer + delete: + type: string + description: + type: string + digest: + type: string + efidisk0: + type: string + force: + type: boolean + freeze: + type: boolean + hookscript: + type: string + hostpci0: + type: string + hostpci1: + type: string + hostpci2: + type: string + hostpci3: + type: string + hostpci4: + type: string + hostpci5: + type: string + hostpci6: + type: string + hostpci7: + type: string + hostpci8: + type: string + hostpci9: + type: string + hostpci10: + type: string + hostpci11: + type: string + hostpci12: + type: string + hostpci13: + type: string + hostpci14: + type: string + hostpci15: + type: string + hostpci16: + type: string + hostpci17: + type: string + hostpci18: + type: string + hostpci19: + type: string + hostpci20: + type: string + hostpci21: + type: string + hostpci22: + type: string + hostpci23: + type: string + hostpci24: + type: string + hostpci25: + type: string + hostpci26: + type: string + hostpci27: + type: string + hostpci28: + type: string + hostpci29: + type: string + hotplug: + type: string + hugepages: + type: string + ide0: + type: string + ide1: + type: string + ide2: + type: string + ide3: + type: string + ide4: + type: string + ide5: + type: string + ide6: + type: string + ide7: + type: string + ide8: + type: string + ide9: + type: string + ide10: + type: string + ide11: + type: string + ide12: + type: string + ide13: + type: string + ide14: + type: string + ide15: + type: string + ide16: + type: string + ide17: + type: string + ide18: + type: string + ide19: + type: string + ide20: + type: string + ide21: + type: string + ide22: + type: string + ide23: + type: string + ide24: + type: string + ide25: + type: string + ide26: + type: string + ide27: + type: string + ide28: + type: string + ide29: + type: string + ipconfig0: + type: string + ipconfig1: + type: string + ipconfig2: + type: string + ipconfig3: + type: string + ipconfig4: + type: string + ipconfig5: + type: string + ipconfig6: + type: string + ipconfig7: + type: string + ipconfig8: + type: string + ipconfig9: + type: string + ipconfig10: + type: string + ipconfig11: + type: string + ipconfig12: + type: string + ipconfig13: + type: string + ipconfig14: + type: string + ipconfig15: + type: string + ipconfig16: + type: string + ipconfig17: + type: string + ipconfig18: + type: string + ipconfig19: + type: string + ipconfig20: + type: string + ipconfig21: + type: string + ipconfig22: + type: string + ipconfig23: + type: string + ipconfig24: + type: string + ipconfig25: + type: string + ipconfig26: + type: string + ipconfig27: + type: string + ipconfig28: + type: string + ipconfig29: + type: string + ivshmem: + type: string + keephugepages: + type: boolean + keyboard: + type: string + kvm: + type: boolean + localtime: + type: boolean + lock: + type: string + machine: + type: string + memory: + type: integer + migrate_downtime: + type: number + migrate_speed: + type: integer + name: + type: string + nameserver: + type: string + net0: + type: string + net1: + type: string + net2: + type: string + net3: + type: string + net4: + type: string + net5: + type: string + net6: + type: string + net7: + type: string + net8: + type: string + net9: + type: string + net10: + type: string + net11: + type: string + net12: + type: string + net13: + type: string + net14: + type: string + net15: + type: string + net16: + type: string + net17: + type: string + net18: + type: string + net19: + type: string + net20: + type: string + net21: + type: string + net22: + type: string + net23: + type: string + net24: + type: string + net25: + type: string + net26: + type: string + net27: + type: string + net28: + type: string + net29: + type: string + numa: + type: boolean + numa0: + type: string + numa1: + type: string + numa2: + type: string + numa3: + type: string + numa4: + type: string + numa5: + type: string + numa6: + type: string + numa7: + type: string + numa8: + type: string + numa9: + type: string + numa10: + type: string + numa11: + type: string + numa12: + type: string + numa13: + type: string + numa14: + type: string + numa15: + type: string + numa16: + type: string + numa17: + type: string + numa18: + type: string + numa19: + type: string + numa20: + type: string + numa21: + type: string + numa22: + type: string + numa23: + type: string + numa24: + type: string + numa25: + type: string + numa26: + type: string + numa27: + type: string + numa28: + type: string + numa29: + type: string + onboot: + type: boolean + ostype: + type: string + parallel0: + type: string + parallel1: + type: string + parallel2: + type: string + parallel3: + type: string + parallel4: + type: string + parallel5: + type: string + parallel6: + type: string + parallel7: + type: string + parallel8: + type: string + parallel9: + type: string + parallel10: + type: string + parallel11: + type: string + parallel12: + type: string + parallel13: + type: string + parallel14: + type: string + parallel15: + type: string + parallel16: + type: string + parallel17: + type: string + parallel18: + type: string + parallel19: + type: string + parallel20: + type: string + parallel21: + type: string + parallel22: + type: string + parallel23: + type: string + parallel24: + type: string + parallel25: + type: string + parallel26: + type: string + parallel27: + type: string + parallel28: + type: string + parallel29: + type: string + protection: + type: boolean + reboot: + type: boolean + revert: + type: string + rng0: + type: string + sata0: + type: string + sata1: + type: string + sata2: + type: string + sata3: + type: string + sata4: + type: string + sata5: + type: string + sata6: + type: string + sata7: + type: string + sata8: + type: string + sata9: + type: string + sata10: + type: string + sata11: + type: string + sata12: + type: string + sata13: + type: string + sata14: + type: string + sata15: + type: string + sata16: + type: string + sata17: + type: string + sata18: + type: string + sata19: + type: string + sata20: + type: string + sata21: + type: string + sata22: + type: string + sata23: + type: string + sata24: + type: string + sata25: + type: string + sata26: + type: string + sata27: + type: string + sata28: + type: string + sata29: + type: string + scsi0: + type: string + scsi1: + type: string + scsi2: + type: string + scsi3: + type: string + scsi4: + type: string + scsi5: + type: string + scsi6: + type: string + scsi7: + type: string + scsi8: + type: string + scsi9: + type: string + scsi10: + type: string + scsi11: + type: string + scsi12: + type: string + scsi13: + type: string + scsi14: + type: string + scsi15: + type: string + scsi16: + type: string + scsi17: + type: string + scsi18: + type: string + scsi19: + type: string + scsi20: + type: string + scsi21: + type: string + scsi22: + type: string + scsi23: + type: string + scsi24: + type: string + scsi25: + type: string + scsi26: + type: string + scsi27: + type: string + scsi28: + type: string + scsi29: + type: string + scsihw: + type: string + searchdomain: + type: string + serial0: + type: string + serial1: + type: string + serial2: + type: string + serial3: + type: string + serial4: + type: string + serial5: + type: string + serial6: + type: string + serial7: + type: string + serial8: + type: string + serial9: + type: string + serial10: + type: string + serial11: + type: string + serial12: + type: string + serial13: + type: string + serial14: + type: string + serial15: + type: string + serial16: + type: string + serial17: + type: string + serial18: + type: string + serial19: + type: string + serial20: + type: string + serial21: + type: string + serial22: + type: string + serial23: + type: string + serial24: + type: string + serial25: + type: string + serial26: + type: string + serial27: + type: string + serial28: + type: string + serial29: + type: string + shares: + type: integer + skiplock: + type: boolean + smbios1: + type: string + smp: + type: integer + sockets: + type: integer + spice_enhancements: + type: string + sshkeys: + type: string + startdate: + type: string + startup: + type: string + tablet: + type: boolean + tags: + type: string + tdf: + type: boolean + template: + type: boolean + unused0: + type: string + unused1: + type: string + unused2: + type: string + unused3: + type: string + unused4: + type: string + unused5: + type: string + unused6: + type: string + unused7: + type: string + unused8: + type: string + unused9: + type: string + unused10: + type: string + unused11: + type: string + unused12: + type: string + unused13: + type: string + unused14: + type: string + unused15: + type: string + unused16: + type: string + unused17: + type: string + unused18: + type: string + unused19: + type: string + unused20: + type: string + unused21: + type: string + unused22: + type: string + unused23: + type: string + unused24: + type: string + unused25: + type: string + unused26: + type: string + unused27: + type: string + unused28: + type: string + unused29: + type: string + usb0: + type: string + usb1: + type: string + usb2: + type: string + usb3: + type: string + usb4: + type: string + usb5: + type: string + usb6: + type: string + usb7: + type: string + usb8: + type: string + usb9: + type: string + usb10: + type: string + usb11: + type: string + usb12: + type: string + usb13: + type: string + usb14: + type: string + usb15: + type: string + usb16: + type: string + usb17: + type: string + usb18: + type: string + usb19: + type: string + usb20: + type: string + usb21: + type: string + usb22: + type: string + usb23: + type: string + usb24: + type: string + usb25: + type: string + usb26: + type: string + usb27: + type: string + usb28: + type: string + usb29: + type: string + vcpus: + type: integer + vga: + type: string + virtio0: + type: string + virtio1: + type: string + virtio2: + type: string + virtio3: + type: string + virtio4: + type: string + virtio5: + type: string + virtio6: + type: string + virtio7: + type: string + virtio8: + type: string + virtio9: + type: string + virtio10: + type: string + virtio11: + type: string + virtio12: + type: string + virtio13: + type: string + virtio14: + type: string + virtio15: + type: string + virtio16: + type: string + virtio17: + type: string + virtio18: + type: string + virtio19: + type: string + virtio20: + type: string + virtio21: + type: string + virtio22: + type: string + virtio23: + type: string + virtio24: + type: string + virtio25: + type: string + virtio26: + type: string + virtio27: + type: string + virtio28: + type: string + virtio29: + type: string + vmgenid: + type: string + vmstatestorage: + type: string + watchdog: + type: string + UnlinkVMDiskImagesRequest: + title: UnlinkVMDiskImagesRequest + type: object + properties: + force: + type: boolean + idlist: + type: string + required: + - idlist + CreateNodesSingleQemuSingleVncproxyRequest: + title: CreateNodesSingleQemuSingleVncproxyRequest + type: object + properties: + generate-password: + type: boolean + websocket: + type: boolean + CreateNodesSingleQemuSingleTermproxyRequest: + title: CreateNodesSingleQemuSingleTermproxyRequest + type: object + properties: + serial: + type: string + CreateNodesSingleQemuSingleSpiceproxyRequest: + title: CreateNodesSingleQemuSingleSpiceproxyRequest + type: object + properties: + proxy: + type: string + StartVMRequest: + title: StartVMRequest + type: object + properties: + force-cpu: + type: string + machine: + type: string + migratedfrom: + type: string + migration_network: + type: string + migration_type: + type: string + skiplock: + type: boolean + stateuri: + type: string + targetstorage: + type: string + timeout: + type: integer + StopVMRequest: + title: StopVMRequest + type: object + properties: + keepActive: + type: boolean + migratedfrom: + type: string + skiplock: + type: boolean + timeout: + type: integer + ResetVMRequest: + title: ResetVMRequest + type: object + properties: + skiplock: + type: boolean + ShutdownVMRequest: + title: ShutdownVMRequest + type: object + properties: + forceStop: + type: boolean + keepActive: + type: boolean + skiplock: + type: boolean + timeout: + type: integer + RebootVMRequest: + title: RebootVMRequest + type: object + properties: + timeout: + type: integer + SuspendVMRequest: + title: SuspendVMRequest + type: object + properties: + skiplock: + type: boolean + statestorage: + type: string + todisk: + type: boolean + ResumeVMRequest: + title: ResumeVMRequest + type: object + properties: + nocheck: + type: boolean + skiplock: + type: boolean + UpdateNodesSingleQemuSingleSendkeyRequest: + title: UpdateNodesSingleQemuSingleSendkeyRequest + type: object + properties: + key: + type: string + skiplock: + type: boolean + required: + - key + CloneVMRequest: + title: CloneVMRequest + type: object + properties: + bwlimit: + type: integer + description: + type: string + format: + type: string + full: + type: boolean + name: + type: string + newid: + type: integer + pool: + type: string + snapname: + type: string + storage: + type: string + target: + type: string + required: + - newid + CreateNodesSingleQemuSingleMovediskRequest: + title: CreateNodesSingleQemuSingleMovediskRequest + type: object + properties: + bwlimit: + type: integer + delete: + type: boolean + digest: + type: string + disk: + type: string + format: + type: string + storage: + type: string + required: + - disk + - storage + CreateNodesSingleQemuSingleMigrateRequest: + title: CreateNodesSingleQemuSingleMigrateRequest + type: object + properties: + bwlimit: + type: integer + force: + type: boolean + migration_network: + type: string + migration_type: + type: string + online: + type: boolean + target: + type: string + targetstorage: + type: string + with-local-disks: + type: boolean + required: + - target + CreateNodesSingleQemuSingleMonitorRequest: + title: CreateNodesSingleQemuSingleMonitorRequest + type: object + properties: + command: + type: string + required: + - command + ResizeVMDiskRequest: + title: ResizeVMDiskRequest + type: object + properties: + digest: + type: string + disk: + type: string + size: + type: string + skiplock: + type: boolean + required: + - disk + - size + CreateVMSnapshotRequest: + title: CreateVMSnapshotRequest + type: object + properties: + description: + type: string + snapname: + type: string + vmstate: + type: boolean + required: + - snapname + UpdateVMSnapshotConfigRequest: + title: UpdateVMSnapshotConfigRequest + type: object + properties: + description: + type: string + RollbackVMSnapshotRequest: + title: RollbackVMSnapshotRequest + type: object + properties: {} + CreateNodesSingleQemuSingleTemplateRequest: + title: CreateNodesSingleQemuSingleTemplateRequest + type: object + properties: + disk: + type: string + CreateNodesSingleLxcRequest: + title: CreateNodesSingleLxcRequest + type: object + properties: + arch: + type: string + bwlimit: + type: number + cmode: + type: string + console: + type: boolean + cores: + type: integer + cpulimit: + type: number + cpuunits: + type: integer + debug: + type: boolean + description: + type: string + features: + type: string + force: + type: boolean + hookscript: + type: string + hostname: + type: string + ignore-unpack-errors: + type: boolean + lock: + type: string + memory: + type: integer + mp0: + type: string + mp1: + type: string + mp2: + type: string + mp3: + type: string + mp4: + type: string + mp5: + type: string + mp6: + type: string + mp7: + type: string + mp8: + type: string + mp9: + type: string + mp10: + type: string + mp11: + type: string + mp12: + type: string + mp13: + type: string + mp14: + type: string + mp15: + type: string + mp16: + type: string + mp17: + type: string + mp18: + type: string + mp19: + type: string + mp20: + type: string + mp21: + type: string + mp22: + type: string + mp23: + type: string + mp24: + type: string + mp25: + type: string + mp26: + type: string + mp27: + type: string + mp28: + type: string + mp29: + type: string + nameserver: + type: string + net0: + type: string + net1: + type: string + net2: + type: string + net3: + type: string + net4: + type: string + net5: + type: string + net6: + type: string + net7: + type: string + net8: + type: string + net9: + type: string + net10: + type: string + net11: + type: string + net12: + type: string + net13: + type: string + net14: + type: string + net15: + type: string + net16: + type: string + net17: + type: string + net18: + type: string + net19: + type: string + net20: + type: string + net21: + type: string + net22: + type: string + net23: + type: string + net24: + type: string + net25: + type: string + net26: + type: string + net27: + type: string + net28: + type: string + net29: + type: string + onboot: + type: boolean + ostemplate: + type: string + ostype: + type: string + password: + type: string + pool: + type: string + protection: + type: boolean + restore: + type: boolean + rootfs: + type: string + searchdomain: + type: string + ssh-public-keys: + type: string + start: + type: boolean + startup: + type: string + storage: + type: string + swap: + type: integer + tags: + type: string + template: + type: boolean + timezone: + type: string + tty: + type: integer + unique: + type: boolean + unprivileged: + type: boolean + unused0: + type: string + unused1: + type: string + unused2: + type: string + unused3: + type: string + unused4: + type: string + unused5: + type: string + unused6: + type: string + unused7: + type: string + unused8: + type: string + unused9: + type: string + unused10: + type: string + unused11: + type: string + unused12: + type: string + unused13: + type: string + unused14: + type: string + unused15: + type: string + unused16: + type: string + unused17: + type: string + unused18: + type: string + unused19: + type: string + unused20: + type: string + unused21: + type: string + unused22: + type: string + unused23: + type: string + unused24: + type: string + unused25: + type: string + unused26: + type: string + unused27: + type: string + unused28: + type: string + unused29: + type: string + vmid: + type: integer + required: + - ostemplate + - vmid + UpdateNodesSingleLxcSingleConfigRequest: + title: UpdateNodesSingleLxcSingleConfigRequest + type: object + properties: + arch: + type: string + cmode: + type: string + console: + type: boolean + cores: + type: integer + cpulimit: + type: number + cpuunits: + type: integer + debug: + type: boolean + delete: + type: string + description: + type: string + digest: + type: string + features: + type: string + hookscript: + type: string + hostname: + type: string + lock: + type: string + memory: + type: integer + mp0: + type: string + mp1: + type: string + mp2: + type: string + mp3: + type: string + mp4: + type: string + mp5: + type: string + mp6: + type: string + mp7: + type: string + mp8: + type: string + mp9: + type: string + mp10: + type: string + mp11: + type: string + mp12: + type: string + mp13: + type: string + mp14: + type: string + mp15: + type: string + mp16: + type: string + mp17: + type: string + mp18: + type: string + mp19: + type: string + mp20: + type: string + mp21: + type: string + mp22: + type: string + mp23: + type: string + mp24: + type: string + mp25: + type: string + mp26: + type: string + mp27: + type: string + mp28: + type: string + mp29: + type: string + nameserver: + type: string + net0: + type: string + net1: + type: string + net2: + type: string + net3: + type: string + net4: + type: string + net5: + type: string + net6: + type: string + net7: + type: string + net8: + type: string + net9: + type: string + net10: + type: string + net11: + type: string + net12: + type: string + net13: + type: string + net14: + type: string + net15: + type: string + net16: + type: string + net17: + type: string + net18: + type: string + net19: + type: string + net20: + type: string + net21: + type: string + net22: + type: string + net23: + type: string + net24: + type: string + net25: + type: string + net26: + type: string + net27: + type: string + net28: + type: string + net29: + type: string + onboot: + type: boolean + ostype: + type: string + protection: + type: boolean + revert: + type: string + rootfs: + type: string + searchdomain: + type: string + startup: + type: string + swap: + type: integer + tags: + type: string + template: + type: boolean + timezone: + type: string + tty: + type: integer + unprivileged: + type: boolean + unused0: + type: string + unused1: + type: string + unused2: + type: string + unused3: + type: string + unused4: + type: string + unused5: + type: string + unused6: + type: string + unused7: + type: string + unused8: + type: string + unused9: + type: string + unused10: + type: string + unused11: + type: string + unused12: + type: string + unused13: + type: string + unused14: + type: string + unused15: + type: string + unused16: + type: string + unused17: + type: string + unused18: + type: string + unused19: + type: string + unused20: + type: string + unused21: + type: string + unused22: + type: string + unused23: + type: string + unused24: + type: string + unused25: + type: string + unused26: + type: string + unused27: + type: string + unused28: + type: string + unused29: + type: string + CreateNodesSingleLxcSingleStatusStartRequest: + title: CreateNodesSingleLxcSingleStatusStartRequest + type: object + properties: + debug: + type: boolean + skiplock: + type: boolean + CreateNodesSingleLxcSingleStatusStopRequest: + title: CreateNodesSingleLxcSingleStatusStopRequest + type: object + properties: + skiplock: + type: boolean + CreateNodesSingleLxcSingleStatusShutdownRequest: + title: CreateNodesSingleLxcSingleStatusShutdownRequest + type: object + properties: + forceStop: + type: boolean + timeout: + type: integer + CreateNodesSingleLxcSingleStatusSuspendRequest: + title: CreateNodesSingleLxcSingleStatusSuspendRequest + type: object + properties: {} + CreateNodesSingleLxcSingleStatusResumeRequest: + title: CreateNodesSingleLxcSingleStatusResumeRequest + type: object + properties: {} + CreateNodesSingleLxcSingleStatusRebootRequest: + title: CreateNodesSingleLxcSingleStatusRebootRequest + type: object + properties: + timeout: + type: integer + CreateNodesSingleLxcSingleSnapshotRequest: + title: CreateNodesSingleLxcSingleSnapshotRequest + type: object + properties: + description: + type: string + snapname: + type: string + required: + - snapname + CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest: + title: CreateNodesSingleLxcSingleSnapshotSingleRollbackRequest + type: object + properties: {} + UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest: + title: UpdateNodesSingleLxcSingleSnapshotSingleConfigRequest + type: object + properties: + description: + type: string + CreateNodesSingleLxcSingleFirewallRulesRequest: + title: CreateNodesSingleLxcSingleFirewallRulesRequest + type: object + properties: + action: + type: string + comment: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + pos: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + required: + - action + - type + UpdateNodesSingleLxcSingleFirewallRulesSingleRequest: + title: UpdateNodesSingleLxcSingleFirewallRulesSingleRequest + type: object + properties: + action: + type: string + comment: + type: string + delete: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + moveto: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + CreateNodesSingleLxcSingleFirewallAliasesRequest: + title: CreateNodesSingleLxcSingleFirewallAliasesRequest + type: object + properties: + cidr: + type: string + comment: + type: string + name: + type: string + required: + - cidr + - name + UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest: + title: UpdateNodesSingleLxcSingleFirewallAliasesSingleRequest + type: object + properties: + cidr: + type: string + comment: + type: string + digest: + type: string + rename: + type: string + required: + - cidr + CreateNodesSingleLxcSingleFirewallIpsetRequest: + title: CreateNodesSingleLxcSingleFirewallIpsetRequest + type: object + properties: + comment: + type: string + digest: + type: string + name: + type: string + rename: + type: string + required: + - name + CreateNodesSingleLxcSingleFirewallIpsetSingleRequest: + title: CreateNodesSingleLxcSingleFirewallIpsetSingleRequest + type: object + properties: + cidr: + type: string + comment: + type: string + nomatch: + type: boolean + required: + - cidr + UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest: + title: UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleRequest + type: object + properties: + comment: + type: string + digest: + type: string + nomatch: + type: boolean + UpdateNodesSingleLxcSingleFirewallOptionsRequest: + title: UpdateNodesSingleLxcSingleFirewallOptionsRequest + type: object + properties: + delete: + type: string + dhcp: + type: boolean + digest: + type: string + enable: + type: boolean + ipfilter: + type: boolean + log_level_in: + type: string + log_level_out: + type: string + macfilter: + type: boolean + ndp: + type: boolean + policy_in: + type: string + policy_out: + type: string + radv: + type: boolean + CreateNodesSingleLxcSingleVncproxyRequest: + title: CreateNodesSingleLxcSingleVncproxyRequest + type: object + properties: + height: + type: integer + websocket: + type: boolean + width: + type: integer + CreateNodesSingleLxcSingleTermproxyRequest: + title: CreateNodesSingleLxcSingleTermproxyRequest + type: object + properties: {} + CreateNodesSingleLxcSingleSpiceproxyRequest: + title: CreateNodesSingleLxcSingleSpiceproxyRequest + type: object + properties: + proxy: + type: string + CreateNodesSingleLxcSingleMigrateRequest: + title: CreateNodesSingleLxcSingleMigrateRequest + type: object + properties: + bwlimit: + type: number + force: + type: boolean + online: + type: boolean + restart: + type: boolean + target: + type: string + timeout: + type: integer + required: + - target + CreateNodesSingleLxcSingleTemplateRequest: + title: CreateNodesSingleLxcSingleTemplateRequest + type: object + properties: {} + CreateNodesSingleLxcSingleCloneRequest: + title: CreateNodesSingleLxcSingleCloneRequest + type: object + properties: + bwlimit: + type: number + description: + type: string + full: + type: boolean + hostname: + type: string + newid: + type: integer + pool: + type: string + snapname: + type: string + storage: + type: string + target: + type: string + required: + - newid + UpdateNodesSingleLxcSingleResizeRequest: + title: UpdateNodesSingleLxcSingleResizeRequest + type: object + properties: + digest: + type: string + disk: + type: string + size: + type: string + required: + - disk + - size + CreateNodesSingleLxcSingleMovevolumeRequest: + title: CreateNodesSingleLxcSingleMovevolumeRequest + type: object + properties: + bwlimit: + type: number + delete: + type: boolean + digest: + type: string + storage: + type: string + volume: + type: string + required: + - storage + - volume + CreateNodesSingleCephOsdRequest: + title: CreateNodesSingleCephOsdRequest + type: object + properties: + crush-device-class: + type: string + db_dev: + type: string + db_size: + type: number + dev: + type: string + encrypted: + type: boolean + wal_dev: + type: string + wal_size: + type: number + required: + - dev + CreateNodesSingleCephOsdSingleInRequest: + title: CreateNodesSingleCephOsdSingleInRequest + type: object + properties: {} + CreateNodesSingleCephOsdSingleOutRequest: + title: CreateNodesSingleCephOsdSingleOutRequest + type: object + properties: {} + CreateNodesSingleCephOsdSingleScrubRequest: + title: CreateNodesSingleCephOsdSingleScrubRequest + type: object + properties: + deep: + type: boolean + CreateNodesSingleCephMdsSingleRequest: + title: CreateNodesSingleCephMdsSingleRequest + type: object + properties: + hotstandby: + type: boolean + CreateNodesSingleCephMgrSingleRequest: + title: CreateNodesSingleCephMgrSingleRequest + type: object + properties: {} + CreateNodesSingleCephMonSingleRequest: + title: CreateNodesSingleCephMonSingleRequest + type: object + properties: + mon-address: + type: string + CreateNodesSingleCephFsSingleRequest: + title: CreateNodesSingleCephFsSingleRequest + type: object + properties: + add-storage: + type: boolean + pg_num: + type: integer + CreateNodesSingleCephInitRequest: + title: CreateNodesSingleCephInitRequest + type: object + properties: + cluster-network: + type: string + disable_cephx: + type: boolean + min_size: + type: integer + network: + type: string + pg_bits: + type: integer + size: + type: integer + CreateNodesSingleCephStopRequest: + title: CreateNodesSingleCephStopRequest + type: object + properties: + service: + type: string + CreateNodesSingleCephStartRequest: + title: CreateNodesSingleCephStartRequest + type: object + properties: + service: + type: string + CreateNodesSingleCephRestartRequest: + title: CreateNodesSingleCephRestartRequest + type: object + properties: + service: + type: string + CreateNodesSingleCephPoolsRequest: + title: CreateNodesSingleCephPoolsRequest + type: object + properties: + add_storages: + type: boolean + application: + type: string + crush_rule: + type: string + min_size: + type: integer + name: + type: string + pg_autoscale_mode: + type: string + pg_num: + type: integer + size: + type: integer + required: + - name + UpdateNodesSingleCephPoolsSingleRequest: + title: UpdateNodesSingleCephPoolsSingleRequest + type: object + properties: + application: + type: string + crush_rule: + type: string + min_size: + type: integer + pg_autoscale_mode: + type: string + pg_num: + type: integer + size: + type: integer + CreateNodesSingleCephFlagsSingleRequest: + title: CreateNodesSingleCephFlagsSingleRequest + type: object + properties: {} + CreateNodesSingleVzdumpRequest: + title: CreateNodesSingleVzdumpRequest + type: object + properties: + all: + type: boolean + bwlimit: + type: integer + compress: + type: string + dumpdir: + type: string + exclude: + type: string + exclude-path: + type: string + ionice: + type: integer + lockwait: + type: integer + mailnotification: + type: string + mailto: + type: string + maxfiles: + type: integer + mode: + type: string + pigz: + type: integer + pool: + type: string + prune-backups: + type: string + quiet: + type: boolean + remove: + type: boolean + script: + type: string + size: + type: integer + stdexcludes: + type: boolean + stdout: + type: boolean + stop: + type: boolean + stopwait: + type: integer + storage: + type: string + tmpdir: + type: string + vmid: + type: string + zstd: + type: integer + CreateNodesSingleServicesSingleStartRequest: + title: CreateNodesSingleServicesSingleStartRequest + type: object + properties: {} + CreateNodesSingleServicesSingleStopRequest: + title: CreateNodesSingleServicesSingleStopRequest + type: object + properties: {} + CreateNodesSingleServicesSingleRestartRequest: + title: CreateNodesSingleServicesSingleRestartRequest + type: object + properties: {} + CreateNodesSingleServicesSingleReloadRequest: + title: CreateNodesSingleServicesSingleReloadRequest + type: object + properties: {} + CreateNodesSingleSubscriptionRequest: + title: CreateNodesSingleSubscriptionRequest + type: object + properties: + force: + type: boolean + UpdateNodesSingleSubscriptionRequest: + title: UpdateNodesSingleSubscriptionRequest + type: object + properties: + key: + type: string + required: + - key + CreateNodesSingleNetworkRequest: + title: CreateNodesSingleNetworkRequest + type: object + properties: + address: + type: string + address6: + type: string + autostart: + type: boolean + bond-primary: + type: string + bond_mode: + type: string + bond_xmit_hash_policy: + type: string + bridge_ports: + type: string + bridge_vlan_aware: + type: boolean + cidr: + type: string + cidr6: + type: string + comments: + type: string + comments6: + type: string + gateway: + type: string + gateway6: + type: string + iface: + type: string + mtu: + type: integer + netmask: + type: string + netmask6: + type: integer + ovs_bonds: + type: string + ovs_bridge: + type: string + ovs_options: + type: string + ovs_ports: + type: string + ovs_tag: + type: integer + slaves: + type: string + type: + type: string + vlan-id: + type: integer + vlan-raw-device: + type: string + required: + - iface + - type + UpdateNodesSingleNetworkRequest: + title: UpdateNodesSingleNetworkRequest + type: object + properties: {} + UpdateNodesSingleNetworkSingleRequest: + title: UpdateNodesSingleNetworkSingleRequest + type: object + properties: + address: + type: string + address6: + type: string + autostart: + type: boolean + bond-primary: + type: string + bond_mode: + type: string + bond_xmit_hash_policy: + type: string + bridge_ports: + type: string + bridge_vlan_aware: + type: boolean + cidr: + type: string + cidr6: + type: string + comments: + type: string + comments6: + type: string + delete: + type: string + gateway: + type: string + gateway6: + type: string + mtu: + type: integer + netmask: + type: string + netmask6: + type: integer + ovs_bonds: + type: string + ovs_bridge: + type: string + ovs_options: + type: string + ovs_ports: + type: string + ovs_tag: + type: integer + slaves: + type: string + type: + type: string + vlan-id: + type: integer + vlan-raw-device: + type: string + required: + - type + CreateNodesSingleStorageSingleContentRequest: + title: CreateNodesSingleStorageSingleContentRequest + type: object + properties: + filename: + type: string + format: + type: string + size: + type: string + vmid: + type: integer + required: + - filename + - size + - vmid + CreateNodesSingleStorageSingleContentSingleRequest: + title: CreateNodesSingleStorageSingleContentSingleRequest + type: object + properties: + target: + type: string + target_node: + type: string + required: + - target + UpdateNodesSingleStorageSingleContentSingleRequest: + title: UpdateNodesSingleStorageSingleContentSingleRequest + type: object + properties: + notes: + type: string + CreateNodesSingleStorageSingleUploadRequest: + title: CreateNodesSingleStorageSingleUploadRequest + type: object + properties: + content: + type: string + filename: + type: string + tmpfilename: + type: string + required: + - content + - filename + CreateNodesSingleDisksLvmRequest: + title: CreateNodesSingleDisksLvmRequest + type: object + properties: + add_storage: + type: boolean + device: + type: string + name: + type: string + required: + - device + - name + CreateNodesSingleDisksLvmthinRequest: + title: CreateNodesSingleDisksLvmthinRequest + type: object + properties: + add_storage: + type: boolean + device: + type: string + name: + type: string + required: + - device + - name + CreateNodesSingleDisksDirectoryRequest: + title: CreateNodesSingleDisksDirectoryRequest + type: object + properties: + add_storage: + type: boolean + device: + type: string + filesystem: + type: string + name: + type: string + required: + - device + - name + CreateNodesSingleDisksZfsRequest: + title: CreateNodesSingleDisksZfsRequest + type: object + properties: + add_storage: + type: boolean + ashift: + type: integer + compression: + type: string + devices: + type: string + name: + type: string + raidlevel: + type: string + required: + - devices + - name + - raidlevel + CreateNodesSingleDisksInitgptRequest: + title: CreateNodesSingleDisksInitgptRequest + type: object + properties: + disk: + type: string + uuid: + type: string + required: + - disk + CreateNodesSingleAptUpdateRequest: + title: CreateNodesSingleAptUpdateRequest + type: object + properties: + notify: + type: boolean + quiet: + type: boolean + CreateNodeFirewallRuleRequest: + title: CreateNodeFirewallRuleRequest + type: object + properties: + action: + type: string + comment: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + pos: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + required: + - action + - type + UpdateNodeFirewallRuleRequest: + title: UpdateNodeFirewallRuleRequest + type: object + properties: + action: + type: string + comment: + type: string + delete: + type: string + dest: + type: string + digest: + type: string + dport: + type: string + enable: + type: integer + icmp-type: + type: string + iface: + type: string + log: + type: string + macro: + type: string + moveto: + type: integer + proto: + type: string + source: + type: string + sport: + type: string + type: + type: string + UpdateNodeFirewallOptionsRequest: + title: UpdateNodeFirewallOptionsRequest + type: object + properties: + delete: + type: string + digest: + type: string + enable: + type: boolean + log_level_in: + type: string + log_level_out: + type: string + log_nf_conntrack: + type: boolean + ndp: + type: boolean + nf_conntrack_allow_invalid: + type: boolean + nf_conntrack_max: + type: integer + nf_conntrack_tcp_timeout_established: + type: integer + nf_conntrack_tcp_timeout_syn_recv: + type: integer + nosmurfs: + type: boolean + protection_synflood: + type: boolean + protection_synflood_burst: + type: integer + protection_synflood_rate: + type: integer + smurf_log_level: + type: string + tcp_flags_log_level: + type: string + tcpflags: + type: boolean + CreateNodesSingleReplicationSingleSchedulenowRequest: + title: CreateNodesSingleReplicationSingleSchedulenowRequest + type: object + properties: {} + CreateNodesSingleCertificatesAcmeCertificateRequest: + title: CreateNodesSingleCertificatesAcmeCertificateRequest + type: object + properties: + force: + type: boolean + UpdateNodesSingleCertificatesAcmeCertificateRequest: + title: UpdateNodesSingleCertificatesAcmeCertificateRequest + type: object + properties: + force: + type: boolean + CreateNodesSingleCertificatesCustomRequest: + title: CreateNodesSingleCertificatesCustomRequest + type: object + properties: + certificates: + type: string + force: + type: boolean + key: + type: string + restart: + type: boolean + required: + - certificates + UpdateNodesSingleConfigRequest: + title: UpdateNodesSingleConfigRequest + type: object + properties: + acme: + type: string + acmedomain0: + type: string + acmedomain1: + type: string + acmedomain2: + type: string + acmedomain3: + type: string + acmedomain4: + type: string + acmedomain5: + type: string + acmedomain6: + type: string + acmedomain7: + type: string + acmedomain8: + type: string + acmedomain9: + type: string + acmedomain10: + type: string + acmedomain11: + type: string + acmedomain12: + type: string + acmedomain13: + type: string + acmedomain14: + type: string + acmedomain15: + type: string + acmedomain16: + type: string + acmedomain17: + type: string + acmedomain18: + type: string + acmedomain19: + type: string + acmedomain20: + type: string + acmedomain21: + type: string + acmedomain22: + type: string + acmedomain23: + type: string + acmedomain24: + type: string + acmedomain25: + type: string + acmedomain26: + type: string + acmedomain27: + type: string + acmedomain28: + type: string + acmedomain29: + type: string + delete: + type: string + description: + type: string + digest: + type: string + startall-onboot-delay: + type: integer + wakeonlan: + type: string + CreateNodesSingleStatusRequest: + title: CreateNodesSingleStatusRequest + type: object + properties: + command: + type: string + required: + - command + CreateNodesSingleExecuteRequest: + title: CreateNodesSingleExecuteRequest + type: object + properties: + commands: + type: string + required: + - commands + CreateNodesSingleWakeonlanRequest: + title: CreateNodesSingleWakeonlanRequest + type: object + properties: {} + CreateNodesSingleVncshellRequest: + title: CreateNodesSingleVncshellRequest + type: object + properties: + cmd: + type: string + cmd-opts: + type: string + height: + type: integer + upgrade: + type: boolean + websocket: + type: boolean + width: + type: integer + CreateNodesSingleTermproxyRequest: + title: CreateNodesSingleTermproxyRequest + type: object + properties: + cmd: + type: string + cmd-opts: + type: string + upgrade: + type: boolean + CreateNodesSingleSpiceshellRequest: + title: CreateNodesSingleSpiceshellRequest + type: object + properties: + cmd: + type: string + cmd-opts: + type: string + proxy: + type: string + upgrade: + type: boolean + UpdateNodesSingleDnsRequest: + title: UpdateNodesSingleDnsRequest + type: object + properties: + dns1: + type: string + dns2: + type: string + dns3: + type: string + search: + type: string + required: + - search + UpdateNodesSingleTimeRequest: + title: UpdateNodesSingleTimeRequest + type: object + properties: + timezone: + type: string + required: + - timezone + CreateNodesSingleAplinfoRequest: + title: CreateNodesSingleAplinfoRequest + type: object + properties: + storage: + type: string + template: + type: string + required: + - storage + - template + CreateNodesSingleStartallRequest: + title: CreateNodesSingleStartallRequest + type: object + properties: + force: + type: boolean + vms: + type: string + CreateNodesSingleStopallRequest: + title: CreateNodesSingleStopallRequest + type: object + properties: + vms: + type: string + CreateNodesSingleMigrateallRequest: + title: CreateNodesSingleMigrateallRequest + type: object + properties: + maxworkers: + type: integer + target: + type: string + vms: + type: string + with-local-disks: + type: boolean + required: + - target + CreateNodesSingleHostsRequest: + title: CreateNodesSingleHostsRequest + type: object + properties: + data: + type: string + digest: + type: string + required: + - data + CreateStorageRequest: + title: CreateStorageRequest + type: object + properties: + authsupported: + type: string + base: + type: string + blocksize: + type: string + bwlimit: + type: string + comstar_hg: + type: string + comstar_tg: + type: string + content: + type: string + datastore: + type: string + disable: + type: boolean + domain: + type: string + encryption-key: + type: string + export: + type: string + fingerprint: + type: string + format: + type: string + fuse: + type: boolean + is_mountpoint: + type: string + iscsiprovider: + type: string + krbd: + type: boolean + lio_tpg: + type: string + maxfiles: + type: integer + mkdir: + type: boolean + monhost: + type: string + mountpoint: + type: string + nodes: + type: string + nowritecache: + type: boolean + options: + type: string + password: + type: string + path: + type: string + pool: + type: string + port: + type: integer + portal: + type: string + prune-backups: + type: string + redundancy: + type: integer + saferemove: + type: boolean + saferemove_throughput: + type: string + server: + type: string + server2: + type: string + share: + type: string + shared: + type: boolean + smbversion: + type: string + sparse: + type: boolean + storage: + type: string + subdir: + type: string + tagged_only: + type: boolean + target: + type: string + thinpool: + type: string + transport: + type: string + type: + type: string + username: + type: string + vgname: + type: string + volume: + type: string + required: + - storage + - type + UpdateStorageSingleRequest: + title: UpdateStorageSingleRequest + type: object + properties: + blocksize: + type: string + bwlimit: + type: string + comstar_hg: + type: string + comstar_tg: + type: string + content: + type: string + delete: + type: string + digest: + type: string + disable: + type: boolean + domain: + type: string + encryption-key: + type: string + fingerprint: + type: string + format: + type: string + fuse: + type: boolean + is_mountpoint: + type: string + krbd: + type: boolean + lio_tpg: + type: string + maxfiles: + type: integer + mkdir: + type: boolean + monhost: + type: string + mountpoint: + type: string + nodes: + type: string + nowritecache: + type: boolean + options: + type: string + password: + type: string + pool: + type: string + port: + type: integer + prune-backups: + type: string + redundancy: + type: integer + saferemove: + type: boolean + saferemove_throughput: + type: string + server: + type: string + server2: + type: string + shared: + type: boolean + smbversion: + type: string + sparse: + type: boolean + subdir: + type: string + tagged_only: + type: boolean + transport: + type: string + username: + type: string + CreateAccessUsersRequest: + title: CreateAccessUsersRequest + type: object + properties: + comment: + type: string + email: + type: string + enable: + type: boolean + expire: + type: integer + firstname: + type: string + groups: + type: string + keys: + type: string + lastname: + type: string + password: + type: string + userid: + type: string + required: + - userid + UpdateAccessUsersSingleRequest: + title: UpdateAccessUsersSingleRequest + type: object + properties: + append: + type: boolean + comment: + type: string + email: + type: string + enable: + type: boolean + expire: + type: integer + firstname: + type: string + groups: + type: string + keys: + type: string + lastname: + type: string + CreateAccessUsersSingleTokenSingleRequest: + title: CreateAccessUsersSingleTokenSingleRequest + type: object + properties: + comment: + type: string + expire: + type: integer + privsep: + type: boolean + UpdateAccessUsersSingleTokenSingleRequest: + title: UpdateAccessUsersSingleTokenSingleRequest + type: object + properties: + comment: + type: string + expire: + type: integer + privsep: + type: boolean + CreateAccessGroupsRequest: + title: CreateAccessGroupsRequest + type: object + properties: + comment: + type: string + groupid: + type: string + required: + - groupid + UpdateAccessGroupsSingleRequest: + title: UpdateAccessGroupsSingleRequest + type: object + properties: + comment: + type: string + CreateAccessRolesRequest: + title: CreateAccessRolesRequest + type: object + properties: + privs: + type: string + roleid: + type: string + required: + - roleid + UpdateAccessRolesSingleRequest: + title: UpdateAccessRolesSingleRequest + type: object + properties: + append: + type: boolean + privs: + type: string + UpdateAccessAclRequest: + title: UpdateAccessAclRequest + type: object + properties: + delete: + type: boolean + groups: + type: string + path: + type: string + propagate: + type: boolean + roles: + type: string + tokens: + type: string + users: + type: string + required: + - path + - roles + CreateAccessDomainsRequest: + title: CreateAccessDomainsRequest + type: object + properties: + base_dn: + type: string + bind_dn: + type: string + capath: + type: string + case-sensitive: + type: boolean + cert: + type: string + certkey: + type: string + comment: + type: string + default: + type: boolean + domain: + type: string + filter: + type: string + group_classes: + type: string + group_dn: + type: string + group_filter: + type: string + group_name_attr: + type: string + mode: + type: string + password: + type: string + port: + type: integer + realm: + type: string + secure: + type: boolean + server1: + type: string + server2: + type: string + sslversion: + type: string + sync-defaults-options: + type: string + sync_attributes: + type: string + tfa: + type: string + type: + type: string + user_attr: + type: string + user_classes: + type: string + verify: + type: boolean + required: + - realm + - type + UpdateAccessDomainsSingleRequest: + title: UpdateAccessDomainsSingleRequest + type: object + properties: + base_dn: + type: string + bind_dn: + type: string + capath: + type: string + case-sensitive: + type: boolean + cert: + type: string + certkey: + type: string + comment: + type: string + default: + type: boolean + delete: + type: string + digest: + type: string + domain: + type: string + filter: + type: string + group_classes: + type: string + group_dn: + type: string + group_filter: + type: string + group_name_attr: + type: string + mode: + type: string + password: + type: string + port: + type: integer + secure: + type: boolean + server1: + type: string + server2: + type: string + sslversion: + type: string + sync-defaults-options: + type: string + sync_attributes: + type: string + tfa: + type: string + user_attr: + type: string + user_classes: + type: string + verify: + type: boolean + CreateAccessDomainsSingleSyncRequest: + title: CreateAccessDomainsSingleSyncRequest + type: object + properties: + dry-run: + type: boolean + enable-new: + type: boolean + full: + type: boolean + purge: + type: boolean + scope: + type: string + required: + - enable-new + - full + - purge + - scope + CreateAccessTicketRequest: + title: CreateAccessTicketRequest + type: object + properties: + otp: + type: string + password: + type: string + path: + type: string + privs: + type: string + realm: + type: string + username: + type: string + required: + - password + - username + UpdateAccessPasswordRequest: + title: UpdateAccessPasswordRequest + type: object + properties: + password: + type: string + userid: + type: string + required: + - password + - userid + CreateAccessTfaRequest: + title: CreateAccessTfaRequest + type: object + properties: + response: + type: string + required: + - response + UpdateAccessTfaRequest: + title: UpdateAccessTfaRequest + type: object + properties: + action: + type: string + config: + type: string + key: + type: string + password: + type: string + response: + type: string + userid: + type: string + required: + - action + - userid + CreatePoolRequest: + title: CreatePoolRequest + type: object + properties: + comment: + type: string + poolid: + type: string + required: + - poolid + UpdatePoolRequest: + title: UpdatePoolRequest + type: object + properties: + comment: + type: string + delete: + type: boolean + storage: + type: string + vms: + type: string + parameters: + CIDR: + name: cidr + in: path + required: true + description: cidr + schema: + type: string + Name: + name: name + in: path + required: true + description: name + schema: + type: string + Node: + name: node + in: path + required: true + description: node + schema: + type: string + VMId: + name: vmid + in: path + required: true + description: vmid + schema: + type: integer + OSDId: + name: osdid + in: path + required: true + description: osdid + schema: + type: integer + Realm: + name: realm + in: path + required: true + description: realm + schema: + type: string + Storage: + name: storage + in: path + required: true + description: storage + schema: + type: string + User: + name: userid + in: path + required: true + description: userid + schema: + type: string + responses: + GetClusterResponse: + description: GetClusterResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetClusterReplicationResponse: + description: GetClusterReplicationResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateClusterReplicationResponse: + description: CreateClusterReplicationResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterReplicationSingleResponse: + description: DeleteClusterReplicationSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterReplicationSingleResponse: + description: GetClusterReplicationSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterReplicationSingleResponse: + description: UpdateClusterReplicationSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterMetricsResponse: + description: GetClusterMetricsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetClusterMetricsServerResponse: + description: GetClusterMetricsServerResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + disable: + type: integer + description: Flag to disable the plugin. + id: + type: string + description: The ID of the entry. + port: + type: integer + description: Server network port + server: + type: string + description: Server dns name or IP address + type: + type: string + description: Plugin type. + DeleteClusterMetricsServerSingleResponse: + description: DeleteClusterMetricsServerSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterMetricsServerSingleResponse: + description: GetClusterMetricsServerSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + CreateClusterMetricsServerSingleResponse: + description: CreateClusterMetricsServerSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateClusterMetricsServerSingleResponse: + description: UpdateClusterMetricsServerSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterConfigResponse: + description: GetClusterConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateClusterConfigResponse: + description: CreateClusterConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterConfigApiversionResponse: + description: GetClusterConfigApiversionResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: integer + description: 'Cluster Join API version, currently 1' + GetClusterConfigNodesResponse: + description: GetClusterConfigNodesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + node: + type: string + description: '' + DeleteClusterConfigNodesSingleResponse: + description: DeleteClusterConfigNodesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateClusterConfigNodesSingleResponse: + description: CreateClusterConfigNodesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + corosync_authkey: + type: string + description: '' + corosync_conf: + type: string + description: '' + warnings: + type: array + description: '' + items: + type: string + description: '' + GetClusterConfigJoinResponse: + description: GetClusterConfigJoinResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + config_digest: + type: string + description: '' + nodelist: + type: array + description: '' + items: + type: object + description: '' + properties: + name: + type: string + description: The cluster node name. + nodeid: + type: integer + description: Node id for this node. + pve_addr: + type: string + description: '' + pve_fp: + type: string + description: Certificate SHA 256 fingerprint. + quorum_votes: + type: integer + description: '' + ring0_addr: + type: string + description: >- + Address and priority information of a single + corosync link. (up to 8 links supported; + link0..link7) + preferred_node: + type: string + description: The cluster node name. + totem: + type: object + description: '' + CreateClusterConfigJoinResponse: + description: CreateClusterConfigJoinResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterConfigTotemResponse: + description: GetClusterConfigTotemResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetClusterConfigQdeviceResponse: + description: GetClusterConfigQdeviceResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetClusterFirewallResponse: + description: GetClusterFirewallResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetClusterFirewallGroupsResponse: + description: GetClusterFirewallGroupsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + group: + type: string + description: Security Group name. + CreateClusterFirewallGroupResponse: + description: CreateClusterFirewallGroupResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterFirewallGroupResponse: + description: DeleteClusterFirewallGroupResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallGroupRulesResponse: + description: GetClusterFirewallGroupRulesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + pos: + type: integer + description: '' + AddClusterFirewallGroupRuleResponse: + description: AddClusterFirewallGroupRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + RemoveClusterFirewallGroupRuleResponse: + description: RemoveClusterFirewallGroupRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallGroupRuleResponse: + description: GetClusterFirewallGroupRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + action: + type: string + description: '' + comment: + type: string + description: '' + dest: + type: string + description: '' + dport: + type: string + description: '' + enable: + type: integer + description: '' + icmp-type: + type: string + description: '' + iface: + type: string + description: '' + ipversion: + type: integer + description: '' + log: + type: string + description: Log level for firewall rule + macro: + type: string + description: '' + pos: + type: integer + description: '' + proto: + type: string + description: '' + source: + type: string + description: '' + sport: + type: string + description: '' + type: + type: string + description: '' + UpdateClusterFirewallGroupRuleResponse: + description: UpdateClusterFirewallGroupRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallRulesResponse: + description: GetClusterFirewallRulesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + pos: + type: integer + description: '' + AddClusterFirewallRuleResponse: + description: AddClusterFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + RemoveClusterFirewallRuleResponse: + description: RemoveClusterFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallRuleResponse: + description: GetClusterFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + action: + type: string + description: '' + comment: + type: string + description: '' + dest: + type: string + description: '' + dport: + type: string + description: '' + enable: + type: integer + description: '' + icmp-type: + type: string + description: '' + iface: + type: string + description: '' + ipversion: + type: integer + description: '' + log: + type: string + description: Log level for firewall rule + macro: + type: string + description: '' + pos: + type: integer + description: '' + proto: + type: string + description: '' + source: + type: string + description: '' + sport: + type: string + description: '' + type: + type: string + description: '' + UpdateClusterFirewallRuleResponse: + description: UpdateClusterFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallIPSetsResponse: + description: GetClusterFirewallIPSetsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + name: + type: string + description: IP set name. + CreateClusterFirewallIPSetResponse: + description: CreateClusterFirewallIPSetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterFirewallIPSetResponse: + description: DeleteClusterFirewallIPSetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallIPSetResponse: + description: GetClusterFirewallIPSetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cidr: + type: string + description: '' + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + nomatch: + type: integer + description: '' + AddClusterFirewallIPSetIPResponse: + description: AddClusterFirewallIPSetIPResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + RemoveClusterFirewallIPSetIPResponse: + description: RemoveClusterFirewallIPSetIPResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallIPSetIPResponse: + description: GetClusterFirewallIPSetIPResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterFirewallIPSetIPResponse: + description: UpdateClusterFirewallIPSetIPResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallAliasesResponse: + description: GetClusterFirewallAliasesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cidr: + type: string + description: '' + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + name: + type: string + description: '' + CreateClusterFirewallAliasesResponse: + description: CreateClusterFirewallAliasesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterFirewallAliasesSingleResponse: + description: DeleteClusterFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallAliasesSingleResponse: + description: GetClusterFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterFirewallAliasesSingleResponse: + description: UpdateClusterFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallOptionsResponse: + description: GetClusterFirewallOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + ebtables: + type: integer + description: Enable ebtables rules cluster wide. + enable: + type: integer + description: Enable or disable the firewall cluster wide. + log_ratelimit: + type: string + description: Log ratelimiting settings + policy_in: + type: string + description: Input policy. + policy_out: + type: string + description: Output policy. + UpdateClusterFirewallOptionsResponse: + description: UpdateClusterFirewallOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterFirewallMacrosResponse: + description: GetClusterFirewallMacrosResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + descr: + type: string + description: More verbose description (if available). + macro: + type: string + description: Macro name. + GetClusterFirewallRefsResponse: + description: GetClusterFirewallRefsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + name: + type: string + description: '' + ref: + type: string + description: '' + type: + type: string + description: '' + GetClusterBackupResponse: + description: GetClusterBackupResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + id: + type: string + description: The job ID. + CreateClusterBackupResponse: + description: CreateClusterBackupResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterBackupSingleResponse: + description: DeleteClusterBackupSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterBackupSingleResponse: + description: GetClusterBackupSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterBackupSingleResponse: + description: UpdateClusterBackupSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterBackupSingleIncludedvolumesResponse: + description: GetClusterBackupSingleIncludedvolumesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: >- + Root node of the tree object. Children represent guests, + grandchildren represent volumes of that guest. + properties: + children: + type: array + description: '' + items: + type: object + description: '' + properties: + children: + type: array + description: >- + The volumes of the guest with the information if + they will be included in backups. + items: + type: object + description: '' + properties: + id: + type: string + description: Configuration key of the volume. + included: + type: integer + description: >- + Whether the volume is included in the backup + or not. + name: + type: string + description: Name of the volume. + reason: + type: string + description: >- + The reason why the volume is included (or + excluded). + id: + type: integer + description: VMID of the guest. + name: + type: string + description: Name of the guest + type: + type: string + description: >- + Type of the guest, VM, CT or unknown for removed but + not purged guests. + GetClusterBackupinfoResponse: + description: GetClusterBackupinfoResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: Shows stub message + GetClusterBackupinfoNotbackedupResponse: + description: GetClusterBackupinfoNotbackedupResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: Contains the guest objects. + items: + type: object + description: '' + properties: + name: + type: string + description: Name of the guest + type: + type: string + description: Type of the guest. + vmid: + type: integer + description: VMID of the guest. + GetClusterHaResponse: + description: GetClusterHaResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + id: + type: string + description: '' + GetClusterHaResourcesResponse: + description: GetClusterHaResourcesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + sid: + type: string + description: '' + CreateClusterHaResourcesResponse: + description: CreateClusterHaResourcesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterHaResourcesSingleResponse: + description: DeleteClusterHaResourcesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterHaResourcesSingleResponse: + description: GetClusterHaResourcesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + comment: + type: string + description: Description. + digest: + type: string + description: Can be used to prevent concurrent modifications. + group: + type: string + description: The HA group identifier. + max_relocate: + type: integer + description: >- + Maximal number of service relocate tries when a service + failes to start. + max_restart: + type: integer + description: >- + Maximal number of tries to restart the service on a node + after its start failed. + sid: + type: string + 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). + state: + type: string + description: Requested resource state. + type: + type: string + description: The type of the resources. + UpdateClusterHaResourcesSingleResponse: + description: UpdateClusterHaResourcesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateClusterHaResourcesSingleMigrateResponse: + description: CreateClusterHaResourcesSingleMigrateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateClusterHaResourcesSingleRelocateResponse: + description: CreateClusterHaResourcesSingleRelocateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterHaGroupsResponse: + description: GetClusterHaGroupsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + group: + type: string + description: '' + CreateClusterHaGroupsResponse: + description: CreateClusterHaGroupsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterHaGroupsSingleResponse: + description: DeleteClusterHaGroupsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterHaGroupsSingleResponse: + description: GetClusterHaGroupsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateClusterHaGroupsSingleResponse: + description: UpdateClusterHaGroupsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterHaStatusResponse: + description: GetClusterHaStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetClusterHaStatusCurrentResponse: + description: GetClusterHaStatusCurrentResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + GetClusterHaStatusManagerstatusResponse: + description: GetClusterHaStatusManagerstatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetClusterAcmeResponse: + description: GetClusterAcmeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetClusterAcmePluginsResponse: + description: GetClusterAcmePluginsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + plugin: + type: string + description: Unique identifier for ACME plugin instance. + CreateClusterAcmePluginsResponse: + description: CreateClusterAcmePluginsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterAcmePluginsSingleResponse: + description: DeleteClusterAcmePluginsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterAcmePluginsSingleResponse: + description: GetClusterAcmePluginsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterAcmePluginsSingleResponse: + description: UpdateClusterAcmePluginsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterAcmeAccountResponse: + description: GetClusterAcmeAccountResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateClusterAcmeAccountResponse: + description: CreateClusterAcmeAccountResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterAcmeAccountSingleResponse: + description: DeleteClusterAcmeAccountSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterAcmeAccountSingleResponse: + description: GetClusterAcmeAccountSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + account: + type: object + description: '' + directory: + type: string + description: URL of ACME CA directory endpoint. + location: + type: string + description: '' + tos: + type: string + description: '' + UpdateClusterAcmeAccountSingleResponse: + description: UpdateClusterAcmeAccountSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterAcmeTosResponse: + description: GetClusterAcmeTosResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: ACME TermsOfService URL. + GetClusterAcmeDirectoriesResponse: + description: GetClusterAcmeDirectoriesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + name: + type: string + description: '' + url: + type: string + description: URL of ACME CA directory endpoint. + GetClusterAcmeChallengeschemaResponse: + description: GetClusterAcmeChallengeschemaResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + id: + type: string + description: '' + name: + type: string + description: 'Human readable name, falls back to id' + schema: + type: object + description: '' + type: + type: string + description: '' + GetClusterCephResponse: + description: GetClusterCephResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetClusterCephMetadataResponse: + description: GetClusterCephMetadataResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetClusterCephStatusResponse: + description: GetClusterCephStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetClusterCephFlagsResponse: + description: GetClusterCephFlagsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + name: + type: string + description: Flag name. + UpdateClusterCephFlagsResponse: + description: UpdateClusterCephFlagsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterCephFlagsSingleResponse: + description: GetClusterCephFlagsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: integer + description: '' + UpdateClusterCephFlagsSingleResponse: + description: UpdateClusterCephFlagsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterSDNResponse: + description: GetClusterSDNResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + id: + type: string + description: '' + UpdateClusterSDNResponse: + description: UpdateClusterSDNResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterSDNVnetsResponse: + description: GetClusterSDNVnetsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateClusterSDNVnetResponse: + description: CreateClusterSDNVnetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterSDNVnetResponse: + description: DeleteClusterSDNVnetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterSDNVnetResponse: + description: GetClusterSDNVnetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterSDNVnetResponse: + description: UpdateClusterSDNVnetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterSDNZonesResponse: + description: GetClusterSDNZonesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + type: + type: string + description: '' + zone: + type: string + description: '' + CreateClusterSDNZoneResponse: + description: CreateClusterSDNZoneResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterSDNZoneResponse: + description: DeleteClusterSDNZoneResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterSDNZoneResponse: + description: GetClusterSDNZoneResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterSDNZoneResponse: + description: UpdateClusterSDNZoneResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterSDNControllersResponse: + description: GetClusterSDNControllersResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + controller: + type: string + description: '' + type: + type: string + description: '' + CreateClusterSDNControllerResponse: + description: CreateClusterSDNControllerResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteClusterSDNControllerResponse: + description: DeleteClusterSDNControllerResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterSDNControllerResponse: + description: GetClusterSDNControllerResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterSDNControllerResponse: + description: UpdateClusterSDNControllerResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterLogResponse: + description: GetClusterLogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetClusterResourcesResponse: + description: GetClusterResourcesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + content: + type: string + description: Allowed storage content types (when type == storage). + cpu: + type: number + description: 'CPU utilization (when type in node,qemu,lxc).' + disk: + type: string + description: >- + Used disk space in bytes (when type in storage), used + root image spave for VMs (type in qemu,lxc). + hastate: + type: string + description: HA service status (for HA managed VMs). + id: + type: string + description: '' + level: + type: string + description: Support level (when type == node). + maxcpu: + type: number + description: 'Number of available CPUs (when type in node,qemu,lxc).' + maxdisk: + type: integer + description: >- + Storage size in bytes (when type in storage), root image + size for VMs (type in qemu,lxc). + maxmem: + type: integer + description: >- + Number of available memory in bytes (when type in + node,qemu,lxc). + mem: + type: string + description: 'Used memory in bytes (when type in node,qemu,lxc).' + node: + type: string + description: >- + The cluster node name (when type in + node,storage,qemu,lxc). + pool: + type: string + description: 'The pool name (when type in pool,qemu,lxc).' + status: + type: string + description: Resource type dependent status. + storage: + type: string + description: The storage identifier (when type == storage). + type: + type: string + description: Resource type. + uptime: + type: integer + description: 'Node uptime in seconds (when type in node,qemu,lxc).' + GetClusterTasksResponse: + description: GetClusterTasksResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + upid: + type: string + description: '' + GetClusterOptionsResponse: + description: GetClusterOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateClusterOptionsResponse: + description: UpdateClusterOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetClusterStatusResponse: + description: GetClusterStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + id: + type: string + description: '' + ip: + type: string + description: '[node] IP of the resolved nodename.' + level: + type: string + description: >- + [node] Proxmox VE Subscription level, indicates if + eligible for enterprise support as well as access to the + stable Proxmox VE Enterprise Repository. + local: + type: integer + description: '[node] Indicates if this is the responding node.' + name: + type: string + description: '' + nodeid: + type: integer + description: '[node] ID of the node from the corosync configuration.' + nodes: + type: integer + description: '[cluster] Nodes count, including offline nodes.' + online: + type: integer + description: '[node] Indicates if the node is online or offline.' + quorate: + type: integer + description: >- + [cluster] Indicates if there is a majority of nodes + online to make decisions + type: + type: string + description: >- + Indicates the type, either cluster or node. The type + defines the object properties e.g. quorate available for + type cluster. + version: + type: integer + description: >- + [cluster] Current version of the corosync configuration + file. + GetClusterNextidResponse: + description: GetClusterNextidResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: integer + description: The next free VMID. + GetNodesResponse: + description: GetNodesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cpu: + type: number + description: CPU utilization. + level: + type: string + description: Support level. + maxcpu: + type: integer + description: Number of available CPUs. + maxmem: + type: integer + description: Number of available memory in bytes. + mem: + type: integer + description: Used memory in bytes. + node: + type: string + description: The cluster node name. + ssl_fingerprint: + type: string + description: The SSL fingerprint for the node certificate. + status: + type: string + description: Node status. + uptime: + type: integer + description: Node uptime in seconds. + GetNodeResponse: + description: GetNodeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetVMsResponse: + description: GetVMsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cpus: + type: number + description: Maximum usable CPUs. + lock: + type: string + description: 'The current config lock, if any.' + maxdisk: + type: integer + description: Root disk size in bytes. + maxmem: + type: integer + description: Maximum memory in bytes. + name: + type: string + description: VM name. + pid: + type: integer + description: PID of running qemu process. + qmpstatus: + type: string + description: Qemu QMP agent status. + status: + type: string + description: Qemu process status. + tags: + type: string + description: 'The current configured tags, if any' + uptime: + type: integer + description: Uptime. + vmid: + type: integer + description: The (unique) ID of the VM. + CreateVMResponse: + description: CreateVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteVMResponse: + description: DeleteVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMResponse: + description: GetVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + subdir: + type: string + description: '' + GetVMFirewallResponse: + description: GetVMFirewallResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetVMFirewallRulesResponse: + description: GetVMFirewallRulesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + pos: + type: integer + description: '' + CreateVMFirewallRuleResponse: + description: CreateVMFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteVMFirewallRuleResponse: + description: DeleteVMFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMFirewallRuleResponse: + description: GetVMFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + action: + type: string + description: '' + comment: + type: string + description: '' + dest: + type: string + description: '' + dport: + type: string + description: '' + enable: + type: integer + description: '' + icmp-type: + type: string + description: '' + iface: + type: string + description: '' + ipversion: + type: integer + description: '' + log: + type: string + description: Log level for firewall rule + macro: + type: string + description: '' + pos: + type: integer + description: '' + proto: + type: string + description: '' + source: + type: string + description: '' + sport: + type: string + description: '' + type: + type: string + description: '' + UpdateVMFirewallRuleResponse: + description: UpdateVMFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleQemuSingleFirewallAliasesResponse: + description: GetNodesSingleQemuSingleFirewallAliasesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cidr: + type: string + description: '' + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + name: + type: string + description: '' + CreateNodesSingleQemuSingleFirewallAliasesResponse: + description: CreateNodesSingleQemuSingleFirewallAliasesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleQemuSingleFirewallAliasesSingleResponse: + description: DeleteNodesSingleQemuSingleFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleQemuSingleFirewallAliasesSingleResponse: + description: GetNodesSingleQemuSingleFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateNodesSingleQemuSingleFirewallAliasesSingleResponse: + description: UpdateNodesSingleQemuSingleFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMFirewallIPSetsResponse: + description: GetVMFirewallIPSetsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + name: + type: string + description: IP set name. + CreateVMFirewallIPSetResponse: + description: CreateVMFirewallIPSetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteVMFirewallIPSetResponse: + description: DeleteVMFirewallIPSetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMFirewallIPSetResponse: + description: GetVMFirewallIPSetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cidr: + type: string + description: '' + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + nomatch: + type: integer + description: '' + AddVMFirewallIPSetIPResponse: + description: AddVMFirewallIPSetIPResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + RemoveVMFirewallIPSetIPResponse: + description: RemoveVMFirewallIPSetIPResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMFirewallIPSetIPResponse: + description: GetVMFirewallIPSetIPResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateVMFirewallIPSetIPResponse: + description: UpdateVMFirewallIPSetIPResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMFirewallOptionsResponse: + description: GetVMFirewallOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + dhcp: + type: integer + description: Enable DHCP. + enable: + type: integer + description: Enable/disable firewall rules. + ipfilter: + type: integer + description: >- + Enable default IP filters. This is equivalent to adding an + empty ipfilter-net 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. + log_level_in: + type: string + description: Log level for incoming traffic. + log_level_out: + type: string + description: Log level for outgoing traffic. + macfilter: + type: integer + description: Enable/disable MAC address filter. + ndp: + type: integer + description: Enable NDP (Neighbor Discovery Protocol). + policy_in: + type: string + description: Input policy. + policy_out: + type: string + description: Output policy. + radv: + type: integer + description: Allow sending Router Advertisement. + UpdateVMFirewallOptionsResponse: + description: UpdateVMFirewallOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleQemuSingleFirewallLogResponse: + description: GetNodesSingleQemuSingleFirewallLogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + 'n': + type: integer + description: Line number + t: + type: string + description: Line text + GetNodesSingleQemuSingleFirewallRefsResponse: + description: GetNodesSingleQemuSingleFirewallRefsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + name: + type: string + description: '' + type: + type: string + description: '' + GetNodesSingleQemuSingleAgentResponse: + description: GetNodesSingleQemuSingleAgentResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: Returns the list of Qemu Agent commands + items: + type: object + description: '' + properties: {} + CreateNodesSingleQemuSingleAgentResponse: + description: CreateNodesSingleQemuSingleAgentResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentFsfreezefreezeResponse: + description: CreateNodesSingleQemuSingleAgentFsfreezefreezeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentFsfreezestatusResponse: + description: CreateNodesSingleQemuSingleAgentFsfreezestatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentFsfreezethawResponse: + description: CreateNodesSingleQemuSingleAgentFsfreezethawResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentFstrimResponse: + description: CreateNodesSingleQemuSingleAgentFstrimResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGetfsinfoResponse: + description: GetNodesSingleQemuSingleAgentGetfsinfoResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGethostnameResponse: + description: GetNodesSingleQemuSingleAgentGethostnameResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGetmemoryblockinfoResponse: + description: GetNodesSingleQemuSingleAgentGetmemoryblockinfoResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGetmemoryblocksResponse: + description: GetNodesSingleQemuSingleAgentGetmemoryblocksResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGetosinfoResponse: + description: GetNodesSingleQemuSingleAgentGetosinfoResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGettimeResponse: + description: GetNodesSingleQemuSingleAgentGettimeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGettimezoneResponse: + description: GetNodesSingleQemuSingleAgentGettimezoneResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGetusersResponse: + description: GetNodesSingleQemuSingleAgentGetusersResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentGetvcpusResponse: + description: GetNodesSingleQemuSingleAgentGetvcpusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentInfoResponse: + description: GetNodesSingleQemuSingleAgentInfoResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + GetNodesSingleQemuSingleAgentNetworkgetinterfacesResponse: + description: GetNodesSingleQemuSingleAgentNetworkgetinterfacesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentPingResponse: + description: CreateNodesSingleQemuSingleAgentPingResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentShutdownResponse: + description: CreateNodesSingleQemuSingleAgentShutdownResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentSuspenddiskResponse: + description: CreateNodesSingleQemuSingleAgentSuspenddiskResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentSuspendhybridResponse: + description: CreateNodesSingleQemuSingleAgentSuspendhybridResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentSuspendramResponse: + description: CreateNodesSingleQemuSingleAgentSuspendramResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentSetuserpasswordResponse: + description: CreateNodesSingleQemuSingleAgentSetuserpasswordResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a single `result` property. + CreateNodesSingleQemuSingleAgentExecResponse: + description: CreateNodesSingleQemuSingleAgentExecResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + pid: + type: integer + description: The PID of the process started by the guest-agent. + GetNodesSingleQemuSingleAgentExecstatusResponse: + description: GetNodesSingleQemuSingleAgentExecstatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + err-data: + type: string + description: stderr of the process + err-truncated: + type: integer + description: true if stderr was not fully captured + exitcode: + type: integer + description: process exit code if it was normally terminated. + exited: + type: integer + description: Tells if the given command has exited yet. + out-data: + type: string + description: stdout of the process + out-truncated: + type: integer + description: true if stdout was not fully captured + signal: + type: integer + description: >- + signal number or exception code if the process was + abnormally terminated. + GetNodesSingleQemuSingleAgentFilereadResponse: + description: GetNodesSingleQemuSingleAgentFilereadResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Returns an object with a `content` property. + properties: + content: + type: string + description: 'The content of the file, maximum 16777216' + truncated: + type: integer + description: 'If set to 1, the output is truncated and not complete' + CreateNodesSingleQemuSingleAgentFilewriteResponse: + description: CreateNodesSingleQemuSingleAgentFilewriteResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMRRDResponse: + description: GetVMRRDResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + filename: + type: string + description: '' + GetVMRRDDataResponse: + description: GetVMRRDDataResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetVMConfigResponse: + description: GetVMConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: The VM configuration. + properties: + acpi: + type: integer + description: Enable/disable ACPI. + agent: + type: string + description: Enable/disable Qemu GuestAgent and its properties. + arch: + type: string + description: Virtual processor architecture. Defaults to the host. + args: + type: string + description: Arbitrary arguments passed to kvm. + audio0: + type: string + description: >- + Configure a audio device, useful in combination with + QXL/Spice. + autostart: + type: integer + description: Automatic restart after crash (currently ignored). + balloon: + type: integer + description: >- + Amount of target RAM for the VM in MB. Using zero disables + the ballon driver. + bios: + type: string + description: Select BIOS implementation. + boot: + type: string + description: >- + Specify guest boot order. Use with 'order=', usage with no + key or 'legacy=' is deprecated. + bootdisk: + type: string + description: >- + Enable booting from specified disk. Deprecated: Use 'boot: + order=foo;bar' instead. + cdrom: + type: string + description: This is an alias for option -ide2 + cicustom: + type: string + description: >- + cloud-init: Specify custom files to replace the + automatically generated ones at start. + cipassword: + type: string + 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. + citype: + type: string + 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. + ciuser: + type: string + description: >- + cloud-init: User name to change ssh keys and password for + instead of the image's configured default user. + cores: + type: integer + description: The number of cores per socket. + cpu: + type: string + description: Emulated CPU type. + cpulimit: + type: number + description: Limit of CPU usage. + cpuunits: + type: integer + description: CPU weight for a VM. + description: + type: string + description: >- + Description for the VM. Only used on the configuration web + interface. This is saved as comment inside the + configuration file. + digest: + type: string + description: >- + SHA1 digest of configuration file. This can be used to + prevent concurrent modifications. + efidisk0: + type: string + description: Configure a Disk for storing EFI vars + freeze: + type: integer + description: >- + Freeze CPU at startup (use 'c' monitor command to start + execution). + hookscript: + type: string + description: >- + Script that will be executed during various steps in the + vms lifetime. + hostpci0: + type: string + description: Map host PCI devices into guest. + hostpci1: + type: string + description: Map host PCI devices into guest. + hostpci2: + type: string + description: Map host PCI devices into guest. + hostpci3: + type: string + description: Map host PCI devices into guest. + hostpci4: + type: string + description: Map host PCI devices into guest. + hostpci5: + type: string + description: Map host PCI devices into guest. + hostpci6: + type: string + description: Map host PCI devices into guest. + hostpci7: + type: string + description: Map host PCI devices into guest. + hostpci8: + type: string + description: Map host PCI devices into guest. + hostpci9: + type: string + description: Map host PCI devices into guest. + hostpci10: + type: string + description: Map host PCI devices into guest. + hostpci11: + type: string + description: Map host PCI devices into guest. + hostpci12: + type: string + description: Map host PCI devices into guest. + hostpci13: + type: string + description: Map host PCI devices into guest. + hostpci14: + type: string + description: Map host PCI devices into guest. + hostpci15: + type: string + description: Map host PCI devices into guest. + hostpci16: + type: string + description: Map host PCI devices into guest. + hostpci17: + type: string + description: Map host PCI devices into guest. + hostpci18: + type: string + description: Map host PCI devices into guest. + hostpci19: + type: string + description: Map host PCI devices into guest. + hostpci20: + type: string + description: Map host PCI devices into guest. + hostpci21: + type: string + description: Map host PCI devices into guest. + hostpci22: + type: string + description: Map host PCI devices into guest. + hostpci23: + type: string + description: Map host PCI devices into guest. + hostpci24: + type: string + description: Map host PCI devices into guest. + hostpci25: + type: string + description: Map host PCI devices into guest. + hostpci26: + type: string + description: Map host PCI devices into guest. + hostpci27: + type: string + description: Map host PCI devices into guest. + hostpci28: + type: string + description: Map host PCI devices into guest. + hostpci29: + type: string + description: Map host PCI devices into guest. + hotplug: + type: string + description: >- + Selectively enable hotplug features. This is a comma + separated list of hotplug features: 'network', 'disk', + 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug + completely. Value '1' is an alias for the default + 'network,disk,usb'. + hugepages: + type: string + description: Enable/disable hugepages memory. + ide0: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide1: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide2: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide3: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide4: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide5: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide6: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide7: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide8: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide9: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide10: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide11: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide12: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide13: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide14: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide15: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide16: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide17: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide18: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide19: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide20: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide21: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide22: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide23: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide24: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide25: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide26: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide27: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide28: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ide29: + type: string + description: Use volume as IDE hard disk or CD-ROM (n is 0 to 3). + ipconfig0: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig1: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig2: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig3: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig4: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig5: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig6: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig7: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig8: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig9: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig10: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig11: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig12: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig13: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig14: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig15: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig16: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig17: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig18: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig19: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig20: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig21: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig22: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig23: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig24: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig25: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig26: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig27: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig28: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ipconfig29: + type: string + description: > + cloud-init: Specify IP addresses and gateways for the + corresponding interface. + + + IP addresses use CIDR notation, gateways are optional but + need an IP of the same type specified. + + + The special string 'dhcp' can be used for IP addresses to + use DHCP, in which case no explicit + + gateway should be provided. + + For IPv6 the special string 'auto' can be used to use + stateless autoconfiguration. + + + If cloud-init is enabled and neither an IPv4 nor an IPv6 + address is specified, it defaults to using + + dhcp on IPv4. + ivshmem: + type: string + description: >- + Inter-VM shared memory. Useful for direct communication + between VMs, or to the host. + keephugepages: + type: integer + description: >- + Use together with hugepages. If enabled, hugepages will + not not be deleted after VM shutdown and can be used for + subsequent starts. + keyboard: + type: string + description: >- + Keybord layout for vnc server. Default is read from the + '/etc/pve/datacenter.cfg' configuration file.It should not + be necessary to set it. + kvm: + type: integer + description: Enable/disable KVM hardware virtualization. + localtime: + type: integer + description: >- + Set the real time clock to local time. This is enabled by + default if ostype indicates a Microsoft OS. + lock: + type: string + description: Lock/unlock the VM. + machine: + type: string + description: Specifies the Qemu machine type. + memory: + type: integer + description: >- + Amount of RAM for the VM in MB. This is the maximum + available memory when you use the balloon device. + migrate_downtime: + type: number + description: >- + Set maximum tolerated downtime (in seconds) for + migrations. + migrate_speed: + type: integer + description: >- + Set maximum speed (in MB/s) for migrations. Value 0 is no + limit. + name: + type: string + description: >- + Set a name for the VM. Only used on the configuration web + interface. + nameserver: + type: string + description: "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set." + net0: + type: string + description: Specify network devices. + net1: + type: string + description: Specify network devices. + net2: + type: string + description: Specify network devices. + net3: + type: string + description: Specify network devices. + net4: + type: string + description: Specify network devices. + net5: + type: string + description: Specify network devices. + net6: + type: string + description: Specify network devices. + net7: + type: string + description: Specify network devices. + net8: + type: string + description: Specify network devices. + net9: + type: string + description: Specify network devices. + net10: + type: string + description: Specify network devices. + net11: + type: string + description: Specify network devices. + net12: + type: string + description: Specify network devices. + net13: + type: string + description: Specify network devices. + net14: + type: string + description: Specify network devices. + net15: + type: string + description: Specify network devices. + net16: + type: string + description: Specify network devices. + net17: + type: string + description: Specify network devices. + net18: + type: string + description: Specify network devices. + net19: + type: string + description: Specify network devices. + net20: + type: string + description: Specify network devices. + net21: + type: string + description: Specify network devices. + net22: + type: string + description: Specify network devices. + net23: + type: string + description: Specify network devices. + net24: + type: string + description: Specify network devices. + net25: + type: string + description: Specify network devices. + net26: + type: string + description: Specify network devices. + net27: + type: string + description: Specify network devices. + net28: + type: string + description: Specify network devices. + net29: + type: string + description: Specify network devices. + numa: + type: integer + description: Enable/disable NUMA. + numa0: + type: string + description: NUMA topology. + numa1: + type: string + description: NUMA topology. + numa2: + type: string + description: NUMA topology. + numa3: + type: string + description: NUMA topology. + numa4: + type: string + description: NUMA topology. + numa5: + type: string + description: NUMA topology. + numa6: + type: string + description: NUMA topology. + numa7: + type: string + description: NUMA topology. + numa8: + type: string + description: NUMA topology. + numa9: + type: string + description: NUMA topology. + numa10: + type: string + description: NUMA topology. + numa11: + type: string + description: NUMA topology. + numa12: + type: string + description: NUMA topology. + numa13: + type: string + description: NUMA topology. + numa14: + type: string + description: NUMA topology. + numa15: + type: string + description: NUMA topology. + numa16: + type: string + description: NUMA topology. + numa17: + type: string + description: NUMA topology. + numa18: + type: string + description: NUMA topology. + numa19: + type: string + description: NUMA topology. + numa20: + type: string + description: NUMA topology. + numa21: + type: string + description: NUMA topology. + numa22: + type: string + description: NUMA topology. + numa23: + type: string + description: NUMA topology. + numa24: + type: string + description: NUMA topology. + numa25: + type: string + description: NUMA topology. + numa26: + type: string + description: NUMA topology. + numa27: + type: string + description: NUMA topology. + numa28: + type: string + description: NUMA topology. + numa29: + type: string + description: NUMA topology. + onboot: + type: integer + description: >- + Specifies whether a VM will be started during system + bootup. + ostype: + type: string + description: Specify guest operating system. + parallel0: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel1: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel2: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel3: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel4: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel5: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel6: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel7: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel8: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel9: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel10: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel11: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel12: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel13: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel14: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel15: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel16: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel17: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel18: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel19: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel20: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel21: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel22: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel23: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel24: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel25: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel26: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel27: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel28: + type: string + description: Map host parallel devices (n is 0 to 2). + parallel29: + type: string + description: Map host parallel devices (n is 0 to 2). + protection: + type: integer + description: >- + Sets the protection flag of the VM. This will disable the + remove VM and remove disk operations. + reboot: + type: integer + description: Allow reboot. If set to '0' the VM exit on reboot. + rng0: + type: string + description: Configure a VirtIO-based Random Number Generator. + sata0: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata1: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata2: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata3: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata4: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata5: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata6: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata7: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata8: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata9: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata10: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata11: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata12: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata13: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata14: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata15: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata16: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata17: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata18: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata19: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata20: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata21: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata22: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata23: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata24: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata25: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata26: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata27: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata28: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + sata29: + type: string + description: Use volume as SATA hard disk or CD-ROM (n is 0 to 5). + scsi0: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi1: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi2: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi3: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi4: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi5: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi6: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi7: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi8: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi9: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi10: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi11: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi12: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi13: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi14: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi15: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi16: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi17: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi18: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi19: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi20: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi21: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi22: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi23: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi24: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi25: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi26: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi27: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi28: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsi29: + type: string + description: Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). + scsihw: + type: string + description: SCSI controller model + searchdomain: + type: string + description: "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set." + serial0: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial1: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial2: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial3: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial4: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial5: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial6: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial7: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial8: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial9: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial10: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial11: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial12: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial13: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial14: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial15: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial16: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial17: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial18: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial19: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial20: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial21: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial22: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial23: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial24: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial25: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial26: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial27: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial28: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + serial29: + type: string + description: Create a serial device inside the VM (n is 0 to 3) + shares: + type: integer + 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. + smbios1: + type: string + description: Specify SMBIOS type 1 fields. + smp: + type: integer + description: The number of CPUs. Please use option -sockets instead. + sockets: + type: integer + description: The number of CPU sockets. + spice_enhancements: + type: string + description: Configure additional enhancements for SPICE. + sshkeys: + type: string + description: >- + cloud-init: Setup public SSH keys (one key per line, + OpenSSH format). + startdate: + type: string + 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'. + startup: + type: string + 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. + tablet: + type: integer + description: Enable/disable the USB tablet device. + tags: + type: string + description: Tags of the VM. This is only meta information. + tdf: + type: integer + description: Enable/disable time drift fix. + template: + type: integer + description: Enable/disable Template. + unused0: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused1: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused2: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused3: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused4: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused5: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused6: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused7: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused8: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused9: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused10: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused11: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused12: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused13: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused14: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused15: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused16: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused17: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused18: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused19: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused20: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused21: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused22: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused23: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused24: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused25: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused26: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused27: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused28: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused29: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + usb0: + type: string + description: Configure an USB device (n is 0 to 4). + usb1: + type: string + description: Configure an USB device (n is 0 to 4). + usb2: + type: string + description: Configure an USB device (n is 0 to 4). + usb3: + type: string + description: Configure an USB device (n is 0 to 4). + usb4: + type: string + description: Configure an USB device (n is 0 to 4). + usb5: + type: string + description: Configure an USB device (n is 0 to 4). + usb6: + type: string + description: Configure an USB device (n is 0 to 4). + usb7: + type: string + description: Configure an USB device (n is 0 to 4). + usb8: + type: string + description: Configure an USB device (n is 0 to 4). + usb9: + type: string + description: Configure an USB device (n is 0 to 4). + usb10: + type: string + description: Configure an USB device (n is 0 to 4). + usb11: + type: string + description: Configure an USB device (n is 0 to 4). + usb12: + type: string + description: Configure an USB device (n is 0 to 4). + usb13: + type: string + description: Configure an USB device (n is 0 to 4). + usb14: + type: string + description: Configure an USB device (n is 0 to 4). + usb15: + type: string + description: Configure an USB device (n is 0 to 4). + usb16: + type: string + description: Configure an USB device (n is 0 to 4). + usb17: + type: string + description: Configure an USB device (n is 0 to 4). + usb18: + type: string + description: Configure an USB device (n is 0 to 4). + usb19: + type: string + description: Configure an USB device (n is 0 to 4). + usb20: + type: string + description: Configure an USB device (n is 0 to 4). + usb21: + type: string + description: Configure an USB device (n is 0 to 4). + usb22: + type: string + description: Configure an USB device (n is 0 to 4). + usb23: + type: string + description: Configure an USB device (n is 0 to 4). + usb24: + type: string + description: Configure an USB device (n is 0 to 4). + usb25: + type: string + description: Configure an USB device (n is 0 to 4). + usb26: + type: string + description: Configure an USB device (n is 0 to 4). + usb27: + type: string + description: Configure an USB device (n is 0 to 4). + usb28: + type: string + description: Configure an USB device (n is 0 to 4). + usb29: + type: string + description: Configure an USB device (n is 0 to 4). + vcpus: + type: integer + description: Number of hotplugged vcpus. + vga: + type: string + description: Configure the VGA hardware. + virtio0: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio1: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio2: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio3: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio4: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio5: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio6: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio7: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio8: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio9: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio10: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio11: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio12: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio13: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio14: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio15: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio16: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio17: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio18: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio19: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio20: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio21: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio22: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio23: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio24: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio25: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio26: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio27: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio28: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + virtio29: + type: string + description: Use volume as VIRTIO hard disk (n is 0 to 15). + vmgenid: + type: string + description: >- + Set VM Generation ID. Use '1' to autogenerate on create or + update, pass '0' to disable explicitly. + vmstatestorage: + type: string + description: Default storage for VM state volumes/files. + watchdog: + type: string + description: Create a virtual hardware watchdog device. + UpdateVMConfigResponse: + description: UpdateVMConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateVMConfigSyncResponse: + description: UpdateVMConfigSyncResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMConfigPendingResponse: + description: GetVMConfigPendingResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + delete: + type: integer + description: >- + Indicates a pending delete request if present and not 0. + The value 2 indicates a force-delete request. + key: + type: string + description: Configuration option name. + pending: + type: string + description: Pending value. + value: + type: string + description: Current value. + UnlinkVMDiskImagesResponse: + description: UnlinkVMDiskImagesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleQemuSingleVncproxyResponse: + description: CreateNodesSingleQemuSingleVncproxyResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleQemuSingleTermproxyResponse: + description: CreateNodesSingleQemuSingleTermproxyResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleQemuSingleVncwebsocketResponse: + description: GetNodesSingleQemuSingleVncwebsocketResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + port: + type: string + description: '' + CreateNodesSingleQemuSingleSpiceproxyResponse: + description: CreateNodesSingleQemuSingleSpiceproxyResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: >- + Returned values can be directly passed to the 'remote-viewer' + application. + GetVMStatusResponse: + description: GetVMStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + subdir: + type: string + description: '' + GetCurrentVMStatusResponse: + description: GetCurrentVMStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + agent: + type: integer + description: Qemu GuestAgent enabled in config. + cpus: + type: number + description: Maximum usable CPUs. + ha: + type: object + description: HA manager service status. + lock: + type: string + description: 'The current config lock, if any.' + maxdisk: + type: integer + description: Root disk size in bytes. + maxmem: + type: integer + description: Maximum memory in bytes. + name: + type: string + description: VM name. + pid: + type: integer + description: PID of running qemu process. + qmpstatus: + type: string + description: Qemu QMP agent status. + spice: + type: integer + description: Qemu VGA configuration supports spice. + status: + type: string + description: Qemu process status. + tags: + type: string + description: 'The current configured tags, if any' + uptime: + type: integer + description: Uptime. + vmid: + type: integer + description: The (unique) ID of the VM. + StartVMResponse: + description: StartVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + StopVMResponse: + description: StopVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + ResetVMResponse: + description: ResetVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + ShutdownVMResponse: + description: ShutdownVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + RebootVMResponse: + description: RebootVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + SuspendVMResponse: + description: SuspendVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + ResumeVMResponse: + description: ResumeVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateNodesSingleQemuSingleSendkeyResponse: + description: UpdateNodesSingleQemuSingleSendkeyResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleQemuSingleFeatureResponse: + description: GetNodesSingleQemuSingleFeatureResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + hasFeature: + type: integer + description: '' + nodes: + type: array + description: '' + items: + type: string + description: '' + CloneVMResponse: + description: CloneVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleQemuSingleMovediskResponse: + description: CreateNodesSingleQemuSingleMovediskResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + MigrateVMResponse: + description: MigrateVMResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + allowed_nodes: + type: array + description: >- + List nodes allowed for offline migration, only passed if + VM is offline + local_disks: + type: array + description: >- + List local disks including CD-Rom, unsused and not + referenced disks + local_resources: + type: array + description: 'List local resources e.g. pci, usb' + not_allowed_nodes: + type: object + description: >- + List not allowed nodes with additional informations, only + passed if VM is offline + running: + type: integer + description: '' + CreateNodesSingleQemuSingleMigrateResponse: + description: CreateNodesSingleQemuSingleMigrateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + CreateNodesSingleQemuSingleMonitorResponse: + description: CreateNodesSingleQemuSingleMonitorResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + ResizeVMDiskResponse: + description: ResizeVMDiskResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVMSnapshotsResponse: + description: GetVMSnapshotsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + description: + type: string + description: Snapshot description. + name: + type: string + description: >- + Snapshot identifier. Value 'current' identifies the + current VM. + parent: + type: string + description: Parent snapshot identifier. + snaptime: + type: integer + description: Snapshot creation time + vmstate: + type: integer + description: Snapshot includes RAM. + CreateVMSnapshotResponse: + description: CreateVMSnapshotResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + DeleteVMSnapshotResponse: + description: DeleteVMSnapshotResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + GetVMSnapshotResponse: + description: GetVMSnapshotResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetVMSnapshotConfigResponse: + description: GetVMSnapshotConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateVMSnapshotConfigResponse: + description: UpdateVMSnapshotConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + RollbackVMSnapshotResponse: + description: RollbackVMSnapshotResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + CreateNodesSingleQemuSingleTemplateResponse: + description: CreateNodesSingleQemuSingleTemplateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleQemuSingleCloudinitDumpResponse: + description: GetNodesSingleQemuSingleCloudinitDumpResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCpuResponse: + description: GetNodesSingleCpuResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + custom: + type: integer + description: True if this is a custom CPU model. + name: + type: string + description: >- + Name of the CPU model. Identifies it for subsequent API + calls. Prefixed with 'custom-' for custom models. + vendor: + type: string + description: >- + CPU vendor visible to the guest when this model is + selected. Vendor of 'reported-model' in case of custom + models. + GetNodesSingleLxcResponse: + description: GetNodesSingleLxcResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cpus: + type: number + description: Maximum usable CPUs. + lock: + type: string + description: 'The current config lock, if any.' + maxdisk: + type: integer + description: Root disk size in bytes. + maxmem: + type: integer + description: Maximum memory in bytes. + maxswap: + type: integer + description: Maximum SWAP memory in bytes. + name: + type: string + description: Container name. + status: + type: string + description: LXC Container status. + tags: + type: string + description: 'The current configured tags, if any.' + uptime: + type: integer + description: Uptime. + vmid: + type: integer + description: The (unique) ID of the VM. + CreateNodesSingleLxcResponse: + description: CreateNodesSingleLxcResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleLxcSingleResponse: + description: DeleteNodesSingleLxcSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleResponse: + description: GetNodesSingleLxcSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + subdir: + type: string + description: '' + GetNodesSingleLxcSingleConfigResponse: + description: GetNodesSingleLxcSingleConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + arch: + type: string + description: OS architecture type. + cmode: + type: string + 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). + console: + type: integer + description: Attach a console device (/dev/console) to the container. + cores: + type: integer + description: >- + The number of cores assigned to the container. A container + can use all available cores by default. + cpulimit: + type: number + description: >- + Limit of CPU usage. + + + NOTE: If the computer has 2 CPUs, it has a total of '2' + CPU time. Value '0' indicates no CPU limit. + cpuunits: + type: integer + 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 the weights of all the + other running VMs. + + + NOTE: You can disable fair-scheduler configuration by + setting this to 0. + debug: + type: integer + description: >- + Try to be more verbose. For now this only enables debug + log-level on start. + description: + type: string + description: >- + Container description. Only used on the configuration web + interface. + digest: + type: string + description: >- + SHA1 digest of configuration file. This can be used to + prevent concurrent modifications. + features: + type: string + description: Allow containers access to advanced features. + hookscript: + type: string + description: >- + Script that will be exectued during various steps in the + containers lifetime. + hostname: + type: string + description: Set a host name for the container. + lock: + type: string + description: Lock/unlock the VM. + lxc: + type: array + description: >- + Array of lxc low-level configurations ([[key1, value1], + [key2, value2] ...]). + items: + type: array + description: '' + items: + type: string + description: '' + memory: + type: integer + description: Amount of RAM for the VM in MB. + mp0: + type: string + description: Use volume as container mount point. + mp1: + type: string + description: Use volume as container mount point. + mp2: + type: string + description: Use volume as container mount point. + mp3: + type: string + description: Use volume as container mount point. + mp4: + type: string + description: Use volume as container mount point. + mp5: + type: string + description: Use volume as container mount point. + mp6: + type: string + description: Use volume as container mount point. + mp7: + type: string + description: Use volume as container mount point. + mp8: + type: string + description: Use volume as container mount point. + mp9: + type: string + description: Use volume as container mount point. + mp10: + type: string + description: Use volume as container mount point. + mp11: + type: string + description: Use volume as container mount point. + mp12: + type: string + description: Use volume as container mount point. + mp13: + type: string + description: Use volume as container mount point. + mp14: + type: string + description: Use volume as container mount point. + mp15: + type: string + description: Use volume as container mount point. + mp16: + type: string + description: Use volume as container mount point. + mp17: + type: string + description: Use volume as container mount point. + mp18: + type: string + description: Use volume as container mount point. + mp19: + type: string + description: Use volume as container mount point. + mp20: + type: string + description: Use volume as container mount point. + mp21: + type: string + description: Use volume as container mount point. + mp22: + type: string + description: Use volume as container mount point. + mp23: + type: string + description: Use volume as container mount point. + mp24: + type: string + description: Use volume as container mount point. + mp25: + type: string + description: Use volume as container mount point. + mp26: + type: string + description: Use volume as container mount point. + mp27: + type: string + description: Use volume as container mount point. + mp28: + type: string + description: Use volume as container mount point. + mp29: + type: string + description: Use volume as container mount point. + nameserver: + type: string + 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. + net0: + type: string + description: Specifies network interfaces for the container. + net1: + type: string + description: Specifies network interfaces for the container. + net2: + type: string + description: Specifies network interfaces for the container. + net3: + type: string + description: Specifies network interfaces for the container. + net4: + type: string + description: Specifies network interfaces for the container. + net5: + type: string + description: Specifies network interfaces for the container. + net6: + type: string + description: Specifies network interfaces for the container. + net7: + type: string + description: Specifies network interfaces for the container. + net8: + type: string + description: Specifies network interfaces for the container. + net9: + type: string + description: Specifies network interfaces for the container. + net10: + type: string + description: Specifies network interfaces for the container. + net11: + type: string + description: Specifies network interfaces for the container. + net12: + type: string + description: Specifies network interfaces for the container. + net13: + type: string + description: Specifies network interfaces for the container. + net14: + type: string + description: Specifies network interfaces for the container. + net15: + type: string + description: Specifies network interfaces for the container. + net16: + type: string + description: Specifies network interfaces for the container. + net17: + type: string + description: Specifies network interfaces for the container. + net18: + type: string + description: Specifies network interfaces for the container. + net19: + type: string + description: Specifies network interfaces for the container. + net20: + type: string + description: Specifies network interfaces for the container. + net21: + type: string + description: Specifies network interfaces for the container. + net22: + type: string + description: Specifies network interfaces for the container. + net23: + type: string + description: Specifies network interfaces for the container. + net24: + type: string + description: Specifies network interfaces for the container. + net25: + type: string + description: Specifies network interfaces for the container. + net26: + type: string + description: Specifies network interfaces for the container. + net27: + type: string + description: Specifies network interfaces for the container. + net28: + type: string + description: Specifies network interfaces for the container. + net29: + type: string + description: Specifies network interfaces for the container. + onboot: + type: integer + description: >- + Specifies whether a VM will be started during system + bootup. + ostype: + type: string + description: >- + OS type. This is used to setup configuration inside the + container, and corresponds to lxc setup scripts in + /usr/share/lxc/config/.common.conf. Value + 'unmanaged' can be used to skip and OS specific setup. + protection: + type: integer + description: >- + Sets the protection flag of the container. This will + prevent the CT or CT's disk remove/update operation. + rootfs: + type: string + description: Use volume as container root. + searchdomain: + type: string + description: >- + Sets DNS search domains for a container. Create will + automatically use the setting from the host if you neither + set searchdomain nor nameserver. + startup: + type: string + 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. + swap: + type: integer + description: Amount of SWAP for the VM in MB. + tags: + type: string + description: Tags of the Container. This is only meta information. + template: + type: integer + description: Enable/disable Template. + timezone: + type: string + 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 + tty: + type: integer + description: Specify the number of tty available to the container + unprivileged: + type: integer + description: >- + Makes the container run as unprivileged user. (Should not + be modified manually.) + unused0: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused1: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused2: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused3: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused4: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused5: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused6: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused7: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused8: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused9: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused10: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused11: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused12: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused13: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused14: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused15: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused16: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused17: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused18: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused19: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused20: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused21: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused22: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused23: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused24: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused25: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused26: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused27: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused28: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + unused29: + type: string + description: >- + Reference to unused volumes. This is used internally, and + should not be modified manually. + UpdateNodesSingleLxcSingleConfigResponse: + description: UpdateNodesSingleLxcSingleConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleStatusResponse: + description: GetNodesSingleLxcSingleStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + subdir: + type: string + description: '' + GetNodesSingleLxcSingleStatusCurrentResponse: + description: GetNodesSingleLxcSingleStatusCurrentResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + cpus: + type: number + description: Maximum usable CPUs. + ha: + type: object + description: HA manager service status. + lock: + type: string + description: 'The current config lock, if any.' + maxdisk: + type: integer + description: Root disk size in bytes. + maxmem: + type: integer + description: Maximum memory in bytes. + maxswap: + type: integer + description: Maximum SWAP memory in bytes. + name: + type: string + description: Container name. + status: + type: string + description: LXC Container status. + tags: + type: string + description: 'The current configured tags, if any.' + uptime: + type: integer + description: Uptime. + vmid: + type: integer + description: The (unique) ID of the VM. + CreateNodesSingleLxcSingleStatusStartResponse: + description: CreateNodesSingleLxcSingleStatusStartResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleLxcSingleStatusStopResponse: + description: CreateNodesSingleLxcSingleStatusStopResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleLxcSingleStatusShutdownResponse: + description: CreateNodesSingleLxcSingleStatusShutdownResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleLxcSingleStatusSuspendResponse: + description: CreateNodesSingleLxcSingleStatusSuspendResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleLxcSingleStatusResumeResponse: + description: CreateNodesSingleLxcSingleStatusResumeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleLxcSingleStatusRebootResponse: + description: CreateNodesSingleLxcSingleStatusRebootResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleSnapshotResponse: + description: GetNodesSingleLxcSingleSnapshotResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + description: + type: string + description: Snapshot description. + name: + type: string + description: >- + Snapshot identifier. Value 'current' identifies the + current VM. + parent: + type: string + description: Parent snapshot identifier. + snaptime: + type: integer + description: Snapshot creation time + CreateNodesSingleLxcSingleSnapshotResponse: + description: CreateNodesSingleLxcSingleSnapshotResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + DeleteNodesSingleLxcSingleSnapshotSingleResponse: + description: DeleteNodesSingleLxcSingleSnapshotSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + GetNodesSingleLxcSingleSnapshotSingleResponse: + description: GetNodesSingleLxcSingleSnapshotSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateNodesSingleLxcSingleSnapshotSingleRollbackResponse: + description: CreateNodesSingleLxcSingleSnapshotSingleRollbackResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + GetNodesSingleLxcSingleSnapshotSingleConfigResponse: + description: GetNodesSingleLxcSingleSnapshotSingleConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateNodesSingleLxcSingleSnapshotSingleConfigResponse: + description: UpdateNodesSingleLxcSingleSnapshotSingleConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallResponse: + description: GetNodesSingleLxcSingleFirewallResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodesSingleLxcSingleFirewallRulesResponse: + description: GetNodesSingleLxcSingleFirewallRulesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + pos: + type: integer + description: '' + CreateNodesSingleLxcSingleFirewallRulesResponse: + description: CreateNodesSingleLxcSingleFirewallRulesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleLxcSingleFirewallRulesSingleResponse: + description: DeleteNodesSingleLxcSingleFirewallRulesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallRulesSingleResponse: + description: GetNodesSingleLxcSingleFirewallRulesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + action: + type: string + description: '' + comment: + type: string + description: '' + dest: + type: string + description: '' + dport: + type: string + description: '' + enable: + type: integer + description: '' + icmp-type: + type: string + description: '' + iface: + type: string + description: '' + ipversion: + type: integer + description: '' + log: + type: string + description: Log level for firewall rule + macro: + type: string + description: '' + pos: + type: integer + description: '' + proto: + type: string + description: '' + source: + type: string + description: '' + sport: + type: string + description: '' + type: + type: string + description: '' + UpdateNodesSingleLxcSingleFirewallRulesSingleResponse: + description: UpdateNodesSingleLxcSingleFirewallRulesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallAliasesResponse: + description: GetNodesSingleLxcSingleFirewallAliasesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cidr: + type: string + description: '' + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + name: + type: string + description: '' + CreateNodesSingleLxcSingleFirewallAliasesResponse: + description: CreateNodesSingleLxcSingleFirewallAliasesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleLxcSingleFirewallAliasesSingleResponse: + description: DeleteNodesSingleLxcSingleFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallAliasesSingleResponse: + description: GetNodesSingleLxcSingleFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateNodesSingleLxcSingleFirewallAliasesSingleResponse: + description: UpdateNodesSingleLxcSingleFirewallAliasesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallIpsetResponse: + description: GetNodesSingleLxcSingleFirewallIpsetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + name: + type: string + description: IP set name. + CreateNodesSingleLxcSingleFirewallIpsetResponse: + description: CreateNodesSingleLxcSingleFirewallIpsetResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleLxcSingleFirewallIpsetSingleResponse: + description: DeleteNodesSingleLxcSingleFirewallIpsetSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallIpsetSingleResponse: + description: GetNodesSingleLxcSingleFirewallIpsetSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + cidr: + type: string + description: '' + comment: + type: string + description: '' + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + nomatch: + type: integer + description: '' + CreateNodesSingleLxcSingleFirewallIpsetSingleResponse: + description: CreateNodesSingleLxcSingleFirewallIpsetSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleResponse: + description: DeleteNodesSingleLxcSingleFirewallIpsetSingleSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallIpsetSingleSingleResponse: + description: GetNodesSingleLxcSingleFirewallIpsetSingleSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleResponse: + description: UpdateNodesSingleLxcSingleFirewallIpsetSingleSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallOptionsResponse: + description: GetNodesSingleLxcSingleFirewallOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + dhcp: + type: integer + description: Enable DHCP. + enable: + type: integer + description: Enable/disable firewall rules. + ipfilter: + type: integer + description: >- + Enable default IP filters. This is equivalent to adding an + empty ipfilter-net 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. + log_level_in: + type: string + description: Log level for incoming traffic. + log_level_out: + type: string + description: Log level for outgoing traffic. + macfilter: + type: integer + description: Enable/disable MAC address filter. + ndp: + type: integer + description: Enable NDP (Neighbor Discovery Protocol). + policy_in: + type: string + description: Input policy. + policy_out: + type: string + description: Output policy. + radv: + type: integer + description: Allow sending Router Advertisement. + UpdateNodesSingleLxcSingleFirewallOptionsResponse: + description: UpdateNodesSingleLxcSingleFirewallOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleFirewallLogResponse: + description: GetNodesSingleLxcSingleFirewallLogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + 'n': + type: integer + description: Line number + t: + type: string + description: Line text + GetNodesSingleLxcSingleFirewallRefsResponse: + description: GetNodesSingleLxcSingleFirewallRefsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + name: + type: string + description: '' + type: + type: string + description: '' + GetNodesSingleLxcSingleRrdResponse: + description: GetNodesSingleLxcSingleRrdResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + filename: + type: string + description: '' + GetNodesSingleLxcSingleRrddataResponse: + description: GetNodesSingleLxcSingleRrddataResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateNodesSingleLxcSingleVncproxyResponse: + description: CreateNodesSingleLxcSingleVncproxyResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleLxcSingleTermproxyResponse: + description: CreateNodesSingleLxcSingleTermproxyResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSingleVncwebsocketResponse: + description: GetNodesSingleLxcSingleVncwebsocketResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + port: + type: string + description: '' + CreateNodesSingleLxcSingleSpiceproxyResponse: + description: CreateNodesSingleLxcSingleSpiceproxyResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: >- + Returned values can be directly passed to the 'remote-viewer' + application. + CreateNodesSingleLxcSingleMigrateResponse: + description: CreateNodesSingleLxcSingleMigrateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + GetNodesSingleLxcSingleFeatureResponse: + description: GetNodesSingleLxcSingleFeatureResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + hasFeature: + type: integer + description: '' + CreateNodesSingleLxcSingleTemplateResponse: + description: CreateNodesSingleLxcSingleTemplateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleLxcSingleCloneResponse: + description: CreateNodesSingleLxcSingleCloneResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateNodesSingleLxcSingleResizeResponse: + description: UpdateNodesSingleLxcSingleResizeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: the task ID. + CreateNodesSingleLxcSingleMovevolumeResponse: + description: CreateNodesSingleLxcSingleMovevolumeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleLxcSinglePendingResponse: + description: GetNodesSingleLxcSinglePendingResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + delete: + type: integer + description: Indicates a pending delete request if present and not 0. + key: + type: string + description: Configuration option name. + pending: + type: string + description: Pending value. + value: + type: string + description: Current value. + GetNodesSingleCephResponse: + description: GetNodesSingleCephResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodesSingleCephOsdResponse: + description: GetNodesSingleCephOsdResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + CreateNodesSingleCephOsdResponse: + description: CreateNodesSingleCephOsdResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleCephOsdSingleResponse: + description: DeleteNodesSingleCephOsdSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephOsdSingleInResponse: + description: CreateNodesSingleCephOsdSingleInResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephOsdSingleOutResponse: + description: CreateNodesSingleCephOsdSingleOutResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephOsdSingleScrubResponse: + description: CreateNodesSingleCephOsdSingleScrubResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephMdsResponse: + description: GetNodesSingleCephMdsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + addr: + type: string + description: '' + host: + type: string + description: '' + name: + type: string + description: The name (ID) for the MDS + rank: + type: integer + description: '' + standby_replay: + type: integer + description: >- + If true, the standby MDS is polling the active MDS for + faster recovery (hot standby). + state: + type: string + description: State of the MDS + DeleteNodesSingleCephMdsSingleResponse: + description: DeleteNodesSingleCephMdsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephMdsSingleResponse: + description: CreateNodesSingleCephMdsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephMgrResponse: + description: GetNodesSingleCephMgrResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + addr: + type: string + description: '' + host: + type: string + description: '' + name: + type: string + description: The name (ID) for the MGR + state: + type: string + description: State of the MGR + DeleteNodesSingleCephMgrSingleResponse: + description: DeleteNodesSingleCephMgrSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephMgrSingleResponse: + description: CreateNodesSingleCephMgrSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephMonResponse: + description: GetNodesSingleCephMonResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + addr: + type: string + description: '' + host: + type: string + description: '' + name: + type: string + description: '' + DeleteNodesSingleCephMonSingleResponse: + description: DeleteNodesSingleCephMonSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephMonSingleResponse: + description: CreateNodesSingleCephMonSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephFsResponse: + description: GetNodesSingleCephFsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + data_pool: + type: string + description: The name of the data pool. + metadata_pool: + type: string + description: The name of the metadata pool. + name: + type: string + description: The ceph filesystem name. + CreateNodesSingleCephFsSingleResponse: + description: CreateNodesSingleCephFsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephDisksResponse: + description: GetNodesSingleCephDisksResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + dev: + type: string + description: '' + gpt: + type: integer + description: '' + model: + type: string + description: '' + osdid: + type: integer + description: '' + serial: + type: string + description: '' + size: + type: integer + description: '' + used: + type: string + description: '' + vendor: + type: string + description: '' + GetNodesSingleCephConfigResponse: + description: GetNodesSingleCephConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephConfigdbResponse: + description: GetNodesSingleCephConfigdbResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + can_update_at_runtime: + type: integer + description: '' + level: + type: string + description: '' + mask: + type: string + description: '' + name: + type: string + description: '' + section: + type: string + description: '' + value: + type: string + description: '' + CreateNodesSingleCephInitResponse: + description: CreateNodesSingleCephInitResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephStopResponse: + description: CreateNodesSingleCephStopResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephStartResponse: + description: CreateNodesSingleCephStartResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephRestartResponse: + description: CreateNodesSingleCephRestartResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephStatusResponse: + description: GetNodesSingleCephStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetNodesSingleCephPoolsResponse: + description: GetNodesSingleCephPoolsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + bytes_used: + type: integer + description: '' + crush_rule: + type: integer + description: '' + crush_rule_name: + type: string + description: '' + min_size: + type: integer + description: '' + percent_used: + type: number + description: '' + pg_autoscale_mode: + type: string + description: '' + pg_num: + type: integer + description: '' + pool: + type: integer + description: '' + pool_name: + type: string + description: '' + size: + type: integer + description: '' + CreateNodesSingleCephPoolsResponse: + description: CreateNodesSingleCephPoolsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleCephPoolsSingleResponse: + description: DeleteNodesSingleCephPoolsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateNodesSingleCephPoolsSingleResponse: + description: UpdateNodesSingleCephPoolsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephFlagsResponse: + description: GetNodesSingleCephFlagsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleCephFlagsSingleResponse: + description: DeleteNodesSingleCephFlagsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCephFlagsSingleResponse: + description: CreateNodesSingleCephFlagsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephCrushResponse: + description: GetNodesSingleCephCrushResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCephLogResponse: + description: GetNodesSingleCephLogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + 'n': + type: integer + description: Line number + t: + type: string + description: Line text + GetNodesSingleCephRulesResponse: + description: GetNodesSingleCephRulesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateNodesSingleVzdumpResponse: + description: CreateNodesSingleVzdumpResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleVzdumpExtractconfigResponse: + description: GetNodesSingleVzdumpExtractconfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleServicesResponse: + description: GetNodesSingleServicesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodesSingleServicesSingleResponse: + description: GetNodesSingleServicesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + subdir: + type: string + description: '' + GetNodesSingleServicesSingleStateResponse: + description: GetNodesSingleServicesSingleStateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + CreateNodesSingleServicesSingleStartResponse: + description: CreateNodesSingleServicesSingleStartResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleServicesSingleStopResponse: + description: CreateNodesSingleServicesSingleStopResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleServicesSingleRestartResponse: + description: CreateNodesSingleServicesSingleRestartResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleServicesSingleReloadResponse: + description: CreateNodesSingleServicesSingleReloadResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleSubscriptionResponse: + description: DeleteNodesSingleSubscriptionResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleSubscriptionResponse: + description: GetNodesSingleSubscriptionResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + CreateNodesSingleSubscriptionResponse: + description: CreateNodesSingleSubscriptionResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateNodesSingleSubscriptionResponse: + description: UpdateNodesSingleSubscriptionResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleNetworkResponse: + description: DeleteNodesSingleNetworkResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleNetworkResponse: + description: GetNodesSingleNetworkResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateNodesSingleNetworkResponse: + description: CreateNodesSingleNetworkResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateNodesSingleNetworkResponse: + description: UpdateNodesSingleNetworkResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodesSingleNetworkSingleResponse: + description: DeleteNodesSingleNetworkSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleNetworkSingleResponse: + description: GetNodesSingleNetworkSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + method: + type: string + description: '' + type: + type: string + description: '' + UpdateNodesSingleNetworkSingleResponse: + description: UpdateNodesSingleNetworkSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodeTasksResponse: + description: GetNodeTasksResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + endtime: + type: integer + description: '' + id: + type: string + description: '' + node: + type: string + description: '' + pid: + type: integer + description: '' + pstart: + type: integer + description: '' + starttime: + type: integer + description: '' + status: + type: string + description: '' + type: + type: string + description: '' + upid: + type: string + description: '' + user: + type: string + description: '' + StopNodeTaskResponse: + description: StopNodeTaskResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodeTaskResponse: + description: GetNodeTaskResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodeTaskLogResponse: + description: GetNodeTaskLogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + 'n': + type: integer + description: Line number + t: + type: string + description: Line text + GetNodeTaskStatusResponse: + description: GetNodeTaskStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + pid: + type: integer + description: '' + status: + type: string + description: '' + GetNodesSingleScanResponse: + description: GetNodesSingleScanResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + method: + type: string + description: '' + GetNodesSingleScanZfsResponse: + description: GetNodesSingleScanZfsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + pool: + type: string + description: ZFS pool name. + GetNodesSingleScanNfsResponse: + description: GetNodesSingleScanNfsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + options: + type: string + description: NFS export options. + path: + type: string + description: The exported path. + GetNodesSingleScanCifsResponse: + description: GetNodesSingleScanCifsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + description: + type: string + description: Descriptive text from server. + share: + type: string + description: The cifs share name. + GetNodesSingleScanGlusterfsResponse: + description: GetNodesSingleScanGlusterfsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + volname: + type: string + description: The volume name. + GetNodesSingleScanIscsiResponse: + description: GetNodesSingleScanIscsiResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + portal: + type: string + description: The iSCSI portal name. + target: + type: string + description: The iSCSI target name. + GetNodesSingleScanLvmResponse: + description: GetNodesSingleScanLvmResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + vg: + type: string + description: The LVM logical volume group name. + GetNodesSingleScanLvmthinResponse: + description: GetNodesSingleScanLvmthinResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + lv: + type: string + description: The LVM Thin Pool name (LVM logical volume). + GetNodesSingleScanUsbResponse: + description: GetNodesSingleScanUsbResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + busnum: + type: integer + description: '' + class: + type: integer + description: '' + devnum: + type: integer + description: '' + level: + type: integer + description: '' + manufacturer: + type: string + description: '' + port: + type: integer + description: '' + prodid: + type: string + description: '' + product: + type: string + description: '' + serial: + type: string + description: '' + speed: + type: string + description: '' + usbpath: + type: string + description: '' + vendid: + type: string + description: '' + GetNodesSingleHardwareResponse: + description: GetNodesSingleHardwareResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + type: + type: string + description: '' + GetNodesSingleHardwarePciResponse: + description: GetNodesSingleHardwarePciResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + class: + type: string + description: The PCI Class of the device. + device: + type: string + description: The Device ID. + device_name: + type: string + description: '' + id: + type: string + description: The PCI ID. + iommugroup: + type: integer + description: >- + The IOMMU group in which the device is in. If no IOMMU + group is detected, it is set to -1. + mdev: + type: integer + description: >- + If set, marks that the device is capable of creating + mediated devices. + subsystem_device: + type: string + description: The Subsystem Device ID. + subsystem_device_name: + type: string + description: '' + subsystem_vendor: + type: string + description: The Subsystem Vendor ID. + subsystem_vendor_name: + type: string + description: '' + vendor: + type: string + description: The Vendor ID. + vendor_name: + type: string + description: '' + GetNodesSingleHardwarePciSingleResponse: + description: GetNodesSingleHardwarePciSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + method: + type: string + description: '' + GetNodesSingleHardwarePciSingleMdevResponse: + description: GetNodesSingleHardwarePciSingleMdevResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + available: + type: integer + description: The number of still available instances of this type. + description: + type: string + description: '' + type: + type: string + description: The name of the mdev type. + GetNodesSingleStorageResponse: + description: GetNodesSingleStorageResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + active: + type: integer + description: Set when storage is accessible. + avail: + type: integer + description: Available storage space in bytes. + content: + type: string + description: Allowed storage content types. + enabled: + type: integer + description: Set when storage is enabled (not disabled). + shared: + type: integer + description: Shared flag from storage configuration. + storage: + type: string + description: The storage identifier. + total: + type: integer + description: Total storage space in bytes. + type: + type: string + description: Storage type. + used: + type: integer + description: Used storage space in bytes. + used_fraction: + type: number + description: Used fraction (used/total). + GetNodesSingleStorageSingleResponse: + description: GetNodesSingleStorageSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + subdir: + type: string + description: '' + DeleteNodesSingleStorageSinglePrunebackupsResponse: + description: DeleteNodesSingleStorageSinglePrunebackupsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleStorageSinglePrunebackupsResponse: + description: GetNodesSingleStorageSinglePrunebackupsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + ctime: + type: integer + description: >- + Creation time of the backup (seconds since the UNIX + epoch). + mark: + type: string + description: >- + Whether the backup would be kept or removed. For backups + that don't use the standard naming scheme, it's + 'protected'. + type: + type: string + description: 'One of ''qemu'', ''lxc'', ''openvz'' or ''unknown''.' + vmid: + type: integer + description: The VM the backup belongs to. + volid: + type: string + description: Backup volume ID. + GetNodesSingleStorageSingleContentResponse: + description: GetNodesSingleStorageSingleContentResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + ctime: + type: integer + description: Creation time (seconds since the UNIX Epoch). + format: + type: string + description: >- + Format identifier ('raw', 'qcow2', 'subvol', 'iso', + 'tgz' ...) + notes: + type: string + description: >- + Optional notes. If they contain multiple lines, only the + first one is returned here. + parent: + type: string + description: Volume identifier of parent (for linked cloned). + size: + type: integer + description: Volume size in bytes. + used: + type: integer + description: >- + Used space. Please note that most storage plugins do not + report anything useful here. + verification: + type: object + description: >- + Last backup verification result, only useful for PBS + storages. + properties: + state: + type: string + description: Last backup verification state. + upid: + type: string + description: Last backup verification UPID. + vmid: + type: integer + description: Associated Owner VMID. + volid: + type: string + description: Volume identifier. + CreateNodesSingleStorageSingleContentResponse: + description: CreateNodesSingleStorageSingleContentResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: Volume identifier + DeleteNodesSingleStorageSingleContentSingleResponse: + description: DeleteNodesSingleStorageSingleContentSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleStorageSingleContentSingleResponse: + description: GetNodesSingleStorageSingleContentSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + format: + type: string + description: >- + Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' + ...) + notes: + type: string + description: Optional notes. + path: + type: string + description: The Path + size: + type: integer + description: Volume size in bytes. + used: + type: integer + description: >- + Used space. Please note that most storage plugins do not + report anything useful here. + CreateNodesSingleStorageSingleContentSingleResponse: + description: CreateNodesSingleStorageSingleContentSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateNodesSingleStorageSingleContentSingleResponse: + description: UpdateNodesSingleStorageSingleContentSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleStorageSingleStatusResponse: + description: GetNodesSingleStorageSingleStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetNodesSingleStorageSingleRrdResponse: + description: GetNodesSingleStorageSingleRrdResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + filename: + type: string + description: '' + GetNodesSingleStorageSingleRrddataResponse: + description: GetNodesSingleStorageSingleRrddataResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateNodesSingleStorageSingleUploadResponse: + description: CreateNodesSingleStorageSingleUploadResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleDisksResponse: + description: GetNodesSingleDisksResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodesSingleDisksLvmResponse: + description: GetNodesSingleDisksLvmResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + children: + type: array + description: '' + items: + type: object + description: '' + properties: + children: + type: array + description: The underlying physical volumes + items: + type: object + description: '' + properties: + free: + type: integer + description: The free bytes in the physical volume + leaf: + type: integer + description: '' + name: + type: string + description: The name of the physical volume + size: + type: integer + description: The size of the physical volume in bytes + free: + type: integer + description: The free bytes in the volume group + leaf: + type: integer + description: '' + name: + type: string + description: The name of the volume group + size: + type: integer + description: The size of the volume group in bytes + leaf: + type: integer + description: '' + CreateNodesSingleDisksLvmResponse: + description: CreateNodesSingleDisksLvmResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleDisksLvmthinResponse: + description: GetNodesSingleDisksLvmthinResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + lv: + type: string + description: The name of the thinpool. + lv_size: + type: integer + description: The size of the thinpool in bytes. + metadata_size: + type: integer + description: The size of the metadata lv in bytes. + metadata_used: + type: integer + description: The used bytes of the metadata lv. + used: + type: integer + description: The used bytes of the thinpool. + CreateNodesSingleDisksLvmthinResponse: + description: CreateNodesSingleDisksLvmthinResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleDisksDirectoryResponse: + description: GetNodesSingleDisksDirectoryResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + device: + type: string + description: The mounted device. + options: + type: string + description: The mount options. + path: + type: string + description: The mount path. + type: + type: string + description: The filesystem type. + unitfile: + type: string + description: The path of the mount unit. + CreateNodesSingleDisksDirectoryResponse: + description: CreateNodesSingleDisksDirectoryResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleDisksZfsResponse: + description: GetNodesSingleDisksZfsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + alloc: + type: integer + description: '' + dedup: + type: number + description: '' + frag: + type: integer + description: '' + free: + type: integer + description: '' + health: + type: string + description: '' + name: + type: string + description: '' + size: + type: integer + description: '' + CreateNodesSingleDisksZfsResponse: + description: CreateNodesSingleDisksZfsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleDisksZfsSingleResponse: + description: GetNodesSingleDisksZfsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + action: + type: string + description: Information about the recommended action to fix the state. + children: + type: array + description: >- + The pool configuration information, including the vdevs + for each section (e.g. spares, cache), may be nested. + items: + type: object + description: '' + properties: + cksum: + type: number + description: '' + msg: + type: string + description: An optional message about the vdev. + name: + type: string + description: The name of the vdev or section. + read: + type: number + description: '' + state: + type: string + description: The state of the vdev. + write: + type: number + description: '' + errors: + type: string + description: Information about the errors on the zpool. + name: + type: string + description: The name of the zpool. + scan: + type: string + description: Information about the last/current scrub. + state: + type: string + description: The state of the zpool. + status: + type: string + description: Information about the state of the zpool. + GetNodesSingleDisksListResponse: + description: GetNodesSingleDisksListResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + devpath: + type: string + description: The device path + gpt: + type: integer + description: '' + health: + type: string + description: '' + model: + type: string + description: '' + osdid: + type: integer + description: '' + serial: + type: string + description: '' + size: + type: integer + description: '' + used: + type: string + description: '' + vendor: + type: string + description: '' + wwn: + type: string + description: '' + GetNodesSingleDisksSmartResponse: + description: GetNodesSingleDisksSmartResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + attributes: + type: array + description: '' + health: + type: string + description: '' + text: + type: string + description: '' + type: + type: string + description: '' + CreateNodesSingleDisksInitgptResponse: + description: CreateNodesSingleDisksInitgptResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleAptResponse: + description: GetNodesSingleAptResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + id: + type: string + description: '' + GetNodesSingleAptUpdateResponse: + description: GetNodesSingleAptUpdateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateNodesSingleAptUpdateResponse: + description: CreateNodesSingleAptUpdateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleAptChangelogResponse: + description: GetNodesSingleAptChangelogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleAptVersionsResponse: + description: GetNodesSingleAptVersionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodeFirewallResponse: + description: GetNodeFirewallResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodeFirewallRulesResponse: + description: GetNodeFirewallRulesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + pos: + type: integer + description: '' + CreateNodeFirewallRuleResponse: + description: CreateNodeFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteNodeFirewallRuleResponse: + description: DeleteNodeFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodeFirewallRuleResponse: + description: GetNodeFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + action: + type: string + description: '' + comment: + type: string + description: '' + dest: + type: string + description: '' + dport: + type: string + description: '' + enable: + type: integer + description: '' + icmp-type: + type: string + description: '' + iface: + type: string + description: '' + ipversion: + type: integer + description: '' + log: + type: string + description: Log level for firewall rule + macro: + type: string + description: '' + pos: + type: integer + description: '' + proto: + type: string + description: '' + source: + type: string + description: '' + sport: + type: string + description: '' + type: + type: string + description: '' + UpdateNodeFirewallRuleResponse: + description: UpdateNodeFirewallRuleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodeFirewallOptionsResponse: + description: GetNodeFirewallOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + enable: + type: integer + description: Enable host firewall rules. + log_level_in: + type: string + description: Log level for incoming traffic. + log_level_out: + type: string + description: Log level for outgoing traffic. + log_nf_conntrack: + type: integer + description: Enable logging of conntrack information. + ndp: + type: integer + description: Enable NDP (Neighbor Discovery Protocol). + nf_conntrack_allow_invalid: + type: integer + description: Allow invalid packets on connection tracking. + nf_conntrack_max: + type: integer + description: Maximum number of tracked connections. + nf_conntrack_tcp_timeout_established: + type: integer + description: Conntrack established timeout. + nf_conntrack_tcp_timeout_syn_recv: + type: integer + description: Conntrack syn recv timeout. + nosmurfs: + type: integer + description: Enable SMURFS filter. + protection_synflood: + type: integer + description: Enable synflood protection + protection_synflood_burst: + type: integer + description: Synflood protection rate burst by ip src. + protection_synflood_rate: + type: integer + description: Synflood protection rate syn/sec by ip src. + smurf_log_level: + type: string + description: Log level for SMURFS filter. + tcp_flags_log_level: + type: string + description: Log level for illegal tcp flags filter. + tcpflags: + type: integer + description: Filter illegal combinations of TCP flags. + UpdateNodeFirewallOptionsResponse: + description: UpdateNodeFirewallOptionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleFirewallLogResponse: + description: GetNodesSingleFirewallLogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + 'n': + type: integer + description: Line number + t: + type: string + description: Line text + GetNodesSingleReplicationResponse: + description: GetNodesSingleReplicationResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + id: + type: string + description: '' + GetNodesSingleReplicationSingleResponse: + description: GetNodesSingleReplicationSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodesSingleReplicationSingleStatusResponse: + description: GetNodesSingleReplicationSingleStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetNodesSingleReplicationSingleLogResponse: + description: GetNodesSingleReplicationSingleLogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + 'n': + type: integer + description: Line number + t: + type: string + description: Line text + CreateNodesSingleReplicationSingleSchedulenowResponse: + description: CreateNodesSingleReplicationSingleSchedulenowResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCertificatesResponse: + description: GetNodesSingleCertificatesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodesSingleCertificatesAcmeResponse: + description: GetNodesSingleCertificatesAcmeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + DeleteNodesSingleCertificatesAcmeCertificateResponse: + description: DeleteNodesSingleCertificatesAcmeCertificateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCertificatesAcmeCertificateResponse: + description: CreateNodesSingleCertificatesAcmeCertificateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateNodesSingleCertificatesAcmeCertificateResponse: + description: UpdateNodesSingleCertificatesAcmeCertificateResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleCertificatesInfoResponse: + description: GetNodesSingleCertificatesInfoResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + filename: + type: string + description: '' + fingerprint: + type: string + description: Certificate SHA 256 fingerprint. + issuer: + type: string + description: Certificate issuer name. + notafter: + type: integer + description: Certificate's notAfter timestamp (UNIX epoch). + notbefore: + type: integer + description: Certificate's notBefore timestamp (UNIX epoch). + pem: + type: string + description: Certificate in PEM format + public-key-bits: + type: integer + description: Certificate's public key size + public-key-type: + type: string + description: Certificate's public key algorithm + san: + type: array + description: List of Certificate's SubjectAlternativeName entries. + items: + type: string + description: '' + subject: + type: string + description: Certificate subject name. + DeleteNodesSingleCertificatesCustomResponse: + description: DeleteNodesSingleCertificatesCustomResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleCertificatesCustomResponse: + description: CreateNodesSingleCertificatesCustomResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + filename: + type: string + description: '' + fingerprint: + type: string + description: Certificate SHA 256 fingerprint. + issuer: + type: string + description: Certificate issuer name. + notafter: + type: integer + description: Certificate's notAfter timestamp (UNIX epoch). + notbefore: + type: integer + description: Certificate's notBefore timestamp (UNIX epoch). + pem: + type: string + description: Certificate in PEM format + public-key-bits: + type: integer + description: Certificate's public key size + public-key-type: + type: string + description: Certificate's public key algorithm + san: + type: array + description: List of Certificate's SubjectAlternativeName entries. + items: + type: string + description: '' + subject: + type: string + description: Certificate subject name. + GetNodesSingleConfigResponse: + description: GetNodesSingleConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateNodesSingleConfigResponse: + description: UpdateNodesSingleConfigResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodeSDNResponse: + description: GetNodeSDNResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodeSDNZonesResponse: + description: GetNodeSDNZonesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + status: + type: string + description: Status of zone + zone: + type: string + description: The SDN zone object identifier. + GetNodeSDNZoneResponse: + description: GetNodeSDNZoneResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + subdir: + type: string + description: '' + GetNodeSDNZoneContentResponse: + description: GetNodeSDNZoneContentResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + status: + type: string + description: Status. + statusmsg: + type: string + description: Status details + vnet: + type: string + description: Vnet identifier. + GetNodesSingleVersionResponse: + description: GetNodesSingleVersionResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + release: + type: string + description: The current installed Proxmox VE Release + repoid: + type: string + description: >- + The short git commit hash ID from which this version was + build + version: + type: string + description: The current installed pve-manager package version + GetNodesSingleStatusResponse: + description: GetNodesSingleStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + CreateNodesSingleStatusResponse: + description: CreateNodesSingleStatusResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleNetstatResponse: + description: GetNodesSingleNetstatResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateNodesSingleExecuteResponse: + description: CreateNodesSingleExecuteResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + CreateNodesSingleWakeonlanResponse: + description: CreateNodesSingleWakeonlanResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: MAC address used to assemble the WoL magic packet. + GetNodeRRDResponse: + description: GetNodeRRDResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + filename: + type: string + description: '' + GetNodeRRDDataResponse: + description: GetNodeRRDDataResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + GetNodesSingleSyslogResponse: + description: GetNodesSingleSyslogResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + 'n': + type: integer + description: Line number + t: + type: string + description: Line text + GetNodesSingleJournalResponse: + description: GetNodesSingleJournalResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: string + description: '' + CreateNodesSingleVncshellResponse: + description: CreateNodesSingleVncshellResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleTermproxyResponse: + description: CreateNodesSingleTermproxyResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleVncwebsocketResponse: + description: GetNodesSingleVncwebsocketResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + port: + type: string + description: '' + CreateNodesSingleSpiceshellResponse: + description: CreateNodesSingleSpiceshellResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: >- + Returned values can be directly passed to the 'remote-viewer' + application. + GetNodesSingleDnsResponse: + description: GetNodesSingleDnsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + dns1: + type: string + description: First name server IP address. + dns2: + type: string + description: Second name server IP address. + dns3: + type: string + description: Third name server IP address. + search: + type: string + description: Search domain for host-name lookup. + UpdateNodesSingleDnsResponse: + description: UpdateNodesSingleDnsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleTimeResponse: + description: GetNodesSingleTimeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + localtime: + type: integer + description: 'Seconds since 1970-01-01 00:00:00 (local time)' + time: + type: integer + description: 'Seconds since 1970-01-01 00:00:00 UTC.' + timezone: + type: string + description: Time zone + UpdateNodesSingleTimeResponse: + description: UpdateNodesSingleTimeResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleAplinfoResponse: + description: GetNodesSingleAplinfoResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: {} + CreateNodesSingleAplinfoResponse: + description: CreateNodesSingleAplinfoResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleReportResponse: + description: GetNodesSingleReportResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleStartallResponse: + description: CreateNodesSingleStartallResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleStopallResponse: + description: CreateNodesSingleStopallResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateNodesSingleMigrateallResponse: + description: CreateNodesSingleMigrateallResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetNodesSingleHostsResponse: + description: GetNodesSingleHostsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + data: + type: string + description: The content of /etc/hosts. + digest: + type: string + description: >- + Prevent changes if current configuration file has + different SHA1 digest. This can be used to prevent + concurrent modifications. + CreateNodesSingleHostsResponse: + description: CreateNodesSingleHostsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetStorageResponse: + description: GetStorageResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + storage: + type: string + description: '' + CreateStorageResponse: + description: CreateStorageResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + config: + type: object + description: >- + Partial, possible server generated, configuration + properties. + properties: + encryption-key: + type: string + description: 'The, possible auto-generated, encryption-key.' + storage: + type: string + description: The ID of the created storage. + type: + type: string + description: The type of the created storage. + DeleteStorageSingleResponse: + description: DeleteStorageSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetStorageSingleResponse: + description: GetStorageSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + UpdateStorageSingleResponse: + description: UpdateStorageSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + config: + type: object + description: >- + Partial, possible server generated, configuration + properties. + properties: + encryption-key: + type: string + description: 'The, possible auto-generated, encryption-key.' + storage: + type: string + description: The ID of the created storage. + type: + type: string + description: The type of the created storage. + GetAccessResponse: + description: GetAccessResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + subdir: + type: string + description: '' + GetAccessUsersResponse: + description: GetAccessUsersResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + email: + type: string + description: '' + enable: + type: integer + description: >- + Enable the account (default). You can set this to '0' to + disable the account + expire: + type: integer + description: >- + Account expiration date (seconds since epoch). '0' means + no expiration date. + firstname: + type: string + description: '' + groups: + type: string + description: '' + keys: + type: string + description: Keys for two factor auth (yubico). + lastname: + type: string + description: '' + tokens: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + expire: + type: integer + description: >- + API token expiration date (seconds since epoch). + '0' means no expiration date. + privsep: + type: integer + description: >- + Restrict API token privileges with separate ACLs + (default), or give full privileges of + corresponding user. + tokenid: + type: string + description: User-specific token identifier. + userid: + type: string + description: User ID + CreateAccessUsersResponse: + description: CreateAccessUsersResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteAccessUsersSingleResponse: + description: DeleteAccessUsersSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessUsersSingleResponse: + description: GetAccessUsersSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + comment: + type: string + description: '' + email: + type: string + description: '' + enable: + type: integer + description: >- + Enable the account (default). You can set this to '0' to + disable the account + expire: + type: integer + description: >- + Account expiration date (seconds since epoch). '0' means + no expiration date. + firstname: + type: string + description: '' + groups: + type: array + description: '' + items: + type: string + description: '' + keys: + type: string + description: Keys for two factor auth (yubico). + lastname: + type: string + description: '' + tokens: + type: object + description: '' + UpdateAccessUsersSingleResponse: + description: UpdateAccessUsersSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessUsersSingleTfaResponse: + description: GetAccessUsersSingleTfaResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + realm: + type: string + description: 'The type of TFA the users realm has set, if any.' + user: + type: string + description: 'The type of TFA the user has set, if any.' + GetAccessUsersSingleTokenResponse: + description: GetAccessUsersSingleTokenResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + expire: + type: integer + description: >- + API token expiration date (seconds since epoch). '0' + means no expiration date. + privsep: + type: integer + description: >- + Restrict API token privileges with separate ACLs + (default), or give full privileges of corresponding + user. + tokenid: + type: string + description: User-specific token identifier. + DeleteAccessUsersSingleTokenSingleResponse: + description: DeleteAccessUsersSingleTokenSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessUsersSingleTokenSingleResponse: + description: GetAccessUsersSingleTokenSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + comment: + type: string + description: '' + expire: + type: integer + description: >- + API token expiration date (seconds since epoch). '0' means + no expiration date. + privsep: + type: integer + description: >- + Restrict API token privileges with separate ACLs + (default), or give full privileges of corresponding user. + CreateAccessUsersSingleTokenSingleResponse: + description: CreateAccessUsersSingleTokenSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + full-tokenid: + type: string + description: The full token id. + info: + type: object + description: '' + properties: + comment: + type: string + description: '' + expire: + type: integer + description: >- + API token expiration date (seconds since epoch). '0' + means no expiration date. + privsep: + type: integer + description: >- + Restrict API token privileges with separate ACLs + (default), or give full privileges of corresponding + user. + value: + type: string + description: API token value used for authentication. + UpdateAccessUsersSingleTokenSingleResponse: + description: UpdateAccessUsersSingleTokenSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Updated token information. + properties: + comment: + type: string + description: '' + expire: + type: integer + description: >- + API token expiration date (seconds since epoch). '0' means + no expiration date. + privsep: + type: integer + description: >- + Restrict API token privileges with separate ACLs + (default), or give full privileges of corresponding user. + GetAccessGroupsResponse: + description: GetAccessGroupsResponse + content: + application/json: + schema: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: '' + groupid: + type: string + description: '' + users: + type: string + description: list of users which form this group + CreateAccessGroupsResponse: + description: CreateAccessGroupsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteAccessGroupsSingleResponse: + description: DeleteAccessGroupsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessGroupsSingleResponse: + description: GetAccessGroupsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + comment: + type: string + description: '' + members: + type: array + description: '' + items: + type: string + description: User ID + UpdateAccessGroupsSingleResponse: + description: UpdateAccessGroupsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessRolesResponse: + description: GetAccessRolesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + privs: + type: string + description: '' + roleid: + type: string + description: '' + special: + type: integer + description: '' + CreateAccessRolesResponse: + description: CreateAccessRolesResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteAccessRolesSingleResponse: + description: DeleteAccessRolesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessRolesSingleResponse: + description: GetAccessRolesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + Datastore.Allocate: + type: integer + description: '' + Datastore.AllocateSpace: + type: integer + description: '' + Datastore.AllocateTemplate: + type: integer + description: '' + Datastore.Audit: + type: integer + description: '' + Group.Allocate: + type: integer + description: '' + Permissions.Modify: + type: integer + description: '' + Pool.Allocate: + type: integer + description: '' + Realm.Allocate: + type: integer + description: '' + Realm.AllocateUser: + type: integer + description: '' + SDN.Allocate: + type: integer + description: '' + SDN.Audit: + type: integer + description: '' + Sys.Audit: + type: integer + description: '' + Sys.Console: + type: integer + description: '' + Sys.Modify: + type: integer + description: '' + Sys.PowerMgmt: + type: integer + description: '' + Sys.Syslog: + type: integer + description: '' + User.Modify: + type: integer + description: '' + VM.Allocate: + type: integer + description: '' + VM.Audit: + type: integer + description: '' + VM.Backup: + type: integer + description: '' + VM.Clone: + type: integer + description: '' + VM.Config.CDROM: + type: integer + description: '' + VM.Config.CPU: + type: integer + description: '' + VM.Config.Cloudinit: + type: integer + description: '' + VM.Config.Disk: + type: integer + description: '' + VM.Config.HWType: + type: integer + description: '' + VM.Config.Memory: + type: integer + description: '' + VM.Config.Network: + type: integer + description: '' + VM.Config.Options: + type: integer + description: '' + VM.Console: + type: integer + description: '' + VM.Migrate: + type: integer + description: '' + VM.Monitor: + type: integer + description: '' + VM.PowerMgmt: + type: integer + description: '' + VM.Snapshot: + type: integer + description: '' + VM.Snapshot.Rollback: + type: integer + description: '' + UpdateAccessRolesSingleResponse: + description: UpdateAccessRolesSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessAclResponse: + description: GetAccessAclResponse + content: + application/json: + schema: + type: array + description: '' + items: + type: object + title: AccessAcl + description: '' + properties: + path: + type: string + description: Access control path + propagate: + type: integer + description: Allow to propagate (inherit) permissions. + roleid: + type: string + description: '' + type: + type: string + description: '' + ugid: + type: string + description: '' + + + UpdateAccessAclResponse: + description: UpdateAccessAclResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessDomainsResponse: + description: GetAccessDomainsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: array + description: '' + items: + type: object + description: '' + properties: + comment: + type: string + description: >- + A comment. The GUI use this text when you select a + domain (Realm) on the login window. + realm: + type: string + description: '' + tfa: + type: string + description: Two-factor authentication provider. + type: + type: string + description: '' + CreateAccessDomainsResponse: + description: CreateAccessDomainsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeleteAccessDomainsSingleResponse: + description: DeleteAccessDomainsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetAccessDomainsSingleResponse: + description: GetAccessDomainsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + UpdateAccessDomainsSingleResponse: + description: UpdateAccessDomainsSingleResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateAccessDomainsSingleSyncResponse: + description: CreateAccessDomainsSingleSyncResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: Worker Task-UPID + GetAccessTicketResponse: + description: GetAccessTicketResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateAccessTicketResponse: + description: CreateAccessTicketResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + CSRFPreventionToken: + type: string + description: '' + clustername: + type: string + description: '' + ticket: + type: string + description: '' + username: + type: string + description: '' + UpdateAccessPasswordResponse: + description: UpdateAccessPasswordResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + CreateAccessTfaResponse: + description: CreateAccessTfaResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + ticket: + type: string + description: '' + UpdateAccessTfaResponse: + description: UpdateAccessTfaResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + GetAccessPermissionsResponse: + description: GetAccessPermissionsResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: Map of "path" => (Map of "privilege" => "propagate boolean"). + GetPoolsResponse: + description: GetPoolsResponse + content: + application/json: + schema: + type: array + description: '' + items: + type: object + description: '' + properties: + poolid: + type: string + description: '' + CreatePoolResponse: + description: CreatePoolResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + DeletePoolResponse: + description: DeletePoolResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetPoolResponse: + description: GetPoolResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + comment: + type: string + description: '' + members: + type: array + description: '' + items: + type: object + description: '' + properties: + id: + type: string + description: '' + node: + type: string + description: '' + storage: + type: string + description: '' + type: + type: string + description: '' + vmid: + type: integer + description: '' + UpdatePoolResponse: + description: UpdatePoolResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: string + description: '' + GetVersionResponse: + description: GetVersionResponse + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + data: + type: object + description: '' + properties: + release: + type: string + description: '' + repoid: + type: string + description: '' + version: + type: string + description: '' diff --git a/plugins/modules/proxmox_access_acl.py b/plugins/modules/proxmox_access_acl.py index df4e2992..17cede0a 100644 --- a/plugins/modules/proxmox_access_acl.py +++ b/plugins/modules/proxmox_access_acl.py @@ -5,6 +5,8 @@ # SPDX-FileCopyrightText: (c) 2025, Markus Kötter # SPDX-License-Identifier: GPL-3.0-or-later from __future__ import (absolute_import, division, print_function) +from typing import List + __metaclass__ = type DOCUMENTATION = r''' @@ -99,19 +101,21 @@ from ansible.module_utils.basic import AnsibleModule from ansible_collections.community.proxmox.plugins.module_utils.proxmox import (proxmox_auth_argument_spec, ProxmoxAnsible) - +from ansible_collections.community.proxmox.plugins.module_utils.models.paths import AccessAclGetResponse, AccessAcl class ProxmoxAccessACLAnsible(ProxmoxAnsible): - def _get(self): - acls = self.proxmox_api.access.acl.get() - return acls + + def _get(self) -> List[AccessAcl]: + data = self.proxmox_api.access.acl.get() + response = AccessAclGetResponse.model_validate(data) + return response.root def _put(self, **data): return self.proxmox_api.access.acl.put(**data) def create(self, acls, path, roleid, type, ugid, propagate): for ace in acls: - if (ace["path"], ace["roleid"], ace["type"], ace["ugid"], bool(ace.get("propagate", 1))) == (path, roleid, type, ugid, propagate): + if (ace.path, ace.roleid, ace.type, ace.ugid, bool(ace.propagate)) == (path, roleid, type, ugid, propagate): return False data = { @@ -127,15 +131,15 @@ def create(self, acls, path, roleid, type, ugid, propagate): def delete(self, acls, path, roleid, type, ugid, propagate): changed = False for ace in acls: - if path != ace["path"]: + if path != ace.path: continue - if roleid and roleid != ace["roleid"]: + if roleid and roleid != ace.roleid: continue - if type and type != ace["type"]: + if type and type != ace.type: continue - if ugid and ace["ugid"] != ugid: + if ugid and ace.ugid != ugid: continue - if propagate and bool(ace.get("propagate", 1)) != propagate: + if propagate and bool(ace.propagate) != propagate: continue data = { @@ -191,7 +195,7 @@ def run_module(): propagate = module.params["propagate"] try: - result["old_acls"] = acls = proxmox._get() + acls = proxmox._get() if module.params["state"] == "present": r = proxmox.create(acls, path, roleid, type, ugid, propagate) @@ -199,8 +203,6 @@ def run_module(): r = proxmox.delete(acls, path, roleid, type, ugid, propagate) result['changed'] = r - if r: - result["new_acls"] = proxmox._get() except Exception as e: module.fail_json(msg=str(e), **result) diff --git a/plugins/modules/proxmox_group.py b/plugins/modules/proxmox_group.py index 20fdf80b..c31761f3 100644 --- a/plugins/modules/proxmox_group.py +++ b/plugins/modules/proxmox_group.py @@ -78,7 +78,7 @@ from ansible.module_utils.basic import AnsibleModule from ansible_collections.community.proxmox.plugins.module_utils.proxmox import (proxmox_auth_argument_spec, ProxmoxAnsible) - +from ansible_collections.community.proxmox.plugins.module_utils.models.paths import AccessGroupsGetResponse class ProxmoxGroupAnsible(ProxmoxAnsible): @@ -89,9 +89,10 @@ def is_group_existing(self, groupid): :return: bool - is group exists? """ try: - groups = self.proxmox_api.access.groups.get() - for group in groups: - if group['groupid'] == groupid: + data = self.proxmox_api.access.groups.get() + response = AccessGroupsGetResponse.model_validate(data) + for group in response.root: + if group.groupid == groupid: return True return False except Exception as e: diff --git a/plugins/modules/proxmox_group_info.py b/plugins/modules/proxmox_group_info.py index 8ae87faf..529edadd 100644 --- a/plugins/modules/proxmox_group_info.py +++ b/plugins/modules/proxmox_group_info.py @@ -77,34 +77,42 @@ from ansible.module_utils.basic import AnsibleModule from ansible_collections.community.proxmox.plugins.module_utils.proxmox import ( proxmox_auth_argument_spec, ProxmoxAnsible) +from ansible_collections.community.proxmox.plugins.module_utils.models.paths import AccessGroupsGetResponse, AccessGroupsGroupidGetResponse class ProxmoxGroupInfoAnsible(ProxmoxAnsible): def get_group(self, groupid): try: - group = self.proxmox_api.access.groups.get(groupid) + data = self.proxmox_api.access.groups.get(groupid) + response = AccessGroupsGroupidGetResponse.model_validate(data) + group = response.data except Exception: self.module.fail_json(msg="Group '%s' does not exist" % groupid) - group['groupid'] = groupid + group.groupid = groupid return ProxmoxGroup(group) def get_groups(self): - groups = self.proxmox_api.access.groups.get() - return [ProxmoxGroup(group) for group in groups] + data = self.proxmox_api.access.groups.get() + response = AccessGroupsGetResponse.model_validate(data) + return [ProxmoxGroup(group) for group in response.root] +from pydantic import BaseModel class ProxmoxGroup: def __init__(self, group): self.group = dict() # Data representation is not the same depending on API calls - for k, v in group.items(): - if k == 'users' and isinstance(v, str): - self.group['users'] = v.split(',') - elif k == 'members': - self.group['users'] = group['members'] - else: - self.group[k] = v - + if isinstance(group, BaseModel): + for k in group.model_fields_set: + v = getattr(group, k) + if k == 'users' and isinstance(v, str): + self.group['users'] = v.split(',') + elif k == 'members': + self.group['users'] = group['members'] + else: + self.group[k] = v + else: + raise ValueError(group) def proxmox_group_info_argument_spec(): return dict( diff --git a/plugins/modules/proxmox_pool.py b/plugins/modules/proxmox_pool.py index 61f5f813..ca29ff02 100644 --- a/plugins/modules/proxmox_pool.py +++ b/plugins/modules/proxmox_pool.py @@ -78,7 +78,7 @@ from ansible.module_utils.basic import AnsibleModule from ansible_collections.community.proxmox.plugins.module_utils.proxmox import (proxmox_auth_argument_spec, ProxmoxAnsible) - +from ansible_collections.community.proxmox.plugins.module_utils.models.paths import PoolsGetResponse class ProxmoxPoolAnsible(ProxmoxAnsible): @@ -89,9 +89,10 @@ def is_pool_existing(self, poolid): :return: bool - is pool exists? """ try: - pools = self.proxmox_api.pools.get() - for pool in pools: - if pool['poolid'] == poolid: + data = self.proxmox_api.pools.get() + response = PoolsGetResponse.model_validate(data) + for pool in response.root: + if pool.poolid == poolid: return True return False except Exception as e: