opencode_sdk/types/
project.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct Project {
9 pub id: String,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub name: Option<String>,
14 #[serde(alias = "path", default, skip_serializing_if = "Option::is_none")]
16 pub directory: Option<String>,
17 #[serde(default)]
19 pub current: bool,
20 #[serde(default, skip_serializing_if = "Option::is_none")]
22 pub settings: Option<ProjectSettings>,
23 #[serde(flatten)]
25 pub extra: serde_json::Value,
26}
27
28#[derive(Debug, Clone, Default, Serialize, Deserialize)]
30#[serde(rename_all = "camelCase")]
31pub struct ProjectSettings {
32 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub default_model: Option<ModelRef>,
35 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub default_agent: Option<String>,
38 #[serde(flatten)]
40 pub extra: serde_json::Value,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct ModelRef {
47 #[serde(rename = "providerID")]
49 pub provider_id: String,
50 #[serde(rename = "modelID")]
52 pub model_id: String,
53}
54
55#[derive(Debug, Clone, Default, Serialize, Deserialize)]
57#[serde(rename_all = "camelCase")]
58pub struct UpdateProjectRequest {
59 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub name: Option<String>,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub settings: Option<ProjectSettings>,
65}