nblm_core/models/enterprise/
notebook.rs

1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6use super::source::NotebookSource;
7
8#[derive(Debug, Clone, Serialize, Deserialize, Default)]
9#[serde(rename_all = "camelCase")]
10pub struct Notebook {
11    pub name: Option<String>,
12    pub title: String,
13    #[serde(rename = "notebookId", skip_serializing_if = "Option::is_none")]
14    pub notebook_id: Option<String>,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub emoji: Option<String>,
17    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18    pub sources: Vec<NotebookSource>,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub metadata: Option<NotebookMetadata>,
21    #[serde(flatten)]
22    pub extra: HashMap<String, Value>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct NotebookRef {
28    pub notebook_id: String,
29    pub name: String,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize, Default)]
33#[serde(rename_all = "camelCase")]
34pub struct NotebookMetadata {
35    #[serde(skip_serializing_if = "Option::is_none")]
36    pub create_time: Option<String>,
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub is_shareable: Option<bool>,
39    #[serde(skip_serializing_if = "Option::is_none")]
40    pub is_shared: Option<bool>,
41    #[serde(skip_serializing_if = "Option::is_none")]
42    pub last_viewed: Option<String>,
43    #[serde(flatten)]
44    pub extra: HashMap<String, Value>,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize, Default)]
48pub struct BatchDeleteNotebooksRequest {
49    pub names: Vec<String>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize, Default)]
53pub struct BatchDeleteNotebooksResponse {
54    #[serde(flatten)]
55    pub extra: HashMap<String, Value>,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize, Default)]
59#[serde(rename_all = "camelCase")]
60pub struct ListRecentlyViewedResponse {
61    #[serde(default)]
62    pub notebooks: Vec<Notebook>,
63}