rust_genai_types/
documents.rs1use serde::{Deserialize, Serialize};
2
3use crate::enums::DocumentState;
4use crate::http::{HttpOptions, HttpResponse};
5
6#[derive(Debug, Clone, Serialize, Deserialize, Default)]
8#[serde(rename_all = "camelCase")]
9pub struct StringList {
10 #[serde(default)]
11 pub values: Vec<String>,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize, Default)]
16#[serde(rename_all = "camelCase")]
17pub struct CustomMetadata {
18 pub key: String,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub numeric_value: Option<f32>,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub string_list_value: Option<StringList>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub string_value: Option<String>,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize, Default)]
29#[serde(rename_all = "camelCase")]
30pub struct Document {
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub name: Option<String>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub display_name: Option<String>,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub state: Option<DocumentState>,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub size_bytes: Option<String>,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub mime_type: Option<String>,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub create_time: Option<String>,
43 #[serde(skip_serializing_if = "Option::is_none")]
44 pub update_time: Option<String>,
45 #[serde(skip_serializing_if = "Option::is_none")]
46 pub custom_metadata: Option<Vec<CustomMetadata>>,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize, Default)]
51#[serde(rename_all = "camelCase")]
52pub struct GetDocumentConfig {
53 #[serde(skip_serializing, skip_deserializing)]
55 pub http_options: Option<HttpOptions>,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize, Default)]
60#[serde(rename_all = "camelCase")]
61pub struct DeleteDocumentConfig {
62 #[serde(skip_serializing, skip_deserializing)]
64 pub http_options: Option<HttpOptions>,
65 #[serde(skip_serializing_if = "Option::is_none")]
67 pub force: Option<bool>,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize, Default)]
72#[serde(rename_all = "camelCase")]
73pub struct ListDocumentsConfig {
74 #[serde(skip_serializing, skip_deserializing)]
76 pub http_options: Option<HttpOptions>,
77 #[serde(skip_serializing_if = "Option::is_none")]
79 pub page_size: Option<i32>,
80 #[serde(skip_serializing_if = "Option::is_none")]
82 pub page_token: Option<String>,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize, Default)]
87#[serde(rename_all = "camelCase")]
88pub struct ListDocumentsResponse {
89 #[serde(skip_serializing_if = "Option::is_none")]
91 pub sdk_http_response: Option<HttpResponse>,
92 #[serde(skip_serializing_if = "Option::is_none")]
93 pub next_page_token: Option<String>,
94 #[serde(skip_serializing_if = "Option::is_none")]
95 pub documents: Option<Vec<Document>>,
96}