cloudreve_api/api/v4/models/
request.rs1use serde::Serialize;
4use std::collections::HashMap;
5
6#[derive(Debug, Serialize)]
8pub struct UploadRequest<'a> {
9 pub path: &'a str,
10 pub name: Option<&'a str>,
11 pub overwrite: Option<bool>,
12}
13
14#[derive(Debug, Serialize, Default)]
16pub struct ListFilesRequest<'a> {
17 pub path: &'a str,
18 pub page: Option<u32>,
19 pub page_size: Option<u32>,
20 pub order_by: Option<&'a str>,
21 pub order_direction: Option<&'a str>,
22 pub next_page_token: Option<&'a str>,
23}
24
25#[derive(Debug, Serialize, Default)]
31pub struct SearchFilesRequest<'a> {
32 pub path: &'a str,
34 pub keyword: &'a str,
36 pub case_folding: bool,
38 pub page: Option<u32>,
39 pub page_size: Option<u32>,
40 pub next_page_token: Option<&'a str>,
41}
42
43#[derive(Debug, Serialize)]
45pub struct MoveFileRequest<'a> {
46 pub uris: Vec<&'a str>,
47 pub dst: &'a str,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub copy: Option<bool>,
50}
51
52#[derive(Debug, Serialize)]
54pub struct CopyFileRequest<'a> {
55 pub uris: Vec<&'a str>,
56 pub dst: &'a str,
57}
58
59#[derive(Debug, Serialize)]
61pub struct RenameFileRequest<'a> {
62 pub uri: &'a str,
63 pub new_name: &'a str,
64}
65
66#[derive(Debug, Serialize)]
68pub struct SetFilePermissionRequest<'a> {
69 pub uri: &'a str,
76 #[serde(skip_serializing_if = "Option::is_none")]
77 pub user_explicit: Option<serde_json::Value>,
78 #[serde(skip_serializing_if = "Option::is_none")]
79 pub group_explicit: Option<serde_json::Value>,
80 #[serde(skip_serializing_if = "Option::is_none")]
81 pub same_group: Option<&'a str>,
82 #[serde(skip_serializing_if = "Option::is_none")]
83 pub other: Option<&'a str>,
84 #[serde(skip_serializing_if = "Option::is_none")]
85 pub anonymous: Option<&'a str>,
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub everyone: Option<&'a str>,
88}
89
90#[derive(Debug, Serialize)]
92pub struct CreateUploadSessionRequest<'a> {
93 pub uri: &'a str,
100 pub size: u64,
102 pub policy_id: &'a str,
104 #[serde(skip_serializing_if = "Option::is_none")]
106 pub last_modified: Option<u64>,
107 #[serde(skip_serializing_if = "Option::is_none")]
109 pub mime_type: Option<&'a str>,
110 #[serde(skip_serializing_if = "Option::is_none")]
112 pub metadata: Option<std::collections::HashMap<String, String>>,
113 #[serde(skip_serializing_if = "Option::is_none")]
115 pub entity_type: Option<&'a str>,
116}
117
118#[derive(Debug, Serialize)]
120pub struct DeleteUploadSessionRequest<'a> {
121 pub id: &'a str,
123 pub uri: &'a str,
130}
131
132#[derive(Debug, Serialize)]
134pub struct MoveCopyFileRequest<'a> {
135 pub from: Vec<&'a str>,
136 pub to: &'a str,
137 #[serde(skip_serializing_if = "Option::is_none")]
138 pub copy: Option<bool>,
139}
140
141#[derive(Debug, Serialize)]
143pub struct UpdateFileContentRequest<'a> {
144 pub uri: &'a str,
151 pub content: &'a str,
152}
153
154#[derive(Debug, Serialize)]
156pub struct CreateViewerSessionRequest<'a> {
157 pub uri: &'a str,
164}
165
166#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize)]
168#[serde(rename_all = "lowercase")]
169pub enum CreateFileType {
170 File,
171 Folder,
172}
173
174#[derive(Debug, Clone, Serialize)]
176pub struct CreateFileRequest<'a> {
177 pub uri: &'a str,
179 pub r#type: CreateFileType,
181 #[serde(skip_serializing_if = "Option::is_none")]
182 pub metadata: Option<HashMap<String, String>>,
183 #[serde(skip_serializing_if = "Option::is_none")]
185 pub err_on_conflict: Option<bool>,
186}
187
188#[derive(Debug, Serialize)]
190pub struct RenameMultipleRequest<'a> {
191 pub uris: Vec<&'a str>,
192 pub names: Vec<&'a str>,
193}
194
195#[derive(Debug, Serialize)]
197pub struct CreateDownloadUrlRequest<'a> {
198 pub uris: Vec<&'a str>,
205 #[serde(skip_serializing_if = "Option::is_none")]
206 pub download: Option<bool>,
207 #[serde(skip_serializing_if = "Option::is_none")]
208 pub redirect: Option<bool>,
209 #[serde(skip_serializing_if = "Option::is_none")]
210 pub entity: Option<&'a str>,
211 #[serde(skip_serializing_if = "Option::is_none")]
212 pub use_primary_site_url: Option<bool>,
213 #[serde(skip_serializing_if = "Option::is_none")]
214 pub skip_error: Option<bool>,
215 #[serde(skip_serializing_if = "Option::is_none")]
216 pub archive: Option<bool>,
217 #[serde(skip_serializing_if = "Option::is_none")]
218 pub no_cache: Option<bool>,
219}
220
221#[derive(Debug, Serialize)]
223pub struct RestoreFileRequest<'a> {
224 pub uris: Vec<&'a str>,
231}
232
233#[derive(Debug, Serialize)]
235pub struct UpdateMetadataRequest {
236 #[serde(skip_serializing_if = "Option::is_none")]
237 pub metadata: Option<serde_json::Value>,
238 #[serde(skip_serializing_if = "Option::is_none")]
239 pub clear_metadata: Option<bool>,
240}
241
242#[derive(Debug, Serialize)]
244pub struct MountStoragePolicyRequest {
245 pub policy_id: u64,
246 #[serde(skip_serializing_if = "Option::is_none")]
247 pub inherit_to_children: Option<bool>,
248}
249
250#[derive(Debug, Serialize)]
252pub struct UpdateViewRequest {
253 #[serde(skip_serializing_if = "Option::is_none")]
254 pub page_size: Option<i32>,
255 #[serde(skip_serializing_if = "Option::is_none")]
256 pub order: Option<String>,
257 #[serde(skip_serializing_if = "Option::is_none")]
258 pub order_direction: Option<String>,
259 #[serde(skip_serializing_if = "Option::is_none")]
260 pub view: Option<String>,
261 #[serde(skip_serializing_if = "Option::is_none")]
262 pub thumbnail: Option<bool>,
263 #[serde(skip_serializing_if = "Option::is_none")]
264 pub gallery_width: Option<i32>,
265}
266
267#[derive(Debug, Serialize)]
269pub struct GetFileInfoRequest<'a> {
270 pub uri: &'a str,
277 #[serde(skip_serializing_if = "Option::is_none")]
278 pub include_extended_info: Option<bool>,
279}
280
281#[derive(Debug, Serialize)]
283pub struct GetArchiveListRequest<'a> {
284 pub uri: &'a str,
291}
292
293#[derive(Debug, Serialize)]
295pub struct RelocateRequest<'a> {
296 #[serde(rename = "src")]
297 pub src: Vec<&'a str>,
298 #[serde(rename = "dst_policy_id")]
299 pub dst_policy_id: &'a str,
300}
301
302#[derive(Debug, Serialize)]
304pub struct ImportRequest<'a> {
305 #[serde(rename = "src")]
306 pub src: &'a str,
307 #[serde(rename = "dst")]
308 pub dst: &'a str,
309 #[serde(rename = "user_id")]
310 pub user_id: &'a str,
311 #[serde(rename = "policy_id")]
312 pub policy_id: i32,
313 #[serde(rename = "extract_media_meta")]
314 pub extract_media_meta: Option<bool>,
315 #[serde(rename = "recursive")]
316 pub recursive: Option<bool>,
317}
318
319#[derive(Debug, Serialize)]
321pub struct SelectDownloadFilesRequest<'a> {
322 pub selected_files: Vec<&'a str>,
323}
324
325#[derive(Debug, Serialize)]
327pub struct DeleteFileRequest<'a> {
328 pub uris: Vec<&'a str>,
335 #[serde(skip_serializing_if = "Option::is_none")]
336 pub unlink: Option<bool>,
337 #[serde(skip_serializing_if = "Option::is_none")]
338 pub skip_soft_delete: Option<bool>,
339}
340
341#[derive(Debug, Serialize)]
347pub struct UnlockFilesRequest<'a> {
348 pub tokens: Vec<&'a str>,
349}
350
351#[derive(Debug, Serialize)]
353pub struct CreateDownloadRequest<'a> {
354 #[serde(rename = "dst")]
355 pub dst: &'a str,
356 #[serde(rename = "src")]
357 pub src: Vec<&'a str>,
358 #[serde(rename = "preferred_node_id")]
359 pub preferred_node_id: Option<String>,
360}
361
362#[derive(Debug, Serialize)]
364pub struct CreateDirectLinkRequest<'a> {
365 pub uris: Vec<&'a str>,
372}