Skip to main content

agent_workspace_contract/
provider_config.rs

1use serde::{Deserialize, Serialize};
2
3use crate::SnapshotBuildSpec;
4
5#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct EnvironmentProviderSlotView {
8    pub base_url: String,
9    #[serde(default)]
10    pub build_url: String,
11    pub credential_configured: bool,
12    #[serde(default, skip_serializing_if = "Option::is_none")]
13    pub default_build: Option<SnapshotBuildSpec>,
14    #[serde(default, skip_serializing_if = "Option::is_none")]
15    pub default_template_id: Option<String>,
16    pub active: bool,
17}
18
19#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
20#[serde(rename_all = "camelCase")]
21pub struct EnvironmentProviderAdminConfig {
22    pub moulin: EnvironmentProviderSlotView,
23    pub e2b: EnvironmentProviderSlotView,
24    #[serde(default, skip_serializing_if = "Option::is_none")]
25    pub default_provider: Option<String>,
26    #[serde(default, skip_serializing_if = "Option::is_none")]
27    pub default_snapshot_id: Option<String>,
28    pub managed: bool,
29}
30
31#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase", deny_unknown_fields)]
33pub struct UpdateEnvironmentProviderSlotRequest {
34    #[serde(default, skip_serializing_if = "Option::is_none")]
35    pub base_url: Option<String>,
36    #[serde(default, skip_serializing_if = "Option::is_none")]
37    pub build_url: Option<String>,
38    #[serde(default, skip_serializing_if = "Option::is_none")]
39    pub credential: Option<String>,
40    #[serde(default)]
41    pub clear_credential: bool,
42    #[serde(default, skip_serializing_if = "Option::is_none")]
43    pub default_build: Option<SnapshotBuildSpec>,
44    #[serde(default, skip_serializing_if = "Option::is_none")]
45    pub default_template_id: Option<String>,
46}
47
48#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
49#[serde(rename_all = "camelCase", deny_unknown_fields)]
50pub struct UpdateEnvironmentProviderAdminConfigRequest {
51    #[serde(default, skip_serializing_if = "Option::is_none")]
52    pub moulin: Option<UpdateEnvironmentProviderSlotRequest>,
53    #[serde(default, skip_serializing_if = "Option::is_none")]
54    pub e2b: Option<UpdateEnvironmentProviderSlotRequest>,
55    #[serde(default, skip_serializing_if = "Option::is_none")]
56    pub default_provider: Option<String>,
57    #[serde(default, skip_serializing_if = "Option::is_none")]
58    pub default_snapshot_id: Option<String>,
59}