use super::*;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadedPart {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub part: Option<UploadPart>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadPart {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub part_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadParts {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<UploadPart>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadSession {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<UploadSessionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_expires_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub part_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_parts: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_parts_processed: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_endpoints: Option<UploadSessionSessionEndpoints>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct UploadSessionType(pub String);
impl UploadSessionType {
pub const UPLOAD_SESSION: &'static str = "upload_session";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadSessionSessionEndpoints {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub upload_part: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub commit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub abort: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub list_parts: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub log_event: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateFileUploadSessionRequest {
pub folder_id: String,
pub file_size: i64,
pub file_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateFileVersionUploadSessionRequest {
pub file_size: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CommitFileUploadSessionRequest {
pub parts: Vec<UploadPart>,
}