pub struct ComputerSpec {Show 19 fields
pub id: Option<String>,
pub labels: HashMap<String, String>,
pub kernel: String,
pub rootfs: String,
pub boot_args: String,
pub vcpus: u32,
pub memory_mib: u64,
pub cmd: Vec<String>,
pub env: HashMap<String, String>,
pub working_dir: String,
pub user: String,
pub mounts: Vec<ComputerMountSpec>,
pub network: ComputerNetworkSpec,
pub ttl_seconds: u32,
pub ssh_public_key: Option<String>,
pub idle_timeout_seconds: u32,
pub on_idle: IdleAction,
pub template_warm: Option<TemplateWarmRef>,
pub ready_probe: Option<ReadyProbeSpec>,
}Expand description
Full sandbox creation parameters.
The initial workload fields (cmd, env, working_dir, user) are
consumed by the boot task: a non-empty cmd is launched automatically
once the sandbox is ready, through the same path as Run.
mounts, image, and ssh_public_key are validated at the service
boundary (see the guest agent’s SandboxService::create).
Fields§
§id: Option<String>Caller-supplied ID; auto-generated (UUID) when None or empty.
labels: HashMap<String, String>Arbitrary key-value metadata (filtering, listing).
kernel: StringKernel image path (empty = daemon default).
rootfs: StringRoot filesystem image path (empty = daemon default).
boot_args: StringKernel command-line arguments (empty = daemon default).
vcpus: u32Number of vCPUs (0 = daemon default).
memory_mib: u64Memory in MiB (0 = daemon default).
cmd: Vec<String>Initial command launched automatically after boot (empty = none).
env: HashMap<String, String>Environment variables for the initial command.
working_dir: StringWorking directory for the initial command.
user: StringUser to run the initial command as.
mounts: Vec<ComputerMountSpec>Bind mounts into the sandbox.
network: ComputerNetworkSpecNetwork configuration.
ttl_seconds: u32Auto-destroy TTL in seconds (0 = no limit).
ssh_public_key: Option<String>SSH public key injected via MMDS (None = no SSH setup).
idle_timeout_seconds: u32Apply Self::on_idle after this many seconds without a running
execution (0 = no idle detection). Re-armed on every Ready edge;
file activity does NOT re-arm (CORE-21).
on_idle: IdleActionWhat to do when the idle timeout expires.
template_warm: Option<TemplateWarmRef>The catalog template’s pre-warmed snapshot, when the create resolved
one (CORE-107). A boot-recipe input like rootfs: the create path
restores it instead of cold-booting when eligible, and it rides the
journaled effective spec so crash replay keeps working. None for
non-catalog templates and warm-less catalog entries.
ready_probe: Option<ReadyProbeSpec>The catalog template’s readiness probe (CORE-107): READY is withheld
until it passes; expiry fails the boot. None = ready on
exec-acceptance. Filled from the resolved template, never the request.
Trait Implementations§
Source§impl Clone for ComputerSpec
impl Clone for ComputerSpec
Source§impl Debug for ComputerSpec
impl Debug for ComputerSpec
Source§impl Default for ComputerSpec
impl Default for ComputerSpec
Source§impl<'de> Deserialize<'de> for ComputerSpecwhere
ComputerSpec: Default,
impl<'de> Deserialize<'de> for ComputerSpecwhere
ComputerSpec: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ComputerSpec
Source§impl PartialEq for ComputerSpec
impl PartialEq for ComputerSpec
Source§impl Serialize for ComputerSpec
impl Serialize for ComputerSpec
impl StructuralPartialEq for ComputerSpec
Auto Trait Implementations§
impl Freeze for ComputerSpec
impl RefUnwindSafe for ComputerSpec
impl Send for ComputerSpec
impl Sync for ComputerSpec
impl Unpin for ComputerSpec
impl UnsafeUnpin for ComputerSpec
impl UnwindSafe for ComputerSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.