Schemas
Audit.AuditAttribution
triggerWhether this event was raised by the operation or observed after it.
originWhat caused the operation.
operationUUID shared by every event belonging to the same operation.
What was performed on the object.
userThe user that caused the operation, when one did.
Audit.AuditEvent
typeThe type of event.
timestampWhen the event was raised.
The object the event is about. Absent on gap, which names no object.
The operation the event belongs to.
The event payload. Its fields depend on type.
droppedHow many events were lost. Only on gap.
Audit.AuditEventData
prevThe state before the transition.
newThe state after the transition.
stateThe state the instance was left in after a failed start.
errorThe error that failed the start, as an errno name such as EDQUOT.
Why the instance stopped.
Audit.AuditEventType
The type of an audit event.
An enum rather than an open union because this is also a query parameter, and an open union generates as an interface that a client cannot serialise into a filter. Further event types are added here; a Go client decodes one it does not know as its plain string value rather than failing.
Audit.AuditObject
The kind of object.
uuidThe object's UUID.
ownerThe UUID of the user the object belongs to.
tagsThe tags set on the object.
Audit.AuditObjectType
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = string | |
| type = string |
Audit.AuditOperationKind
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = string | |
| type = string |
Audit.AuditOrigin
What caused the operation.
Audit.AuditStop
reasonThe origins that contributed to the stop.
codeThe kernel stop code.
causeThe stop cause.
Audit.AuditTrigger
Whether the event was raised by the operation or observed as a result of it.
Autoscale.AdjustmentType
AdjustmentType defines the type of adjustment to be made in an autoscaling step policy.
Autoscale.AutoscalePolicy
nameThe name of the policy.
enabledWhether the policy is enabled.
metricMetric to use for the step policy (only for step policies).
adjustment_typeThe type of adjustment to be made in the step policy (only for step policies).
The steps for the step policy. Each step defines an adjustment value and optional bounds.
Autoscale.AutoscalePolicyStep
adjustmentThe adjustment value for the step.
lower_boundLower bound for the step.
upper_boundUpper bound for the step.
Autoscale.ConfigurationInstanceCreateArgs
The ROM to use for the autoscale configuration.
The template to use for the autoscale configuration.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: roms | |
| type = object · requires: template |
The ROM to use for the autoscale configuration.
The template to use for the autoscale configuration.
Autoscale.CreateAutoscaleConfigurationByServiceGroupUUIDRequest
uuidThe UUID of the service to create a configuration for.
The arguments to use when creating instances.
min_sizeThe minimum number of instances to keep running.
max_sizeThe maximum number of instances to keep running.
warmup_time_msThe warmup time in milliseconds for new instances.
cooldown_time_msThe cooldown time in milliseconds for the autoscale configuration.
The policies to apply to the autoscale configuration.
Autoscale.CreateAutoscaleConfigurationByServiceGroupUUIDRequestInstanceCreateArgs
The ROM to use for the autoscale configuration.
The template to use for the autoscale configuration.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: roms | |
| type = object · requires: template |
The ROM to use for the autoscale configuration.
The template to use for the autoscale configuration.
Autoscale.CreateAutoscaleConfigurationPolicyRequest
nameThe name of the policy.
The policy type to add to the autoscale configuration.
Autoscale.CreateAutoscaleConfigurationPolicyResponse
statusThe status of the response.
The response data for this request.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
A list of errors which may have occurred during the request.
Autoscale.CreateAutoscaleConfigurationPolicyResponsePolicy
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
statusThe status of the response.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
messageAn optional message providing additional information about the status.
errorAn optional error code providing additional information about the status.
Autoscale.CreateAutoscaleConfigurationsRequestConfiguration
The arguments to use when creating instances.
uuidThe UUID of the resource.
nameThe name of the resource.
min_sizeThe minimum number of instances to keep running.
max_sizeThe maximum number of instances to keep running.
warmup_time_msThe warmup time in milliseconds for new instances.
cooldown_time_msThe cooldown time in milliseconds for the autoscale configuration.
The policies to apply to the autoscale configuration.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: uuid | |
| type = object · requires: name |
uuidThe UUID of the resource.
nameThe name of the resource.
min_sizeThe minimum number of instances to keep running.
max_sizeThe maximum number of instances to keep running.
warmup_time_msThe warmup time in milliseconds for new instances.
cooldown_time_msThe cooldown time in milliseconds for the autoscale configuration.
The arguments to use when creating instances.
The policies to apply to the autoscale configuration.
Autoscale.CreateAutoscaleConfigurationsResponse
statusThe status of the response.
The response data for this request.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
A list of errors which may have occurred during the request.
Autoscale.CreateAutoscaleConfigurationsResponseConfigurationsResponse
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
statusThe status of the response.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
messageAn optional message providing additional information about the status.
errorAn optional error code providing additional information about the status.
Autoscale.DeleteAutoscaleConfigurationPolicyResponse
statusThe status of the response.
The response data for this request.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
A list of errors which may have occurred during the request.
Autoscale.DeleteAutoscaleConfigurationPolicyResponsePoliciesResponse
nameThe name of the deleted policy.
statusThe status of the response.
messageAn optional message providing additional information about the status.
errorAn optional error code providing additional information about the status.
Autoscale.DeleteAutoscaleConfigurationsResponse
statusThe status of the response.
The response data for this request.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
A list of errors which may have occurred during the request.
Autoscale.DeleteAutoscaleConfigurationsResponseServiceGroup
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
statusThe status of the response.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
messageAn optional message providing additional information about the status.
errorAn optional error code providing additional information about the status.
Autoscale.DeletePolicyRequest
nameThe name of the policy to delete.
Autoscale.GetAutoscaleConfigurationPolicyRequest
nameThe Name of the policy to get.
Autoscale.GetAutoscaleConfigurationPolicyResponse
statusThe status of the response.
The response data for this request.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
A list of errors which may have occurred during the request.
Autoscale.GetAutoscaleConfigurationPolicyResponsePolicyResponse
The policy which was retrieved by the request.
statusThe status of the response.
messageAn optional message providing additional information about the status.
errorAn optional error code providing additional information about the status.
Autoscale.GetAutoscaleConfigurationsResponse
statusThe status of the response.
The response data for this request.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
A list of errors which may have occurred during the request.
Autoscale.GetAutoscaleConfigurationsResponseServiceGroup
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
enabledIf the autoscale configuration is enabled.
statusThe status of the response.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
min_sizeThe minimum number of instances to keep running. Only if enabled is true.
max_sizeThe maximum number of instances to keep running. Only if enabled is true.
warmup_time_msThe warmup time in seconds for new instances. Only if enabled is true.
cooldown_time_msThe cooldown time in seconds for the autoscale configuration. Only if enabled is true.
The instance template used for the autoscale configuration. Only if enabled is true.
The policies applied to the autoscale configuration.
messageAn optional message providing additional information about the status.
errorAn optional error code providing additional information about the status.
Autoscale.InstanceCreateArgsInstanceCreateRequestRoms
nameThe name of the ROM.
The image of the ROM to use for the autoscale configuration. Mutually
exclusive with files. Accepts either a plain image reference string
("nginx:latest") or an object carrying additional pull configuration
({"url": "nginx:latest", "pull_policy": "always"}).
Inline files to use as the ROM content. When specified, the platform
creates an EROFS image from the provided files. Mutually exclusive with
image.
Autoscale.ServiceGroupTemplate
uuidThe UUID of the template used for the autoscale configuration.
nameThe name of the template used for the autoscale configuration.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Autoscale.StepPolicyMetric
The step policy is a type of autoscaling policy that scales the number of instances in a service by a fixed number of instances at each step. It uses a metric to determine when to scale up or down.
Certificates.Certificate
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
created_atThe time the certificate was created.
common_nameThe common name (CN) field from the certificate's subject.
This is typically the primary domain name that the certificate is issued for. It represents the main identity that the certificate validates.
stateThe current state of the certificate.
This indicates whether the certificate is pending issuance, valid and ready for use, or in an error state. See CertificateState enum for detailed state descriptions.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
subjectThe complete subject distinguished name (DN) of the certificate.
This contains the full subject information from the certificate, including the common name, organization, organizational unit, locality, state, and country. The subject identifies the entity that the certificate is issued to. Only present when the certificate has been issued.
issuerThe complete issuer distinguished name (DN) of the certificate.
This identifies the Certificate Authority (CA) that issued the certificate. It contains information about the CA including its common name, organization, and country. Only present when the certificate has been issued.
serial_numberThe unique serial number assigned to the certificate by the issuing CA.
This is a unique identifier within the scope of the issuing CA that can be used to identify and track the certificate. Serial numbers are typically represented as hexadecimal strings. Only present when the certificate has been issued.
not_beforeThe date and time when the certificate becomes valid.
The certificate should not be trusted before this date. This timestamp marks the beginning of the certificate's validity period. Only present when the certificate has been issued.
not_afterThe date and time when the certificate expires.
The certificate should not be trusted after this date. This timestamp marks the end of the certificate's validity period. Certificates should be renewed before this date to maintain service availability. Only present when the certificate has been issued.
Validation status when state is pending.
Service groups using this certificate.
Certificates.CertificateState
The current state of a certificate.
The certificate can be in one of the following states:
| State | Description |
|---|---|
pending | The certificate request is pending while the certificate is being requested from the certification authority. During this phase any service using this certificate is not available if this is not a renewal. |
valid | The certificate is valid and can be used by your services. |
error | The certificate request failed after multiple attempts. This can happen, for example, if your DNS configuration is not correct, you run into Let's Encrypt™ quota limits, or the domain validation process failed for some other reason. There won't be any further automatic attempts. |
Certificates.CertificateValidation
attemptThe current validation attempt number.
nextThe next validation attempt time.
Certificates.CreateCertificateRequest
chainThe certificate chain in PEM format. Required for user-uploaded certificates.
pkeyThe private key in PEM format. Required for user-uploaded certificates.
nameThe name of the resource. If not provided, a random name is generated. The name must be unique within the context of your account.
nodeThe name of the node to place the resource on. If not provided, the platform picks one. Only accepted on metros that span multiple nodes.
common_nameThe common name (CN) of the certificate.
This must be a fully-qualified domain name (FQDN). Exactly one of cn
or common_name must be specified.
cnThe common name (CN) of the certificate.
Deprecated: Use common_name instead.
Certificates.CreateCertificateResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Certificates.DeleteCertificatesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Certificates.DeleteCertificatesResponseDeletedCertificate
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Certificates.GetCertificatesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Certificates.UpdateCertificateByUUIDRequestBody
chainThe new certificate chain. This is the public chain of the certificate in PEM format. The chain should include the certificate and any intermediate certificates.
pkeyThe new private key. This is the private key of the certificate in PEM format. The private key must match the public key in the certificate chain.
Certificates.UpdateCertificatesRequestItem
chainThe new certificate chain. This is the public chain of the certificate in PEM format. The chain should include the certificate and any intermediate certificates.
pkeyThe new private key. This is the private key of the certificate in PEM format. The private key must match the public key in the certificate chain.
uuidThe UUID of the resource.
nameThe name of the resource.
Certificates.UpdateCertificatesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Common.InlineFile
pathThe file path within the image.
dataThe file data, encoded according to the encoding field.
encodingThe encoding of the data field. Defaults to "text".
Common.NameOrUUID
uuidThe UUID of the resource.
nameThe name of the resource.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: uuid | |
| type = object · requires: name |
uuidThe UUID of the resource.
nameThe name of the resource.
Common.ResourceID
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Common.ResponseError
statusThe HTTP status code of the error.
Common.ResponseStatus
The response status of an API request.
Common.SchedPriority
SchedPriority defines the scheduling priority for an instance.
User requires the override_vm_priority permission to change it.
The list of available scheduling priorities:
| Priority | Description |
|---|---|
normal | Default scheduling priority. |
medium | Medium scheduling priority. |
high | High scheduling priority. |
admin | Admin scheduling priority. |
Images.GetImagesRequestTagOrDigest
digesttagDecision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: digest | |
| type = object · requires: tag |
digesttagImages.GetImagesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Images.Image
urlThe image URL.
created_atThe time the image was created.
initrd_or_romWhether the image is an initrd or ROM.
size_in_bytesThe size of the image in bytes.
argsCommand-line arguments for the image.
Environment variables for the image.
tagsTags associated with the image.
usersUsers associated with the image.
persistentWhether the image is pinned and exempt from cache eviction. Only
populated (and only ever true) for callers with image manager
permissions; omitted otherwise, including when the image is not pinned.
Images.PinImageRequestItem
urlThe image URL to pull and pin.
timeout_sNumber of seconds to wait for the pull to complete. Required and must
be non-zero; -1 waits up to the platform's maximum timeout.
credentialsOptional credentials for authenticating to an OCI registry. Only valid for OCI registry URLs; the platform rejects this field for non-OCI schemes.
Optional HTTP headers to send when fetching the image.
pull_policyControls when the image is pulled relative to what is already cached on the node. If unset, this is inferred from the URL.
merge_requestsAvoid duplicate pulls by merging with any in-flight request for the
same image. Defaults to true.
Automatically unpin the image after a period of inactivity.
Images.PinImageRequestItemAutokill
time_msAutomatically unpin the image after this many milliseconds of
inactivity. 0 (the default) disables this.
Images.PinImagesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Images.PinImagesResponseImage
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
uuidThe UUID of the image. Only set on success.
nameThe name of the image. Only set on success.
created_atThe time the image was created. Only set on success.
stateThe current state of the image (e.g. ready). Only set on success.
urlThe image URL. Only set on success.
persistentWhether the image is pinned and exempt from cache eviction. Only set
on success, where it is always true.
tagsThe tags associated with the image. Only set on success.
Images.UnpinImageRequestItem
uuidThe UUID of the image to unpin. Only UUID is supported; name, URL, tag, and digest are not.
Images.UnpinImagesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Images.UnpinImagesResponseImage
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the image.
messageAn optional message providing additional information.
errorAn optional error code.
nameThe name of the image. Only set on success, and only if the image has a name.
Instances.CheckpointAutokill
time_msTime in milliseconds after the checkpoint was last used for restoring before it is deleted. A value of 0 disables checkpoint autokill.
Instances.CheckpointHistoryEntry
uuidThe UUID of the checkpoint.
nameThe name of the checkpoint.
created_atThe time the checkpoint was created.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.CreateCheckpointInstancesRequestItem
The source instance to create a checkpoint from (by name or UUID).
nameThe name of the checkpoint. If not provided, a name will be generated.
nodeThe name of the node to place the checkpoint on. Must be the node of the source instance. Only accepted on metros that span multiple nodes.
timeout_sTimeout in seconds to wait for the checkpoint to be created. No wait performed for a value of 0.
tagsTags to associate with the checkpoint.
Automatic delete-on-idle configuration for the new checkpoint.
Instances.CreateCheckpointInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.CreateCheckpointInstancesResponseCheckpointInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe current state of the checkpoint.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.CreateInstanceRequest
nameThe name of the resource. If not provided, a random name is generated. The name must be unique within the context of your account.
nodeThe name of the node to place the resource on. If not provided, the platform picks one. Only accepted on metros that span multiple nodes.
The image to use for the instance.
Either an image or a template must be specified. Accepts either a plain
image reference string ("nginx:latest") or an object carrying additional
pull configuration ({"url": "nginx:latest", "pull_policy": "always"}).
argsThe arguments to pass to the instance when it starts.
Environment variables to set for the instance.
memory_mbMemory in MB to allocate for the instance. Default is 128.
min_memory_mbLower bound in MB for memory vertical scaling. Setting this or
max_memory_mb enables memory vertical scaling, which is only supported
by microVM instances. The instance boots with this amount of memory, and
memory_mb selects the initial allocation within the bounds, defaulting
to min_memory_mb. Must be lower than max_memory_mb, and within the
user's memory limits. Cannot be used with templates that have a
snapshot, branch_from or checkpoint.
max_memory_mbUpper bound in MB for memory vertical scaling. Setting this or
min_memory_mb enables memory vertical scaling. Defaults to the user's
maximum memory limit. Must be higher than min_memory_mb by at least
the platform's memory block size. Cannot be used with templates that
have a snapshot, branch_from or checkpoint.
The service group configuration when creating an instance.
When creating an instance, either a previously created (persistent) service group can be referenced (either through its name or UUID), or a new (ephemeral) service group can be created for the instance by specifying the list of services it should expose and optionally the domains it should use. Not used by template instances.
Volumes to attach to the instance.
This list can contain both existing and new volumes to create as part of the instance creation. Existing volumes can be referenced by their name or UUID. New volumes can be created by specifying a name, size in MiB, and mount point in the instance. The mount point is the directory in the instance where the volume will be mounted.
autostartWhether the instance should start automatically on creation.
Must be set to true when timeout_s is specified.
replicasNumber of additional replicas to create. The total number of instances
created is replicas + 1. Defaults to 0.
restart_policyRestart policy for the instance. This defines how the instance
should behave when it stops or crashes. Cannot be combined with
the delete-on-stop feature.
Scale-to-zero configuration for the instance. Requires
service_group to be set. Cannot be combined with the
delete-on-stop feature.
vcpusNumber of vCPUs to allocate for the instance. Defaults to 1.
min_vcpusLower bound for vCPU vertical scaling. Setting this or max_vcpus
enables vCPU vertical scaling, which is only supported by microVM
instances. The instance boots with this number of vCPUs, and vcpus
selects the initial allocation within the bounds, defaulting to
min_vcpus. Must be lower than max_vcpus, and within the user's vCPU
limits. Cannot be used with templates that have a snapshot,
branch_from or checkpoint.
max_vcpusUpper bound for vCPU vertical scaling. Setting this or min_vcpus
enables vCPU vertical scaling. Defaults to the user's maximum vCPU
limit. Must be higher than min_vcpus. Cannot be used with templates
that have a snapshot, branch_from or checkpoint.
featuresFeatures to enable for the instance. Features are specific
configurations or capabilities that can be enabled for the
instance. The scale-to-zero and delete-on-stop features are
mutually exclusive.
timeout_sTimeout in seconds to wait for all new instances to reach running
state. Requires autostart to be set. If you autostart your
new instance, you can wait for it to finish starting with a
blocking API call if you specify a wait timeout greater than
zero. No wait performed for a value of 0.
Read-Only Memory (ROM) blobs to attach to the instance. Unikraft Cloud supports the ability to attach Read-Only Memory (ROM) blobs to instances. It allows you to create a general-purpose base image and then customize individual instances by attaching code or data as separate ROM blobs.
Plugins to attach to the instance. Plugins let you attach small helper
programs to an instance and reach each one over a direct, authenticated
HTTP endpoint. Each plugin loads from its own ROM image, mounts at
/uk/plugins/<plugin_name>, and is reachable at
.../v1/instances/<uuid>/plugins/<plugin_name>/<path>. At most 8 plugins
may be attached to an instance.
tagsTags to associate with the instance.
Annotations to associate with the instance.
Unlike tags, annotations also reach the guest: they are included in the instance's startdata, and selected keys can be injected into the console log output.
Keys follow the Kubernetes annotation key syntax, [<prefix>/]<name>:
the optional prefix is a non-wildcard DNS subdomain of at most 253
characters, and the name is at most 63 characters of [-_.a-zA-Z0-9]
starting and ending with an alphanumeric. Values are unconstrained apart
from ASCII control characters. An instance holds at most 256 annotations.
When the instance inherits annotations from a template, branch, or checkpoint, the given annotations are merged into them rather than replacing them. On a key clash the value given here wins.
Template instances. An existing instance can be saved as a template. This template is then used to create new instances that inherit the exact configuration and state the original instance had when the template was created.
sched_priorityThe scheduling priority for the instance. Only settable by users with scheduling priority override permissions.
Schedules for the instance. Scheduled operations let you automatically
start, stop, delete, or exec a command in the instance on a calendar-
based schedule. For exec schedules, set the args field to the command
and its arguments. Each instance stores its own schedules, and cloning
preserves them.
Automatic delete-on-idle/request-limit configuration. Not used for template instances.
hostnameThe hostname of the instance.
If not provided, the hostname will be set to the instance name. The hostname must be a valid DNS label (e.g., "my-instance") and is used for internal DNS resolution within the Unikraft Cloud network.
Dependencies of the instance.
A list of instance identifiers (name or UUID) that this instance depends on. Dependencies define startup ordering and can be used to ensure that prerequisite instances are running before this instance starts.
Reference to an existing instance to branch from. The instance can be
running or stopped. If the source instance is running, a snapshot will be
taken asynchronously and the new instance will wait for it to complete
before starting. Mutually exclusive with image and template.
Reference to an existing checkpoint to create the instance from. The
checkpoint must be in the checkpoint state. The new instance will be
created with the same configuration and state as the checkpoint. Mutually
exclusive with image, template, and branch_from.
gatewayThe default gateway to configure inside the guest.
nameserverThe DNS resolver to configure inside the guest.
Network interfaces to attach to the instance.
typeThe type of virtual machine to use for the instance. Defaults to micro,
which runs on Firecracker. full runs on QEMU instead and is required
for GPU passthrough (see gpus) and, in the future, Windows VMs. QEMU-
backed instances currently do not support scale-to-zero, templates,
branching, or checkpointing, and only support block-based volumes (no
virtiofs). Requires a plan with full VM support and cannot be combined
with template, branch_from, or checkpoint.
gpusNumber of GPUs to attach to the instance. Currently restricted to at most
- Requires
typeto befulland a plan with GPU support. A GPU stays assigned to the instance, even while stopped, until the instance is deleted. Cannot be combined withtemplate,branch_from, orcheckpoint.
wait_timeout_msDeprecated: Use timeout_s instead. Timeout in milliseconds to
wait for all new instances to reach running state. Requires
autostart to be set. If timeout_s is not set, this value is
converted by rounding up to the next full second. No wait
performed for a value of 0.
Instances.CreateInstanceRequestAutokill
time_msTime in milliseconds after the instance was stopped before it is deleted. A value of 0 disables time-based autokill.
num_requestsMaximum number of requests/connections the instance serves before it is deleted. A value of 0 disables request-based autokill.
Instances.CreateInstanceRequestDomain
namePublicly accessible domain name.
If this name ends in a period . it must be a valid Full Qualified
Domain Name (FQDN), e.g. example.com.; otherwise it will become a
subdomain of the target metro, e.g. example becomes
example.fra0.unikraft.app.
A reference to an existing certificate which can be used for the specified domain. If unspecified, Unikraft Cloud will automatically generate a new certificate for the domain based on Let's Encrypt and seek to accomplish a DNS-01 challenge.
Instances.CreateInstanceRequestNetworkInterface
nameThe interface name. If omitted, Unikraft Cloud generates one as
tap_nameThe TAP device to attach the interface to. Provide it together with ip.
ipThe interface IP address in CIDR notation. Provide it together with tap_name to bring your own interface.
macThe interface MAC address. Provide it together with tap_name. Must be a unicast address outside the platform's address pool.
autoconfigWhether the guest configures the interface itself. Defaults to true.
Relay configuration for this interface.
Instances.CreateInstanceRequestPlugin
nameThe plugin name. It becomes the <plugin_name> segment in the plugin
endpoint (.../plugins/<plugin_name>/<path>). A plugin name has a
maximum length of 63 characters and contains only letters (a-z,
A-Z), digits (0-9), hyphen (-), and underscore (_).
The plugin's image. The platform loads the image, mounts it at
/uk/plugins/<plugin_name>, and runs its init program when the plugin
starts. Accepts either a plain image reference string
("user/myplugin:latest") or an object carrying additional pull
configuration ({"url": "user/myplugin:latest", "pull_policy": "always"}).
Exactly one of image and rom must be set.
configArbitrary JSON configuration that the platform passes to the plugin's
init program on STDIN. Any JSON value works, including a string, a
number, or an object.
How requests to the plugin endpoint are authenticated. Without it, the
platform API token of a user with access to the instance (userdb) is
required. The platform checks the token and strips it before forwarding
the request to the plugin.
The plugin's image, under its former name. The platform still accepts
it and adds a deprecation warning to the response. Exactly one of
image and rom must be set.
Deprecated: Use image instead.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: image | |
| type = object · requires: rom |
The plugin's image. The platform loads the image, mounts it at
/uk/plugins/<plugin_name>, and runs its init program when the plugin
starts. Accepts either a plain image reference string
("user/myplugin:latest") or an object carrying additional pull
configuration ({"url": "user/myplugin:latest", "pull_policy": "always"}).
Exactly one of image and rom must be set.
nameThe plugin name. It becomes the <plugin_name> segment in the plugin
endpoint (.../plugins/<plugin_name>/<path>). A plugin name has a
maximum length of 63 characters and contains only letters (a-z,
A-Z), digits (0-9), hyphen (-), and underscore (_).
configArbitrary JSON configuration that the platform passes to the plugin's
init program on STDIN. Any JSON value works, including a string, a
number, or an object.
How requests to the plugin endpoint are authenticated. Without it, the
platform API token of a user with access to the instance (userdb) is
required. The platform checks the token and strips it before forwarding
the request to the plugin.
The plugin's image, under its former name. The platform still accepts
it and adds a deprecation warning to the response. Exactly one of
image and rom must be set.
Deprecated: Use image instead.
Instances.CreateInstanceRequestRom
nameThe name of the ROM to use for the instance configuration.
The image of the ROM to use for the instance configuration. Mutually
exclusive with files. Accepts either a plain image reference string
("nginx:latest") or an object carrying additional pull configuration
({"url": "nginx:latest", "pull_policy": "always"}).
atThe path at which the ROM should be automatically mounted inside the instance. When set, the platform mounts the ROM device at the specified path so the guest does not need to mount it manually. When omitted, the ROM is exposed as a raw block device and the guest is responsible for mounting it.
Inline files to use as the ROM content. When specified, the platform
creates an EROFS image from the provided files. Mutually exclusive with
image.
Instances.CreateInstanceRequestServiceGroup
uuidThe UUID of the resource.
nameThe name of the resource.
soft_limithard_limitDecision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: uuid | |
| type = object · requires: name |
uuidThe UUID of the resource.
nameThe name of the resource.
soft_limithard_limitInstances.CreateInstanceRequestTemplate
uuidThe UUID of the resource.
nameThe name of the resource.
prepareWhether the instance needs to run in order to reach template state
Configuration parameters to apply when building the new instance from the source template.
prepare_timeout_sTimeout in seconds for preparing the template before the preparation is
aborted. Only applies when prepare is set. A value of 0 means no
timeout.
Automatic delete-on-idle configuration for the template. Only applies
when prepare is set.
Instances.CreateInstanceRequestVolume
atuuidThe UUID of the resource.
nameThe name of the resource.
size_mbhost_pathreadonlyquota_policyfilesystemtagsuidgidaccess_modeVolumeAccessMode defines the access mode of a volume, which controls sharing behavior and caching strategy.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: size_mb | |
| type = object · requires: host_path |
size_mbuuidThe UUID of the resource.
nameThe name of the resource.
host_pathatreadonlyquota_policyfilesystemtagsuidgidaccess_modeVolumeAccessMode defines the access mode of a volume, which controls sharing behavior and caching strategy.
Instances.CreateInstanceResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.CreateInstanceScaleToZero
policyThe specific policy to use for scaling the instance to zero.
statefulWhether the instance should be stateful when scaled to zero. If set to true, the instance will retain its state (e.g., RAM contents) when scaled to zero. This is useful for instances that need to maintain their state across scale-to-zero operations. If set to false, the instance will lose its state when scaled to zero, and it will be restarted from scratch when scaled back up.
cooldown_time_msThe cooldown time in milliseconds before the instance can be scaled to zero again. This is useful to prevent rapid scaling to zero and back up, which can lead to performance issues or resource exhaustion.
notify_time_msThe notification time in milliseconds before the instance is scaled to zero. This allows the instance to perform any necessary cleanup or state saving before being scaled down.
Instances.CreateTemplateInstancesRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
timeout_sTimeout in seconds to wait for the template instances to be created. A value of -1 means to wait indefinitely until the instance reaches the desired state. No wait performed for a value of 0.
Automatic delete-on-idle configuration for the new template.
Instances.CreateTemplateInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.CreateTemplateInstancesResponseTemplateInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe current state of the instance.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.DeleteCheckpointInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.DeleteCheckpointInstancesResponseCheckpointInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.DeleteInstanceByUUIDRequestBody
timeout_sTimeout in seconds to wait for the instance to be deleted. No wait performed for a value of 0.
dont_retainDelete immediately without retention. If the instance is already being retained, this will force its deletion. Ignored if retention for instances is not configured.
Instances.DeleteInstanceRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
timeout_sTimeout in seconds to wait for the instance to be deleted. No wait performed for a value of 0.
dont_retainDelete immediately without retention. If the instance is already being retained, this will force its deletion. Ignored if retention for instances is not configured.
Instances.DeleteInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.DeleteInstancesResponseInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
previous_stateThe previous state of the instance before it was deleted.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.DeleteTemplateInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.DeleteTemplateInstancesResponseTemplateInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.GetCheckpointHistoryResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.GetCheckpointHistoryResponseInstanceHistory
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
The checkpoint history entries.
Instances.GetCheckpointInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.GetInstanceLogsByUUIDRequestBody
offsetThe byte offset of the log output to receive. A negative sign makes the offset relative to the end of the log.
limitThe amount of bytes to return at most.
Instances.GetInstancesLogsRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
offsetThe byte offset of the log output to receive. A negative sign makes the offset relative to the end of the log.
limitThe amount of bytes to return at most.
Instances.GetInstancesLogsResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.GetInstancesLogsResponseAvailable
startThe first byte offset that can be retrieved.
endThe last byte offset that can be retrieved.
Instances.GetInstancesLogsResponseLoggedInstance
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
outputBase64 encoded log output of the instance.
Description of the log availability.
Description of the range that was returned. Useful for requests with offset relative to end.
stateState of the instance when the logs were retrieved.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.GetInstancesLogsResponseRange
startThe first retrieved byte.
endThe last retrieved byte.
Instances.GetInstancesMetricsResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.GetInstancesMetricsResponseInstanceMetrics
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
rss_bytesResident set size of the VMM in bytes.
The resident set size (RSS) specifies the amount of physical memory that has been touched by the instance and is currently reserved for the instance on the Unikraft Cloud server. The RSS grows until the instance has touched all memory assigned to it via the memory_mb setting and may also exceed this value as supporting services running outside the instance acquire memory. The RSS is different from the current amount of memory allocated by the application, which is likely to fluctuate over the lifetime of the application. The RSS is not a cumulative metric. When the instance is stopped rss goes down to 0.
cpu_time_msConsumed CPU time in milliseconds.
boot_time_usThe boot time of the instance in microseconds. We take a pragmatic approach is to define the boot time. We calculate this as the difference in time between the moment the virtualization toolstack is invoked to respond to a VM boot request and the moment the OS starts executing user code (i.e., the end of the guest OS boot process). This is essentially the time that a user would experience in a deployment, minus the application initialization time, which we leave out since it is independent from the OS.
net_time_usThis is the time it took for the user-level application to start listening on a non-localhost port measured in microseconds. This is the time from when the instance started until it reasonably ready to start responding to network requests. This is useful for measuring the time it takes for the instance to become operationally ready.
rx_bytesTotal amount of bytes received from network.
rx_packetsTotal count of packets received from network.
tx_bytesTotal amount of bytes transmitted over network.
tx_packetsTotal count of packets transmitted over network.
nconnsNumber of currently established inbound connections (non-HTTP).
nreqsNumber of in-flight HTTP requests.
nqueuedNumber of queued inbound connections and HTTP requests.
ntotalTotal number of inbound connections and HTTP requests handled.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.GetInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.GetTemplateInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.ImageSpec
urlThe image URL
credentialsOptional credentials for authenticating to an OCI registry. Only valid for OCI registry URLs; the platform rejects this field for non-OCI schemes.
Optional HTTP headers to send when fetching the image.
pull_policyControls when the image is pulled relative to what is already cached on the node.
Instances.Instance
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
created_atThe time the instance was created.
stateThe state of the instance. This indicates the current state of the instance, such as whether it is running, stopped, or in an error state.
imageThe image used to create the instance. This is a reference to the Unikraft image that was used to create the instance.
memory_mbThe amount of memory in megabytes allocated for the instance. This is the total amount of memory that is available to the instance for its operations.
vcpusThe number of vCPUs allocated for the instance. This is the total number of virtual CPUs that are available to the instance for its operations.
restart_policyThe restart configuration for the instance.
When an instance stops either because the application exits or the instance crashes, Unikraft Cloud can auto-restart your instance. Auto-restarts are performed according to the restart policy configured for a particular instance.
The policy can have the following values:
| Policy | Description |
|---|---|
never | Never restart the instance (default). |
always | Always restart the instance when the stop is initiated from within the instance (i.e., the application exits or the instance crashes). |
on-failure | Only restart the instance if it crashes. |
When an instance stops, the stop reason and the configured restart policy are evaluated to decide if a restart should be performed. Unikraft Cloud uses an exponential back-off delay (immediate, 5s, 10s, 20s, 40s, ..., 5m) to slow down restarts in tight crash loops. If an instance runs without problems for 10s the back-off delay is reset and the restart sequence ends.
The restart.attempt attribute reported in counts the number of restarts
performed in the current sequence. The restart.next_at field indicates
when the next restart will take place if a back-off delay is in effect.
A manual start or stop of the instance aborts the restart sequence and resets the back-off delay.
typeThe type of virtual machine used to run the instance.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
private_fqdnThe internal hostname of the instance. This address can be used privately within the Unikraft Cloud network to access the instance. It is not accessible from the public Internet.
boot_memory_mbThe amount of memory in megabytes the instance boots with. Only present if memory vertical scaling is enabled for the instance.
min_memory_mbThe lower bound of memory vertical scaling in megabytes. Only present if memory vertical scaling is enabled for the instance.
max_memory_mbThe upper bound of memory vertical scaling in megabytes. Only present if memory vertical scaling is enabled for the instance.
boot_vcpusThe number of vCPUs the instance boots with. Only present if vCPU vertical scaling is enabled for the instance.
min_vcpusThe lower bound of vCPU vertical scaling. Only present if vCPU vertical scaling is enabled for the instance.
max_vcpusThe upper bound of vCPU vertical scaling. Only present if vCPU vertical scaling is enabled for the instance.
argsThe arguments passed to the instance when it was started. This is a list of command-line arguments that were provided to the instance at startup. These arguments can be used to configure the behavior of the instance and its applications.
Environment variables set for the instance.
start_countThe total number of times the instance has been started. This is a counter that increments each time the instance is started, regardless of whether it was manually stopped or restarted. This can be useful for tracking the usage of the instance over time and/or for debugging purposes.
Not used for template instances.
restart_countThe total number of times the instance has been restarted. This is a counter that increments each time the instance has been restarted. This can be useful for tracking the usage of the instance over time and/or for debugging purposes. Not used for template instances.
started_atThe time the instance was started. This is the timestamp when the instance was last started. Not used for template instances.
stopped_atThe time the instance was stopped. This is the timestamp when the instance was last stopped. If the instance is currently running, this field will be empty. Not used for template instances.
uptime_msThe total amount of time the instance has been running in milliseconds. Not used for template instances.
retained_untilTime when the instance will be permanently deleted (for deleted instances).
start_prereq_time_usThe time taken for the start prerequisites to be fulfilled, measured in microseconds from when the instance start was requested. Prerequisites are the resources the instance needs before its VM can be launched: the kernel and image being available locally, volumes being mounted, and a template being ready to resume from. Not used for template instances.
vmm_prestart_time_us(Developer-only). The time taken between the start being requested and the moment the VMM (Virtual Machine Monitor) process is spawned, measured in microseconds. This field is primarily used for debugging and performance analysis purposes. Not used for template instances.
vmm_start_time_us(Developer-only). The time taken between the main controller and the beginning of execution of the VMM (Virtual Machine Monitor) measured in microseconds. This field is primarily used for debugging and performance analysis purposes. Not used for template instances.
vmm_load_time_us(Developer-only). The time it took the VMM (Virtual Machine Monitor) to load the instance's kernel and initramfs into VM memory measured in microseconds. This field is primarily used for debugging and performance analysis purposes. Not used for template instances.
vmm_ready_time_us(Developer-only). The time taken for the VMM (Virtual Machine Monitor) to become ready to execute the instance measured in microseconds. This is the time from when the VMM started until it was ready to execute the instance's code. This field is primarily used for debugging and performance analysis purposes. Not used for template instances.
boot_time_usThe boot time of the instance in microseconds. We take a pragmatic approach is to define the boot time. We calculate this as the difference in time between the moment the virtualization toolstack is invoked to respond to a VM boot request and the moment the OS starts executing user code (i.e., the end of the guest OS boot process). This is essentially the time that a user would experience in a deployment, minus the application initialization time, which we leave out since it is independent from the OS. Not used for template instances.
net_time_usThis is the time it took for the user-level application to start listening on a non-localhost port measured in microseconds. This is the time from when the instance started until it reasonably ready to start responding to network requests. This is useful for measuring the time it takes for the instance to become operationally ready. Not used for template instances.
template_time_usThe time taken for the instance to reach the template state, measured in microseconds from when the template was requested. Only used for template instances.
checkpoint_time_usThe time taken for the instance to reach the checkpoint state, measured in microseconds from when the checkpoint was requested. Only used for checkpoint instances.
stop_reasonThe instance stop reason.
Provides reason as to why an instance is stopped or in the process of shutting down. The stop reason is a bitmask that tells you the origin of the shutdown:
| Bit | 4 | 3 | 2 | 1 | 0 (LSB) |
|---|---|---|---|---|---|
| Purpose | [F]orced | [U]ser | [P]latform | [A]pp | [K]ernel |
- Forced: This was a force stop. A forced stop does not give the
instance a chance to perform a clean shutdown. Bits 0
(Kernel) and 1 (App) can thus never be set for forced
shutdowns. Consequently, there won't be an
exit_codeorstop_code. - User: Stop initiated by user, e.g. via an API call.
- Platform: Stop initiated by platform, e.g. an autoscale policy.
- App: The Application exited. The
exit_codefield will be set. - Kernel: The kernel exited. The
stop_codefield will be set.
For example, the stop reason will contain the following values in the given scenarios:
| Value | Bitmask | Aliases | Scenario |
|---|---|---|---|
| 28 | 11100 | FUP-- | Forced user-initiated shutdown. |
| 15 | 01111 | -UPAK | Regular user-initiated shutdown. The application and kernel have exited. The exit_code and stop_code indicate if the application and kernel shut down cleanly. |
| 13 | 01101 | -UP-K | The user initiated a shutdown but the application was forcefully killed by the kernel during shutdown. This can be the case if the image does not support a clean application exit or the application crashed after receiving a termination signal. The exit_code won’t be present in this scenario. |
| 7 | 00111 | --PAK | Unikraft Cloud initiated the shutdown, for example, due to scale-to-zero. The application and kernel have exited. The exit_code and stop_code indicate if the application and kernel shut down cleanly. |
| 3 | 00011 | ---AK | The application exited. The exit_code and stop_code indicate if the application and kernel shut down cleanly. |
| 1 | 00001 | ----K | The instance likely expierenced a fatal crash and the stop_code contains more information about the cause of the crash. |
| 0 | 00000 | ----- | The stop reason is unknown. |
| Not used for template instances. |
exit_codeThe application exit code.
This is the code which the application returns upon leaving its main entry
point. The encoding of the exit code is application specific. See the
documentation of the application for more details. Usually, an exit code
of 0 indicates success / no failure.
Not used for template instances.
stop_codeThe kernel stop code.
This value encodes multiple details about the stop irrespective of the application.
Code
- errno: The application errno, using Linux's errno.h values. (Optional, can be 0.)
- shutdown: Whether the shutdown originated from the inittable (0) or from the termtable (1).
- initlevel: The initlevel at the time of the stop.
- reason: The reason for the stop. See
StopCodeReason.
The scale-to-zero configuration for the instance.
With conventional cloud platforms you need to keep at least one instance running at all times to be able to respond to incoming requests. Performing a just-in-time cold boot is simply too time-consuming and would create a response latency of multiple seconds. This is not the case with Unikraft Cloud. Instances on Unikraft Cloud are able to cold boot within milliseconds, which allows us to perform low-latency scale-to-zero.
To enable scale-to-zero for an instance it is sufficient to add a
scale_to_zero configuration block. Unikraft Cloud will then put the
instance into standby if there is no traffic to your service within the
window of a cooldown period. When there is new traffic coming in, it is
automatically started again.
If you have a heavyweight application that takes long to cold boot or has bad first request latency (e.g., with JIT compilation) consider to enable stateful scale-to-zero.
The service group configuration for the instance.
servicesServices exposed by this instance (format: "protocol:port").
The list of volumes attached to the instance.
The network interfaces of the instance. Not used for template instances.
tagsThe tags associated with the instance.
The annotations associated with the instance.
Keys follow the Kubernetes annotation key syntax, [<prefix>/]<name>: the
optional prefix is a non-wildcard DNS subdomain of at most 253 characters,
and the name is at most 63 characters of [-_.a-zA-Z0-9] starting and
ending with an alphanumeric. Values are unconstrained apart from ASCII
control characters, which are rejected because they would corrupt the
console log output annotations can be forwarded to.
An instance holds at most 256 annotations.
The snapshot of the instance, if exists.
delete_lockIf set to true, the instance cannot be deleted until the lock is removed.
featuresThe current restart attempt for the instance. Not used for template instances.
Read-Only Memory (ROM) blobs to attach to the instance. Unikraft Cloud supports the ability to attach Read-Only Memory (ROM) blobs to instances. It allows you to create a general-purpose base image and then customize individual instances by attaching code or data as separate ROM blobs.
Plugins attached to the instance. Plugins let you attach small helper
programs to an instance and reach each one over a direct, authenticated
HTTP endpoint. Each plugin loads from its own ROM image, mounts at
/uk/plugins/<plugin_name>, and is reachable at
.../v1/instances/<uuid>/plugins/<plugin_name>/<path>. At most 8
plugins may be attached to an instance.
Scheduled operations for this instance.
Each schedule defines a calendar expression and an action (start,
stop, delete, or exec) to perform at matching times. When the
action is exec, the args field of the schedule specifies the command
to run inside the instance.
Automatic delete-on-idle/request-limit configuration. Not used for template instances.
Queued property changes awaiting application.
sched_priorityThe scheduling priority for the instance. Only present for users with scheduling priority override permissions.
Template-specific automatic delete-on-idle configuration. Not used for non-template instances.
Checkpoint-specific automatic delete-on-idle configuration. Only used for checkpoint instances.
private_ipThe private IP address of the instance.
gatewayThe default gateway configured inside the guest.
nameserverThe DNS resolver configured inside the guest.
The source this instance was cloned from, while the source exists.
GPUs attached to the instance. Only present for instances of type
full.
Instances.InstanceAutokill
time_msTime in milliseconds after the instance was stopped before it is deleted. A value of 0 disables time-based autokill.
num_requestsMaximum number of requests/connections the instance serves before it is deleted. A value of 0 disables request-based autokill.
Instances.InstanceCloneSource
uuidThe UUID of the source.
nameThe name of the source.
nodeThe name of the node the source is placed on.
Instances.InstanceFeature
Features are specific configurations or capabilities that can be enabled for the instance.
The list of available features to enable for the instance:
| Feature | Description |
|---|---|
delete-on-stop | The instance will be deleted when it is stopped. This is useful for instances that are not needed after they are stopped, such as temporary or ephemeral instances. Cannot be combined with a restart_policy other than never. |
nested-virt | Expose virtualization extensions to the guest, so that it can run virtual machines of its own. Requires the nested_virt permission. |
Instances.InstanceGpu
uuidThe UUID of the GPU.
modelThe GPU model, given as its PCI vendor and device ID in the form
<vendor>:<device>.
Instances.InstanceNetworkInterface
uuidprivate_ipThe private IP address of the network interface. This is the internal IP address that is used for communication between instances within the same network.
macThe MAC address of the network interface.
nodeThe name of the node the network interface is placed on.
nameThe interface name. If omitted, Unikraft Cloud generates one as
tap_nameThe TAP device to attach the interface. Provide it together with ip.
autoconfigWhether the interface is automatically configured inside the guest (IP address, routes, etc.). When absent or true, autoconfiguration is enabled. Present and false when the guest is expected to configure the interface manually.
Relay configuration for this interface.
Instances.InstanceNetworkInterfaceRelay
uuidUUID of the relay interface.
nameName of the relay interface.
relay_dnsWhether DNS traffic is relayed through this interface. Defaults to true.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.InstancePendingUpdate
propThe property being updated.
opThe patch operation type.
valueThe new value for the property. Type depends on the property being updated.
statusThe status of this update.
errorError message. Only present when status is "failed".
Instances.InstancePlugin
nameThe plugin name. It becomes the <plugin_name> segment in the plugin
endpoint (.../plugins/<plugin_name>/<path>). A plugin name has a
maximum length of 63 characters and contains only letters (a-z,
A-Z), digits (0-9), hyphen (-), and underscore (_).
imageThe plugin's image, given as an image reference string such as
user/myplugin:latest. The platform loads the image, mounts it at
/uk/plugins/<plugin_name>, and runs its init program when the
plugin starts.
configArbitrary JSON configuration that the platform passes to the plugin's
init program on STDIN. Any JSON value works, including a string, a
number, or an object.
api_portThe port on the instance's address on which the plugin's API listens. The platform picks it when the plugin is applied, so it lets a caller that can reach the instance directly talk to the plugin without going through the platform API.
The plugin's authorization method. Only present when it is not the
default (userdb).
Instances.InstancePluginAuthorization
typeThe authorization method.
Instances.InstanceRestartAttempt
attemptCurrent restart attempt number. This is incremented each time the instance is restarted automatically by the platform.
next_atTimestamp of the next scheduled restart attempt.
Instances.InstanceRestartPolicy
The restart policy of an instance.
When an instance stops either because the application exits or the instance crashes, Unikraft Cloud can auto-restart your instance. Auto-restarts are performed according to the restart policy configured for a particular instance. The policy can have the following values:
| Policy | Description |
|---|---|
never | Never restart the instance (default). |
always | Always restart the instance when the stop is initiated from within the instance (i.e., the application exits or the instance crashes). |
on-failure | Only restart the instance if it crashes. |
When an instance stops, the stop reason and the configured restart policy
are evaluated to decide if a restart should be performed. Unikraft Cloud
uses an exponential back-off delay (immediate, 5s, 10s, 20s, 40s, ..., 5m)
to slow down restarts in tight crash loops. If an instance runs without
problems for 10s the back-off delay is reset and the restart sequence ends.
The restart.attempt attribute reported in counts the number of restarts
performed in the current sequence. The restart.next_at field indicates
when the next restart will take place if a back-off delay is in effect. A
manual start or stop of the instance aborts the restart sequence and resets
the back-off delay.
Instances.InstanceRom
nameThe name of the ROM to use for the instance configuration.
imageThe image of the ROM to use for the instance configuration. Mutually
exclusive with files.
atThe path at which the ROM should be automatically mounted inside the instance. When set, the platform mounts the ROM device at the specified path so the guest does not need to mount it manually. When omitted, the ROM is exposed as a raw block device and the guest is responsible for mounting it.
Inline files to use as the ROM content. When specified, the platform
creates an EROFS image from the provided files. Mutually exclusive with
image.
Instances.InstanceScaleToZero
enabledIndicates whether scale-to-zero is enabled for the instance.
policyThe specific policy to use for scaling the instance to zero.
statefulWhether the instance should be stateful when scaled to zero. If set to true, the instance will retain its state (e.g., RAM contents) when scaled to zero. This is useful for instances that need to maintain their state across scale-to-zero operations. If set to false, the instance will lose its state when scaled to zero, and it will be restarted from scratch when scaled back up.
cooldown_time_msThe cooldown time in milliseconds before the instance can be scaled to zero again. This is useful to prevent rapid scaling to zero and back up, which can lead to performance issues or resource exhaustion.
notify_time_msThe notification time in milliseconds before the instance is scaled to zero. This allows the instance to perform any necessary cleanup or state saving before being scaled down.
Instances.InstanceScaleToZeroPolicy
Scale-to-zero policy types to use when creating an instance.
The policy can be one of the following values:
| Policy | Description |
|---|---|
on | The instance should be scaled-to-zero (when possible). |
off | The instance should never be scaled-to-zero. |
idle | The instance should be scaled-to-zero even with established but idle TCP connections. |
Instances.InstanceServiceGroup
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
The domain configuration for the service group.
Instances.InstanceState
The current state of an instance.
Instances.InstanceTemplateAutokill
time_msTime in milliseconds after the template was last used for cloning before it is deleted. A value of 0 disables template autokill.
Instances.InstanceType
The type of virtual machine used to run an instance.
| Type | Description |
|---|---|
micro | A lightweight microVM (default). Boots in milliseconds and is suitable for most workloads. |
full | A full virtual machine with broader hardware support, such as GPU passthrough. Requires a plan with full VM support. |
Instances.InstanceVolume
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
atThe mount point of the volume in the instance. This is the directory in the instance where the volume will be mounted.
readonlyWhether the volume is read-only or not.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.ItemAutokill
time_msTime in milliseconds after the template was last used for cloning before it is deleted. A value of 0 disables template autokill.
Instances.MutableCheckpointInstanceOperation
The operations available on a checkpoint instance's properties.
Instances.MutableCheckpointInstanceProperty
The mutable properties of a checkpoint instance that can be updated.
Instances.MutableInstanceProperty
The mutable properties of an instance that can be updated.
Instances.MutableTemplateInstanceOperation
Mutable template instance operations.
Instances.MutableTemplateInstanceProperty
The mutable properties of a template instance that can be updated.
Setting image, roms, or plugins updates the template in place.
Instances.NetworkInterfaceRelay
relay_dnsWhether the relay forwards DNS requests. Set to false to let the default DNS server handle them instead. Defaults to true.
uuidThe UUID of the resource.
nameThe name of the resource.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: uuid | |
| type = object · requires: name |
uuidThe UUID of the resource.
relay_dnsWhether the relay forwards DNS requests. Set to false to let the default DNS server handle them instead. Defaults to true.
nameThe name of the resource.
Instances.PluginAuthorization
typeThe authorization method.
tokenThe token that requests must present as Authorization: Bearer <token>.
Required for, and only allowed with, the bearer type.
Decision Table
| Variant | Matching Criteria |
|---|---|
| requires: token | |
| No specific criteria |
typeInstances.PluginAuthorizationType
How requests to a plugin endpoint are authenticated.
Instances.PullPolicy
PullPolicy defines when an image should be pulled.
Instances.Schedule
nameThe name of the schedule.
Must be unique within an instance.
whenThe calendar expression specifying when the action should be performed.
Uses systemd calendar event syntax. See https://www.man7.org/linux/man-pages/man7/systemd.time.7.html
actionThe action to perform at the scheduled time.
next_atThe timestamp of when the next scheduled action will occur.
This field is populated only in responses (not settable in requests). Omitted if no next execution is scheduled.
argsThe command to execute when the action is exec.
Required when action is SCHEDULE_ACTION_EXEC, ignored otherwise.
Each element is a separate argument; the first element is the executable.
Instances.ScheduleAction
The action to perform on a scheduled operation.
Instances.ServiceGroupInstanceDomain
fqdnPublicly accessible domain name.
If this name ends in a period . it must be a valid Full Qualified
Domain Name (FQDN), otherwise it will become a subdomain of the target
metro.
The certificate associated with the domain.
The certificate is used to secure the domain with TLS/SSL. If no certificate is specified, Unikraft Cloud will automatically generate a new certificate for the domain based on Let's Encrypt and seek to accomplish a DNS-01 challenge.
Instances.StartInstanceByUUIDRequestBody
timeout_sTimeout in seconds to wait for the instance to reach running state. If you start your instance, you can wait for it to finish starting with a blocking API call if you specify a wait timeout greater than zero. No wait performed for a value of 0.
wait_timeout_msDeprecated: Use timeout_s instead. Timeout in milliseconds to
wait for the instance to reach running state. If timeout_s is
not set, this value is converted by rounding up to the next full
second. No wait performed for a value of 0.
Instances.StartInstancesRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
timeout_sTimeout in seconds to wait for the instance to reach running state. If you start your instance, you can wait for it to finish starting with a blocking API call if you specify a wait timeout greater than zero. No wait performed for a value of 0.
wait_timeout_msDeprecated: Use timeout_s instead. Timeout in milliseconds to
wait for the instance to reach running state. If timeout_s is
not set, this value is converted by rounding up to the next full
second. No wait performed for a value of 0.
Instances.StartInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.StartInstancesResponseStartedInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe current state of the instance after this request.
previous_stateThe previous state of the instance before it was started.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.StopInstanceByUUIDRequestBody
forceWhether to immediately force stop the instance.
drain_timeout_msTimeout for draining connections in milliseconds. No draining will occur if set to 0. The instance does not receive new connections in the draining phase. The instance is stopped when the last connection has been closed or the timeout expired. The maximum timeout may vary. Use -1 for the largest possible value. Ignored if force is set.
Note: This endpoint does not block. Use the wait endpoint for the instance to reach the stopped state.
quickWhether to perform a quick shutdown. This flag is overridden by force.
ifstateOnly stop the instance if it is in this state.
dumpIf set, forces the VMM to shutdown immediately and generate a coredump. Can only be used in conjunction with force.
Instances.StopInstancesRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
forceWhether to immediately force stop the instance.
drain_timeout_msTimeout for draining connections in milliseconds. No draining will occur if set to 0. The instance does not receive new connections in the draining phase. The instance is stopped when the last connection has been closed or the timeout expired. The maximum timeout may vary. Use -1 for the largest possible value. Ignored if force is set.
Note: This endpoint does not block. Use the wait endpoint for the instance to reach the stopped state.
quickWhether to perform a quick shutdown. This flag is overridden by force.
ifstateOnly stop the instance if it is in this state.
dumpIf set, forces the VMM to shutdown immediately and generate a coredump. Can only be used in conjunction with force.
Instances.StopInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.StopInstancesResponseStoppedInstance
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe current state of the instance.
previous_stateThe previous state of the instance before the stop operation was invoked.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.SuspendInstanceByUUIDRequestBody
drain_timeout_msTimeout for draining connections in milliseconds. No draining will occur if set to 0. Use -1 for the largest possible value.
Instances.SuspendInstancesRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
drain_timeout_msTimeout for draining connections in milliseconds. No draining will occur if set to 0. Use -1 for the largest possible value.
Instances.SuspendInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.SuspendInstancesResponseSuspendedInstance
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe current state of the instance.
previous_stateThe previous state of the instance before the suspend operation was invoked.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Instances.TemplateAutokill
time_msTime in milliseconds after the template was last used for cloning before it is deleted. A value of 0 disables template autokill.
Instances.UpdateCheckpointInstanceByUUIDRequestBody
propThe property to modify.
opThe operation to perform on the property.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "tags": array of strings
- For "delete_lock": boolean
- For "autokill": object with time_ms field
Instances.UpdateCheckpointInstancesRequestItem
propThe property to modify.
opThe operation to perform on the property.
uuidThe UUID of the resource.
nameThe name of the resource.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "tags": array of strings
- For "delete_lock": boolean
- For "autokill": object with time_ms field
Instances.UpdateCheckpointInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.UpdateCheckpointInstancesResponseCheckpointInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
idThe client-provided ID from the request.
Instances.UpdateInstanceByUUIDRequestBody
propThe property to modify.
opThe operation to perform on the property.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "image": image reference string, or object with image url, credentials, headers and pull policy
- For "args": string or array of strings
- For "env": object (for SET/ADD) or string/array of strings (for DEL)
- For "memory_mb": integer
- For "vcpus": integer
- For "scale_to_zero": object with cooldown_time_ms, policy, and stateful fields
- For "tags": array of strings
- For "delete_lock": boolean
- For "schedules": array of schedule objects (with name, when, action, and optional args fields) for SET/ADD, or array of schedule names for DEL. Use action "exec" together with args to execute a command at the scheduled time.
- For "autokill": object with time_ms and num_requests fields
- For "hostname": string (valid DNS label)
- For "roms": array of ROM objects (with name and image fields) for SET/ADD, or array of ROM names for DEL
- For "plugins": array of plugin objects (with name, image, and optional config and
authorization fields) for SET/ADD. The deprecated
romfield is accepted in place ofimage. - For "dependencies": array of instance identifiers (name or UUID)
- For "sched_priority": SchedPriority enum value ("normal", "medium", "high", "admin")
- For "annotations": object (for SET/ADD) or string/array of strings (for DEL)
Instances.UpdateInstancesRequestItem
propThe property to modify.
opThe operation to perform on the property.
uuidThe UUID of the resource.
nameThe name of the resource.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "image": image reference string, or object with image url, credentials, headers and pull policy
- For "args": string or array of strings
- For "env": object (for SET/ADD) or string/array of strings (for DEL)
- For "memory_mb": integer
- For "vcpus": integer
- For "scale_to_zero": object with cooldown_time_ms, policy, and stateful fields
- For "tags": array of strings
- For "delete_lock": boolean
- For "schedules": array of schedule objects (with name, when, action, and optional args fields) for SET/ADD, or array of schedule names for DEL. Use action "exec" together with args to execute a command at the scheduled time.
- For "autokill": object with time_ms and num_requests fields
- For "hostname": string (valid DNS label)
- For "roms": array of ROM objects (with name and image fields) for SET/ADD, or array of ROM names for DEL
- For "plugins": array of plugin objects (with name, image, and optional config and
authorization fields) for SET/ADD. The deprecated
romfield is accepted in place ofimage. - For "dependencies": array of instance identifiers (name or UUID)
- For "sched_priority": SchedPriority enum value ("normal", "medium", "high", "admin")
- For "annotations": object (for SET/ADD) or string/array of strings (for DEL)
Instances.UpdateInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.UpdateInstancesResponseUpdatedInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
idThe client-provided ID from the request.
Instances.UpdateTemplateInstanceByUUIDRequestBody
propThe property to modify.
opThe operation to perform.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "tags": array of strings
- For "delete_lock": boolean
- For "autokill": object with time_ms field
- For "image": image reference string or object (SET only)
- For "roms": array of ROM objects (SET only)
- For "plugins": array of plugin objects (SET only)
Instances.UpdateTemplateInstancesRequestItem
propThe property to modify.
opThe operation to perform.
uuidThe UUID of the resource.
nameThe name of the resource.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "tags": array of strings
- For "delete_lock": boolean
- For "autokill": object with time_ms field
- For "image": image reference string or object (SET only)
- For "roms": array of ROM objects (SET only)
- For "plugins": array of plugin objects (SET only)
Instances.UpdateTemplateInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.UpdateTemplateInstancesResponseTemplateInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
idClient-provided operation ID.
Instances.WaitInstanceByUUIDRequestBody
stateThe desired state to wait for. Default is running.
timeout_sTimeout in seconds to wait for the instance to reach the desired state. If the timeout is reached, the request will fail with an error. A value of -1 means to wait indefinitely until the instance reaches the desired state. No wait performed for a value of 0.
timeout_msDeprecated: Use timeout_s instead. Timeout in milliseconds to
wait for the instance to reach the desired state. If timeout_s is
not set, this value is converted by rounding up to the next full
second. A value of -1 means to wait indefinitely.
Instances.WaitInstancesRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
stateThe desired state to wait for. Default is running.
timeout_sTimeout in seconds to wait for the instance to reach the desired state. If the timeout is reached, the request will fail with an error. A value of -1 means to wait indefinitely until the instance reaches the desired state. No wait performed for a value of 0.
timeout_msDeprecated: Use timeout_s instead. Timeout in milliseconds to
wait for the instance to reach the desired state. If timeout_s is
not set, this value is converted by rounding up to the next full
second. A value of -1 means to wait indefinitely.
Instances.WaitInstancesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Instances.WaitInstancesResponseWaitedInstance
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe current state of the instance.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Node.DataLicense
serialThe serial number of the license certificate, hex-encoded.
validWhether the license is currently valid.
featuresList of enabled features.
Node.HealthState
The health state reported by a single health checker.
Node.HealthzResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Node.HealthzResponseData
The health state of each registered checker, keyed by checker name. Valid keys are "images", "systemd", and "user-defined"; a checker's key is only present if it is enabled. Checkers report only their aggregate state; per-check detail (e.g. which default image is missing, or which user-defined script failed) is not exposed here.
License information (admin only).
Services.ConnectionHandler
Connection handlers to use for the service.
Handlers define how the service will handle incoming connections and forward traffic from the Internet to your application. For example, a service can be configured to terminate TLS connections, redirect HTTP traffic, or enable HTTP mode for load balancing. You configure the handlers for every published service port individually.
There are currently 3 supported handlers:
| Handler | Description |
|---|---|
tls | Terminate the TLS connection at the Unikraft Cloud gateway using our wildcard certificate issued for the kraft.cloud domain. The gateway forwards the unencrypted traffic to your application. |
http | Enable HTTP mode on the load balancer to load balance on the level of individual HTTP requests. In this mode, only HTTP connections are accepted. If this option is not set the load balancer works in TCP mode and distributes TCP connections. |
redirect | Redirect traffic from the source port to the destination port. |
Note that there is a set of constraints when publishing ports:
- Port 80: MUST have "http" and MUST not have "tls" set;
- Port 443: MUST have http and tls set;
- The
redirecthandler can only be set on port 80 (HTTP) to redirect to port 443 (HTTPS); - All other ports MUST have tls and MUST not have http set.
Services.CreateServiceGroupRequest
Services to expose. At least one service is required.
nameThe name of the resource. If not provided, a random name is generated. The name must be unique within the context of your account.
nodeThe name of the node to place the resource on. If not provided, the platform picks one. Only accepted on metros that span multiple nodes.
Description of domains associated with the service group.
soft_limitThe soft limit is used by the Unikraft Cloud load balancer to decide when to wake up another standby instance.
For example, if the soft limit is set to 5 and the service consists of 2 standby instances, one of the instances receives up to 5 concurrent requests. The 6th parallel requests wakes up the second instance. If there are no more standby instances to wake up, the number of requests assigned to each instance will exceed the soft limit. The load balancer makes sure that when the number of in-flight requests goes down again, instances are put into standby as fast as possible.
hard_limitThe hard limit defines the maximum number of concurrent requests that an instance assigned to the this service can handle.
The load balancer will never assign more requests to a single instance. In case there are no other instances available, excess requests fail (i.e., they are blocked and not queued).
Automatic delete-on-idle configuration.
Services.CreateServiceGroupRequestAutokill
time_msTime in milliseconds after the service group becomes empty before it is deleted. A value of 0 disables autokill.
Services.CreateServiceGroupRequestDomain
namePublicly accessible domain name. If this name ends in a period . it must
be a valid Full Qualified Domain Name (FQDN), otherwise it will become a
subdomain of the target metro.
Use an existing certificate for the domain. If this field is specified, the domain must be associated with a valid certificate.
Services.CreateServiceGroupResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Services.DeleteServiceGroupsResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Services.DeleteServiceGroupsResponseDeletedServiceGroup
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
statusThe status of the response.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
messageAn optional message providing additional information about the status.
errorAn optional error code providing additional information about the status.
Services.Domain
fqdnPublicly accessible domain name. If this name ends in a period . it must
be a valid Full Qualified Domain Name (FQDN), otherwise it will become a
subdomain of the target metro.
Use an existing certificate for the domain. If this field is specified, the domain must be associated with a valid certificate.
Services.GetServiceGroupsResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Services.MutableServiceGroupOperation
The mutable operations available on a service group's properties.
Services.MutableServiceGroupProperty
Mutable service group properties.
Services.Service
portThis is the public-facing port that the service will be accessible from on the Internet.
destination_portThe port number that the instance is listening on. This is the internal port which Unikraft Cloud will forward traffic to.
protocolProtocol for a service.
iphandlersConnection handlers to use for the service. Handlers define how the service will handle incoming connections and forward traffic from the Internet to your application. For example, a service can be configured to terminate TLS connections, redirect HTTP traffic, or enable HTTP mode for load balancing. You configure the handlers for every published service port individually.
Services.ServiceGroup
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
created_atThe time the service was created.
persistentIndicates if the service will stay remain even after the last instance detached. If this is set to false, the service will be deleted when the last instance detached from it. If this is set to true, the service will remain and can be reused by other instances. This is useful if you want to keep the service configuration, e.g., the published ports, handlers, and domains, even if there are no instances assigned to it.
autoscaleIndicates if the service has autoscale enabled. See the associated autoscale documentation for more information about how to set this up. Autoscale policies can be set up after the service has been created.
soft_limitThe soft limit is used by the Unikraft Cloud load balancer to decide when to wake up another standby instance. For example, if the soft limit is set to 5 and the service consists of 2 standby instances, one of the instances receives up to 5 concurrent requests. The 6th parallel requests wakes up the second instance. If there are no more standby instances to wake up, the number of requests assigned to each instance will exceed the soft limit. The load balancer makes sure that when the number of in-flight requests goes down again, instances are put into standby as fast as possible.
hard_limitThe hard limit defines the maximum number of concurrent requests that an instance assigned to the this service can handle. The load balancer will never assign more requests to a single instance. In case there are no other instances available, excess requests fail (i.e., they are blocked and not queued).
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
List of published network ports for this service and the destination port to which Unikraft Cloud will forward traffic to. Additional handlers can be defined for each published port in order to define how the service will handle incoming connections and forward traffic from the Internet to your application. For example, a service can be configured to terminate TLS connections, redirect HTTP traffic, or enable HTTP mode for load balancing.
List of domains associated with the service. Domains are used to access the service over the Internet.
List of instances assigned to the service.
Automatic delete-on-idle configuration.
Services.ServiceGroupAutokill
time_msTime in milliseconds after the service group becomes empty before it is deleted. A value of 0 disables autokill.
Services.ServiceGroupInstance
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Services.UpdateServiceGroupByUUIDRequestBody
propThe property to modify.
opThe operation to perform.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "image": string
- For "args": string or array of strings
- For "env": object (for SET/ADD) or string/array of strings (for DEL)
- For "memory_mb": integer
- For "vcpus": integer
- For "scale_to_zero": object with cooldown_time_ms, policy, and stateful fields
- For "tags": array of strings
- For "delete_lock": boolean
- For "schedules": array of schedule objects (with name, when, action, and optional args fields). Use action "exec" together with args to execute a command at the scheduled time.
- For "autokill": object with time_ms and num_requests fields
- For "hostname": string (valid DNS label)
- For "roms": array of ROM objects (with name and image fields) for SET/ADD, or array of ROM names for DEL
- For "dependencies": array of instance identifiers (name or UUID)
- For "sched_priority": SchedPriority enum value ("normal", "medium", "high", "admin")
Services.UpdateServiceGroupsRequestItem
propThe property to modify.
opThe operation to perform.
uuidThe UUID of the resource.
nameThe name of the resource.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "image": string
- For "args": string or array of strings
- For "env": object (for SET/ADD) or string/array of strings (for DEL)
- For "memory_mb": integer
- For "vcpus": integer
- For "scale_to_zero": object with cooldown_time_ms, policy, and stateful fields
- For "tags": array of strings
- For "delete_lock": boolean
- For "schedules": array of schedule objects (with name, when, action, and optional args fields). Use action "exec" together with args to execute a command at the scheduled time.
- For "autokill": object with time_ms and num_requests fields
- For "hostname": string (valid DNS label)
- For "roms": array of ROM objects (with name and image fields) for SET/ADD, or array of ROM names for DEL
- For "dependencies": array of instance identifiers (name or UUID)
- For "sched_priority": SchedPriority enum value ("normal", "medium", "high", "admin")
Services.UpdateServiceGroupsResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Services.UpdateServiceGroupsResponseUpdatedServiceGroup
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
statusThe status of the response.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
idThe client-provided ID from the request.
messageAn optional message providing additional information about the status.
errorAn optional error code providing additional information about the status.
Users.Quotas
uuidThe UUID of the quota.
Used quota.
Configured quota limits.
Additional limits.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
Users.QuotasLimits
min_memory_mbMinimum amount of memory assigned to live instances in megabytes
max_memory_mbMaximum amount of memory assigned to live instances in megabytes
min_volume_mbMinimum size of a volume in megabytes
max_volume_mbMaximum size of a volume in megabytes
min_autoscale_sizeMinimum size of an autoscale group
max_autoscale_sizeMaximum size of an autoscale group
min_vcpusMinimum number of vCPUs
max_vcpusMaximum number of vCPUs
Users.QuotasResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Users.QuotasStats
instancesNumber of instances.
live_instancesNumber of instances that are not in the stopped state.
live_vcpusNumber of vCPUs.
live_memory_mbAmount of memory assigned to instances that are not in the stopped state
in megabytes.
service_groupsNumber of service groups.
servicesNumber of published network ports over all existing services.
volumesNumber of volumes.
total_volume_mbTotal size of all volumes in megabytes.
Users.ResumeUsersRequestItem
uuidThe UUID of the user.
Users.ResumeUsersResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Users.ResumeUsersResponseResumedInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe current state of the instance.
previous_stateThe previous state of the instance before the resume operation was invoked.
on_resumeWhat the resume operation did with this instance.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Users.ResumeUsersResponseResumedUser
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
suspendedWhether the user account is still suspended after this request, for example because it was suspended again concurrently.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
The instances of the user that were restored, as recorded when the user was suspended. Instances that had nothing to restore are not listed. An instance that failed to start keeps its record, so a later resume tries again.
Users.SuspendUserByUUIDRequestBody
suspend_instancesWhether to also bring all instances of the user to rest. Autostart is disabled, running instances are suspended (or stopped if they cannot be suspended, or if they only return to standby and are not stateful), and pending restarts are cancelled. Instances that are draining, stopping, or in a start-stop cycle finish that transition first. Booting instances are brought to rest once they are running. Without this flag only the account is suspended and its instances are left as they are.
Users.SuspendUsersRequestItem
uuidThe UUID of the user.
suspend_instancesWhether to also bring all instances of the user to rest. Autostart is disabled, running instances are suspended (or stopped if they cannot be suspended, or if they only return to standby and are not stateful), and pending restarts are cancelled. Instances that are draining, stopping, or in a start-stop cycle finish that transition first. Booting instances are brought to rest once they are running. Without this flag only the account is suspended and its instances are left as they are.
Users.SuspendUsersResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Users.SuspendUsersResponseSuspendedInstance
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe current state of the instance.
previous_stateThe previous state of the instance before the suspend operation was invoked.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
on_resumeWhat resuming the user will do with this instance. Absent if the instance was already at rest and resuming the user leaves it unchanged.
Users.SuspendUsersResponseSuspendedUser
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
suspendedWhether the user account is suspended after this request.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
The instances of the user that were brought to rest. Only present if
suspend_instances was set in the request.
Users.UserResumeAction
What resuming a user does with an instance that the suspension of the user brought to rest.
| Action | Description |
|---|---|
standby | Autostart is enabled again. The instance is in standby and starts on the next incoming request. |
start | The instance is started. |
Volumes.AttachVolumeByUUIDRequestBody
UUID or name of the instance to attach the volume to.
atPath of the mountpoint.
The path must be absolute, not contain . and .. components, and not
contain colons (:). The path must point to an empty directory. If the
directory does not exist, it is created.
readonlyWhether the volume should be mounted read-only.
Volumes.AttachVolumesRequestItem
UUID or name of the instance to attach the volume to.
atPath of the mountpoint.
The path must be absolute, not contain . and .. components, and not
contain colons (:). The path must point to an empty directory. If the
directory does not exist, it is created.
uuidThe UUID of the resource.
nameThe name of the resource.
readonlyWhether the volume should be mounted read-only.
Volumes.AttachVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.AttachVolumesResponseAttachedVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Volumes.CloneVolumeByUUIDRequestBody
vol_nameThe name of the new cloned volume. If not provided, a random name
of the form vol-X is generated for you, where X is a 5 character
long random alphanumeric suffix.
quota_policyThe quota policy for the new cloned volume. If not provided, the quota policy of the source volume is used.
tagsA list of tags to assign to the new cloned volume.
access_modeVolumeAccessMode defines the access mode of a volume, which controls sharing behavior and caching strategy.
Volumes.CloneVolumesRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
vol_nameThe name of the new cloned volume. If not provided, a random name
of the form vol-X is generated for you, where X is a 5 character
long random alphanumeric suffix.
quota_policyThe quota policy for the new cloned volume. If not provided, the quota policy of the source volume is used.
tagsA list of tags to assign to the new cloned volume.
access_modeVolumeAccessMode defines the access mode of a volume, which controls sharing behavior and caching strategy.
Volumes.CloneVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.CloneVolumesResponseVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe state of the volume.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Volumes.CreateTemplateVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.CreateTemplateVolumesResponseTemplateVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe state of the volume.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Volumes.CreateVolumeRequest
nameThe name of the resource. If not provided, a random name is generated. The name must be unique within the context of your account.
nodeThe name of the node to place the resource on. If not provided, the platform picks one. Only accepted on metros that span multiple nodes.
size_mbhost_pathAn identifier for a resource — either a name or a UUID, but not both.
quota_policyQuota policy for a volume.
filesystemtagsuidgidaccess_modeVolumeAccessMode defines the access mode of a volume, which controls sharing behavior and caching strategy.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: size_mb | |
| type = object · requires: host_path | |
| type = object · requires: template |
size_mbnameThe name of the resource. If not provided, a random name is generated. The name must be unique within the context of your account.
nodeThe name of the node to place the resource on. If not provided, the platform picks one. Only accepted on metros that span multiple nodes.
host_pathAn identifier for a resource — either a name or a UUID, but not both.
quota_policyQuota policy for a volume.
filesystemtagsuidgidaccess_modeVolumeAccessMode defines the access mode of a volume, which controls sharing behavior and caching strategy.
Volumes.CreateVolumeResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.CreateVolumeResponseVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
stateThe state of the volume.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Volumes.DeleteTemplateVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.DeleteTemplateVolumesResponseTemplateVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Volumes.DeleteVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.DeleteVolumesResponseDeletedVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Volumes.DetachVolumeByUUIDRequestBody
UUID or name of the instance to detach the volume from. If not specified, the volume is detached from all instances.
Volumes.DetachVolumesRequestItem
uuidThe UUID of the resource.
nameThe name of the resource.
UUID or name of the instance to detach the volume from. If not specified, the volume is detached from all instances.
Volumes.DetachVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.DetachVolumesResponseDetachedVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
Volumes.GetTemplateVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.GetVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.MutableTemplateVolumeOperation
Mutable template volume operations.
Volumes.MutableTemplateVolumeProperty
Mutable template volume properties.
Volumes.MutableVolumeProperty
Mutable volume properties.
Volumes.UpdateTemplateVolumeByUUIDRequestBody
propThe property to modify.
opThe operation to perform.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "image": string
- For "args": string or array of strings
- For "env": object (for SET/ADD) or string/array of strings (for DEL)
- For "memory_mb": integer
- For "vcpus": integer
- For "scale_to_zero": object with cooldown_time_ms, policy, and stateful fields
- For "tags": array of strings
- For "delete_lock": boolean
- For "schedules": array of schedule objects (with name, when, action, and optional args fields). Use action "exec" together with args to execute a command at the scheduled time.
- For "autokill": object with time_ms and num_requests fields
- For "hostname": string (valid DNS label)
- For "roms": array of ROM objects (with name and image fields) for SET/ADD, or array of ROM names for DEL
- For "dependencies": array of instance identifiers (name or UUID)
- For "sched_priority": SchedPriority enum value ("normal", "medium", "high", "admin")
Volumes.UpdateTemplateVolumesRequestItem
propThe property to modify.
opThe operation to perform.
uuidThe UUID of the resource.
nameThe name of the resource.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "image": string
- For "args": string or array of strings
- For "env": object (for SET/ADD) or string/array of strings (for DEL)
- For "memory_mb": integer
- For "vcpus": integer
- For "scale_to_zero": object with cooldown_time_ms, policy, and stateful fields
- For "tags": array of strings
- For "delete_lock": boolean
- For "schedules": array of schedule objects (with name, when, action, and optional args fields). Use action "exec" together with args to execute a command at the scheduled time.
- For "autokill": object with time_ms and num_requests fields
- For "hostname": string (valid DNS label)
- For "roms": array of ROM objects (with name and image fields) for SET/ADD, or array of ROM names for DEL
- For "dependencies": array of instance identifiers (name or UUID)
- For "sched_priority": SchedPriority enum value ("normal", "medium", "high", "admin")
Volumes.UpdateTemplateVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.UpdateTemplateVolumesResponseTemplateVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
idThe client-provided ID from the request.
Volumes.UpdateVolumeByUUIDRequestBody
propThe property to modify.
opThe operation to perform.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "image": string
- For "args": string or array of strings
- For "env": object (for SET/ADD) or string/array of strings (for DEL)
- For "memory_mb": integer
- For "vcpus": integer
- For "scale_to_zero": object with cooldown_time_ms, policy, and stateful fields
- For "tags": array of strings
- For "delete_lock": boolean
- For "schedules": array of schedule objects (with name, when, action, and optional args fields). Use action "exec" together with args to execute a command at the scheduled time.
- For "autokill": object with time_ms and num_requests fields
- For "hostname": string (valid DNS label)
- For "roms": array of ROM objects (with name and image fields) for SET/ADD, or array of ROM names for DEL
- For "dependencies": array of instance identifiers (name or UUID)
- For "sched_priority": SchedPriority enum value ("normal", "medium", "high", "admin")
Volumes.UpdateVolumesRequestItem
propThe property to modify.
opThe operation to perform.
uuidThe UUID of the resource.
nameThe name of the resource.
idA client-provided identifier for tracking this operation in the response.
valueThe value for the update operation. The type depends on the property and operation:
- For "image": string
- For "args": string or array of strings
- For "env": object (for SET/ADD) or string/array of strings (for DEL)
- For "memory_mb": integer
- For "vcpus": integer
- For "scale_to_zero": object with cooldown_time_ms, policy, and stateful fields
- For "tags": array of strings
- For "delete_lock": boolean
- For "schedules": array of schedule objects (with name, when, action, and optional args fields). Use action "exec" together with args to execute a command at the scheduled time.
- For "autokill": object with time_ms and num_requests fields
- For "hostname": string (valid DNS label)
- For "roms": array of ROM objects (with name and image fields) for SET/ADD, or array of ROM names for DEL
- For "dependencies": array of instance identifiers (name or UUID)
- For "sched_priority": SchedPriority enum value ("normal", "medium", "high", "admin")
Volumes.UpdateVolumesResponse
statusThe status of the response.
op_time_usThe operation time in microseconds.
messageAn optional message providing additional information about the status.
The response data for this request.
A list of errors which may have occurred during the request.
Volumes.UpdateVolumesResponseUpdatedVolume
statusIndicates whether the operation was successful for this item.
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
idThe client-provided ID from the request.
Volumes.Volume
uuidThe UUID of the resource.
nameThe human-readable name of the resource.
created_atThe time the volume was created.
stateCurrent state of the volume.
size_mbThe size of the volume in megabytes.
persistentIndicates if the volume will stay alive when the last instance is deleted that this volume is attached to.
quota_policyEither static or dynamic reservation.
statusIndicates whether the operation was successful for this item.
messageAn optional message providing additional information.
errorAn optional error code.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.
List of instances that this volume is attached to.
List of instances that have this volume mounted. This does not apply to template volumes.
tagsThe tags associated with the volume. Maximum 16 tags are allowed, and each tag may not be longer than 256 characters.
delete_lockIf set to true, the volume cannot be deleted.
free_mbThe amount of free space in the volume in megabytes.
filesystemThe filesystem type of this volume.
Without custom configuration, this is either ext4 or virtiofs.
host_pathHost path backing this managed volume. This field is only available for managed volumes and users with appropriate permissions.
access_modeThe access mode of the volume, controlling volume sharing behavior.
Defaults to rwo if not specified.
uidGuest UID for managed volumes (host_path mode only).
gidGuest GID for managed volumes (host_path mode only).
Optional script arguments that were applied to the custom volume filesystem initialization scripts.
Volumes.VolumeAccessMode
VolumeAccessMode defines the access mode of a volume, which controls sharing behavior and caching strategy.
Volumes.VolumeInstanceID
uuidThe UUID of the instance. This is a unique identifier for the instance that is generated when the instance is created. The UUID is used to reference the instance in API calls and can be used to identify the instance in all API calls that require an instance identifier.
nameThe name of the instance. This is a human-readable name that can be used to identify the instance. The name must be unique within the context of your account. If no name is specified, a random name is generated for you. The name can also be used to identify the instance in API calls.
nodeThe name of the node the instance is placed on.
Volumes.VolumeInstanceMount
uuidThe UUID of the instance that the volume is mounted in.
nameThe name of the instance that the volume is mounted in.
readonlyWhether the volume is mounted read-only or read-write.
nodeThe name of the node the resource is placed on. Only present on metros that span multiple nodes.