Reference For: developers

API schemas: E

Schemas of the native REST API whose name starts with E.

EffectiveRule

One rule in a vNIC's evaluation order.

NameTypeRequiredDescription
actionActionViewyesAction (pass included).
bytesinteger (int64)yesBytes counted.
categoryCategoryView or null
destinationsarray of stringyesDestinations.
destinationsNegatedbooleanDestinations are negated.
directionDirectionViewyesDirection.
ipVersionIpVersionViewyesIP families.
lastHitstring or nullLast report with a non-zero count.
loggedbooleanyesLogged.
numberinteger (int32)yesRule number (0 for the defaults).
originOriginyesOrigin.
packetsinteger (int64)yesPackets counted (all hosts, since the controller started).
policystring or nullPolicy id (null for the defaults and generated system rules).
policyNamestring or nullPolicy name.
positioninteger (int32)yesPosition in evaluation order (0 first).
rulestring or nullRule id.
servicesarray of ServiceEntryViewyesServices.
sourcesarray of stringyesSources (group ids or prefixes; empty: any).
sourcesNegatedbooleanSources are negated.
statefulbooleanyesStateful.

EndBackupRequestView

OpenAPI stand-in for EndBackupRequest.

NameTypeRequiredDescription
outcomeEndOutcomeViewyesSUCCESS or FAILURE.

EndOutcomeView

OpenAPI stand-in for EndOutcome (model lives in kyvernon-backup).

Values: "SUCCESS", "FAILURE"

EntitlementsView

UI-facing entitlements (utoipa schema).

NameTypeRequiredDescription
editionstringyesfree or licensed.
expiresAtstring or nullEarliest expiry among contributing licences, if any (RFC 3339).
featuresarray of stringUnlocked feature names.
hostsLimitstringyesMaximum hosts.
licenceIdsarray of stringContributing licence ids.
licenseestringLicensee name when licensed.
runningVmsLimitstringyesMaximum running VMs (unlimited or a number as string for OpenAPI simplicity).

ErrorBody

The REST error body.

