kibotos.ctrl.v1 types
This page lists the messages and enums of kibotos.ctrl.v1 that no single service owns, generated from ctrl.proto and its comments. Those that one service uses are on that service's page.
WorkspaceStop
WorkspaceStop is the stop that took the Workspace to STOPPING or STOPPED.
command_id is the stop command; GetWorkspaceCommand returns its result.
durability is the result of the stop once it completed, and UNSPECIFIED while it is still running.
CommandMetadata
CommandMetadata makes every lifecycle mutation idempotent. Reusing a command_id with different input is a conflict.
TemplateRef
TemplateSelector
TemplateSelector is creation intent. An empty revision selects the current default; persisted and returned Workspace state always uses TemplateRef.
TemplateDeliveryObservation
transferred_bytes and total_bytes are raw counters, zero when unknown. A Workspace can wait on a first cold delivery, so the caller needs to distinguish progress from a stall. They carry no artifact identity.
ResourceRequest
Guest RAM. It must be a whole number of MiB and at least 128 MiB, so the requested value is exactly what the execution receives. The upper bound is available capacity and is judged when an execution is placed.
Capacity of the Workspace's writable filesystem layer, which is also the disk capacity a placement reserves for it. There is one number, not a separate scheduling declaration: what is reserved is what the layer gets. In a creation request, zero delegates the choice to the storage profile of whatever runs the Workspace. A non-zero request must be a whole number of MiB. A returned Workspace reports the capacity it asked for; the capacity its layer actually has is the BEST_EFFORT retention tier's capacity_bytes, which is absent until the layer exists. ResizeWorkspaceWritableLayer is the only way this value changes after creation, and it only moves upward.
CapabilityRequirements
WorkspaceVolumeBinding
WorkspaceVolumeBinding is the Workspace's side of its Volume relationship. A Workspace that holds no execution can replace it through UpdateWorkspaceVolumeBinding; a Volume is never bound by more than one undeleted Workspace at a time.
Required for BOUND and must be empty for NEW and NONE requests. Stored bindings carry the exact Volume ID for BOUND.
Absolute guest path the Volume is mounted at. Empty selects the default /data; it must be empty for NONE. Stored bindings always carry the exact path.
delete_with_workspace is a property of the binding, not of the Volume: DeleteWorkspace physically deletes the Volume when it is on and only releases the binding when it is off. A NEW request defaults it on, a BOUND request defaults it off, and NONE must leave it unset. Releasing the binding through UpdateWorkspaceVolumeBinding always keeps the Volume, whatever this says. A Volume a NEW request asked for that no launch has finished creating holds nothing to keep: DeleteWorkspace deletes it whatever this says. DeleteWorkspace touches only a Volume still bound to the Workspace it deletes. A failed RestoreWorkspace that holds no execution releases the imported Volume whatever this says. Stored bindings always carry an explicit value.
NetworkPolicy
NetworkPolicy is the expected egress policy of a Workspace. On input mode, allow, deny, egresses and resolvers are read; an unspecified mode selects DENY_ALL.
revision is assigned by the server: it starts at 1 when the Workspace is created and increases by one each time the content changes. It is independent of Workspace.generation. The server ignores the value in a request, and two requests that differ only here are the same command.
allow and deny narrow PUBLIC_INTERNET by destination address. Each entry is one address or one CIDR in canonical text: no host bits set in a CIDR, no leading zeros, IPv6 in compressed lowercase form, no zone. An entry acts only on its own address family, so 0.0.0.0/0 leaves IPv6 open. A destination in allow is admitted even when deny also covers it; a destination only in deny is refused, whether it would leave directly or through an Egress; anything else follows the mode. For traffic that leaves directly the hard deny of private, local and platform ranges always wins, so entries in those ranges are valid and act only on traffic forwarded through an Egress. DNS queries to the link DNS address are never narrowed. DENY_ALL accepts no entries. The server keeps both lists in the order given, and a change to either one is a content change.
egresses send part of PUBLIC_INTERNET through caller-owned Egresses. A new TCP connection the deny list does not refuse and whose destination an entry's destinations cover leaves through that entry's Egress, without the hard deny check; an ICMP echo request to such a destination is refused at once with administratively prohibited; everything else leaves directly. DNS queries to the link DNS address are not forwarded by destination; only resolvers sends them through an Egress. When forwarding fails the guest connection is reset and never falls back to leaving directly. At most one entry is accepted, and DENY_ALL accepts none. Adding, removing or replacing an entry, or changing its destinations, is a content change. A connection whose path the change moves keeps its old path for the drain_seconds of that UpdateWorkspaceNetworkPolicy call.
resolvers lists the upstreams the link DNS address forwards the guest's queries to, in place of the deployment resolvers. At most one entry is accepted, and DENY_ALL accepts none. When an upstream is unavailable the query is answered with SERVFAIL and never falls back to the deployment resolvers. Adding, removing or replacing an entry, or changing its path, is a content change.
NetworkPolicyResolver
NetworkPolicyResolver names one Resolver and the path its queries take.
resolver_id must name a Resolver that exists; a missing or deleted one is not_found.
path is required.
ResolverPath
ResolverPath is how the connections or datagrams to an upstream leave. Exactly one branch is selected; none is invalid_argument.
- One of
kinddirect sends them from the host's own uplink address. The upstream address is checked against the fixed special-purpose ranges when the policy is set, and against the hard deny set on every dial.
egress_id sends them through this Egress, which must be listed in the same policy's egresses, whether or not that entry's destinations cover the upstream; the upstream address is not checked and may be in the caller's private network. A udp Resolver requires the Egress to have udp_enabled.
ResolverDirectPath
ResolverDirectPath selects the direct path. It has no content.
This message has no fields.
NetworkPolicyEgress
NetworkPolicyEgress names one Egress and the destinations that leave through it.
egress_id must name an Egress that exists; a missing or deleted one is not_found.
destinations has 1 to 256 entries, each in the text of allow and deny and acting only on its own address family. Entries may name private and hard deny ranges. They are matched as a set, so order and duplicates do not change which connections are forwarded; the server keeps them in the order given, and reordering them is a content change but moves no connection.
NetworkPolicyStatus
NetworkPolicyStatus is the policy confirmed as applied for the current execution. It is absent until the first confirmation and after a failed application, so callers judge enforcement by applied_revision, never by an RPC having returned success.
egresses has one entry for each Egress the applied policy references, and is empty when it references none.
draining_revision is the earliest policy revision whose connections are still open on a path a later revision moved them off; they close when the drain_seconds of that change runs out. Zero when none are left.
resolvers has one entry for each entry of the applied policy's resolvers, identified by resolver_id and path, and is empty when it references none.
NetworkPolicyEgressStatus
NetworkPolicyEgressStatus is how one referenced Egress is in force.
applied_revision is the Egress revision new connections use. A value below Egress.revision means the update has not taken effect here yet; until it does, new connections keep using applied_revision.
draining_revision is the earliest earlier revision of this Egress that still carries open connections; they close when the drain_seconds of the update that replaced it runs out. Zero when none are left.
NetworkPolicyResolverStatus
NetworkPolicyResolverStatus is how one entry of the policy's resolvers is in force.
applied_revision is the Resolver revision new queries use. A value below Resolver.revision means the update has not taken effect here yet.
WorkspaceSpec
At most one Volume. The binding is set at creation and can be replaced through UpdateWorkspaceVolumeBinding while the Workspace holds no execution.
launch_ref is the opaque identity of one exact launch: a Launch revision is immutable, but which one this Workspace is bound to can advance. An explicit StartWorkspace rebinds it to the current Platform default of the PlatformKey it is already on; every other path into a running state keeps the stored value. Its representation and backing artifact locations remain private.
network_policy always carries mode and revision. It is the expectation; Workspace.network_policy_status is the observation.
resources_revision starts at one and increases every time the stored resources change. It is the CAS token UpdateWorkspaceMemory expects.
launch_binding_version starts at one and advances only when an explicit start rebinds launch_ref. Comparing it across a stop/start says whether this Workspace changed Platform, without resolving launch_ref.
binding_revision starts at one and increases every time the stored Volume binding changes. It is the CAS token UpdateWorkspaceVolumeBinding expects and moves independently of resources_revision.
WorkspaceCreateSpec
WorkspaceCreateSpec separates unresolved creation intent from the exact TemplateRef stored in WorkspaceSpec.
network_policy may be omitted; an omitted or unspecified mode is DENY_ALL.
WorkspaceFailure
RetentionTier
RetentionTier is a provider-neutral projection. Overlapping paths use the longest matching prefix; provider-private refs and layer identities are omitted.
capacity_bytes is the capacity this tier's storage was confirmed to have. Only the BEST_EFFORT tier reports it, and only once its layer exists: a Workspace that has never started has a requested capacity and no confirmed one. It is the observation a caller compares against the request in spec.resources.ephemeral_disk_bytes.
Workspace
Empty means the Workspace has no promised persistent path (NONE). A bound Volume yields exactly one value: its mount_path.
The number of times this Workspace has run. It starts at one when the first execution is available and increases after each successful start. It never exposes an implementation-private resource identity.
Exactly one PROMISED, BEST_EFFORT, and NONE entry is returned. The path shape is [mount_path] (empty and NOT_DECLARED without a Volume), /, and [/tmp, /run], respectively.
delivery is present while a Workspace waits for its Template artifacts to become locally usable. That wait is a transfer whose duration is proportional to artifact bytes, so "still arriving" must be distinguishable from "stuck" and from "failed". It is absent once the Workspace is available, and it carries no placement or infrastructure identity.
network_policy_status is present only while a verified policy is in force for the current execution. applied_revision below spec.network_policy.revision means a change was issued and not confirmed.
labels and annotations are caller-owned key-value data. ctrl never interprets either: it does not schedule, authorize, or bill on them. Both are visible to every caller that can read the resource, so neither may carry bearer credentials, keys, or values derived from them. Keys follow the Kubernetes qualified-name rules for both; label values follow the Kubernetes label-value rules, annotation values are any UTF-8 string without U+0000. Only labels can be selected on (label_selector); annotations are stored and returned verbatim and never indexed.
labels_revision starts at one and increases every time the stored labels change. It is the CAS token UpdateWorkspaceLabels expects and moves independently of every other revision.
annotations_revision is the same for annotations and UpdateWorkspaceAnnotations.
guest_observation is what the host running the current execution last reported about its guest. It is absent when there is no current execution or the host has not reported one yet. It is an observation, not a state: an UNRESPONSIVE guest leaves state, admission and expiration unchanged, and the guest may recover. Force stop recovers a guest that does not.
last_stop is present while the Workspace is STOPPING or STOPPED and names the stop that took it there. Start and delete clear it. A Workspace stopped by a release that did not record it has none.
egress_observations reports faults of the Egresses themselves, one entry for each Egress the current execution forwards through that is failing. It is empty when none is. It is an observation, not a state: it never changes state, and reading it never asks the host. A destination the Egress reports unreachable or refused is the result of one connection and is not an Egress fault.
resolver_observations reports faults of the upstream leg of the policy's resolvers, one entry for each failing entry, identified by resolver_id and path. It is empty when none is. A fault of the Egress a query goes through is reported in egress_observations, not here. It is an observation, not a state: it never changes state, and reading it never asks the host. An NXDOMAIN or SERVFAIL the upstream answers is a DNS result and not an upstream fault.
EgressObservation
EgressObservation is the current run of failures of one Egress. It stays the same while the failures continue and is cleared by the next connection that succeeds through the Egress.
failing_since is when this run of consecutive failures began, on the clock of the host that observed it.
observed_at is when ctrl recorded this report, on ctrl's own clock.
ResolverObservation
ResolverObservation is the current run of failures of one entry of the policy's resolvers. It stays the same while the failures continue and is cleared by the next query that succeeds.
failing_since is when this run of consecutive failures began, on the clock of the host that observed it.
observed_at is when ctrl recorded this report, on ctrl's own clock.
GuestObservation
observed_at is when ctrl recorded this report, on ctrl's own clock.
unresponsive_since is present only for UNRESPONSIVE: the first of the failed probes, on the clock of the host that probed.
error is the latest probe failure; empty for RESPONDING.
rebooted means the guest answered with a boot other than the one that started this execution.
memory_condition is the guest's latest judgment of its processes' memory. It is UNSPECIFIED, meaning unknown, whenever condition is not RESPONDING.
memory_saturated_since is present only for SATURATED: when it began, on the clock of the host that probed.
memory_kill_count is how many of the processes the guest killed since it booted because they stayed saturated. It is zero for a guest that predates this report, which never kills. Unlike memory_condition it stands while the guest does not respond.
latest_memory_kill describes the latest of those kills; absent while memory_kill_count is zero.
restart_count is how many times this execution's guest reset itself and came back within the same execution. A later execution starts from zero. While the guest is coming back there is no observation at all, so it reads again once the guest answers.
last_reset_at is present only when restart_count is not zero: when the guest last reset its machine, on the clock of the host that saw it.
GuestMemoryKill
GuestMemoryKill is one process the guest killed with SIGKILL because the processes stayed saturated at their memory limit: the one with the largest resident set among them.
killed_at is on the clock of the host that probed the guest.
command is the process's name as the guest kernel keeps it, without its arguments, and is at most a few dozen bytes.
full_stall_permille is the share of the window, in thousandths, during which every process was stalled waiting for memory, when the guest decided.
window is the span full_stall_permille covers.
saturated_for is how long saturation had lasted when the guest decided.
VolumeSpec
storage_pool names the storage this Volume lives in. Where a Volume lives decides where the Workspace bound to it can run, so a deployment that splits its storage exposes that choice here. An empty value in a creation request selects the deployment's default pool; a returned spec always names the resolved pool. It changes only when the deployment's operator moves the Volume to another pool, so a caller reads it from the Volume instead of keeping its own copy. Requires the volume.storage_pool capability.
In a creation request, zero delegates capacity selection to the configured storage profile. In a returned Volume it is never zero: it is the capacity the Volume actually has. ResizeVolume is the only way it changes, and it only ever grows. The historical result of the original CreateVolume keeps the value that creation returned.
VolumeFailure
Volume
bound_workspace_id names the non-deleted Workspace whose spec binds this Volume. Empty when the Volume is free. Whether that Workspace deletes the Volume with itself is a property of its binding, not of the Volume.
labels and annotations have the same meaning, rules, and limits as on Workspace. Both remain readable after the Volume is deleted.
labels_revision is the CAS token UpdateVolumeLabels expects.
annotations_revision is the CAS token UpdateVolumeAnnotations expects.
observation is what the current holder of this Volume last reported about it. It is diagnostic: state is changed only by commands, and no admission reads the observation. It is kept as it was while nothing holds the Volume, so observed_at says how current it is. GetVolume and ListVolumes return it; command responses do not. Absent until a holder first reports.
VolumeObservation
observed_at is when ctrl recorded this report, on ctrl's own clock.
reason and message say why a DAMAGED Volume is damaged. Both are empty for a HEALTHY one.
TransferFailure
TransferManifest
TransferManifest is a provider-neutral summary. The internal artifact manifest may contain implementation-private data that is never projected.
Transfer
ErrorDetail
ErrorDetail is attached to a canonical Connect error. observed_workspace reports durable state after a mutation or a failed expiration precondition.
input_offset is the number of input bytes the process has accepted, on a SendInput that carried input_offset and failed.
command_settled says this answer is the recorded result of the command it names: sending the same command_id again replays it, whatever retryable says, so trying again takes a new command_id. A retryable failure without it has no recorded result, and the same command_id reaches the command.
WorkspaceExpirationPolicy
Positive duration from native admission, including creation time.
WorkspaceExpiration
Starts at one and remains present when the policy is cleared or consumed.
WorkspaceExpirationChange
WorkspaceExpirationChange is the one shape every entry point that can replace an already existing policy accepts. Creating entry points take a bare WorkspaceExpirationPolicy instead: they have nothing to clear.
- One of
changeMust be true. Clearing advances revision and invalidates old candidates.
WorkspaceState
WORKSPACE_STATE_UNSPECIFIED= 0WORKSPACE_STATE_CREATING= 1WORKSPACE_STATE_AVAILABLE= 2WORKSPACE_STATE_STOPPING= 3WORKSPACE_STATE_STOPPED= 4WORKSPACE_STATE_STARTING= 5WORKSPACE_STATE_DELETING= 6WORKSPACE_STATE_DELETED= 7WORKSPACE_STATE_FAILED= 8WORKSPACE_STATE_UNKNOWN= 9UNKNOWN is an observed state. UNSPECIFIED means a field was not supplied.
GuestCondition
GuestCondition says whether the guest of the current execution still answers the periodic probe of the host that runs it.
GUEST_CONDITION_UNSPECIFIED= 0GUEST_CONDITION_RESPONDING= 1GUEST_CONDITION_UNRESPONSIVE= 2
GuestMemoryCondition
GuestMemoryCondition says whether the processes running in the guest of the current execution are held at their memory limit. The guest has no swap: at the limit the kernel keeps reclaiming the processes' own file pages, which they read straight back, so nothing is killed and the guest still answers while the processes make almost no progress.
GUEST_MEMORY_CONDITION_UNSPECIFIED= 0UNSPECIFIED means unknown, never normal: the guest's Platform or the host predates the report, the guest kernel does not account memory pressure, or the guest is unresponsive.
GUEST_MEMORY_CONDITION_NORMAL= 1NORMAL means the guest measures memory pressure and the processes are not held at their limit.
GUEST_MEMORY_CONDITION_SATURATED= 2SATURATED means that for a sustained window the processes spent most of the time with every one of them stalled waiting for memory. It clears on its own once demand falls. A guest that can kills the largest process when it lasts, and GuestObservation.memory_kill_count and latest_memory_kill report that; stopping and starting the Workspace recovers one that stays saturated regardless.
VolumeCondition
VolumeCondition is the holder's verdict on a Volume's data. DAMAGED means the holder could not open it as the Volume that was created.
VOLUME_CONDITION_UNSPECIFIED= 0VOLUME_CONDITION_HEALTHY= 1VOLUME_CONDITION_DAMAGED= 2
VolumeState
VOLUME_STATE_UNSPECIFIED= 0VOLUME_STATE_CREATING= 1VOLUME_STATE_AVAILABLE= 2VOLUME_STATE_ATTACHED= 3VOLUME_STATE_DELETING= 4VOLUME_STATE_DELETED= 5VOLUME_STATE_FAILED= 6VOLUME_STATE_UNKNOWN= 7VOLUME_STATE_RESIZING= 8RESIZING is held for the duration of a capacity change. It is not AVAILABLE: no attachment and no new binding is admitted until the change commits, and a query during it is not a plain success.
VOLUME_STATE_LOST= 9LOST means an operator declared the Volume's storage pool lost. Its data is gone and never replaced with an empty Volume: the Volume can be read and deleted, and every other operation fails as failed_precondition. A Workspace bound to it fails to start with FAILURE_REASON_VOLUME_LOST until it is bound to another Volume or deleted.
Completeness
COMPLETENESS_UNSPECIFIED= 0COMPLETENESS_COMPLETE= 1COMPLETENESS_PARTIAL= 2COMPLETENESS_UNKNOWN= 3
TemplateDeliveryState
TEMPLATE_DELIVERY_STATE_UNSPECIFIED= 0TEMPLATE_DELIVERY_STATE_READY= 1TEMPLATE_DELIVERY_STATE_NOT_READY= 2TEMPLATE_DELIVERY_STATE_UNKNOWN= 3
TemplateDeliveryReason
TEMPLATE_DELIVERY_REASON_UNSPECIFIED= 0TEMPLATE_DELIVERY_REASON_DISTRIBUTING= 1TEMPLATE_DELIVERY_REASON_CAPABILITY_MISMATCH= 2TEMPLATE_DELIVERY_REASON_NO_SUPPORTED_PATH= 3TEMPLATE_DELIVERY_REASON_OBSERVATION_STALE= 4TEMPLATE_DELIVERY_REASON_PREPARATION_FAILED= 5
TransferState
TRANSFER_STATE_UNSPECIFIED= 0TRANSFER_STATE_EXPORTING= 1TRANSFER_STATE_COMPLETE= 2TRANSFER_STATE_IMPORTING= 3TRANSFER_STATE_IMPORTED= 4TRANSFER_STATE_RESTORING= 5TRANSFER_STATE_RESTORED= 6TRANSFER_STATE_DELETING= 7TRANSFER_STATE_DELETED= 8TRANSFER_STATE_FAILED= 9TRANSFER_STATE_UNKNOWN= 10TRANSFER_STATE_EXPIRED= 11
StopDurability
StopDurability reports whether a completed stop confirmed writeback. It is a fact about that stop command only; it does not change retention tiers. The zero value means the stop has not completed yet, or that it completed on a release earlier than v0.1.0, where every stop was a normal stop.
STOP_DURABILITY_UNSPECIFIED= 0STOP_DURABILITY_CONFIRMED= 1STOP_DURABILITY_UNCONFIRMED= 2
StopCause
StopCause is who or what stopped a Workspace.
STOP_CAUSE_UNSPECIFIED= 0Stops completed by a release that did not record a cause.
STOP_CAUSE_REQUESTED= 1A caller's StopWorkspace, in either mode.
STOP_CAUSE_EXPIRED= 2The Workspace's expiration policy.
STOP_CAUSE_HOST_MEMORY_EXHAUSTED= 3The host ran out of memory and its OOM killer ended the execution. ctrl released it as a forced stop, so a caller can start the Workspace again.
STOP_CAUSE_GUEST_SHUTDOWN= 4The guest shut its machine down. ctrl released the execution as a forced stop, so a caller can start the Workspace again.
RetentionTierKind
RETENTION_TIER_KIND_UNSPECIFIED= 0RETENTION_TIER_KIND_PROMISED= 1RETENTION_TIER_KIND_BEST_EFFORT= 2RETENTION_TIER_KIND_NONE= 3
RetentionAvailability
RETENTION_AVAILABILITY_UNSPECIFIED= 0RETENTION_AVAILABILITY_AVAILABLE= 1RETENTION_AVAILABILITY_UNAVAILABLE= 2RETENTION_AVAILABILITY_NOT_DECLARED= 3NOT_DECLARED is returned for the PROMISED tier of a Workspace created without a Volume: the caller declared no promised persistent path.
RetentionContinuity
RETENTION_CONTINUITY_UNSPECIFIED= 0RETENTION_CONTINUITY_CONTINUED= 1RETENTION_CONTINUITY_RESET= 2RETENTION_CONTINUITY_UNKNOWN= 3
RetentionResetReason
RETENTION_RESET_REASON_UNSPECIFIED= 0RETENTION_RESET_REASON_FIRST_START= 1RETENTION_RESET_REASON_LAYER_UNAVAILABLE= 2RETENTION_RESET_REASON_TEMPLATE_CHANGED= 3
ReestablishRequirement
REESTABLISH_REQUIREMENT_UNSPECIFIED= 0REESTABLISH_REQUIREMENT_DATA_PLANE_SESSION= 1REESTABLISH_REQUIREMENT_CREDENTIAL= 2REESTABLISH_REQUIREMENT_PROCESS= 3REESTABLISH_REQUIREMENT_LOGIN_STATE= 5
FailureReason
FAILURE_REASON_UNSPECIFIED= 0FAILURE_REASON_INVALID_REQUEST= 1FAILURE_REASON_NOT_FOUND= 2FAILURE_REASON_CONFLICT= 3FAILURE_REASON_RESOURCE_EXHAUSTED= 4FAILURE_REASON_CAPABILITY_UNAVAILABLE= 5FAILURE_REASON_UNAUTHENTICATED= 6FAILURE_REASON_PERMISSION_DENIED= 7FAILURE_REASON_UNAVAILABLE= 8FAILURE_REASON_TIMED_OUT= 9FAILURE_REASON_PROTOCOL_INCOMPATIBLE= 10FAILURE_REASON_SESSION_EXPIRED= 11FAILURE_REASON_SESSION_REVOKED= 12FAILURE_REASON_UNSUPPORTED= 13FAILURE_REASON_CANCELLED= 14FAILURE_REASON_INTERNAL= 15FAILURE_REASON_VOLUME_LOST= 16VOLUME_LOST is not retryable: the Volume a Workspace is bound to is VOLUME_STATE_LOST. Bind another Volume or delete the Workspace.
FailureStage
FAILURE_STAGE_UNSPECIFIED= 0FAILURE_STAGE_VALIDATING= 1FAILURE_STAGE_PLACING= 2FAILURE_STAGE_CREATING= 3FAILURE_STAGE_WAITING_FOR_READINESS= 4FAILURE_STAGE_STOPPING= 5FAILURE_STAGE_STARTING= 6FAILURE_STAGE_DELETING= 7FAILURE_STAGE_ISSUING_SESSION= 8FAILURE_STAGE_AUTHORIZING_DATA_PLANE= 9FAILURE_STAGE_READING_FILE= 10FAILURE_STAGE_WRITING_FILE= 11FAILURE_STAGE_DELETING_FILE= 12FAILURE_STAGE_STARTING_PROCESS= 13FAILURE_STAGE_STREAMING_PROCESS= 14FAILURE_STAGE_CREATING_VOLUME= 17FAILURE_STAGE_DELETING_VOLUME= 18FAILURE_STAGE_EXPORTING_WORKSPACE= 19FAILURE_STAGE_IMPORTING_TRANSFER= 20FAILURE_STAGE_RESTORING_WORKSPACE= 21FAILURE_STAGE_DELETING_TRANSFER= 22FAILURE_STAGE_OBSERVING_CLEANUP= 23FAILURE_STAGE_USING_PROCESS= 29FAILURE_STAGE_ROTATING_DATA_PLANE= 30FAILURE_STAGE_INSPECTING_FILE= 31FAILURE_STAGE_MOVING_FILE= 32FAILURE_STAGE_CREATING_DIRECTORY= 33FAILURE_STAGE_APPLYING_NETWORK= 34FAILURE_STAGE_CONNECTING_SERVICE= 35FAILURE_STAGE_USING_SERVICE= 36FAILURE_STAGE_RESIZING_VOLUME= 37FAILURE_STAGE_RESIZING_WRITABLE_LAYER= 38FAILURE_STAGE_CAPTURING_SCREEN= 39FAILURE_STAGE_DELIVERING_INPUT= 40FAILURE_STAGE_CREATING_EXPOSURE= 41FAILURE_STAGE_REVOKING_EXPOSURE= 42FAILURE_STAGE_WATCHING_DIRECTORY= 43FAILURE_STAGE_READING_METRICS= 44
WorkspaceVolumeMode
WorkspaceVolumeMode names where a Workspace's promised persistent Volume comes from. NEW is a request-only source: a stored binding is BOUND or NONE.
WORKSPACE_VOLUME_MODE_UNSPECIFIED= 0In a creation request UNSPECIFIED means NEW. Stored specs always carry an exact mode.
WORKSPACE_VOLUME_MODE_NEW= 1NEW: ctrl creates a Volume and binds it, with delete_with_workspace on unless the request says otherwise. Only CreateWorkspace accepts it.
WORKSPACE_VOLUME_MODE_BOUND= 2BOUND: the Workspace is bound to an existing Volume named by volume_id.
WORKSPACE_VOLUME_MODE_NONE= 3NONE: the Workspace has no Volume and no promised persistent path.
NetworkPolicyMode
NetworkPolicyMode is the Workspace's egress posture. DENY_ALL is the default and is not changed by deployment configuration. PUBLIC_INTERNET allows guest-initiated TCP and ICMP echo requests to public destinations over IPv4 and IPv6, and the replies to them; the hard deny of private, local, and platform address ranges applies under both to traffic that leaves directly. Connections forwarded through an Egress leave from the caller's network and are not subject to it.
A guest sends DNS only to the link DNS address, the only nameserver of a newly started guest: the gateway address of its network slot in the family of the first deployment resolver (fe80::1 for IPv6). Under DENY_ALL a query to it fails at once and no packet leaves the slot. Under PUBLIC_INTERNET it goes to the first deployment resolver of the same family, or to the Resolver the policy references. allow, deny and egresses never act on these queries, and changing the policy never rewrites the guest's nameserver.
NETWORK_POLICY_MODE_UNSPECIFIED= 0NETWORK_POLICY_MODE_DENY_ALL= 1NETWORK_POLICY_MODE_PUBLIC_INTERNET= 2
EgressObservationKind
EgressObservationKind is why connections through an Egress fail before they reach a destination. Values will be added: a caller treats a value it does not know as a fault of the Egress, never as no fault.
EGRESS_OBSERVATION_KIND_UNSPECIFIED= 0EGRESS_OBSERVATION_KIND_ENDPOINT_UNREACHABLE= 1ENDPOINT_UNREACHABLE: the endpoint could not be connected to, or every address its hostname resolved to was removed by the dial check.
EGRESS_OBSERVATION_KIND_TLS_VERIFICATION_FAILED= 2TLS_VERIFICATION_FAILED: the endpoint certificate is not trusted or does not match server_name.
EGRESS_OBSERVATION_KIND_HANDSHAKE_FAILED= 3HANDSHAKE_FAILED: the protocol negotiation failed, the endpoint answered with something invalid, or it timed out.
EGRESS_OBSERVATION_KIND_AUTHENTICATION_FAILED= 4AUTHENTICATION_FAILED: the endpoint explicitly rejected the credentials. Its absence does not mean the credentials are right: an endpoint that does not answer wrong credentials shows as ENDPOINT_UNREACHABLE or HANDSHAKE_FAILED.
EGRESS_OBSERVATION_KIND_UDP_ASSOCIATION_FAILED= 5UDP_ASSOCIATION_FAILED: the endpoint refused a UDP association, the dial check removed the relay address it answered, or sending to the relay reported it unreachable.
ResolverObservationKind
ResolverObservationKind is why queries to an upstream fail. Values will be added: a caller treats a value it does not know as a fault of the upstream, never as no fault.
RESOLVER_OBSERVATION_KIND_UNSPECIFIED= 0RESOLVER_OBSERVATION_KIND_UPSTREAM_UNREACHABLE= 1UPSTREAM_UNREACHABLE: the upstream could not be connected to, or on the direct path the dial check removed every address it resolved to.
RESOLVER_OBSERVATION_KIND_UPSTREAM_TIMEOUT= 2UPSTREAM_TIMEOUT: the upstream did not answer within the query deadline.
RESOLVER_OBSERVATION_KIND_TLS_VERIFICATION_FAILED= 3TLS_VERIFICATION_FAILED: the certificate of a tls or https upstream is not trusted or does not match its host.
RESOLVER_OBSERVATION_KIND_HTTP_ERROR_STATUS= 4HTTP_ERROR_STATUS: an https upstream answered with a status outside 2xx.
WorkspaceExpirationAction
Expiration is a ctrl-owned absolute deadline, independent of execution generation.
WORKSPACE_EXPIRATION_ACTION_UNSPECIFIED= 0WORKSPACE_EXPIRATION_ACTION_STOP= 1WORKSPACE_EXPIRATION_ACTION_DELETE= 2
DesktopService
This page lists the methods of DesktopService in kibotos.ctrl.v1 with the messages and enums each one uses, generated from ctrl.proto and its comments. Those that several services use are on kibotos.ctrl.v1 types.
ArtifactPublicationService
This page lists the methods of ArtifactPublicationService in kibotos.operator.v1 with the messages and enums each one uses, generated from operator.proto and its comments. Those that several services use are on kibotos.operator.v1 types.