protocol/src/capabilities.rs
30 lines
use schemars::JsonSchema;use serde::Deserialize;use serde::Serialize;use ts_rs::TS;/// A user-selected root that can expose one or more runtime capabilities.#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema, TS)]#[serde(rename_all = "camelCase")]#[ts(export_to = "v2/")]pub struct SelectedCapabilityRoot { /// Stable identifier supplied by the capability selection platform. pub id: String, /// Where the selected root can be resolved. pub location: CapabilityRootLocation,}/// Location used to resolve a selected capability root.#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema, TS)]#[serde(tag = "type", rename_all = "camelCase")]#[ts(tag = "type")]#[ts(export_to = "v2/")]pub enum CapabilityRootLocation { /// A path owned by an execution environment. Environment { #[serde(rename = "environmentId")] #[ts(rename = "environmentId")] environment_id: String, path: String, },}