AttachVolumeByUUIDRequestBody
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
readonly
booleanWhether the volume should be mounted read-only.
Example: false
AttachVolumesRequest
attach_to
object · requiredUUID or name of the instance to attach the volume to.
at
string · regex · pattern:^/(?!.*\.\./|.*\.$|.…
· 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.Example: /mnt/my-volume
uuid
string · uuidThe UUID of the volume to attach. Mutually exclusive with name. Exactly one of uuid or name must be provided.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abname
stringThe name of the volume to attach. Mutually exclusive with UUID. Exactly one of uuid or name must be provided.
Example: funky-vol-g7gum5cjreadonly
booleanWhether the volume should be mounted read-only.
Example: false
AttachVolumesRequestInstanceID
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
name
stringThe name of the instance that the volume is attached to.
Example: funky-town-g7gum5cj
AttachVolumesResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
AttachVolumesResponseAttachedVolume
status
string · enum · enumThe status of the response.
Enum values:successerroruuid
string · uuidThe UUID of the volume that was attached.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abname
stringThe name of the volume that was attached.
Example: funky-vol-g7gum5cjmessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No volume with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
AutoscalePolicy
name
stringThe name of the policy.
Example: funky-policyenabled
booleanIf the policy is enabled.
Example: truemetric
string · enum · enumMetric to use for the step policy.
Enum values:cpuadjustment_type
string · enum · enumThe type of adjustment to be made in the step policy.
Enum values:changeexactpercentagesteps
object[]The steps for the step policy. Each step defines an adjustment value and optional bounds.
AutoscalePolicyStep
adjustment
integer · int64The adjustment value for the step.
Example: 50lower_bound
integer · int64Lower bound for the step.
Example: 10upper_bound
integer · int64Upper bound for the step.
Example: 500
BodyInstanceID
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
name
stringThe name of the instance that the volume is detached from.
Example: funky-town-g7gum5cj
Certificate
uuid
string · 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.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe 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.
Example: funky-certificatecreated_at
string · date-timeThe time the certificate was created.
Example: 2023-10-01T12:00:00Zcommon_name
stringThe 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.
Example: my-common-namesubject
stringThe 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.
Example: example.comissuer
stringThe 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.
Example: CN=R10,O=Let's Encrypt,C=USserial_number
stringThe 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.
Example: 123456789ABCDEF123456789ABCDEF123456not_before
string · date-timeThe 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.
Example: 2023-10-01T12:00:00Znot_after
string · date-timeThe 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.
Example: 2023-10-01T12:00:00Zstate
string · enum · enumThe 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.
Enum values:pendingvaliderrorstatus
string · enum · enumAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
Enum values:successerrormessage
stringAn 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
.Example: No certificate with name 'funky-town-g756b5d'error
integer · int32An 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
.Example: 8
ConfigurationInstanceCreateArgs
Decision Table
Variant | Matching Criteria |
---|---|
type = object | |
type = object |
roms
objectThe ROM to use for the autoscale configuration.
CreateAutoscaleConfigurationByServiceGroupUUIDRequest
uuid
string · uuidThe UUID of the service to create a configuration for. Mutually exclusive with name.
min_size
integer · int64The minimum number of instances to keep running.
max_size
integer · int64The maximum number of instances to keep running.
warmup_time_ms
integer · int64The warmup time in milliseconds for new instances.
cooldown_time_ms
integer · int64The cooldown time in milliseconds for the autoscale configuration.
create_args
objectThe arguments to use when creating the autoscale configuration.
policies
object[]The policies to apply to the autoscale configuration.
CreateAutoscaleConfigurationByServiceGroupUUIDRequestInstanceCreateArgs
Decision Table
Variant | Matching Criteria |
---|---|
type = object | |
type = object |
roms
objectThe ROM to use for the autoscale configuration.
CreateAutoscaleConfigurationPolicyRequest
name
string · requiredThe Name of the service to add a policy to.
Example: funky-servicetype
object · requiredThe policy type to add to the autoscale configuration.
CreateAutoscaleConfigurationPolicyResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
CreateAutoscaleConfigurationPolicyResponseData
policies
object[]The policies which were added by the request.
CreateAutoscaleConfigurationPolicyResponsePolicy
status
string · enum · enumThe status of the response.
Enum values:successerroruuid
string · uuidThe UUID of the service of the added policy.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the service of the added policy.
Example: funky-policymessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
CreateAutoscaleConfigurationsRequestConfiguration
uuid
string · uuidThe UUID of the service to create a configuration for. Mutually exclusive with name.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the service to create a configuration for. Mutually exclusive with UUID.
Example: funky-servicemin_size
integer · int64The minimum number of instances to keep running.
Example: 2max_size
integer · int64The maximum number of instances to keep running.
Example: 12warmup_time_ms
integer · int64The warmup time in milliseconds for new instances.
Example: 100cooldown_time_ms
integer · int64The cooldown time in milliseconds for the autoscale configuration.
Example: 100create_args
objectThe arguments to use when creating the autoscale configuration.
policies
object[]The policies to apply to the autoscale configuration.
CreateAutoscaleConfigurationsResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
CreateAutoscaleConfigurationsResponseConfigurationsResponse
status
string · enum · enumThe status of the response.
Enum values:successerroruuid
string · uuidThe UUID of the service where the configuration was created.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the service where the configuration was created.
Example: funky-instance-templatemessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
CreateAutoscaleConfigurationsResponseData
service_groups
object[]The configuration(s) which were created by the request.
CreateCertificateRequest
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
name
stringThe 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.
Example: funky-certificate
CreateCertificateResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 32
CreateCertificateResponseData
certificates
object[]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
image
string · requiredThe image to use for the instance.
Example: nginx:latest
name
string(Optional). The name of the instance.
If not provided, a random name will be generated. The name must be unique.
Example: funky-town-g756b5dargs
string[](Optional). The arguments to pass to the instance when it starts.
Example: --port=8080 --debugenv
object(Optional). Environment variables to set for the instance.
Example: {"ENV_VAR1":"value1","ENV_VAR2":"value2"}memory_mb
integer · int64(Optional). Memory in MB to allocate for the instance. Default is 128.
Example: 256service_group
object(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.
volumes
object[]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.
autostart
booleanWhether the instance should start automatically on creation.
Example: truereplicas
integer · int64Number of replicas for the instance.
Example: 5restart_policy
string · enum · enumRestart policy for the instance. This defines how the instance should behave when it stops or crashes.
Enum values:neveralwayson_failurescale_to_zero
objectScale-to-zero configuration for the instance.
vcpus
integer · int32Number of vCPUs to allocate for the instance.
Example: 1wait_timeout_ms
integer · int64Timeout to wait for all new instances to reach running state in milliseconds. 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.
Example: 2000features
string[]Features to enable for the instance. Features are specific configurations or capabilities that can be enabled for the instance.
Enum values:delete_on_stop
CreateInstanceRequestDomain
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
certificate
objectA 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.
CreateInstanceRequestServiceGroup
Decision Table
Variant | Matching Criteria |
---|---|
type = object · requires: uuid | |
type = object · requires: name |
uuid
string · uuid · required(Optional). Reference an existing (persistent) service group by its UUID. Mutually exclusive with name.
Example: 123e4567-e89b-12d3-a456-426614174000
CreateInstanceRequestVolume
at
string · requiredThe mount point for the volume in the instance.
Example: /mnt/funky-volume
uuid
string · uuidThe UUID of an existing volume.
If this is the only specified field, then it will look up an existing volume by this UUID.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe 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 size in MiB and the mount point in the instance.
Example: funky-volume-g756b5dsize_mb
integer · int64The 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.
Example: 32read_only
booleanWhether 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.
Example: 256
CreateInstanceResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 875
CreateServiceGroupRequest
name
stringName 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.
Example: funky-service-g7gum5cjservices
object[]Description of exposed services.
domains
object[]Description of domains associated with the service group.
soft_limit
integer · uint64The 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.
Example: 1hard_limit
integer · uint64The 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).
Example: 100
CreateServiceGroupRequestDomain
name
string · requiredPublicly 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.Example: example.com.
certificate
objectUse an existing certificate for the domain. If this field is specified, the domain must be associated with a valid certificate.
CreateServiceGroupResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 46
CreateServiceGroupResponseData
service_groups
object[]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.
CreateVolumeRequest
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
name
stringThe 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, whereX
is a 5 character long random alphanumeric suffix.. The name can also be used to identify the volume in API calls.Example: funky-vol-t7qumh5j
CreateVolumeResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
CreateVolumeResponseVolume
status
string · enum · enumThe status of the response.
Enum values:successerroruuid
string · uuidUUID of the newly created volume.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abname
stringThe name of the newly created volume.
Example: funky-vol-g7gum5cjmessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No volume with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
DeleteAutoscaleConfigurationPolicyResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
DeleteAutoscaleConfigurationPolicyResponseData
policies
object[]The policies which were deleted by the request.
DeleteAutoscaleConfigurationPolicyResponsePoliciesResponse
status
string · enum · enumThe status of the response.
Enum values:successerrorname
stringThe name of the service of the deleted policy.
Example: funky-policymessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
DeleteAutoscaleConfigurationsResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
DeleteAutoscaleConfigurationsResponseData
service_groups
object[]The configuration(s) which were deleted by the request.
DeleteAutoscaleConfigurationsResponseServiceGroup
status
string · enum · enumThe status of the response.
Enum values:successerroruuid
string · uuidThe UUID of the service where the configuration was deleted.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the service where the configuration was deleted.
Example: funky-instance-templatemessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
DeleteCertificatesResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 42
DeleteCertificatesResponseData
certificates
object[]The certificate(s) which were deleted by the request.
DeleteCertificatesResponseDeletedCertificate
status
string · enum · enumIndicates whether the delete operation was successful or not for this certificate.
Enum values:successerroruuid
string · uuidThe UUID of the certificate which was deleted.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the certificate which was deleted.
Example: funky-certificatemessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No certificate with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
DeleteInstancesResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 221
DeleteInstancesResponseDeletedInstance
status
string · enum · enumIndicates whether the start operation was successful or not for this instance.
Enum values:successerroruuid
string · uuidThe UUID of the instance which was deleted.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the instance which was deleted.
Example: funky-town-g756b5dprevious_state
stringThe previous state of the instance before it was deleted.
Example: stoppedmessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No instance with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
DeleteServiceGroupsResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 46
DeleteServiceGroupsResponseData
service_groups
object[]The service group(s) which were deleted by the request.
DeleteServiceGroupsResponseDeletedServiceGroup
status
string · enum · enumIndicates whether the delete operation was successful or not for this service group.
Enum values:successerroruuid
string · uuidThe UUID of the service group which was deleted.
Example: 12345678-90ab-cdef-1234-567890abcdefname
stringThe name of the service group which was deleted.
Example: funky-service-g7gum5cjmessage
stringAn 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
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An 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
.Example: 8
DeleteVolumesResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
DeleteVolumesResponseDeletedVolume
status
string · enum · enumThe status of the response.
Enum values:successerroruuid
string · uuidThe UUID of the volume that was deleted.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abname
stringThe name of the volume that was deleted.
Example: funky-vol-g7gum5cjmessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No volume with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
DetachVolumesRequest
uuid
string · uuidThe UUID of the volume to detach. Mutually exclusive with name. Exactly one of uuid or name must be provided.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abname
stringThe name of the volume to detach. Mutually exclusive with UUID. Exactly one of uuid or name must be provided.
Example: funky-town-g7gum5cjfrom
objectUUID or name of the instance to detach the volume from.
DetachVolumesRequestInstanceID
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
name
stringThe name of the instance that the volume is detached from.
Example: funky-town-g7gum5cj
DetachVolumesResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
DetachVolumesResponseDetachedVolume
status
string · enum · enumThe status of the response.
Enum values:successerroruuid
string · uuidThe UUID of the volume that was detached.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abname
stringThe name of the volume that was detached.
Example: funky-vol-g7gum5cjmessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No volume with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
Domain
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
certificate
objectUse an existing certificate for the domain. If this field is specified, the domain must be associated with a valid certificate.
GetAutoscaleConfigurationPolicyRequest
name
string · requiredThe Name of the policy to get.
Example: funky-policy
GetAutoscaleConfigurationPolicyResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
GetAutoscaleConfigurationPolicyResponseData
policies
object[]The policy which was retrieved by the request.
GetAutoscaleConfigurationPolicyResponsePolicyResponse
status
string · enum · enumThe status of the response.
Enum values:successerrorpolicy
objectThe policy which was retrieved by the request.
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
GetAutoscaleConfigurationsResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
GetAutoscaleConfigurationsResponseData
service_groups
object[]The configuration(s) which were retrieved by the request.
GetAutoscaleConfigurationsResponseServiceGroup
status
string · enum · enumThe status of the response.
Enum values:successerroruuid
string · uuidThe UUID of the service where the configuration was created.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the service where the configuration was created.
Example: funky-instance-templateenabled
booleanIf the autoscale configuration is enabled.
Example: truemin_size
integer · int64The minimum number of instances to keep running. Only if enabled is true.
Example: 2max_size
integer · int64The maximum number of instances to keep running. Only if enabled is true.
Example: 10warmup_time_ms
integer · int64The warmup time in seconds for new instances. Only if enabled is true.
Example: 3000cooldown_time_ms
integer · int64The cooldown time in seconds for the autoscale configuration. Only if enabled is true.
Example: 3000template
objectThe instance template used for the autoscale configuration. Only if enabled is true.
policies
object[]The policies applied to the autoscale configuration.
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
GetCertificatesResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 55
GetCertificatesResponseData
certificates
object[]The certificate(s) which were retrieved by the request.
GetImageResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the response.
Example: No image with name 'my-image:latest'data
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 46
GetInstanceLogsByUUIDRequestBody
offset
integer · uint64The byte offset of the log output to receive. A negative sign makes the offset relative to the end of the log.
Example: 56000limit
integer · int64The amount of bytes to return at most.
Example: 1500
GetInstanceLogsRequest
uuid
string · uuid · requiredThe UUID of the instance to retrieve logs for. Mutually exclusive with name.
Example: 123e4567-e89b-12d3-a456-426614174000name
string · requiredThe name of the instance to retrieve logs for. Mutually exclusive with UUID.
Example: funky-town-g756b5d
offset
integer · uint64The byte offset of the log output to receive. A negative sign makes the offset relative to the end of the log.
Example: 450limit
integer · int64The amount of bytes to return at most.
Example: 3000
GetInstanceLogsResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 47
GetInstanceLogsResponseAvailable
start
integer · uint64The first byte offset that can be retrieved.
Example: 250end
integer · uint64The last byte offset that can be retrieved.
Example: 2700
GetInstanceLogsResponseData
instances
object[]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.
GetInstanceLogsResponseLoggedInstance
uuid
string · uuidThe UUID of the instance.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the instance.
Example: funky-town-g756b5doutput
stringBase64 encoded log output of the instance.
Example: d2h5LWFyZS15b3UtZGVjb2RpbmctdGhpcw==available
objectDescription of the log availability.
range
objectDescription of the range that was returned. Useful for requests with offset relative to end.
state
string · enum · enumState of the instance when the logs were retrieved.
Enum values:stoppedstartingrunningdrainingstoppingstandbymessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No instance with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
GetInstanceLogsResponseRange
start
integer · uint64The first retrieved byte.
Example: 450end
integer · uint64The last retrieved byte.
Example: funky-town-g756b5d
GetInstanceMetricsResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 76
GetInstanceMetricsResponseData
instances
object[]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.
GetInstanceMetricsResponseInstanceMetrics
rss_bytes
integer · uint64Resident 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.
Example: 5677765543cpu_time_ms
integer · uint64Consumed CPU time in milliseconds.
Example: 560007005boot_time_us
integer · uint64The 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.
Example: 560007005net_time_us
integer · uint64This 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.
Example: 560007005rx_bytes
integer · uint64Total amount of bytes received from network.
Example: 12312353rx_packets
integer · uint64Total count of packets received from network.
Example: 43432tx_bytes
integer · uint64Total amount of bytes transmitted over network.
Example: 6565643tx_packets
integer · uint64Total count of packets transmitted over network.
Example: 54534nconns
integer · uint64Number of currently established inbound connections (non-HTTP).
Example: 5nreqs
integer · uint64Number of in-flight HTTP requests.
Example: 12nqueued
integer · uint64Number of queued inbound connections and HTTP requests.
Example: 5ntotal
integer · uint64Total number of inbound connections and HTTP requests handled.
Example: 21message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No instance with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
GetInstancesResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 432
GetServiceGroupsResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 46
GetServiceGroupsResponseData
service_groups
object[]The service group(s) which were retrieved by the request.
GetVolumesResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
HealthzResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the response.
Example: Invalid name 'non-funky-town'errors
object[]A list of errors which may have occurred during the request.
data
objectThe response data for this request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 875
Image
tag
stringThe canonical name of the image is known as the "tag".
Example: my-image:latestdigest
stringThe digest of the image is a unique identifier of the image manifest which is a string representation including the hashing algorithm and the hash value separated by a colon.
Example: 256description
stringA description of the image.
Example: My image descriptioncreated_at
string · date-timeWhen the image was created.
Example: 2023-10-01T12:00:00Zarch
stringThe architecture of the image.
Example: x86_64entrypoint
string[]The entrypoint of the image is the command that is run when the image is started.
Example: ["/bin/sh","-c"]cmd
string[]The command to run when the image is started.
Example: ["/bin/sh","-c"]env
string[]The environment variables to set when the image is started.
Example: ["ENV_VAR=value"]ports
string[]Documented port mappings for the image.
Example: ["8080:80"]volumes
string[]Documented volumes for the image.
Example: ["/data"]labels
objectLabels are key-value pairs.
workdir
stringThe working directory for the image is the directory that is set as the current working directory when the image is started.
Example: /appkernel
objectThe kernel object is a reference to the kernel that is used by the image.
auxiliary_roms
object[]List of auxiliary ROMs that are used by the image.
Instance
uuid
string · 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.
name
stringThe 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.
Example: funky-town-g756b5dcreated_at
string · date-timeThe time the instance was created.
Example: 2023-10-01T12:00:00Zstate
string · enum · enumThe state of the instance. This indicates the current state of the instance, such as whether it is running, stopped, or in an error state.
Enum values:stoppedstartingrunningdrainingstoppingstandbyprivate_fqdn
stringThe 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.
Example: funky-town-g756b5d.internalimage
stringThe image used to create the instance. This is a reference to the Unikraft image that was used to create the instance.
Example: nginx:latestmemory_mb
integer · uint64The 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.
Example: 1024vcpus
integer · uint32The number of vCPUs allocated for the instance. This is the total number of virtual CPUs that are available to the instance for its operations.
Example: 1args
string[]The 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.
Example: --port=8080 --debugenv
objectEnvironment variables set for the instance.
Example: {"ENV_VAR":"value"}start_count
integer · uint64The 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.
Example: 6restart_count
integer · uint64The 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.
Example: 1started_at
string · date-timeThe time the instance was started. This is the timestamp when the instance was last started.
Example: 2023-10-01T12:00:00Zstopped_at
string · date-timeThe 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.
Example: 2023-10-01T12:00:00Zuptime_ms
integer · uint64The total amount of time the instance has been running in milliseconds.
Example: 8954050300vmm_start_time_us
integer · uint64(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.
Example: 70040vmm_load_time_us
integer · uint64(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.
Example: 4050vmm_ready_time_us
integer · uint64(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.
Example: 400boot_time_us
integer · uint64The 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.
Example: 9000net_time_us
integer · uint64This 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.
Example: 11000stop_reason
integer · uint32The 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_code
orstop_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_code
field will be set. - Kernel: The kernel exited. The
stop_code
field 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. Example: 15- 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_code
integer · uint32The 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.Example: 137stop_code
integer · uint32The 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
.
Example: 33024restart_policy
string · enum · enumThe 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. Therestart.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.
Enum values:neveralwayson_failurescale_to_zero
objectThe 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.
volumes
object[]The list of volumes attached to the instance.
service_group
objectThe service group configuration for the instance.
network_interfaces
object[]The network interfaces of the instance.
tags
string[]The tags associated with the instance.
status
string · enum · enumAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
Enum values:successerrormessage
stringAn 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
.Example: No instance with name 'funky-town-g756b5d'error
integer · int32An 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
.Example: 8
InstanceCreateArgsInstanceCreateRequestRoms
image
string · requiredThe image of the ROM to use for the autoscale configuration.
name
stringThe name of the ROM to use for the autoscale configuration.
InstanceInstanceServiceGroup
uuid
string · 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.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe 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.
Example: funky-service-g756b5ddomains
object[]The domain configuration for the service group.
InstanceInstanceVolume
uuid
string · 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.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe 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.
Example: funky-volume-g756b5dat
stringThe mount point of the volume in the instance. This is the directory in the instance where the volume will be mounted.
Example: /mnt/funky-volumeread_only
booleanWhether the volume is read-only or not.
Example: true
InstanceNetworkInterface
uuid
string · uuidThe UUID of the network interface. This is a unique identifier for the network interface that is generated when the instance is created.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abprivate_ip
stringThe private IP address of the network interface. This is the internal IP address that is used for communication between instances within the same network.
Example: 10.0.0.61mac
stringThe MAC address of the network interface.
Example: 12:b0:a0:00:00:3drx_bytes
integer · uint64Amount of bytes received from interface.
Example: 5345rx_packets
integer · uint64Count of packets received from interface
Example: 110tx_bytes
integer · uint64Amount of bytes sent to interface.
Example: 1500tx_packets
integer · uint64Count of packets sent to interface
Example: 12
InstanceScaleToZero
enabled
booleanIndicates whether scale-to-zero is enabled for the instance.
Example: truepolicy
string · enum · enumThe specific policy to use for scaling the instance to zero.
Enum values:onoffidlestateful
booleanWhether 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.
Example: truecooldown_time_ms
integer · int32The 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.
Example: 3000
InstanceServiceGroupInstanceDomain
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
certificate
objectThe 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.
NameOrUUID
Decision Table
Variant | Matching Criteria |
---|---|
type = object · requires: uuid | |
type = object · requires: name |
uuid
string · uuid · requiredMutually exclusive with name.
Example: 123e4567-e89b-12d3-a456-426614174000
Object
digest
stringThe digest is a string representation including the hashing algorithm and the hash value separated by a colon.
Example: sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdefmedia_type
stringThe media type of the layer is a string that identifies the type of content that the layer contains.
Example: application/vnd.oci.image.layer.v1.tarsize
integer · int64The size of the layer in bytes.
Example: 655
Quotas
uuid
string · uuidThe UUID of the quota.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abused
objectUsed quota
hard
objectConfigured quota limits
limits
objectAdditional limits
status
string · enum · enumAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
Enum values:successerrormessage
stringAn 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
.Example: No user with name 'funky-user'error
integer · int32An 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
.Example: 8
QuotasLimits
min_memory_mb
integer · int64Minimum amount of memory assigned to live instances in megabytes
Example: 16max_memory_mb
integer · int64Maximum amount of memory assigned to live instances in megabytes
Example: 2048min_volume_mb
integer · int64Minimum size of a volume in megabytes
Example: 1max_volume_mb
integer · int64Maximum size of a volume in megabytes
Example: 1024min_autoscale_size
integer · int64Minimum size of an autoscale group
Example: 1max_autoscale_size
integer · int64Maximum size of an autoscale group
Example: 16min_vcpus
integer · int64Minimum number of vCPUs
Example: 2max_vcpus
integer · int64Maximum number of vCPUs
Example: 4
QuotasResponse
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operations
QuotasStats
instances
integer · int64Number of instances
Example: 16live_instances
integer · int64Number of instances that are not in the
stopped
stateExample: 4live_vcpus
integer · int64Number of vCPUs
Example: 4live_memory_mb
integer · int64Amount of memory assigned to instances that are not in the
stopped
state in megabytesExample: 2048service_groups
integer · int64Number of services
Example: 15services
integer · int64Number of published network ports over all existing services
Example: 30volumes
integer · int64Number of volumes
Example: 2total_volume_mb
integer · int64Total size of all volumes in megabytes
Example: 1024
Service
port
integer · uint32 · requiredThis is the public-facing port that the service will be accessible from on the Internet.
Example: 443
destination_port
integer · uint32The port number that the instance is listening on. This is the internal port which Unikraft Cloud will forward traffic to.
Example: 8080handlers
string[]Connection handlers to use for the service. Handlers define how the service will handle incoming connections and forward traffic from the Internet to your application. For example, a service can be configured to terminate TLS connections, redirect HTTP traffic, or enable HTTP mode for load balancing. You configure the handlers for every published service port individually.
Enum values:tlshttpredirect
ServiceGroup
uuid
string · 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.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abname
stringThe 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.
Example: funky-service-g7gum5cjcreated_at
string · date-timeThe time the service was created.
Example: 2023-10-01T12:00:00Zpersistent
booleanIndicates 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.
Example: trueautoscale
booleanIndicates 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.
Example: truesoft_limit
integer · uint64The 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.
Example: 1hard_limit
integer · uint64The 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).
Example: 100services
object[]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.
domains
object[]List of domains associated with the service. Domains are used to access the service over the Internet.
instances
object[]List of instances assigned to the service.
status
string · enum · enumAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
Enum values:successerrormessage
stringAn 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
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An 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
.Example: 8
ServiceGroupInstance
uuid
string · 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.
Example: 12345678-90ab-cdef-1234-567890abcdefname
stringThe 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.
Example: funky-vol-g7gum5cj
ServiceGroupTemplate
name
stringThe name of the template used for the autoscale configuration.
Example: funky-instance-templateuuid
string · uuidThe UUID of the template used for the autoscale configuration.
Example: 123e4567-e89b-12d3-a456-426614174000
StartInstanceResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 256
StartInstanceResponseStartedInstance
status
string · enum · enumIndicates whether the start operation was successful or not for this instance.
Enum values:successerroruuid
string · uuidThe UUID of the instance which was deleted.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the instance which was deleted.
Example: funky-town-g756b5dstate
stringThe current state of the instance after this request.
Example: runningprevious_state
stringThe previous state of the instance before it was deleted.
Example: stoppedmessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No instance with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
StopInstanceResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 23
StopInstanceResponseStoppedInstance
uuid
string · uuidThe UUID of the instance.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the instance.
Example: funky-town-g756b5dstate
string · enum · enumThe current state of the instance.
Enum values:stoppedstartingrunningdrainingstoppingstandbyprevious_state
string · enum · enumThe previous state of the instance before the stop operation was invoked.
Enum values:stoppedstartingrunningdrainingstoppingstandbymessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No instance with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
StopInstancesRequestID
uuid
string · uuid · requiredThe UUID of the instance to stop. Mutually exclusive with name.
Example: 123e4567-e89b-12d3-a456-426614174000name
string · requiredThe name of the instance to stop. Mutually exclusive with UUID.
Example: funky-town-g756b5d
force
booleanWhether to immediately force stop the instance.
Example: falsedrain_timeout_ms
integer · uint64Timeout 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.
Example: 250
UpdateInstanceByUUIDRequestBody
prop
string · enum · enum · requiredThe property to modify.
Enum values:imageargsenvmemory_mbvcpusscale_to_zerotagsdelete_lockExample: memory_mbop
string · enum · enum · requiredThe operation to perform on the property.
Enum values:setadddelExample: set
id
string(Optional). A client-provided identifier for tracking this operation in the response.
Example: op-1value
The 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
UpdateInstancesRequest
prop
string · enum · enum · requiredThe property to modify.
Enum values:imageargsenvmemory_mbvcpusscale_to_zerotagsdelete_lockExample: memory_mbop
string · enum · enum · requiredThe operation to perform on the property.
Enum values:setadddelExample: set
id
string(Optional). A client-provided identifier for tracking this operation in the response.
Example: op-1uuid
string · uuidThe UUID of the instance to update. Mutually exclusive with name.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the instance to update. Mutually exclusive with UUID.
Example: funky-town-g756b5dvalue
The 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
UpdateInstancesResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 76
UpdateInstancesResponseData
instances
object[]List of instances that were processed during the update operation.
UpdateInstancesResponseUpdatedInstance
uuid
string · uuidThe UUID of the instance that was updated.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the instance that was updated.
Example: funky-town-g756b5dstatus
stringThe status of this particular instance update operation.
Example: successid
string(Optional). The client-provided ID from the request.
Example: op-1message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No instance with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
UpdateServiceGroupByUUIDRequestBody
prop
string · enum · enum · requiredThe property to modify.
Enum values:servicesdomainssoft_limithard_limitExample: servicesop
string · enum · enum · requiredThe operation to perform.
Enum values:setadddelExample: set
id
string(Optional). A client-provided identifier for tracking this operation in the response.
Example: op-1value
The value for the update operation:
- For "services": array of Service objects
- For "domains": array of Domain objects
- For "soft_limit": integer (1–65535), must be <= "hard_limit"
- For "hard_limit": integer (1–65535), must be >= "soft_limit"
UpdateServiceGroupsRequestItem
prop
string · enum · enum · requiredThe property to modify.
Enum values:servicesdomainssoft_limithard_limitExample: servicesop
string · enum · enum · requiredThe operation to perform.
Enum values:setadddelExample: set
id
string(Optional). A client-provided identifier for tracking this operation in the response.
Example: op-1uuid
string · uuidThe UUID of the service group to update. Mutually exclusive with name.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the service group to update. Mutually exclusive with UUID.
Example: funky-town-g756b5dvalue
The value for the update operation:
- For "services": array of Service objects
- For "domains": array of Domain objects
- For "soft_limit": integer (1–65535), must be <= "hard_limit"
- For "hard_limit": integer (1–65535), must be >= "soft_limit"
UpdateServiceGroupsResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 76
UpdateServiceGroupsResponseData
service_groups
object[]List of service groups that were processed during the update operation.
UpdateServiceGroupsResponseUpdatedServiceGroup
uuid
string · uuidThe UUID of the service group that was updated.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the service group that was updated.
Example: funky-town-g756b5dstatus
stringThe status of this particular service group update operation.
Example: successid
string(Optional). The client-provided ID from the request.
Example: op-1message
stringAn 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
.Example: No service with name 'funky-town-g756b5d'error
integer · int32An 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
.Example: 8
UpdateVolumeByUUIDRequestBody
prop
string · enum · enum · requiredThe property to modify.
Enum values:size_mbtagsquota_policydelete_lockExample: size_mbop
string · enum · enum · requiredThe operation to perform.
Enum values:setadddelExample: set
id
string(Optional). A client-provided identifier for tracking this operation in the response.
Example: op-1value
The 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
prop
string · enum · enum · requiredThe property to modify.
Enum values:size_mbtagsquota_policydelete_lockExample: size_mbop
string · enum · enum · requiredThe operation to perform.
Enum values:setadddelExample: set
id
string(Optional). A client-provided identifier for tracking this operation in the response.
Example: op-1uuid
string · uuidThe UUID of the volume to update. Mutually exclusive with name.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the volume to update. Mutually exclusive with UUID.
Example: funky-town-g756b5dvalue
The value for the update operation. The type depends on the property and operation:
- For "size_mb": unsigned integer
- For "quota_policy": 1 - static reservation, 2 - dynamic reservation
- For "tags": array of Strings
- For "delete_lock": boolean
UpdateVolumesResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 76
UpdateVolumesResponseData
volumes
object[]List of volumes that were processed during the update operation.
UpdateVolumesResponseUpdatedVolume
uuid
string · uuidThe UUID of the volume that was updated.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the service group that was updated.
Example: funky-town-g756b5dstatus
stringThe status of this particular volume update operation.
Example: successid
string(Optional). The client-provided ID from the request.
Example: op-1message
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No volume with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8
Volume
uuid
string · 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.
Example: c1d2e3f4-5678-90ab-cdef-1234567890abname
stringThe 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.
Example: funky-town-g7gum5cjcreated_at
string · date-timeThe time the volume was created.
Example: 2021-01-01T00:00:00Zstate
string · enum · enumCurrent state of the volume.
Enum values:uninitializedinitializingavailableidlemountedbusyerrorsize_mb
integer · uint64The size of the volume in megabytes.
Example: 64persistent
booleanIndicates if the volume will stay alive when the last instance is deleted that this volume is attached to.
Example: trueattached_to
object[]List of instances that this volume is attached to.
mounted_by
object[]List of instances that have this volume mounted.
tags
string[]The tags associated with the volume.
status
string · enum · enumAn optional field representing the status of the request. This field is only set when this message object is used as a response message.
Enum values:successerrormessage
stringAn 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
.Example: No volume with name 'funky-town-g756b5d'error
integer · int32An 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
.Example: 8
VolumeInstanceID
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
name
stringThe name of the instance that the volume is attached to.
Example: funky-town-g7gum5cj
VolumeVolumeInstanceMount
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
name
stringThe name of the instance that the volume is mounted in.
Example: funky-town-g7gum5cj
WaitInstanceByUUIDRequestBody
Decision Table
Variant | Matching Criteria |
---|---|
type = object |
timeout_ms
integer · int64Timeout 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.
Example: 450
WaitInstanceResponse
status
string · enum · enumThe status of the response.
Enum values:successerrormessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: Failed to perform all operationsdata
objectThe response data for this request.
errors
object[]A list of errors which may have occurred during the request.
op_time_us
integer · uint64The operation time in microseconds. This is the time it took to process the request and generate the response.
Example: 450
WaitInstanceResponseWaitedInstance
uuid
string · uuidThe UUID of the instance.
Example: 123e4567-e89b-12d3-a456-426614174000name
stringThe name of the instance.
Example: funky-town-g756b5dstate
string · enum · enumThe current state of the instance.
Enum values:stoppedstartingrunningdrainingstoppingstandbymessage
stringAn optional message providing additional information about the status. This field is useful when the status is not
success
.Example: No instance with name 'funky-town-g756b5d'error
integer · int32An optional error code providing additional information about the status. This field is useful when the status is not
success
.Example: 8