pub struct Environment {Show 14 fields
pub schema: SchemaVersion,
pub environment_id: EnvId,
pub name: String,
pub host_config: EnvironmentHostConfig,
pub packs: Vec<EnvPackBinding>,
pub credentials_ref: Option<SecretRef>,
pub bundles: Vec<BundleDeployment>,
pub revisions: Vec<Revision>,
pub traffic_splits: Vec<TrafficSplit>,
pub messaging_endpoints: Vec<MessagingEndpoint>,
pub extensions: Vec<ExtensionBinding>,
pub revocation: RevocationConfig,
pub retention: RetentionPolicy,
pub health: HealthStatus,
}Expand description
greentic.environment.v1 compose-view (§5.1).
Fields§
§schema: SchemaVersion§environment_id: EnvId§name: String§host_config: EnvironmentHostConfig§packs: Vec<EnvPackBinding>One entry per CapabilitySlot. Use Environment::validate to enforce.
credentials_ref: Option<SecretRef>secret://<env>/credentials/... reference into packs[secrets] (P5).
bundles: Vec<BundleDeployment>§revisions: Vec<Revision>§traffic_splits: Vec<TrafficSplit>§messaging_endpoints: Vec<MessagingEndpoint>Per-environment messaging provider instances (Phase M1). N-per-env;
unique on endpoint_id and on (provider_type, provider_id).
extensions: Vec<ExtensionBinding>Open-namespace extension bindings (Path 3). N-per-env; unique on
(kind.path(), instance_id). Resolved by workloads via
ext://<path>[/<instance>], never linked as a typed host interface and
never reported in doctor’s missing_slots (the namespace is open).
revocation: RevocationConfig§retention: RetentionPolicy§health: HealthStatusImplementations§
Source§impl Environment
impl Environment
pub fn schema_str() -> &'static str
Sourcepub fn pack_for_slot(&self, slot: CapabilitySlot) -> Option<&EnvPackBinding>
pub fn pack_for_slot(&self, slot: CapabilitySlot) -> Option<&EnvPackBinding>
Returns the binding for a slot, if any.
Sourcepub fn extension_for_ref(&self, r: &ExtensionRef) -> Option<&ExtensionBinding>
pub fn extension_for_ref(&self, r: &ExtensionRef) -> Option<&ExtensionBinding>
Resolve an ExtensionRef to its binding by (path, instance_id) —
the same key Environment::validate enforces uniqueness on. Returns
None when no extension matches both the path and the (absence of an)
instance selector.
Sourcepub fn validate(&self) -> Result<(), SpecError>
pub fn validate(&self) -> Result<(), SpecError>
Validates spec-level invariants:
- schema discriminator matches
greentic.environment.v1, - slot uniqueness across
packs, - extension binding uniqueness on
(kind.path(), instance_id), - basis-points sums on contained
TrafficSplit/BundleDeployment, env_idownership acrosshost_config,revisions,bundles, andtraffic_splits(every nested doc carries the same env identifier),- referential integrity: split entries reference a
Revisionin this env whosedeployment_id+bundle_idmatch the split’s, and every bundle’scurrent_revisionsreferences aRevisionwhosedeployment_idmatches the bundle’s. Lifecycle-state checks (e.g.lifecycle == Readyfor split entries per§5.3) stay at apply time — pure data invariants only here.
Trait Implementations§
Source§impl Clone for Environment
impl Clone for Environment
Source§fn clone(&self) -> Environment
fn clone(&self) -> Environment
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Environment
impl Debug for Environment
Source§impl<'de> Deserialize<'de> for Environment
impl<'de> Deserialize<'de> for Environment
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 Environment
Source§impl PartialEq for Environment
impl PartialEq for Environment
Source§fn eq(&self, other: &Environment) -> bool
fn eq(&self, other: &Environment) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for Environment
impl Serialize for Environment
impl StructuralPartialEq for Environment
Auto Trait Implementations§
impl Freeze for Environment
impl RefUnwindSafe for Environment
impl Send for Environment
impl Sync for Environment
impl Unpin for Environment
impl UnsafeUnpin for Environment
impl UnwindSafe for Environment
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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.