pub struct WorkspaceConfig {
pub display_name: Option<String>,
pub sources: Vec<WorkspaceSourceSpec>,
pub providers: Vec<ProviderSpec>,
pub default_provider: Option<String>,
pub isolation: Option<IsolationConfig>,
pub local: RepoProviderConfig,
}Expand description
Backend-neutral workspace configuration accepted at the API boundary
(POST /api/workspaces, PUT /api/workspaces/{name}/config).
The rich fields (sources/providers/default_provider/isolation) drive a
k8s Workspace CR; the flattened RepoProviderConfig carries the
LocalFleet single-provider/env shape. Each backend projects out the
subset it uses, so one endpoint serves both: #[serde(flatten)] keeps
legacy local bodies ({provider, base_url, api_key_from_env, env})
deserializing unchanged, while k8s reads the named-provider list + Secret
references it needs.
Fields§
§display_name: Option<String>Human-friendly dashboard label (k8s displayName; local ignores it).
sources: Vec<WorkspaceSourceSpec>Git source checkouts (k8s only; local derives its sources from root).
providers: Vec<ProviderSpec>Named providers (k8s only; local uses the flattened single provider).
default_provider: Option<String>Provider name agents get when they don’t request one (k8s only).
isolation: Option<IsolationConfig>Default isolation for agents (k8s only).
local: RepoProviderConfigLocalFleet single-provider/env configuration. Flattened so the existing local request shape is unchanged.
Trait Implementations§
Source§impl Clone for WorkspaceConfig
impl Clone for WorkspaceConfig
Source§fn clone(&self) -> WorkspaceConfig
fn clone(&self) -> WorkspaceConfig
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 WorkspaceConfig
impl Debug for WorkspaceConfig
Source§impl Default for WorkspaceConfig
impl Default for WorkspaceConfig
Source§fn default() -> WorkspaceConfig
fn default() -> WorkspaceConfig
Source§impl<'de> Deserialize<'de> for WorkspaceConfig
impl<'de> Deserialize<'de> for WorkspaceConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<WorkspaceConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<WorkspaceConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for WorkspaceConfig
Source§impl JsonSchema for WorkspaceConfig
impl JsonSchema for WorkspaceConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for WorkspaceConfig
impl PartialEq for WorkspaceConfig
Source§impl Serialize for WorkspaceConfig
impl Serialize for WorkspaceConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for WorkspaceConfig
Auto Trait Implementations§
impl Freeze for WorkspaceConfig
impl RefUnwindSafe for WorkspaceConfig
impl Send for WorkspaceConfig
impl Sync for WorkspaceConfig
impl Unpin for WorkspaceConfig
impl UnsafeUnpin for WorkspaceConfig
impl UnwindSafe for WorkspaceConfig
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>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more