1use serde::{Deserialize, Serialize};
2use validator::Validate;
3
4#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
6pub struct FileListResponse {
7 #[serde(skip_serializing_if = "Option::is_none")]
9 pub object: Option<String>,
10 #[serde(skip_serializing_if = "Option::is_none")]
12 pub data: Option<Vec<FileObject>>,
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub has_more: Option<bool>,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
20pub struct FileObject {
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub id: Option<String>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub object: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub bytes: Option<u64>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub created_at: Option<u64>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub filename: Option<String>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub purpose: Option<String>,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
43pub struct FileDeleteResponse {
44 #[serde(skip_serializing_if = "Option::is_none")]
46 pub id: Option<String>,
47 #[serde(skip_serializing_if = "Option::is_none")]
49 pub object: Option<String>,
50 #[serde(skip_serializing_if = "Option::is_none")]
52 pub deleted: Option<bool>,
53}