s3_wire/operation/multipart/
listing.rs1use super::UploadId;
2use crate::operation::{ObjectKey, PageSize, RequestIds};
3
4#[derive(Clone, Debug, Default, Eq, PartialEq)]
6pub struct ListMultipartUploadsRequest {
7 pub prefix: Option<String>,
9 pub delimiter: Option<String>,
11 pub key_marker: Option<String>,
13 pub upload_id_marker: Option<UploadId>,
15 pub max_uploads: PageSize,
17}
18
19#[derive(Clone, Debug, Eq, PartialEq)]
21pub struct MultipartUploadEntry {
22 pub key: ObjectKey,
24 upload_id: UploadId,
26 pub initiated: Option<time::OffsetDateTime>,
28 pub storage_class: Option<String>,
30}
31
32impl MultipartUploadEntry {
33 pub(crate) fn new(
34 key: ObjectKey,
35 upload_id: UploadId,
36 initiated: Option<time::OffsetDateTime>,
37 storage_class: Option<String>,
38 ) -> Self {
39 Self {
40 key,
41 upload_id,
42 initiated,
43 storage_class,
44 }
45 }
46
47 pub const fn upload_id(&self) -> &UploadId {
49 &self.upload_id
50 }
51}
52
53#[derive(Clone, Debug, Default, Eq, PartialEq)]
55pub struct ListMultipartUploadsOutput {
56 pub uploads: Vec<MultipartUploadEntry>,
58 pub common_prefixes: Vec<String>,
60 pub is_truncated: bool,
62 pub next_key_marker: Option<String>,
64 pub next_upload_id_marker: Option<UploadId>,
66 pub request_ids: RequestIds,
68}