use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileUploadOutput {
pub request_id: String,
pub data: FileUploadData,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileUploadData {
#[serde(rename = "uploaded_files")]
pub uploaded_files: Vec<UploadedFile>,
#[serde(rename = "failed_uploads")]
pub failed_uploads: Vec<FailedUpload>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UploadedFile {
#[serde(rename = "file_id")]
pub file_id: String,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FailedUpload {
pub name: String,
pub code: String,
pub message: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileListOutput {
pub request_id: String,
pub data: FileListData,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileListData {
pub total: u64,
pub page_size: u64,
pub page_no: u64,
pub files: Vec<FileInfo>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileInfo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<u64>,
#[serde(rename = "file_id")]
pub file_id: String,
pub name: String,
pub description: Option<String>,
pub size: u64,
pub md5: String,
pub gmt_create: Option<String>,
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub api_key_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub purpose: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileRetrieveOutput {
pub request_id: String,
pub data: FileInfo,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileDeleteOutput {
pub request_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}