1use crate::entry::ObjectVersion;
16use serde::{Deserialize, Serialize};
17use std::collections::HashMap;
18
19#[derive(Debug, Clone, Serialize, Deserialize, Default, Eq, PartialEq)]
34pub struct Args {
35 #[serde(rename = "bucket", skip_serializing_if = "Option::is_none")]
36 pub bucket: Option<String>,
37 #[serde(rename = "object", skip_serializing_if = "Option::is_none")]
38 pub object: Option<String>,
39 #[serde(rename = "versionId", skip_serializing_if = "Option::is_none")]
40 pub version_id: Option<String>,
41 #[serde(rename = "objects", skip_serializing_if = "Option::is_none")]
42 pub objects: Option<Vec<ObjectVersion>>,
43 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
44 pub metadata: Option<HashMap<String, String>>,
45}
46
47impl Args {
48 pub fn new() -> Self {
50 Args {
51 bucket: None,
52 object: None,
53 version_id: None,
54 objects: None,
55 metadata: None,
56 }
57 }
58
59 pub fn set_bucket(mut self, bucket: Option<String>) -> Self {
61 self.bucket = bucket;
62 self
63 }
64
65 pub fn set_object(mut self, object: Option<String>) -> Self {
67 self.object = object;
68 self
69 }
70
71 pub fn set_version_id(mut self, version_id: Option<String>) -> Self {
73 self.version_id = version_id;
74 self
75 }
76
77 pub fn set_objects(mut self, objects: Option<Vec<ObjectVersion>>) -> Self {
79 self.objects = objects;
80 self
81 }
82
83 pub fn set_metadata(mut self, metadata: Option<HashMap<String, String>>) -> Self {
85 self.metadata = metadata;
86 self
87 }
88}