nblm_core/models/enterprise/
notebook.rs1use 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}