Messages

ActorCrash

ActorCrash describes the failure that moved an Actor to CRASHED.

FieldDescriptionType
message

message is a human-readable description of the failure.

string
crash_time

crash_time is when the Actor entered CRASHED.

google.protobuf.Timestamp

ActorJwtSource

ActorJwtSource has the gateway mint a JWT for the Actor that sent the request. Relying parties verify it with OpenID Connect Discovery against its issuer. The gateway reuses a JWT across requests while enough of its lifetime remains, so its jti does not identify a single request.

FieldDescriptionType
audiences

The audiences the JWT is bound to, which become its aud claim.

repeated string
expiration_seconds

Lifetime of each JWT, in seconds.

int64

ActorMetadataDataSource

ActorMetadataDataSource projects the actor's identity fields to files, one per item.

FieldDescriptionType
items

items must not project the same field twice, and item paths must be unique.

repeated ActorMetadataItem

ActorMetadataItem

ActorMetadataItem projects one actor identity field to a file at path, a clean relative Unix path from the root of the volume.

FieldDescriptionType
fieldActorMetadataField
path

path must be a clean relative Unix path: at most 16 '/'-separated segments, none of them empty, '.' or '..', and no NUL byte.

string

ActorSandboxRuntime

ActorSandboxRuntime is the runtime an actor runs under, as recorded on its assignment and on the snapshots taken from it: one class and one of the compatibility versions a Worker reports for it.

FieldDescriptionType
sandbox_class

e.g. "gvisor", "microvm"

string
version

Compatibility version of the runtime. A snapshot stamped with it can warm-boot on a worker whose runtime of this class matches it.

VersionedSandboxCompat

ActorStatus

FieldDescriptionType
state

state is the Actor's current lifecycle state.

ActorState
worker_assignment

worker_assignment points at the worker currently hosting this Actor. Unset whenever the Actor has no worker (SUSPENDED, CRASHED).

It can be set and cleared, but not pointed at another Worker in place: the fields that identify the Worker cannot change while it is set.

WorkerAssignment
external_volumes

external_volumes is the state of the external volumes attached to the actor. These volumes only live as long as the actor and are deleted with it.

ExternalVolumes
crash

crash records why and when the Actor entered CRASHED. It is set with the CRASHED state and cleared when a revert returns the Actor to SUSPENDED.

ActorCrash
assigned_node

assigned_node is the node hosting the Actor's worker or local snapshot. A suspended Actor remains attached while its local snapshot is kept. Detach or revert clears the binding.

string
snapshots

snapshots holds the Actor's active and in-progress snapshot generations.

repeated Snapshot
last_assigned_generation

last_assigned_generation tracks the last snapshot generation assigned for this Actor during a Suspend request. Even during Revert, the generation is not decreased to keep track of snapshots that have become stale and need to be cleaned up.

int32

AllPorts

AllPorts selects every port. It has no fields.

No fields.

AttributeEntry

AttributeEntry is a single key-value compatibility attribute.

FieldDescriptionType
key

Attribute name (e.g. "architecture", "cpu_features", "sandbox_bundle_hash").

string
value

Attribute value corresponding to key.

string

Binding

Binding associates a list of principals (members) with a single role.

FieldDescriptionType
role

The role name for the parent resource type (e.g., "owner", "editor", "viewer").

string
members

Principal identities granted this role. Examples:

  • "user:alice@example.com"
  • "user:sa-ci-runner"
repeated string

Capabilities

Capabilities adjusts a container's Linux capabilities relative to the default set. Drop applies first, then add, so a capability in both is granted. Capabilities are named without the "CAP_" prefix; "ALL" in drop removes the whole default set.

FieldDescriptionType
add

add lists capabilities to grant on top of the default set. "ALL" is rejected: name the individual capabilities the container needs.

repeated string
drop

drop lists capabilities to remove from the default set. "ALL" drops the whole set, so drop+add expresses an exact set rather than a relative one.

repeated string

Container

Container is a single application container of an ActorTemplate.

FieldDescriptionType
namestring
image

image is the OCI image reference the container runs: [registry/]repository[:tag]@digest. Must be pinned by digest (e.g. "name@sha256:...").

string
command

Entrypoint array; when set, the image's ENTRYPOINT and CMD are both ignored and the process argv is command + args. Unlike Kubernetes, $(VAR_NAME) references are NOT expanded.

repeated string
args

Arguments to the entrypoint; the image's CMD is used if unset (unless command is set, which discards the image's CMD).

repeated string
env

Env variables to set in the container's process environment. Unlike Kubernetes, $(VAR_NAME) references are NOT expanded in this field.

repeated EnvVar
wakeup_probe

wakeup_probe gates each wakeup on this container: ResumeActor returns only after the probe answers HTTP 200. Without it, ResumeActor returns as soon as the container has started, which may be before it listens.

WakeupProbe
volume_mounts

Keyed by mount_path: each path hosts exactly one mount, while a volume may be mounted at multiple paths.

repeated VolumeMount
security_context

security_context adjusts the container's security settings. Unset leaves the default capability set.

SecurityContext
resources

resources carries this container's compute limits, enforced inside the actor's sandbox. A limit of 0 leaves that resource unlimited.

ResourceRequirements

CreateActorEgressPolicyRequest

CreateActorEgressPolicyRequest creates an egress policy for an Actor.

FieldDescriptionType
actor

Parent Actor under which to create the policy resource.

ObjectRef
egress_policy

The policy to create. metadata.name must be "default" and metadata.atespace must match actor.atespace.

EgressPolicy

CreateActorRequest

Request to create a new Actor.

FieldDescriptionType
actor

The actor to create.

Actor

CreateActorTemplateRequest

FieldDescriptionType
actor_template

