Skip to main content

vta_sdk/protocols/context_management/
create.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
6pub struct CreateContextBody {
7    /// Leaf segment when `parent` is set (full path = `<parent>/<id>`), else a
8    /// top-level segment.
9    pub id: String,
10    pub name: String,
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub description: Option<String>,
13    /// Parent context path to nest under, or `None` for a top-level context.
14    #[serde(default, skip_serializing_if = "Option::is_none")]
15    pub parent: Option<String>,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
20pub struct CreateContextResultBody {
21    pub id: String,
22    pub name: String,
23    pub did: Option<String>,
24    pub description: Option<String>,
25    /// Parent context id, or `None` for a top-level context.
26    #[serde(default, skip_serializing_if = "Option::is_none")]
27    pub parent: Option<String>,
28    pub base_path: String,
29    pub created_at: DateTime<Utc>,
30    pub updated_at: DateTime<Utc>,
31}