use super::UploadId;
use crate::operation::{ObjectKey, PageSize, RequestIds};
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub struct ListMultipartUploadsRequest {
pub prefix: Option<String>,
pub delimiter: Option<String>,
pub key_marker: Option<String>,
pub upload_id_marker: Option<UploadId>,
pub max_uploads: PageSize,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct MultipartUploadEntry {
pub key: ObjectKey,
upload_id: UploadId,
pub initiated: Option<time::OffsetDateTime>,
pub storage_class: Option<String>,
}
impl MultipartUploadEntry {
pub(crate) fn new(
key: ObjectKey,
upload_id: UploadId,
initiated: Option<time::OffsetDateTime>,
storage_class: Option<String>,
) -> Self {
Self {
key,
upload_id,
initiated,
storage_class,
}
}
pub const fn upload_id(&self) -> &UploadId {
&self.upload_id
}
}
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub struct ListMultipartUploadsOutput {
pub uploads: Vec<MultipartUploadEntry>,
pub common_prefixes: Vec<String>,
pub is_truncated: bool,
pub next_key_marker: Option<String>,
pub next_upload_id_marker: Option<UploadId>,
pub request_ids: RequestIds,
}