The actor template version to create. Server-assigned metadata (uid, version, timestamps) is ignored, as are the status fields.

ActorTemplate

CreateAtespaceAccessPolicyRequest

CreateAtespaceAccessPolicyRequest creates an access policy for an Atespace.

FieldDescriptionType
atespace

Parent Atespace under which to create the policy resource.

ObjectRef
access_policy

The policy to create. metadata.name must be "default" and metadata.atespace must be empty.

AccessPolicy

CreateAtespaceRequest

FieldDescriptionType
atespace

The atespace to create.

Atespace

CreateGlobalAccessPolicyRequest

CreateGlobalAccessPolicyRequest creates the deployment-wide global access policy singleton.

FieldDescriptionType
access_policy

The policy to create. metadata.name must be "default" and metadata.atespace must be empty.

AccessPolicy

CreateTagRequest

Request to tag the external snapshot a suspended Actor holds.

The tag captures whichever snapshot the Actor holds when the call runs. An Actor keeps no snapshot history — each suspend replaces the last — so a suspend that lands between taking a snapshot and tagging it moves what gets tagged. That race is inherent and accepted: the tag means "the Actor as of this call", not "the snapshot some earlier suspend returned".

The tag is given its own copy of that snapshot, so it survives the Actor being suspended again or deleted. To retry a create that failed or timed out, delete the tag first, which collects whatever that attempt stranded, and create it again.

FieldDescriptionType
tag

The tag to create. metadata.atespace, metadata.name, scope and source_actor are honored; metadata.atespace must match source_actor's, and status is ignored on write.

Tag

CreateWorkerRequest

FieldDescriptionType
worker

The Worker to register.

Worker

CredentialHeader

CredentialHeader replaces the value of an HTTP request header with a credential. The Actor sends the header with a placeholder value, such as Authorization: <something>; the gateway discards that value and forwards the header with the credential instead. The placeholder itself is not inspected, so any value works. A request without the header is not modified.

FieldDescriptionType
header

The case-insensitive HTTP request header to replace when present.

string
prefix

Prepended verbatim to the credential value. Include any desired separator; for example, use "Bearer " (including the space) for Authorization.

string
credential_uri

Source-agnostic reference interpreted by a registered credential provider: ate-secret://<provider-class>/<provider-name>/<provider-specific-tail>

Exactly one of credential_uri and actor_jwt must be set.

string
actor_jwt

A Substrate-issued JWT asserting the identity of the Actor that sent the request.

ActorJwtSource

DeleteActorEgressPolicyRequest

DeleteActorEgressPolicyRequest identifies an Actor's egress policy.

FieldDescriptionType
actor

The parent Actor of the egress policy resource to delete.

ObjectRef
name

Name of the singleton egress policy. Must be "default".

string
options

Optional per-delete preconditions.

DeleteOptions

DeleteActorTemplateRequest

FieldDescriptionType
actor_templateObjectRef
options

Optional per-delete preconditions.

DeleteOptions

DeleteAtespaceAccessPolicyRequest

DeleteAtespaceAccessPolicyRequest identifies an Atespace's access policy.

FieldDescriptionType
atespace

The parent Atespace of the access policy resource to delete.

ObjectRef
name

Name of the singleton access policy. Must be "default".

string
options

Optional per-delete preconditions.

DeleteOptions

DeleteAtespaceRequest

FieldDescriptionType
atespaceObjectRef
options

Optional per-delete preconditions.

DeleteOptions

DeleteOptions

DeleteOptions are the optional guards a Delete request may carry.

FieldDescriptionType
version

Delete only if the resource is still at this version, that is, unchanged since the caller read it. Zero skips the check.

int64
uid

Delete only if the resource still has this uid, that is, it is the one the caller read and not a later one created under the same name. Empty skips the check.

string

DeleteWorkerRequest

FieldDescriptionType
worker

The Worker to deregister.

ObjectRef
options

Optional per-delete preconditions.

DeleteOptions

DrainWorkerRequest

FieldDescriptionType
worker

The Worker to mark as terminating.

ObjectRef

DrainWorkerResponse

DrainWorkerResponse holds the drained Worker.

FieldDescriptionType
worker

The worker being drained.

Worker

DurableDirVolumeSource

DurableDirVolumeSource is a durable directory on rootfs that persists across resumes and participates in snapshots.

No fields.

EgressPolicyTemplate

EgressPolicyTemplate defines an initial Actor egress policy without resource metadata. Each rule has the same defaults, validation, and semantics as EgressPolicy.rules.

FieldDescriptionType
rules

Rules are an unordered set of allows, with the same precedence and effects as EgressPolicy.rules. At least one rule is required. Traffic is denied when no rule matches.

repeated EgressRule

EgressRule

EgressRule allows traffic for a given protocol and destination (host name or IP, and port). The protocol fixes what the gateway matches on and when: a request, or a TLS connection at its ClientHello. Traffic that matches no rule is refused. All protocols here run over TCP; UDP is blocked. Protocols where the server sends first after connect are not supported.

Users should expect additional protocols to be supported in the future.

FieldDescriptionType
http

Cleartext HTTP to the named hosts: HTTP/1.1, and h2c as used by gRPC. TLS to these names is not allowed by this rule.

HttpRule
https

HTTPS to the named hosts, intercepted (man-in-the-middle) so the gateway can authorize and modify each request. HTTP/1.1 and HTTP/2 inside the TLS connection; HTTP/3 is not supported.

HttpsRule
tls_passthrough

TLS to the named servers, forwarded without decryption.

TlsPassthroughRule

EnvVar

EnvVar supplies one environment variable to a container. Values are not expanded with Kubernetes-style $(VAR) references.

FieldDescriptionType
name

name may be any printable ASCII character except '='.

string
value

value is the literal value.

string

ExternalVolumeSource

