use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Default)]
#[serde(rename_all = "kebab-case")]
pub struct ListObjectsV1Query {
#[serde(default)]
pub prefix: Option<String>,
#[serde(default)]
pub delimiter: Option<String>,
#[serde(default)]
pub max_keys: Option<usize>,
#[serde(default)]
pub marker: Option<String>,
#[serde(default)]
pub encoding_type: Option<String>,
}
#[derive(Debug, Deserialize, Default)]
#[serde(rename_all = "kebab-case")]
pub struct ListMultipartUploadsQuery {
#[serde(default)]
pub prefix: Option<String>,
#[serde(default)]
pub delimiter: Option<String>,
#[serde(default)]
pub max_uploads: Option<u32>,
#[serde(default, rename = "key-marker")]
pub key_marker: Option<String>,
#[serde(default, rename = "upload-id-marker")]
pub upload_id_marker: Option<String>,
}
#[derive(Debug, Serialize)]
pub struct PresignedUrlResponse {
pub url: String,
pub expires_in: u64,
pub method: String,
}
#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct HealthResponse {
#[schema(example = "healthy")]
pub status: String,
#[schema(example = "0.1.0")]
pub version: String,
#[schema(example = "zstd:3")]
pub compression: String,
}
#[derive(Debug, Deserialize, Default)]
#[serde(rename_all = "kebab-case")]
pub struct ListObjectsV2Query {
#[serde(default)]
pub prefix: Option<String>,
#[serde(default)]
pub delimiter: Option<String>,
#[serde(default)]
pub max_keys: Option<usize>,
#[serde(default)]
pub continuation_token: Option<String>,
#[serde(default)]
pub start_after: Option<String>,
#[serde(default)]
pub encoding_type: Option<String>,
#[serde(rename = "list-type", default)]
pub list_type: Option<String>,
}
#[derive(Debug, Deserialize, Default)]
#[serde(rename_all = "kebab-case")]
pub struct ListObjectVersionsQuery {
#[serde(default)]
pub prefix: Option<String>,
#[serde(default)]
pub delimiter: Option<String>,
#[serde(default)]
pub max_keys: Option<usize>,
#[serde(default, rename = "key-marker")]
pub key_marker: Option<String>,
#[serde(default, rename = "version-id-marker")]
pub version_id_marker: Option<String>,
}
#[derive(Debug, Deserialize, Default)]
pub struct PresignQuery {
pub method: Option<String>,
pub expires: Option<u64>,
}
pub enum ConditionalResult {
Proceed,
NotModified(String),
PreconditionFailed(String),
}