NameTypeRequiredDescription
argsobjectArguments for the message.
codestringyesStable code, e.g. NOT_FOUND.
correlationIdstringyesRequest correlation id (echoed from x-request-id or generated).
messagestringyesEnglish developer message.
messageIdstring or nullMessage key the UI localises; one of the ids below (clients treat unknown ids as code). args names the arguments in brackets. - error.not_found: The object does not exist (or is not visible to the caller). - error.already_exists: An object with that name or id exists. - error.conflict: Compare-and-set failed: expectedVersion is stale. - error.unauthenticated: No or invalid bearer token. - error.permission_denied [privilege]: The caller lacks a privilege on the entity. - error.mfa_required [reason]: The session is restricted until multi-factor authentication completes. - error.password_rotation_required [reason]: The session is restricted until the password is changed. - error.auth.invalid_credentials: Login refused (one answer for every reason). - error.auth.rate_limited [retryAfterSeconds]: Too many login attempts; also Retry-After. - error.auth.invalid_code: The TOTP or recovery code was not accepted. - error.auth.mfa_expired: The MFA challenge token expired. - error.auth.mfa_proof: The MFA challenge token does not match the login. - error.auth.access_expired: The access token expired; refresh. - error.auth.session_expired: The refresh token or session expired; log in again. - error.auth.refresh_reuse: A refresh token was presented twice; the session family is revoked. - error.auth.refresh_race: Another tab refreshed first; retry once. - error.auth.csrf: The X-Kyvernon-CSRF header does not match the cookie. - error.auth.origin: The Origin header is not an allowed origin. - error.mfa.already_enrolled: TOTP is already set up. - error.mfa.not_enrolled: TOTP is not set up. - error.mfa.not_enrolling: No TOTP enrolment is pending. - error.password.too_short [min]: The password is shorter than min. - error.password.too_long [max]: The password is longer than max. - error.password.common: The password is on the common-password list. - error.password.repetitive: The password repeats one character or group. - error.password.sequential: The password is a keyboard or alphabet sequence. - error.password.contains_username: The password contains the user name. - error.password.unchanged [field]: The new password equals the current one. - error.password.current_required [field]: The current password must be given. - error.password.current_incorrect [field]: The current password is wrong. - error.api_token.name [field]: The API token name is empty or too long. - error.api_token.limit [max]: The user has max API tokens already. - error.api_token.ttl [field, max]: The API token lifetime is zero or longer than the maximum of max seconds. - error.webhook.target_restricted [field, url]: The webhook target is a loopback, private, link-local or other restricted address that is not allow-listed. - error.invalid_power_state [power_state, required]: The operation needs another power state: power_state is the current one, required the one it needs (powered_off, powered_on or suspended). - error.vm_not_placed [reason]: The VM has no host. reason is no_connected_host, all_in_maintenance, no_hosts, no_compute_resource (placement finds no host today) or not_assigned (a host is available but the VM names none). - error.vm_spec_unbuildable: The VM configuration cannot be built on the host; the message names the cause. - error.vm.concurrent_modification: The VM configuration changed since the request's change_version was read and the change cannot be merged; read the VM again and repeat (HTTP 409). - error.vm.exceeds_host_cpu [field, requested, limit, host]: More vCPUs than the host has logical CPUs (or than vm_ops.max_vcpus_per_vm). - error.vm.exceeds_host_memory [field, requested, limit, host]: More memory (MiB) than the host has after vm_ops.host_memory_reserve_mib. - error.vm.too_many_devices [device, count, limit]: More disks and network adapters together (device = disks_and_nics), or CD-ROM drives (cdroms), than a virtual machine has slots. - error.host.insufficient_memory [requested, available, host]: Power-on refused: the host has available MiB free for virtual machines, the guest needs requested. - error.host.not_in_maintenance [host]: Reboot or shutdown needs the host in maintenance mode (or force). - error.host.not_connected [host]: The host is not connected to the control plane. - error.datastore.not_shareable [datastore]: The datastore cannot be mounted on or unmounted from a single host: an iSCSI (VMFS-like) datastore belongs to one host, a local datastore to its own. - error.tag.not_associable [category, kind]: Tags of the category cannot be attached to objects of that kind (the category's associable kinds). - error.tag.cardinality [category, object]: The object already carries another tag of a category that allows one tag per object. - error.tag.provider_managed [category]: Tags of a provider-managed category are attached and detached by the provider only. - error.tag.category_change [field]: A category's cardinality changes from single to multiple only, and associable kinds can only be added. - error.backup.no_repository: No backup repository is configured on the controller ([backup] verify_repository or the backup settings). - error.backup.repository_unusable [repository]: The repository directory cannot be created or written on this controller. - error.backup.export_unreachable: The controller cannot reach the NBD export of a disk on the host. - error.backup.change_tracking [vm]: Change tracking could not be turned on for the virtual machine before its first backup. - error.backup.no_disks [vm]: The virtual machine has no disk to back up. - error.backup.vm_powered_on [vm]: A restore in place replaces the disks of the virtual machine; it must be powered off. - error.backup.verify_failed [point]: The restore finished, but the verification of the backup point in quarantine failed. - error.backup.controller_running: A backup of the controller state is already running. - error.backup.controller_target [target]: The folder for the archives of the controller state cannot be created. - error.backup.controller_changed [file]: A file of the state directory changed while it was archived. - error.backup.controller_unreadable: The archive that was written does not read back as written. - error.backup.controller_unavailable: This controller keeps its state in memory; there is nothing to archive. - error.backup.source_gone: The virtual machine of the backup point no longer exists; its configuration is needed for a restore. - error.datacenter.not_empty [datacenter]: The datacenter still holds clusters, hosts, virtual machines, networks or datastores. - error.datastore.insufficient_space [requested, available, datastore]: A new or grown disk asks for more bytes than the datastore has free (thick) or than the thin-disk cap. - error.disk.shrink_not_supported [field, disk]: A disk cannot be made smaller. - error.guest_operations_unavailable: Guest operations are not available (powered off, no agent, or agent blocks the command). - error.guest_file_exists: The file already exists in the guest (use overwrite). - error.guest_path_not_found: The path does not exist in the guest. - error.guest_path_is_directory: The path is a directory in the guest. - error.guest_path_not_directory: The path is not a directory in the guest. - error.guest_directory_not_empty: The directory is not empty in the guest. - error.console.powered_off: The VM is powered off; a console needs a running VM. - error.console.not_available: The VM runs without a graphical console (no console.vnc). - error.console.host_disconnected: The VM's host is not connected. - error.console.rate_limited [retryAfterSeconds]: Too many console tickets for this session. - error.console.ticket_invalid: The console ticket is unknown, used or expired. - error.no_current_snapshot: The VM has no current snapshot to revert to. - error.nic_network_unwired [network, nic]: A NIC is on a network without a host-bridge backing. - error.host_capability_missing [capability]: The host did not declare the needed capability. - error.host_has_running_vms: Maintenance mode needs the host's VMs powered off or moved. - error.host_has_vms: The host still has VMs placed on it; relocate or destroy them first. - error.host_in_maintenance: The host is in maintenance mode. - error.template_relocate: Templates cannot be relocated. - error.image_in_use [vm]: The image file backs a VM. - error.datastore_bad_path [field]: The datastore path is empty, absolute, or escapes the root. - error.datastore_file_exists: The file or folder exists (use overwrite). - error.datastore_file_not_found: No such file on the datastore. - error.datastore_folder_not_found: No such folder on the datastore. - error.datastore_folder_not_empty: The folder still has entries. - error.datastore_file_in_use [vm, vmId]: The file backs a VM disk. - error.disk_owned_by_other_vm [field]: The disk file belongs to another VM the caller has no disk access to. - error.audit_record_immutable: Audit records cannot be deleted. - error.datastore_upload_too_large [limit]: The upload exceeds limit bytes (HTTP 413). - error.datastore_upload_incomplete: The upload ended before Content-Length bytes. - error.datastore_read_only: The datastore refuses writes. - error.datastore_range_invalid: The Range header cannot be satisfied (HTTP 416). - error.datastore_inaccessible [datastore]: The datastore is not accessible from its hosts. - error.datastore_no_host [datastore]: No connected host mounts the datastore. - error.datastore_not_on_host [datastore]: The chosen host does not mount the datastore. - error.datastore_not_shared: The operation needs a datastore shared by both hosts. - error.metrics_disabled: Performance metrics are turned off on the controller. - error.metrics_bad_entity [entity]: No performance data is kept for that object kind. - error.metrics_bad_interval [interval]: Not a supported sampling period. - error.metrics_unknown_counter [counter]: No such counter. - error.metrics_query_empty: The query names no entity or counter. - error.metrics_query_too_large: The query would return too many samples. - error.metrics_too_many_batches [max]: A host agent sent more than max metric batches in one report; the whole report is rejected. - error.usage_bad_date [field]: A date is not YYYY-MM-DD. - error.usage_bad_range: to is before from or the range exceeds ten years. - error.usage_bad_group: groupBy is not vm, tenant, resourcePool, folder or host. - error.usage_bad_period: period is not day, month or total. - error.usage_bad_format: format is not json or csv. - error.usage_bad_scope: scope is not an inventory container id. - error.licence.limit_running_vms [limit, current, delta]: Power-on would exceed the running-VM licence limit. - error.licence.limit_hosts [limit, current, delta]: Enrolling a host would exceed the host licence limit. - error.licence.feature_required [feature]: The operation needs a licence feature that is not enabled. - error.licence.signature_invalid: The licence file signature is not valid. - error.licence.not_valid: The licence is outside its validity window. - error.quota.exceeded [resource, limit, current, requested, tenant]: The operation would take the tenant over its quota of resource (vcpus, memoryMib, diskGib, vms, publicIpv4, snapshots). - error.tenant.suspended [tenant]: The tenant is suspended: no power-on, no console, users are read-only. - error.tenant.closed [tenant]: The tenant is closed. - error.server.not_ready [state]: The server is not in a state that allows the operation (creating, deleted, failed or rescue). - error.server.plan_not_larger [field]: Resize goes to a plan that is at least as large in vCPU, memory and disk. - error.server.plan_not_orderable [field]: The plan is not orderable. - error.server.image_not_allowed [field]: The plan does not allow the image. - error.server.disk_too_small [field]: The plan's disk is smaller than the image needs. - error.server.no_credentials [field]: The image takes no credentials (no SSH keys, password or user data). - error.server.rescue_active: The server is already in rescue mode. - error.server.no_rescue_image: No catalogue image is marked as a rescue image. - error.plan.in_use [servers]: Servers use the plan; make it not orderable instead. - error.catalogue.not_template: Only template VMs can be catalogue images. - error.ip_pool.exhausted [pool]: The IP pool has no free address (or /64) left. - error.ip_pool.address_in_use [address]: The requested address is allocated already. - error.ip_pool.address_quarantined [address]: The address was released recently and is in quarantine. - error.ip_pool.primary_exists [mac]: The NIC already has a primary address in this pool; ask for an extra one. - error.ip_pool.no_ipv6: The IP pool has no IPv6 prefix. - error.ip_pool.overlap [field, pool]: The ranges overlap another IP pool. - error.ip_pool.in_use [pool]: The IP pool still has allocations. - error.ip_pool.not_allocated [address]: The address is not allocated in the pool (or not the VM's). - error.ip_pool.no_nic [network, vm]: The VM has no NIC on the IP pool's network. - error.ip_pool.ipv6_block_len [field]: The IPv6 block length per server must be 64 to 128. - error.ip_pool.ipv6_layout_in_use [field]: The IPv6 prefix and block length cannot change while blocks are allocated or in quarantine. - error.network.proxy_uplink [field]: Proxy mode needs an Open vSwitch bridge and the name of the uplink interface. - error.network.promiscuous_unsupported [field]: Promiscuous mode is not realised by the host bridge; use a mirror session. - error.network.shaping_invalid [field]: The traffic shaping values are incomplete, negative or out of order (field names the value). - error.network.teaming_invalid [field]: The NIC teaming policy is unknown, or a NIC name is invalid or listed twice. - error.firewall.validation [object, issue, count]: The firewall change adds validation errors (issue is the net.validation.fw_* key of the first, object its path, count how many); the message lists them all. - error.firewall.builtin [object]: The firewall object is built in and maintained by the control plane (read-only). - error.firewall.reserved_name [field]: Firewall object names starting with sys: are reserved for built-in objects. - error.firewall.quota [resource, limit, used]: The tenant's firewall quota (fwGroups, fwPolicies, fwRules, fwGroupMembers) would be exceeded. - error.firewall.category_scope [field]: Emergency and Infrastructure policies belong to the provider. - error.firewall.in_use [object]: The firewall object is still used (a profile set on vNICs). - error.firewall.no_vnic: The VM has no vNIC on a host-bridge network. - error.firewall.profile_not_selectable [profile]: A tenant user chose a firewall profile the provider did not mark selectable. - error.firewall.unprotected [nic, reason]: The vNIC cannot be firewalled; its mode stays off. reason is linux_or_quarantine_bridge or port_security_off. - error.firewall.not_pending: No firewall mode switch of the VM waits for confirmation. - error.identity.group_exists [group]: A local group with that name exists (names are compared without regard to case). - error.identity.group_not_found [group]: No local group has that name. - error.identity.group_cycle [group, member]: Nesting member in group would make a group contain itself, or nest deeper than eight levels. - error.identity.oidc_unreachable [issuer]: The identity provider did not answer OpenID Connect discovery at issuer; the stored provider is unchanged. - error.identity.policy_invalid [field]: A password or lockout policy value is out of range (field names it). - error.nsx.unsupported: NSX Policy API facade: the request uses a feature outside the subset this server serves; the message names the field (DFW-HOSTBRIDGE.md §6.4). - error.nsx.invalid: NSX Policy API facade: a field of the request is not valid; the message names it. - error.nsx.not_found: NSX Policy API facade: the path names no object, or one the caller cannot see. - error.nsx.revision: NSX Policy API facade: the _revision of the write is stale (412); read the object again. - error.nsx.read_only: NSX Policy API facade: the object is built in, or a tenant user wrote into the provider scope. - error.nsx.xsrf: NSX Policy API facade: a write with a session cookie lacks the session's X-XSRF-TOKEN. - error.identity.provider_privilege_in_tenant [role, privilege]: The role holds a provider-only privilege (Kyvernon.Firewall.ManageProvider, Kyvernon.Firewall.Bypass), which cannot be granted inside a tenant's folders and pools. - error.rdns.nothing_pending [address]: No PTR request is waiting for this address. - error.rdns.reason_required [field]: A rejected PTR request needs a reason. - error.rdns.provider_failed [http_status]: The DNS provider did not accept the change; retry later. http_status is the provider's answer when it gave one; the cause is in the message. - error.rdns.no_zone [name]: No reverse zone on the DNS server holds the address. - error.rdns.not_forward_confirmed [name, address]: The PTR name does not resolve back to the address. - error.rdns.invalid_name [field]: The PTR name is not a valid host name. - error.traffic.bad_month [field]: month is not YYYY-MM. - error.traffic.no_policy [vm]: The VM has no traffic limit. - error.task.secrets_lost: The task's secret parameters lived only in the memory of a controller that restarted or lost leadership; submit the operation again.

EventView

An event.

NameTypeRequiredDescription
argsobjectyesMessage arguments.
attributesobjectyesAttributes.
chainIdstringyesCorrelation id.
eventTypestringyesEvent type in vSphere style (VmPoweredOnEvent).
idstringyesEvent id (event-N).
messageIdstringyesLocalisable message key.
relatedarray of stringyesRelated object ids.
severitySeverityViewyesSeverity.
targetIdstring or nullTarget id.
targetNamestringyesTarget name.
targetTypestring or nullTarget short type.
taskIdstring or nullProducing task.
timestringyesTime (RFC 3339).
userstringyesUser.

Evidence

The evidence of one verification.

NameTypeRequiredDescription
bootBootEvidenceyesBoot.
dhcpDhcpEvidenceyesDHCP lease.
durationMsinteger (int64)yesTime from power-on to the verdict.
networkNetworkEvidenceyesNetwork.
tcpTcpEvidence or null

Version 0.1.