AddUsersResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
A list of errors which may have occurred during the request.
The response data for this request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
AttachVolumeByUUIDRequestBody
UUID or name of the instance to attach the volume to.
at^/(?!.*\.\./|.*\.$|.… · requiredPath 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.
AttachVolumesRequestItem
UUID or name of the instance to attach the volume to.
at^/(?!.*\.\./|.*\.$|.… · requiredPath 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.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: uuid | |
| type = object · requires: name |
uuidThe UUID of the volume to attach. Mutually exclusive with name. Exactly one of uuid or name must be provided.
AttachVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
AttachVolumesResponseAttachedVolume
statusThe status of the response.
uuidThe UUID of the volume that was attached.
nameThe name of the volume that was attached.
metro(Only applies when using global control plane). The metro of the volume.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
AutoscalePolicy
nameThe name of the policy.
metro(Only applies when using global control plane). The metro of the service group the policy applies to.
enabledIf the policy is enabled.
metricMetric to use for the step policy.
adjustment_typeThe type of adjustment to be made in the step policy.
The steps for the step policy. Each step defines an adjustment value and optional bounds.
AutoscalePolicyStep
adjustmentThe adjustment value for the step.
lower_boundLower bound for the step.
upper_boundUpper bound for the step.
BodyInstanceID
uuidThe UUID of the instance that the volume is detached from.
nameThe name of the instance that the volume is detached from.
Certificate
uuidThe UUID of the certificate.
This is a unique identifier for the certificate that is generated when the certificate is created. The UUID is used to reference the certificate in API calls and can be used to identify the certificate in all API calls that require an identifier.
nameThe name of the certificate.
This is a human-readable name that can be used to identify the certificate. The name must be unique within the context of your account. The name can also be used to identify the certificate in API calls.
metro(Only applies when using global control plane). Where the certificate is located.
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.
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.
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.
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.
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.
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.
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.
statusAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
messageAn optional message providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
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.
CloneVolumesRequestItem
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.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the volume to clone. Mutually exclusive with name.
CloneVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
CloneVolumesResponseVolume
statusThe status of the response.
uuidThe UUID of the newly cloned volume.
nameThe name of the newly cloned volume.
metro(Only applies when using global control plane). The metro of the volume.
stateThe state of the volume.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
ConfigurationInstanceCreateArgs
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
The ROM to use for the autoscale configuration.
CreateAutoscaleConfigurationByServiceGroupUUIDRequest
uuidThe UUID of the service to create a configuration for. Mutually exclusive with name.
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 the autoscale configuration.
The policies to apply to the autoscale configuration.
CreateAutoscaleConfigurationByServiceGroupUUIDRequestInstanceCreateArgs
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
The ROM to use for the autoscale configuration.
CreateAutoscaleConfigurationPolicyRequest
nameThe Name of the service to add a policy to.
The policy type to add to the autoscale configuration.
CreateAutoscaleConfigurationPolicyResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
CreateAutoscaleConfigurationPolicyResponsePolicy
statusThe status of the response.
uuidThe UUID of the service of the added policy.
nameThe name of the service of the added policy.
metro(Only applies when using global control plane). The metro of the resource.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
CreateAutoscaleConfigurationsRequestConfiguration
metro(Optional, only applies when using global control plane). The metro to route the request to.
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 the autoscale configuration.
The policies to apply to the autoscale configuration.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the service to create a configuration for. Mutually exclusive with name.
CreateAutoscaleConfigurationsResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
CreateAutoscaleConfigurationsResponseConfigurationsResponse
statusThe status of the response.
uuidThe UUID of the service where the configuration was created.
nameThe name of the service where the configuration was created.
metro(Only applies when using global control plane). The metro of the configuration.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
CreateCertificateRequest
chainThe chain of the certificate.
pkeyThe private key of the certificate.
nameThe name of the certificate.
This is a human-readable name that can be used to identify the certificate. 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 certificate in API calls.
metro(Only applies when using global control plane). The metro to route the request to.
cnThe common name (CN) of the certificate.
Deprecated: Use common_name instead.
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.
CreateCertificateResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
CreateCertificateResponseData
The certificate which was created by this request.
Note: only one certificate can be specified in the request, so this will always contain a single entry.
CreateInstanceRequest
name(Optional). The name of the instance.
If not provided, a random name will be generated. The name must be unique.
imageThe image to use for the instance.
metro(Only applies when using global control plane). The metro to route the request to.
args(Optional). The arguments to pass to the instance when it starts.
(Optional). Environment variables to set for the instance.
memory_mb(Optional). Memory in MB to allocate for the instance. Default is 128.
(Optional). 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.
replicas(Optional). Number 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.
vcpus(Optional). Number of vCPUs to allocate for the instance. Defaults to 1.
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.
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.
tags(Optional). Tags to associate with the instance.
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_priority(Optional). The scheduling priority for the instance. Higher values indicate higher priority.
(Optional). 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.
(Optional). Automatic delete-on-idle/request-limit configuration. Not used for template instances.
hostname(Optional). The 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.
(Optional). 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.
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.
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.
CreateInstanceRequestRom
nameThe name of the ROM to use for the instance configuration.
image(Optional). The image of the ROM to use for the instance configuration.
Mutually exclusive with files.
(Optional). Inline files to use as the ROM content. When specified,
the platform creates an EROFS image from the provided files.
Mutually exclusive with image.
CreateInstanceRequestServiceGroup
If no existing (persistent) service group is specified via its identifier, a new (ephemeral) service group can be created. In addition to the services it must expose, you can specify which domains it should use too.
If no existing service group identifier is provided, one or more new (ephemeral, non-persistent) service(s) can be created with the following definitions.
soft_limitThe soft limit for the number of services that can be created in this service group.
hard_limitThe hard limit for the number of services that can be created in this service group.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuid(Optional). Reference an existing (persistent) service group by its UUID. Mutually exclusive with name.
CreateInstanceRequestTemplate
prepare(Optional). Whether the instance needs to run in order to reach template state
uuid(Optional). The UUID of a template instance to create the instance from. Mutually exclusive with name.
name(Optional). The name of a template instance to create the instance from. Mutually exclusive with UUID.
metro(Only applies when using global control plane). Where the volume is located.
(Optional). Configuration parameters to apply when building the new instance from the source template.
CreateInstanceRequestVolume
atThe mount point for the volume in the instance.
uuidThe UUID of an existing volume.
If this is the only specified field, then it will look up an existing volume by this UUID.
nameThe name of the volume.
If this is the only specified field, then it will look up an existing volume by this name. If the volume does not exist, the request will fail. If a new volume is intended to be created, then this field must be specified along with the mount point in the instance and a provisioning source (size_mb or host_path).
readonlyWhether the volume is read-only.
If this field is set to true, the volume will be mounted as read-only in the instance. This field is optional and defaults to false and is only applicable when using an existing volume.
quota_policyQuota policy for the volume.
filesystemFilesystem type to format or configure.
Without custom configuration, this is either ext4 or virtiofs.
tagsTags to assign to the new volume.
uidGuest UID for managed volumes (host_path mode only).
gidGuest GID for managed volumes (host_path mode only).
Script arguments passed to volume initialization scripts.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
size_mbThe size of the volume when creating a new volume.
When creating a new volume as part of the instance create request, specify the size of the volume in MiB.
CreateInstanceResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
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.
CreateServiceGroupRequest
nameName of the service group. This is a human-readable name that can be used to identify the service group. 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 service group in API calls.
metro(Only applies when using global control plane). The metro to route the request to.
Description of exposed services.
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.
CreateServiceGroupRequestAutokill
time_msTime in milliseconds after the service group becomes empty before it is deleted. A value of 0 disables autokill.
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.
CreateServiceGroupResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
CreateServiceGroupResponseData
The service group which was created by this request.
Note: only one service group can be specified in the request, so this will always contain a single entry.
CreateTemplateInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
CreateTemplateInstancesResponseData
List of template instances that were created during the operation.
CreateTemplateInstancesResponseTemplateInstance
statusThe status of this particular template instance creation operation.
uuidThe UUID of the template instance that was created.
nameThe name of the template instance that was created.
metro(Only applies when using global control plane). The metro of the template instance.
stateThe current state of the instance.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
CreateTemplateVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
CreateTemplateVolumesResponseTemplateVolume
statusThe status of the response.
uuidThe UUID of the volume converted into a template.
nameThe name of the volume converted into a template.
stateThe state of the volume.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
CreateVolumeRequest
nameThe name of the volume.
This is a human-readable name that can be used to identify the volume.
The name must be unique within the context of your account. If no name is
specified, a random name of the form vol-X is generated for you, where
X is a 5 character long random alphanumeric suffix.. The name can also
be used to identify the volume in API calls.
metro(Only applies when using global control plane). The metro to route the request to.
quota_policyQuota policy for the volume.
filesystemFilesystem type to format or configure.
Without custom configuration, this is either ext4 or virtiofs.
tagsTags to assign to the new volume.
uidGuest UID for managed volumes (host_path mode only).
gidGuest GID for managed volumes (host_path mode only).
Script arguments passed to volume initialization scripts.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object | |
| type = object |
size_mbThe size of the volume in megabytes.
CreateVolumeResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
CreateVolumeResponseVolume
statusThe status of the response.
uuidUUID of the newly created volume.
nameThe name of the newly created volume.
metro(Only applies when using global control plane). The metro of the volume.
stateThe state of the volume.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
DeleteAutoscaleConfigurationPolicyResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DeleteAutoscaleConfigurationPolicyResponsePoliciesResponse
statusThe status of the response.
nameThe name of the service of the deleted policy.
metro(Only applies when using global control plane). The metro of the resource.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
DeleteAutoscaleConfigurationsResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DeleteAutoscaleConfigurationsResponseServiceGroup
statusThe status of the response.
uuidThe UUID of the service where the configuration was deleted.
nameThe name of the service where the configuration was deleted.
metro(Only applies when using global control plane). The metro of the resource.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
DeleteCertificatesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DeleteCertificatesResponseDeletedCertificate
statusIndicates whether the delete operation was successful or not for this certificate.
uuidThe UUID of the certificate which was deleted.
nameThe name of the certificate which was deleted.
metro(Only applies when using global control plane). The metro of the certificate.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
DeleteInstanceByUUIDRequestBody
timeout_sTimeout in seconds to wait for the instance to be deleted. No wait performed for a value of 0.
DeleteInstanceRequestItem
metro(Only applies when using global control plane). The metro of the instance.
timeout_sTimeout in seconds to wait for the instance to be deleted. No wait performed for a value of 0.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: uuid | |
| type = object · requires: name |
uuidMutually exclusive with name.
DeleteInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DeleteInstancesResponseInstance
statusIndicates whether the start operation was successful or not for this instance.
uuidThe UUID of the instance which was deleted.
nameThe name of the instance which was deleted.
metro(Only applies when using global control plane). The metro of the instance.
previous_stateThe previous state of the instance before it was deleted.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
DeletePolicyRequest
nameThe Name of the policy to delete.
DeleteServiceGroupsResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DeleteServiceGroupsResponseDeletedServiceGroup
statusIndicates whether the delete operation was successful or not for this service group.
uuidThe UUID of the service group which was deleted.
nameThe name of the service group which was deleted.
metro(Only applies when using global control plane). The metro of the service group.
messageAn optional message providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
DeleteTemplateInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DeleteTemplateInstancesResponseData
List of template instances that were processed during the delete operation.
DeleteTemplateInstancesResponseTemplateInstance
uuidThe UUID of the template instance that was deleted.
nameThe name of the template instance that was deleted.
statusThe status of this particular template instance deletion operation.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
DeleteTemplateVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DeleteTemplateVolumesResponseTemplateVolume
uuidThe UUID of the template volume that was deleted.
nameThe name of the template volume that was deleted.
statusThe status of this particular template volume deletion operation.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
DeleteVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DeleteVolumesResponseDeletedVolume
statusThe status of the response.
uuidThe UUID of the volume that was deleted.
nameThe name of the volume that was deleted.
metro(Only applies when using global control plane). The metro of the volume.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
DetachVolumesRequestItem
UUID or name of the instance to detach the volume from.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: uuid | |
| type = object · requires: name |
uuidThe UUID of the volume to detach. Mutually exclusive with name. Exactly one of uuid or name must be provided.
DetachVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
DetachVolumesResponseDetachedVolume
statusThe status of the response.
uuidThe UUID of the volume that was detached.
nameThe name of the volume that was detached.
metro(Only applies when using global control plane). The metro of the volume.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
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.
GetAutoscaleConfigurationPolicyRequest
nameThe Name of the policy to get.
GetAutoscaleConfigurationPolicyResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetAutoscaleConfigurationPolicyResponsePolicyResponse
statusThe status of the response.
The policy which was retrieved by the request.
metro(Only applies when using global control plane). The metro of the resource.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
GetAutoscaleConfigurationsResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetAutoscaleConfigurationsResponseServiceGroup
statusThe status of the response.
uuidThe UUID of the service where the configuration was created.
nameThe name of the service where the configuration was created.
metro(Only applies when using global control plane). The metro of the service group.
enabledIf the autoscale configuration is enabled.
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.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
GetCertificatesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetImagesRequestTagOrDigest
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: digest | |
| type = object · requires: tag |
digestGetImagesResponse
statusThe status of the response.
messageAn optional message providing additional information about the response.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
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.
GetInstancesLogsRequestItem
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.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the instance to retrieve logs for. Mutually exclusive with name.
GetInstancesLogsResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetInstancesLogsResponseAvailable
startThe first byte offset that can be retrieved.
endThe last byte offset that can be retrieved.
GetInstancesLogsResponseData
The instance which this requested waited on.
Note: only one instance can be specified in the request, so this will always contain a single entry.
GetInstancesLogsResponseLoggedInstance
uuidThe UUID of the instance.
nameThe name of the instance.
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.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
statusThe status of the response.
GetInstancesLogsResponseRange
startThe first retrieved byte.
endThe last retrieved byte.
GetInstancesMetricsResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetInstancesMetricsResponseData
The instance which this requested metrics for. Note: only one instance can be specified in the request, so this will always contain a single entry.
GetInstancesMetricsResponseInstanceMetrics
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.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
statusThe status of the response.
GetInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetServiceGroupsResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetTemplateInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetTemplateInstancesResponseData
List of template instances that were retrieved during the operation.
GetTemplateVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
GetVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
HealthzResponse
statusThe status of the response.
messageAn optional message providing additional information about the response.
A list of errors which may have occurred during the request.
The response data for this request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
Image
urlmetro(Only applies when using global control plane). The metro of the image.
created_atThe time the volume was created.
initrd_or_romsize_in_bytesargstagsusersInlineFile
pathThe file path within the image.
dataThe file data, encoded according to the encoding field.
encoding(Optional). The encoding of the data field. Defaults to "text".
Instance
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. The name can also be used to identify the instance in API calls.
metro(Only applies when using global control plane). Where the instance is located.
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.
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.
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.
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.
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.
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.
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.
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 list of volumes attached to the instance.
The service group configuration for the instance.
The network interfaces of the instance. Not used for template instances.
tagsThe tags associated with the instance.
statusAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
messageAn optional message providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
The snapshot of the instance, if exists.
delete_lockIf set to true, the instance cannot be deleted until the lock is removed.
The 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.
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.
Template-specific automatic delete-on-idle configuration. Not used for non-template 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.
InstanceCreateArgsInstanceCreateRequestRoms
nameThe name of the ROM to use for the autoscale configuration.
image(Optional). The image of the ROM to use for the autoscale configuration.
Mutually exclusive with files.
(Optional). Inline files to use as the ROM content. When specified,
the platform creates an EROFS image from the provided files.
Mutually exclusive with image.
InstanceNetworkInterface
uuidThe UUID of the network interface. This is a unique identifier for the network interface that is generated when the instance is created.
private_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.
rx_bytesAmount of bytes received from interface.
rx_packetsCount of packets received from interface
tx_bytesAmount of bytes sent to interface.
tx_packetsCount of packets sent to interface
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.
InstanceRom
nameThe name of the ROM to use for the instance configuration.
image(Optional). The image of the ROM to use for the instance configuration.
Mutually exclusive with files.
at(Optional). The 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.
(Optional). Inline files to use as the ROM content. When specified,
the platform creates an EROFS image from the provided files.
Mutually exclusive with image.
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.
InstanceServiceGroup
uuidThe UUID of the service group.
This is a unique identifier for the service group that is generated when the service is created. The UUID is used to reference the service group in API calls and can be used to identify the service in all API calls that require an service identifier.
nameThe name of the service group.
This is a human-readable name that can be used to identify the service group. The name is unique within the context of your account. The name can also be used to identify the service group in API calls.
metro(Only applies when using global control plane). Where the service group is located.
The domain configuration for the service group.
InstanceTemplateAutokill
time_msTime in milliseconds after the template was last used for cloning before it is deleted. A value of 0 disables template autokill.
InstanceVolume
uuidThe UUID of the volume.
This is a unique identifier for the volume that is generated when the volume is created. The UUID is used to reference the volume in API calls and can be used to identify the volume in all API calls that require a volume identifier.
nameThe name of the volume.
This is a human-readable name that can be used to identify the volume. The name must be unique within the context of your account. The name can also be used to identify the volume in API calls.
metro(Only applies when using global control plane). Where the volume is located.
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.
NameOrUUID
metro(Only applies when using global control plane). The metro of the resource.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: uuid | |
| type = object · requires: name |
uuidMutually exclusive with name.
Quotas
uuidThe UUID of the quota.
Used quota
Configured quota limits
Additional limits
statusAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
messageAn optional message providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
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
QuotasResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
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 services
servicesNumber of published network ports over all existing services
volumesNumber of volumes
total_volume_mbTotal size of all volumes in megabytes
ResponseError
statusThe HTTP status code of the error.
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). Unix timestamp in seconds. 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.
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.
handlersConnection 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.
ServiceGroup
uuidThe UUID of the service group.
This is a unique identifier for the service group that is generated when the service group is created. The UUID is used to reference the service in API calls and can be used to identify the service group in all API calls that require an identifier.
nameThe name of the service group.
This is a human-readable name that can be used to identify the service group. The name must be unique within the context of your account. The name can also be used to identify the service in API calls.
metro(Only applies when using global control plane). Where the service group is located.
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).
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.
statusAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
messageAn optional message providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
Automatic delete-on-idle configuration.
ServiceGroupAutokill
time_msTime in milliseconds after the service group becomes empty before it is deleted. A value of 0 disables autokill.
ServiceGroupInstance
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.
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.
ServiceGroupTemplate
nameThe name of the template used for the autoscale configuration.
uuidThe UUID of the template used for the autoscale configuration.
StartInstanceByUUIDRequestBody
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.
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.
StartInstancesRequestItem
metro(Only applies when using global control plane). The metro to route the request to.
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.
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.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the instance to start. Mutually exclusive with name.
StartInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
StartInstancesResponseStartedInstance
statusIndicates whether the start operation was successful or not for this instance.
uuidThe UUID of the instance which was deleted.
nameThe name of the instance which was deleted.
metro(Only applies when using global control plane). The metro of the instance.
stateThe current state of the instance after this request.
previous_stateThe previous state of the instance before it was deleted.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
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.
StopInstancesRequestItem
metro(Only applies when using global control plane). The metro to route the request to.
forceWhether to immediately force stop the instance.
drain_timeout_msTimeout for draining connections in milliseconds. 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.
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.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the instance to stop. Mutually exclusive with name.
StopInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
StopInstancesResponseStoppedInstance
uuidThe UUID of the instance.
nameThe name of the instance.
metro(Only applies when using global control plane). The metro of the instance.
stateThe current state of the instance.
previous_stateThe previous state of the instance before the stop operation was invoked.
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
SuspendInstanceByUUIDRequestBody
drain_timeout_msTimeout for draining connections in milliseconds. No draining will occur if set to 0. Use -1 for the largest possible value.
SuspendInstancesRequestItem
metro(Only applies when using global control plane). The metro to route the request to.
drain_timeout_msTimeout for draining connections in milliseconds. No draining will occur if set to 0. Use -1 for the largest possible value.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the instance to suspend. Mutually exclusive with name.
SuspendInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
SuspendInstancesResponseSuspendedInstance
uuidThe UUID of the instance.
nameThe name of the instance.
metro(Only applies when using global control plane). The metro of the instance.
stateThe current state of the instance.
previous_stateThe previous state of the instance before the suspend operation was invoked.
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
UpdateCertificateByUUIDRequest
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 certificate to update.
UpdateCertificateRequest
The ID of the certificate to update.
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.
UpdateCertificateResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
UpdateInstanceByUUIDRequestBody
propThe property to modify.
opThe operation to perform on the property.
id(Optional). A 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": integer (scheduling priority value)
UpdateInstancesRequestItem
propThe property to modify.
opThe operation to perform on the property.
id(Optional). A client-provided identifier for tracking this operation in the response.
metro(Only applies when using global control plane). The metro to route the request to.
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": integer (scheduling priority value)
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the instance to update. Mutually exclusive with name.
UpdateInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
UpdateInstancesResponseUpdatedInstance
uuidThe UUID of the instance that was updated.
nameThe name of the instance that was updated.
statusThe status of this particular instance update operation.
metro(Only applies when using global control plane). The metro of the instance.
id(Optional). The client-provided ID from the request.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
UpdateServiceGroupByUUIDRequestBody
propThe property to modify.
opThe operation to perform.
id(Optional). A client-provided identifier for tracking this operation in the response.
valueThe value for the update operation:
- For "services": array of Service objects (same as for creation)
- For "domains": array of Domain objects (same as for creation)
- For "soft_limit": integer (1–65535), must be <= "hard_limit"
- For "hard_limit": integer (1–65535), must be >= "soft_limit"
- For "autokill": object with time_ms field
UpdateServiceGroupsRequestItem
propThe property to modify.
opThe operation to perform.
id(Optional). A client-provided identifier for tracking this operation in the response.
valueThe value for the update operation:
- For "services": array of Service objects (same as for creation)
- For "domains": array of Domain objects (same as for creation)
- For "soft_limit": integer (1–65535), must be <= "hard_limit"
- For "hard_limit": integer (1–65535), must be >= "soft_limit"
- For "autokill": object with time_ms field
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the service group to update. Mutually exclusive with name.
UpdateServiceGroupsResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
UpdateServiceGroupsResponseData
List of service groups that were processed during the update operation.
UpdateServiceGroupsResponseUpdatedServiceGroup
uuidThe UUID of the service group that was updated.
nameThe name of the service group that was updated.
metro(Only applies when using global control plane). The metro of the service group.
statusThe status of this particular service group update operation.
id(Optional). The client-provided ID from the request.
messageAn optional message providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
UpdateTemplateInstanceByUUIDRequestBody
propThe property to modify.
opThe operation to perform on the property.
id(Optional). A 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
UpdateTemplateInstancesRequestItem
propThe property to modify.
opThe operation to perform on the property.
id(Optional). A client-provided identifier for tracking this operation in the response.
metro(Only applies when using global control plane). The metro of the template instance.
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
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the template instance to update. Mutually exclusive with name.
UpdateTemplateInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
UpdateTemplateInstancesResponseData
List of template instances that were processed during the update operation.
UpdateTemplateInstancesResponseTemplateInstance
uuidThe UUID of the template instance that was updated.
nameThe name of the template instance that was updated.
metro(Only applies when using global control plane). The metro of the template instance.
statusThe status of this particular template instance update operation.
id(Optional). The client-provided ID from the request.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
UpdateTemplateVolumeByUUIDRequestBody
propThe property to modify.
opThe operation to perform.
id(Optional). A 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
UpdateTemplateVolumesRequestItem
propThe property to modify.
opThe operation to perform.
id(Optional). A 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
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the template volume to update. Mutually exclusive with name.
UpdateTemplateVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
UpdateTemplateVolumesResponseTemplateVolume
uuidThe UUID of the template volume that was updated.
nameThe name of the template volume that was updated.
statusThe status of this particular volume update operation.
id(Optional). The client-provided ID from the request.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
UpdateVolumeByUUIDRequestBody
propThe property to modify.
opThe operation to perform.
id(Optional). A 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 "size_mb": unsigned integer
- For "quota_policy": "static" or "dynamic"
- For "tags": array of Strings
- For "delete_lock": boolean
UpdateVolumesRequestItem
propThe property to modify.
opThe operation to perform.
id(Optional). A 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 "size_mb": unsigned integer
- For "quota_policy": "static" or "dynamic"
- For "tags": array of Strings
- For "delete_lock": boolean
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the volume to update. Mutually exclusive with name.
UpdateVolumesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
UpdateVolumesResponseUpdatedVolume
uuidThe UUID of the volume that was updated.
nameThe name of the volume that was updated.
metro(Only applies when using global control plane). The metro of the volume.
statusThe status of this particular volume update operation.
id(Optional). The client-provided ID from the request.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
Volume
uuidThe UUID of the volume.
This is a unique identifier for the volume that is generated when the volume is created. The UUID is used to reference the volume in API calls and can be used to identify the volume in all API calls that require an identifier.
nameThe name of the volume.
This is a human-readable name that can be used to identify the volume. The name must be unique within the context of your account. The name can also be used to identify the volume in API calls.
metro(Only applies when using global control plane). Where the volume is located.
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.
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.
statusAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
messageAn optional message providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is only set when this message object is used as a response
message, and is useful when the status is not success.
quota_policyEither static or dynamic reservation.
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.
Optional script arguments that were applied to the custom volume filesystem initialization scripts.
VolumeInstanceID
uuidThe UUID of the instance that the volume is attached to.
nameThe name of the instance that the volume is attached to.
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.
WaitInstanceByUUIDRequestBody
stateThe desired state to wait for. Default is running.
timeout_msTimeout in milliseconds 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.
WaitInstancesRequestItem
stateThe desired state to wait for. Default is running.
timeout_msTimeout in milliseconds 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.
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object | |
| type = object |
uuidThe UUID of the instance to wait for. Mutually exclusive with name.
WaitInstancesResponse
statusThe status of the response.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
The response data for this request.
A list of errors which may have occurred during the request.
op_time_usThe operation time in microseconds. This is the time it took to process the request and generate the response.
WaitInstancesResponseWaitedInstance
uuidThe UUID of the instance.
nameThe name of the instance.
stateThe current state of the instance.
messageAn optional message providing additional information about the status.
This field is useful when the status is not success.
errorAn optional error code providing additional information about the status.
This field is useful when the status is not success.
statusThe status of the response.