ExternalVolumeSource is a CSI volume provisioned for the actor from a template.

FieldDescriptionType
template

template provisions a volume for this actor alone; it is deleted with the actor.

ExternalVolumeTemplate

ExternalVolumeStatus

ExternalVolumeStatus is one actor's view of an external volume it mounts.

FieldDescriptionType
name

Name of the volume specified in the actor template. Template volume names are DNS labels.

string
storage_volume_id

The globally unique volume_id returned from the storage system. This will be initially empty during volume creation. Its format is the storage system's own, so it is only bounded and checked for control characters (U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F). The CSI spec caps IDs at 128 bytes but does not require it, so allow some slack. Set once when provisioning completes, then never changed.

string
volume_type

Internal volume plugin name or CSI driver name, from the StorageClass provisioner. Must be a DNS subdomain, optionally prefixed with "substrate.io/" (per the CSI spec's driver-name syntax).

string
volume_context

volume_context contains metadata returned by the CSI driver during volume provisioning, needed by the node plugin for mounting (e.g. attachment info). Keys and values are the driver's own, so the map is only bounded, not validated.

map<string, string>

ExternalVolumeTemplate

ExternalVolumeTemplate provisions an external volume per actor; the volume lives only as long as the actor.

FieldDescriptionType
capacity_bytes

capacity_bytes is the size of the volume to create, in bytes. Required.

int64
storage_class_name

storage_class_name names the cluster-scoped Kubernetes StorageClass to create the volume from. Required.

string

ExternalVolumes

ExternalVolumes is the external volume state recorded on an actor, wrapped so later additions do not reshape ActorStatus.

FieldDescriptionType
volumes

volumes has one entry per external volume of the template. Each template volume appears at most once.

repeated ExternalVolumeStatus

GetActorEgressPolicyRequest

GetActorEgressPolicyRequest identifies an Actor's egress policy.

FieldDescriptionType
actor

The parent Actor of the egress policy resource to retrieve.

ObjectRef
name

Name of the singleton egress policy. Must be "default".

string

GetActorRequest

FieldDescriptionType
actorObjectRef

GetActorTemplateRequest

FieldDescriptionType
actor_templateObjectRef

GetAtespaceAccessPolicyRequest

GetAtespaceAccessPolicyRequest identifies an Atespace's access policy.

FieldDescriptionType
atespace

The parent Atespace of the access policy resource to retrieve.

ObjectRef
name

Name of the singleton access policy. Must be "default".

string

GetAtespaceRequest

FieldDescriptionType
atespaceObjectRef

GetGlobalAccessPolicyRequest

GetGlobalAccessPolicyRequest retrieves the deployment-wide global access policy singleton.

FieldDescriptionType
name

Name of the singleton access policy. Must be "default".

string

GetTagRequest

FieldDescriptionType
tagObjectRef

GetWorkerRequest

FieldDescriptionType
worker

The Worker to fetch. atespace is always empty; Workers are global-scoped.

ObjectRef

GoldenSnapshotConfig

GoldenSnapshotConfig controls automated golden snapshot creation for a template.

FieldDescriptionType
mode

mode defaults to ENABLED when unspecified. DISABLED skips creating the template's golden actor and tag.

GoldenSnapshotMode

GoldenSnapshotStatus

FieldDescriptionType
golden_tag

golden_tag owns the immutable snapshot built by the template controller. Set after tagging the snapshot and deleting the temporary golden Actor.

ObjectRef
snapshot_time

snapshot_time is when the golden-actor warmup ends and the golden snapshot may be taken.

google.protobuf.Timestamp
error_message

error_message is set when the golden snapshot build fails and will not be retried, formatted as <Reason>: <detail>. A nonempty value is terminal.

string

HttpGetAction

HttpGetAction describes the HTTP GET the probe polls.

FieldDescriptionType
path

path must be a URL path starting with "/", using only RFC 3986 path-segment characters, without query or fragment. Defaults to "/" when unset.

string
port

port is the container port to connect to.

int32

HttpRule

HttpRule allows cleartext HTTP and is evaluated per request on the request authority (Host or :authority) and port. The gateway resolves the name and dials it.

FieldDescriptionType
hostnames

Hostname patterns: a DNS name, or a DNS name with "*" as its leftmost label. The rule matches when any pattern matches.

The DNS name must conform to RFC 1034 and RFC 1123. It must be lowercase and must not have a trailing dot.

A wildcard replaces the complete leftmost label. ".example.com" matches exactly one non-empty label, such as "api.example.com". It does not match "example.com" or "nested.api.example.com". "" alone matches every name. No other wildcard syntax is accepted. A pattern without a wildcard matches only the complete normalized name. Patterns may overlap: the rule ranks by the most specific pattern that matches the destination.

Internationalized names must use their IDNA A-label (punycode) form; no Unicode conversion is performed. URLs, IP addresses, names with ports, malformed DNS names (for example, "foo..example.com"), and more than one trailing dot are invalid.

repeated string
ports

Ports of the destination the Actor connected to. A port in a request's authority is neither matched nor dialed. Defaults to port 80.

Ports
effects

Effects do not authorize traffic. They are applied only when this is the deciding rule.

HttpRuleEffects

HttpRuleEffects

HttpRuleEffects contains effects applied by a matching HTTP or HTTPS rule.

FieldDescriptionType
replace_headers

Replaces placeholder request headers with credentials. A header is replaced only when the request from the Actor carries it; requests without the header are forwarded unchanged, so a credential reaches only the requests that ask for it. Header names must be unique case-insensitively.

Replacement is supported on HTTP and HTTPS. On HTTP, the gateway does not originate TLS to the destination. Without separate transport protection, observers can read the credential and attackers on the path can modify the request. Deployments may encrypt traffic outside the gateway; policy authors must account for any unprotected segments between credential injection and the intended destination.

repeated CredentialHeader

HttpsRule

HttpsRule allows HTTPS that the gateway intercepts (MITM). Every Actor behind such a rule must trust the gateway CA. Without it, TLS to these names fails in the Actor.

A TLS connection whose SNI and port match is terminated with a leaf certificate for that name issued by the gateway CA. Each request inside it is then decided on its authority, and the gateway re-originates TLS to that authority; the SNI only selects the leaf.

Interception is for HTTP. A connection that sends no SNI does not match, and a non-HTTP protocol inside an intercepted connection fails.

FieldDescriptionType
hostnames

Server names matched against the SNI, in the pattern syntax of HttpRule.hostnames.

repeated string
ports

Ports of the destination the Actor connected to. Defaults to port 443.

Ports
effects

Effects do not authorize traffic. They are applied only when this is the deciding rule.

HttpRuleEffects

ImageVolumeSource

ImageVolumeSource mounts the contents of an OCI image, read-only. The reference must include a digest: changing the image invalidates snapshots.

FieldDescriptionType
reference

reference is the OCI image reference. Must include a digest (e.g. "name@sha256:...").

string

ListActorTemplatesRequest

FieldDescriptionType
atespace

The atespace to list actor templates from. Empty lists across all atespaces.

string
options

Pagination controls.

ListOptions

ListActorTemplatesResponse

FieldDescriptionType
actor_templates

The page of actor template versions. This list may be empty even if there are more results.

repeated ActorTemplate
next_page_token

Pagination token for the next page. Empty if this is the last page.

string

ListActorsRequest

List actors with pagination. Provides "soft" guarantees: actors may be missed or duplicated if the system state changes during pagination.

FieldDescriptionType
atespace

The atespace to list actors from. Empty lists across all atespaces.

string
options

Pagination controls.

ListOptions

ListActorsResponse

FieldDescriptionType
actors

The page of actors. This list may be empty even if there are more results.

repeated Actor
next_page_token

Pagination token for the next page. Empty if this is the last page.

string

ListAtespacesRequest

FieldDescriptionType
options

Pagination controls.

ListOptions

ListAtespacesResponse

FieldDescriptionType
atespaces

The page of atespaces. This list may be empty even if there are more results.

repeated Atespace
next_page_token

Pagination token for the next page. Empty if this is the last page.

string

ListOptions

ListOptions are the pagination controls a List request may carry.

FieldDescriptionType
page_size

Requested page size; the server may return fewer, or occasionally slightly more. If unspecified, defaults to a server-chosen value; values above 1000 are coerced to 1000.

int32
page_token

Pagination token from a previous response of the same List method. Omit or leave empty for the first request.

string

ListTagsRequest

FieldDescriptionType
atespace

The atespace to list tags from. Empty lists across all atespaces.

string
options

Pagination controls.

ListOptions

ListTagsResponse

FieldDescriptionType
tagsrepeated Tag
next_page_tokenstring

ListWorkerActorAssignmentsRequest

ListWorkerActorAssignmentsRequest asks for a page of the Actors hosted by a given Worker.

FieldDescriptionType
worker

The Worker under which to list Actors.

ObjectRef
options

Pagination controls.

ListOptions

ListWorkerActorAssignmentsResponse

ListWorkerActorAssignmentsResponse is one page of a Worker's Actors.

FieldDescriptionType
actor_assignments

The Actors this page of the listing covers.

repeated ActorAssignment
next_page_token

Pagination token for the next page. Empty if this is the last page.

string

ListWorkersRequest

FieldDescriptionType
options

Pagination controls.

ListOptions

ListWorkersResponse

FieldDescriptionType
workers

The page of workers. This list may be empty even if there are more results.

repeated Worker
next_page_token

Pagination token for the next page. Empty if this is the last page.

string

MarkWorkerAvailableRequest

MarkWorkerAvailableRequest names the Worker to mark ACTIVE.

FieldDescriptionType
worker

The Worker to mark ACTIVE.

ObjectRef

MarkWorkerAvailableResponse

MarkWorkerAvailableResponse holds the Worker marked ACTIVE.

FieldDescriptionType
worker

The Worker marked ACTIVE.

Worker

MarkWorkerUnavailableRequest

MarkWorkerUnavailableRequest names the Worker to mark UNAVAILABLE.

FieldDescriptionType
worker

The Worker to mark UNAVAILABLE.

ObjectRef

MarkWorkerUnavailableResponse

MarkWorkerUnavailableResponse holds the Worker marked UNAVAILABLE.

FieldDescriptionType
worker

The Worker marked UNAVAILABLE.

Worker

MintActorJwtRequest

Request message for MintActorJwt.

FieldDescriptionType
actor

The actor for which the JWT should be issued.

Must be a valid actor that currently exists according to the actor store.

ObjectRef
audiences

The audiences the minted JWT is bound to. Tokens are only issued with audience bindings, so at least one is required.

repeated string
expiration_seconds

Lifetime of the JWT, in seconds.

int64

MintActorJwtResponse

Response message for MintActorJwt.

FieldDescriptionType
actor_jwt

The signed actor JWT. Relying parties verify it with OpenID Connect Discovery against its issuer.

Claims:

  • iss: The issuer URL. Relying parties fetch <iss>/.well-known/openid-configuration to find the signing keys.
  • sub: actor/<atespace>/<name>.
  • aud: The requested audiences, always a JSON array.
  • exp, nbf, iat: Numeric Unix timestamps. nbf is five minutes before iat to allow for clock skew.
  • jti: A random token ID.
  • actor.ate.dev: A JSON object with the actor's atespace, actorName, and actorUID.

The subject and claim name say the token speaks for the actor itself. A token minted for a Substrate component acting on the actor's behalf (WorkerService.MintWorkerActorJwt) uses worker-for-actor in both places instead, so a relying party can grant the two different access.

string
expire_time

expire_time is when actor_jwt expires. Equal to its exp claim.

google.protobuf.Timestamp

ObjectRef

ObjectRef references a Substrate resource by its atespace and name.

FieldDescriptionType
atespace

The atespace of the referenced resource. This field should be empty if the target resource is global-scoped, but references to objects in the same atespace as the referrer must still populate this field.

References to atespaced resources should add +k8s:subfield(atespace)=+k8s:required References to non-atespaced resources should add +k8s:subfield(atespace)=+k8s:forbidden

string
name

The name of the referenced resource. This field is required.

string

ObjectSnapshot

ObjectSnapshot addresses a snapshot held in object storage.

FieldDescriptionType
snapshot_uri

snapshot_uri addresses the snapshot's prefix in object storage.

string

Ports

Ports selects the destination ports a rule matches. Every port, or a set of port numbers. all and numbers can not be set together.

FieldDescriptionType
all

Every port.

AllPorts
numbers

Port numbers, without repeats.

repeated int32

ResourceMetadata

ResourceMetadata holds the common fields carried by every Substrate resource.

FieldDescriptionType
atespace

atespace is the namespace the resource belongs to. Empty for global-scoped resources. Caller-specified at creation and immutable thereafter.

Atespaced resources should add +k8s:subfield(atespace)=+k8s:required Non-atespaced resources should add +k8s:subfield(atespace)=+k8s:forbidden

string
name

name is the resource's name, unique within its atespace (or globally, for global-scoped resources). Caller-specified at creation and immutable thereafter.

string
uid

uid is a server-assigned, globally unique identifier for this resource. Immutable throughout the lifecycle of the resource.

This field is ignored during create operations and used as precondition for update operations.

string
version

version is increased on every mutation.

This field is ignored during create operations and used as precondition for update operations.

int64
create_time

create_time is the time the resource was created.

This field is ignored on input.

google.protobuf.Timestamp
update_time

update_time is the time the resource was last updated.

This field is ignored on input.

google.protobuf.Timestamp
delete_time

delete_time is the time the resource started its deletion.

This field is ignored on input.

google.protobuf.Timestamp

ResourceRequirements

ResourceRequirements are the compute resources a workload may use.

FieldDescriptionType
limits

limits is the maximum amount of compute resources allowed.

Resources

Resources

Resources is an amount of each compute resource.

FieldDescriptionType
cpu_millicores

cpu_millicores is CPU in millicores (1000 = one core). 0 means none.

int64
memory_bytes

memory_bytes is memory in bytes. 0 means none.

int64

ResumeActorRequest

FieldDescriptionType
actorObjectRef

ResumeActorResponse

FieldDescriptionType
actorActor
resumed

True if a resume workflow was executed to activate the actor. False if the actor was already RUNNING.

bool

RevertActorRequest

RevertActorRequest identifies the Actor to revert.

FieldDescriptionType
actor

actor to revert.

ObjectRef

RevertActorResponse

RevertActorResponse holds the reverted Actor.

FieldDescriptionType
actor

actor as it stands after the revert, SUSPENDED and still holding the external snapshot it was reverted to.

Actor

RuntimeOverhead

RuntimeOverhead is the memory an Actor uses on its Worker outside its own limits: a fixed amount, plus an amount in proportion to its memory limit.

FieldDescriptionType
memory_bytes

memory_bytes is a fixed amount of memory for each Actor.

int64
memory_bytes_per_gib

memory_bytes_per_gib is memory per GiB of the Actor's memory limit, e.g. host page tables for a microVM's guest RAM. It scales in proportion and rounds down to a byte, so an Actor with a 512MiB limit adds half of it.

int64

SecurityContext

SecurityContext holds security settings for a container's process, modeling a subset of the Kubernetes container securityContext.

FieldDescriptionType
capabilities

capabilities adjusts the Linux capabilities of the container's process.

Capabilities

Selector

Selector matches worker pools by label. Only equality-based matching is supported.

FieldDescriptionType
match_labels

match_labels selects by exact equality on a set of labels.

map<string, string>

Snapshot

Snapshot represents one generation of an Actor's or Tag's snapshot state.

FieldDescriptionType
uuid

uuid is the server-generated unique identifier for this snapshot, passed to atelet to identify the local checkpoint on disk and used as the snapshot name in object storage.

string
generation

generation is the monotonically increasing generation number of this snapshot, starting at 1.

int32
owner

owner identifies the origin and ownership of this snapshot.

SnapshotOwner
fidelity

fidelity is what this snapshot holds.

SnapshotFidelity
actor_template_uid

UID of the ActorTemplate whose sandbox this snapshot's guest state was captured from.

string
locality

locality identifies the Kubernetes node holding this snapshot's files. Detach, revert, or a later checkpoint clears it. Resume keeps the files.

string
durable_snapshot

durable_snapshot holds the durable storage representation of this snapshot. PENDING while the snapshot is uploaded, including an asynchronous suspend's snapshot that so far exists only on the node named by locality. COMPLETED once the upload is recorded.

SnapshotStorage
sandbox_runtime

sandbox_runtime is the runtime the actor ran under when the snapshot was taken.

ActorSandboxRuntime

SnapshotConfig

SnapshotConfig selects what actor snapshots capture and where they are stored.

FieldDescriptionType
storage_location

storage_location is the base object-storage URI snapshots of actors on this version are stored under. If unset, ate-api-server's --snapshot-location is used. Requires the PerTemplateSnapshotLocation preview gate. Each path segment may contain only ASCII letters, digits, '_' and '-'. Each owner's snapshots are stored under <storage_location>/atespaces/..., so no segment may be "atespaces" in any letter case.

string
preferred_fidelity

preferred_fidelity is the highest fidelity the system packages when it snapshots the actor. It is a best-effort ceiling, not a guarantee: the system never packages more than this level, and it may package less when a layer cannot be captured or is too expensive to capture at the time, for example memory under host pressure. A process resumed in place on its worker keeps its memory regardless of this setting. Defaults to MEMORY when unset.

SnapshotFidelity
golden_snapshot_config

golden_snapshot_config configures automated golden snapshot creation. Golden snapshots are enabled when this config is omitted.

GoldenSnapshotConfig

SnapshotStorage

SnapshotStorage records the durable storage representation of a Snapshot.

FieldDescriptionType
state

state is the lifecycle state of the durable snapshot.

SnapshotStorageState
object

object snapshot is stored in object storage.

ObjectSnapshot

SuspendActorRequest

FieldDescriptionType
actorObjectRef
options

options controls how SuspendActor persists the actor's snapshot.

SuspendOptions

SuspendActorResponse

FieldDescriptionType
actorActor

SuspendOptions

SuspendOptions tunes how SuspendActor persists the actor's snapshot.

FieldDescriptionType
mode

mode selects when SuspendActor returns relative to the snapshot reaching durable storage. If unspecified, defaults to DURABILITY_MODE_ASYNCHRONOUS.

DurabilityMode

SystemInfoVolumeSource

SystemInfoVolumeSource is a read-only volume of substrate-generated per-actor files (identity fields, projected trust bundles), regenerated by atelet on every Run/Restore.

FieldDescriptionType
data_sources

data_sources lists the projections to place within the volume. At most one actor_metadata entry may appear, and file paths must be unique across all entries.

repeated SystemInfoDataSource

TagStatus

TagStatus is the server-owned state of a Tag. The tag is fixed to one external snapshot once its creation completes, so the rest is immutable provenance.

FieldDescriptionType
snapshot

snapshot is the external snapshot this tag points at: the tag's own copy, stored under a prefix keyed on the tag's UID. It is recorded with its durable_snapshot PENDING right after the tag is reserved, before anything is copied, and transitions to COMPLETED once the copy finishes: a tag never moves between snapshots and is usable only once COMPLETED. Unset until it is recorded; a tag whose creation failed first never gets one.

Snapshot
actor_template_uid

UID of the ActorTemplate the snapshot was taken under. Actors can only be seeded from a tag under the same template.

string

TlsPassthroughRule

TlsPassthroughRule allows TLS that the gateway forwards without decryption. It is evaluated once per connection at the ClientHello, on the SNI and port, for any protocol carried over TLS. A connection that sends no SNI does not match. Protocols that upgrade to TLS after a cleartext exchange (STARTTLS) do not match. Because the gateway reads nothing after the ClientHello, a passthrough rule has no effects, and a policy change reaches an open connection only when it ends.

FieldDescriptionType
hostnames

Server names matched against the SNI, in the pattern syntax of HttpRule.hostnames.

repeated string
ports

Ports of the destination the Actor connected to.

Ports

TrustBundleDataSource

TrustBundleDataSource projects the trust anchors of the named trust bundle to a PEM file at path. Supported names are allowlisted in atelet.

FieldDescriptionType
names

One or more named trust bundles to unify and place at the specified path.

Substrate supports a short list of predefined names:

  • egress-mitm.ate.dev --- The trust anchors for the Substrate egress gateway TLS man-in-the-middle interceptor.

  • system-roots.ate.dev --- A selection of well-known public CA root certificates, built into Substrate

repeated string
path

path must be a clean relative Unix path: at most 16 '/'-separated segments, none of them empty, '.' or '..', and no NUL byte.

string

UpdateActorEgressPolicyRequest

UpdateActorEgressPolicyRequest replaces an Actor's egress policy.

FieldDescriptionType
actor

Parent Actor under which to update the policy resource.

ObjectRef
egress_policy

Full replacement. Metadata UID and version are required preconditions; atespace and name are immutable and must match the existing policy.

EgressPolicy

UpdateActorRequest

Request to update mutable fields on an existing Actor. May be called regardless of the actor's current state. Changes take effect on the next ResumeActor call.

FieldDescriptionType
actor

The actor to update. actor.metadata.atespace and actor.metadata.name identify which resource to update. actor.metadata.version and actor.metadata.uid are required preconditions.

Actor

UpdateAtespaceAccessPolicyRequest

UpdateAtespaceAccessPolicyRequest replaces an Atespace's access policy.

FieldDescriptionType
atespace

Parent Atespace under which to update the policy resource.

ObjectRef
access_policy

Full replacement. Metadata UID and version are required preconditions; metadata.name must be "default" and metadata.atespace must be empty.

AccessPolicy

UpdateGlobalAccessPolicyRequest

UpdateGlobalAccessPolicyRequest replaces the deployment-wide global access policy singleton.

FieldDescriptionType
access_policy

Full replacement. Metadata UID and version are required preconditions; metadata.name must be "default" and metadata.atespace must be empty.

AccessPolicy

UpdateTagRequest

Request to update mutable fields on an existing Tag. The tag keeps its address: the snapshot it points at cannot be changed.

FieldDescriptionType
tag

The tag to update. tag.metadata.atespace and tag.metadata.name identify which resource to update. tag.metadata.version and tag.metadata.uid are required preconditions

Tag

UpdateWorkerRequest

FieldDescriptionType
worker

The Worker to update. worker.metadata.name identifies which resource to update. atespace is always empty; Workers are global-scoped. worker.metadata.version and worker.metadata.uid are required preconditions.

labels is the only field an update may change. Every other field is replaced with what the request carries, and a field left unset is cleared — so read the Worker, change what you mean to change, and send the whole thing back. A request that alters an immutable field, by changing it or by omitting it, returns INVALID_ARGUMENT naming the field. status is output-only and whatever it carries is ignored.

Worker

VersionedSandboxCompat

VersionedSandboxCompat holds the compatibility schema version and the key-value compatibility attributes of a sandbox runtime.

FieldDescriptionType
schema_version

Compatibility schema version (e.g. "v1") defining which runtime and hardware attributes are recorded and how they are computed.

string
attributes

Key-value compatibility attributes defined by this schema version, covering both runtime assets (e.g. "sandbox_bundle_hash") and effective guest hardware features after masking (e.g. "architecture", "cpu_features"). Matched against a snapshot under the same schema_version: every attribute on the snapshot must be present on the worker with an equal value (except "cpu_features", where the snapshot's hexadecimal bitmask must be a bitwise subset of the worker's); keys only the worker has are ignored, so a worker can gain keys under one schema_version without invalidating older snapshots. Removing or recomputing a key is a new schema_version, under which older snapshots no longer match. Order as sent does not matter: ate-api-server sorts attributes by key before recording them.

repeated AttributeEntry

VolumeMount

VolumeMount mounts a named Volume into a container.

FieldDescriptionType
name

name must match the name of a Volume.

string
mount_path

mount_path within the container. Must be a clean absolute Unix path: must start with '/', not be '/', and contain no ':', '..', '.', '//', trailing '/', or control characters.

string

WakeupProbe

WakeupProbe tells the platform when a container is serving. It is polled on every wakeup, whether the actor cold-boots or is restored from a snapshot, and not again while the actor stays running. A probe that does not answer 200 within timeout_seconds crashes the actor.

FieldDescriptionType
http_get

http_get is the request to poll.

HttpGetAction
timeout_seconds

timeout_seconds is how long to keep polling before giving up. Defaults to 30 when unset.

int32

WorkerAssignment

WorkerAssignment points at the Worker currently hosting an Actor.

This is a denormalized snapshot, not merely a reference: atenet reads worker_pod_ips on the request-routing path and must not need a second lookup, and kubectl-ate displays the pod name. The copies of the Worker's identity fields stay valid for the life of the assignment because those fields are immutable, and cannot change in place. worker_pod_ips and worker_epoch describe the worker process the Actor runs under, and are updated when the Actor becomes RUNNING.

Pass worker to GetWorker; none of the denormalized fields identify the Worker to the API.

FieldDescriptionType
worker

worker references the assigned Worker. This is the field to look the Worker up by; the worker_* fields below are a denormalized copy kept so that readers on a hot path do not have to fetch the Worker at all.

Workers are global-scoped, so this carries no atespace.

ObjectRef
worker_namespace

worker_namespace is the Kubernetes namespace of the WorkerPool and worker Pod.

string
worker_pool

worker_pool is the name of the WorkerPool the worker belongs to.

string
worker_pod

worker_pod is the name of the Kubernetes pod hosting the Actor.

string
worker_pod_uid

worker_pod_uid is the Kubernetes UID of worker_pod.

string
worker_pod_ips

worker_pod_ips are the IPs of worker_pod, copied from Worker.status.ips when the Actor is placed, and again when it becomes RUNNING.

repeated string
node_name

node_name is the Kubernetes node hosting worker_pod.

string
worker_epoch

worker_epoch is the epoch of the worker process the Actor runs under, as that process reports it from Run or Restore. 0 until the Actor becomes RUNNING.

int64
sandbox_runtime

sandbox_runtime is the sandbox runtime and compatibility version the Actor was started or restored under on this Worker.

ActorSandboxRuntime
worker_spiffe_id

worker_spiffe_id is the SPIFFE ID worker_pod's certificate carries, copied from Worker.worker_spiffe_id.

string

WorkerResources

WorkerResources represents a set of resources.

FieldDescriptionType
cpu_millicores

cpu_millicores is CPU in millicores (1000 = one core). Compared against the Actor's resource limits for placement.

int64
memory_bytes

memory_bytes is memory in bytes. Compared against the Actor's resource limits for placement.

int64
actors

A count of Actors. Workers can use this to limit the number of Actors that can be placed on them, constraining the costs of other things that are not captured in the resources above, but which still have costs - netns, mounts, file descriptors, etc.

int32

WorkerSandboxClass

WorkerSandboxClass is one sandbox class a Worker runs, with the runtimes it runs it under. A Worker has one entry per WorkerPool sandboxClasses entry, so exactly one today.

FieldDescriptionType
sandbox_class

e.g. "gvisor", "microvm", as on WorkerPool.spec.sandboxClasses[].name.

string
default_runtime

Runtime new and cold-booted actors of this class start under. Snapshots matching its version can also warm-boot on this worker.

WorkerSandboxRuntime
restorable_runtimes

Additional runtimes of this class (excluding default_runtime) that this worker can restore snapshots from right now.

repeated WorkerSandboxRuntime

WorkerSandboxRuntime

WorkerSandboxRuntime is one runtime a Worker runs for the class of its WorkerSandboxClass entry. ActorSandboxRuntime, the stamp on an assignment or snapshot, pairs the entry's sandbox_class with this runtime's version.

FieldDescriptionType
version

Compatibility version stamped onto an actor's snapshot when a checkpoint is taken on this runtime. Snapshots matching it can warm-boot on this runtime.

VersionedSandboxCompat
actor_overhead

The resource overhead incurred by a Worker for each Actor running under this runtime, on top of the Actor's stated limits. Placement considers this when deciding if a Worker has enough capacity for an Actor, and it is accounted for in allocated. If not specified, Actors under this runtime are assumed to have negligible overhead.

RuntimeOverhead

WorkerStatus

FieldDescriptionType
stateWorkerState
capacity

The total resource capacity of the Worker.

A Worker should report every dimension of resources it has available to be consumed by Actors. Any resource not specified here is assumed to be 0. An Actor which requests a resource which is not present in a Worker's capacity will prevent that Actor from running on that Worker.

Shrinking capacity below allocated prevents new placements but does not evicts running Actors.

WorkerResources
allocated

The allocated resources of the Worker. This is the sum of all the resources consumed by the Actors currently assigned to this Worker, including their runtime's actor_overhead.

WorkerResources
observed_epoch

observed_epoch is the latest epoch whose earlier Actors the control plane has crashed and released. While it is below registered_epoch, Actors placed before the worker's last restart may still be reported as running.

int64
sandbox_classes

The sandbox classes this Worker runs and the runtimes it runs them under, as the registered worker process reports them through WorkerService.SetWorkerSandboxRuntimes. Cleared when a new worker process registers, and nothing is placed on the Worker until it reports them. One entry today, like WorkerPoolSpec.sandboxClasses. Its sandbox_class is the Worker's class.

repeated WorkerSandboxClass
ips

ips are the worker pod's IPs, at most one per IP family, in the order Kubernetes reports them; the first is in the cluster's primary family. The worker process reports them when it registers, so they follow a pod sandbox that is recreated with new IPs.

repeated string
issued_epoch

issued_epoch is the last epoch handed out by WorkerService.AcquireWorkerEpoch. Each worker process acquires one at startup.

int64
registered_epoch

registered_epoch is the epoch of the worker process that registered last, through WorkerService.RegisterWorker. Only one worker process runs in a pod at a time, and a process registers only an epoch it acquired, so a rise means every earlier process has exited and lost its sandboxes. The control plane then crashes the Actors that ran under an earlier epoch. 0 until the first registration; a Worker takes no Actors before then.

int64

Enums

ActorMetadataField

ActorMetadataField selects one identity field of the actor.

ValueDescriptionNumber
ACTOR_METADATA_FIELD_UNSPECIFIED0
ACTOR_METADATA_FIELD_NAME1
ACTOR_METADATA_FIELD_ATESPACE2
ACTOR_METADATA_FIELD_UID3

ActorState

ValueDescriptionNumber
ACTOR_STATE_UNSPECIFIED0
ACTOR_STATE_RESUMING1
ACTOR_STATE_RUNNING2
ACTOR_STATE_SUSPENDING3
ACTOR_STATE_SUSPENDED4
ACTOR_STATE_CRASHED5
ACTOR_STATE_DELETING6
ACTOR_STATE_REVERTING7

DurabilityMode

DurabilityMode selects when a suspend is acknowledged relative to its snapshot being stored durably.

ValueDescriptionNumber
DURABILITY_MODE_UNSPECIFIED0
DURABILITY_MODE_SYNCHRONOUS

Return only after the snapshot is complete in durable storage. Applies only when the call checkpoints a running actor: an actor that is already SUSPENDED is returned with the snapshot it holds, which may still be on its node.

1
DURABILITY_MODE_ASYNCHRONOUS

Return once the snapshot is captured on the node. The upload to durable storage continues in the background.

2

GoldenSnapshotMode

GoldenSnapshotMode selects whether a template builds a golden snapshot.

ValueDescriptionNumber
GOLDEN_SNAPSHOT_MODE_UNSPECIFIED0
GOLDEN_SNAPSHOT_MODE_ENABLED1
GOLDEN_SNAPSHOT_MODE_DISABLED2

SnapshotFidelity

SnapshotFidelity orders the state layers a snapshot can hold, lowest to highest. Each level includes the ones below it.

ValueDescriptionNumber
SNAPSHOT_FIDELITY_UNSPECIFIED0
SNAPSHOT_FIDELITY_VOLUMES

Durable volumes only. The actor resumes by cold-booting its containers from the OCI image with the volumes restored.

1
SNAPSHOT_FIDELITY_ROOTFS

Volumes plus the root filesystem changes made since boot. The actor cold-boots on resume with its rootfs writes back in place.

2
SNAPSHOT_FIDELITY_MEMORY

Volumes, root filesystem changes, and process memory. The actor resumes where it left off.

3

SnapshotOwner

SnapshotOwner indicates the owner of a snapshot.

ValueDescriptionNumber
SNAPSHOT_OWNER_UNSPECIFIED0
SNAPSHOT_OWNER_ACTOR

Snapshot captured directly from this Actor.

1
SNAPSHOT_OWNER_TAG

Snapshot owned by a Tag (also includes Golden Snapshot)

2

SnapshotStorageState

SnapshotStorageState indicates the lifecycle stage of a durable snapshot.

ValueDescriptionNumber
SNAPSHOT_STORAGE_STATE_UNSPECIFIED0
SNAPSHOT_STORAGE_STATE_PENDING

Snapshot creation in durable storage is in progress.

1
SNAPSHOT_STORAGE_STATE_COMPLETED

Snapshot is complete and ready for use in durable storage.

2

TagScope

ValueDescriptionNumber
TAG_SCOPE_UNSPECIFIED

Not set and rejected wherever a client supplies a scope

0
TAG_SCOPE_ATESPACE

May initialize Actors only in the tag's owning Atespace.

1
TAG_SCOPE_PUBLISHED

Published for use by Actors in any Atespace. The tag remains addressed through its owning Atespace.

2

WorkerState

ValueDescriptionNumber
WORKER_STATE_UNSPECIFIED0
WORKER_STATE_ACTIVE

Ready; schedulable.

1
WORKER_STATE_DRAINING

Pod terminating. Not schedulable. Final: a draining Worker never becomes active or unavailable again.

2
WORKER_STATE_UNAVAILABLE

Registered but not Ready, or its the worker restarting. Not schedulable. Every Worker starts here until MarkWorkerAvailable.

3