aws_sdk_s3/operation/rename_object/
_rename_object_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct RenameObjectInput {
6    /// <p>The bucket name of the directory bucket containing the object.</p>
7    /// <p>You must use virtual-hosted-style requests in the format <code>Bucket-name.s3express-zone-id.region-code.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code>bucket-base-name--zone-id--x-s3 </code> (for example, <code>amzn-s3-demo-bucket--usw2-az1--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
8    pub bucket: ::std::option::Option<::std::string::String>,
9    /// <p>Key name of the object to rename.</p>
10    pub key: ::std::option::Option<::std::string::String>,
11    /// <p>Specifies the source for the rename operation. The value must be URL encoded.</p>
12    pub rename_source: ::std::option::Option<::std::string::String>,
13    /// <p>Renames the object only if the ETag (entity tag) value provided during the operation matches the ETag of the object in S3. The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
14    /// <p>Expects the ETag value as a string.</p>
15    pub destination_if_match: ::std::option::Option<::std::string::String>,
16    /// <p>Renames the object only if the destination does not already exist in the specified directory bucket. If the object does exist when you send a request with <code>If-None-Match:*</code>, the S3 API will return a <code>412 Precondition Failed</code> error, preventing an overwrite. The <code>If-None-Match</code> header prevents overwrites of existing data by validating that there's not an object with the same key name already in your directory bucket.</p>
17    /// <p>Expects the <code>*</code> character (asterisk).</p>
18    pub destination_if_none_match: ::std::option::Option<::std::string::String>,
19    /// <p>Renames the object if the destination exists and if it has been modified since the specified time.</p>
20    pub destination_if_modified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
21    /// <p>Renames the object if it hasn't been modified since the specified time.</p>
22    pub destination_if_unmodified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
23    /// <p>Renames the object if the source exists and if its entity tag (ETag) matches the specified ETag.</p>
24    pub source_if_match: ::std::option::Option<::std::string::String>,
25    /// <p>Renames the object if the source exists and if its entity tag (ETag) is different than the specified ETag. If an asterisk (<code>*</code>) character is provided, the operation will fail and return a <code>412 Precondition Failed</code> error.</p>
26    pub source_if_none_match: ::std::option::Option<::std::string::String>,
27    /// <p>Renames the object if the source exists and if it has been modified since the specified time.</p>
28    pub source_if_modified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
29    /// <p>Renames the object if the source exists and hasn't been modified since the specified time.</p>
30    pub source_if_unmodified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
31    /// <p>A unique string with a max of 64 ASCII characters in the ASCII range of 33 - 126. <code>RenameObject</code> supports idempotency using a client token. To make an idempotent API request using <code>RenameObject</code>, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails and an <code>IdempotentParameterMismatch</code> error is returned.</p>
32    pub client_token: ::std::option::Option<::std::string::String>,
33}
34impl RenameObjectInput {
35    /// <p>The bucket name of the directory bucket containing the object.</p>
36    /// <p>You must use virtual-hosted-style requests in the format <code>Bucket-name.s3express-zone-id.region-code.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code>bucket-base-name--zone-id--x-s3 </code> (for example, <code>amzn-s3-demo-bucket--usw2-az1--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
37    pub fn bucket(&self) -> ::std::option::Option<&str> {
38        self.bucket.as_deref()
39    }
40    /// <p>Key name of the object to rename.</p>
41    pub fn key(&self) -> ::std::option::Option<&str> {
42        self.key.as_deref()
43    }
44    /// <p>Specifies the source for the rename operation. The value must be URL encoded.</p>
45    pub fn rename_source(&self) -> ::std::option::Option<&str> {
46        self.rename_source.as_deref()
47    }
48    /// <p>Renames the object only if the ETag (entity tag) value provided during the operation matches the ETag of the object in S3. The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
49    /// <p>Expects the ETag value as a string.</p>
50    pub fn destination_if_match(&self) -> ::std::option::Option<&str> {
51        self.destination_if_match.as_deref()
52    }
53    /// <p>Renames the object only if the destination does not already exist in the specified directory bucket. If the object does exist when you send a request with <code>If-None-Match:*</code>, the S3 API will return a <code>412 Precondition Failed</code> error, preventing an overwrite. The <code>If-None-Match</code> header prevents overwrites of existing data by validating that there's not an object with the same key name already in your directory bucket.</p>
54    /// <p>Expects the <code>*</code> character (asterisk).</p>
55    pub fn destination_if_none_match(&self) -> ::std::option::Option<&str> {
56        self.destination_if_none_match.as_deref()
57    }
58    /// <p>Renames the object if the destination exists and if it has been modified since the specified time.</p>
59    pub fn destination_if_modified_since(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
60        self.destination_if_modified_since.as_ref()
61    }
62    /// <p>Renames the object if it hasn't been modified since the specified time.</p>
63    pub fn destination_if_unmodified_since(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
64        self.destination_if_unmodified_since.as_ref()
65    }
66    /// <p>Renames the object if the source exists and if its entity tag (ETag) matches the specified ETag.</p>
67    pub fn source_if_match(&self) -> ::std::option::Option<&str> {
68        self.source_if_match.as_deref()
69    }
70    /// <p>Renames the object if the source exists and if its entity tag (ETag) is different than the specified ETag. If an asterisk (<code>*</code>) character is provided, the operation will fail and return a <code>412 Precondition Failed</code> error.</p>
71    pub fn source_if_none_match(&self) -> ::std::option::Option<&str> {
72        self.source_if_none_match.as_deref()
73    }
74    /// <p>Renames the object if the source exists and if it has been modified since the specified time.</p>
75    pub fn source_if_modified_since(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
76        self.source_if_modified_since.as_ref()
77    }
78    /// <p>Renames the object if the source exists and hasn't been modified since the specified time.</p>
79    pub fn source_if_unmodified_since(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
80        self.source_if_unmodified_since.as_ref()
81    }
82    /// <p>A unique string with a max of 64 ASCII characters in the ASCII range of 33 - 126. <code>RenameObject</code> supports idempotency using a client token. To make an idempotent API request using <code>RenameObject</code>, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails and an <code>IdempotentParameterMismatch</code> error is returned.</p>
83    pub fn client_token(&self) -> ::std::option::Option<&str> {
84        self.client_token.as_deref()
85    }
86}
87impl RenameObjectInput {
88    /// Creates a new builder-style object to manufacture [`RenameObjectInput`](crate::operation::rename_object::RenameObjectInput).
89    pub fn builder() -> crate::operation::rename_object::builders::RenameObjectInputBuilder {
90        crate::operation::rename_object::builders::RenameObjectInputBuilder::default()
91    }
92}
93
94/// A builder for [`RenameObjectInput`](crate::operation::rename_object::RenameObjectInput).
95#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
96#[non_exhaustive]
97pub struct RenameObjectInputBuilder {
98    pub(crate) bucket: ::std::option::Option<::std::string::String>,
99    pub(crate) key: ::std::option::Option<::std::string::String>,
100    pub(crate) rename_source: ::std::option::Option<::std::string::String>,
101    pub(crate) destination_if_match: ::std::option::Option<::std::string::String>,
102    pub(crate) destination_if_none_match: ::std::option::Option<::std::string::String>,
103    pub(crate) destination_if_modified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
104    pub(crate) destination_if_unmodified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
105    pub(crate) source_if_match: ::std::option::Option<::std::string::String>,
106    pub(crate) source_if_none_match: ::std::option::Option<::std::string::String>,
107    pub(crate) source_if_modified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
108    pub(crate) source_if_unmodified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
109    pub(crate) client_token: ::std::option::Option<::std::string::String>,
110}
111impl RenameObjectInputBuilder {
112    /// <p>The bucket name of the directory bucket containing the object.</p>
113    /// <p>You must use virtual-hosted-style requests in the format <code>Bucket-name.s3express-zone-id.region-code.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code>bucket-base-name--zone-id--x-s3 </code> (for example, <code>amzn-s3-demo-bucket--usw2-az1--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
114    /// This field is required.
115    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
116        self.bucket = ::std::option::Option::Some(input.into());
117        self
118    }
119    /// <p>The bucket name of the directory bucket containing the object.</p>
120    /// <p>You must use virtual-hosted-style requests in the format <code>Bucket-name.s3express-zone-id.region-code.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code>bucket-base-name--zone-id--x-s3 </code> (for example, <code>amzn-s3-demo-bucket--usw2-az1--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
121    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
122        self.bucket = input;
123        self
124    }
125    /// <p>The bucket name of the directory bucket containing the object.</p>
126    /// <p>You must use virtual-hosted-style requests in the format <code>Bucket-name.s3express-zone-id.region-code.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code>bucket-base-name--zone-id--x-s3 </code> (for example, <code>amzn-s3-demo-bucket--usw2-az1--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
127    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
128        &self.bucket
129    }
130    /// <p>Key name of the object to rename.</p>
131    /// This field is required.
132    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
133        self.key = ::std::option::Option::Some(input.into());
134        self
135    }
136    /// <p>Key name of the object to rename.</p>
137    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
138        self.key = input;
139        self
140    }
141    /// <p>Key name of the object to rename.</p>
142    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
143        &self.key
144    }
145    /// <p>Specifies the source for the rename operation. The value must be URL encoded.</p>
146    /// This field is required.
147    pub fn rename_source(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
148        self.rename_source = ::std::option::Option::Some(input.into());
149        self
150    }
151    /// <p>Specifies the source for the rename operation. The value must be URL encoded.</p>
152    pub fn set_rename_source(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
153        self.rename_source = input;
154        self
155    }
156    /// <p>Specifies the source for the rename operation. The value must be URL encoded.</p>
157    pub fn get_rename_source(&self) -> &::std::option::Option<::std::string::String> {
158        &self.rename_source
159    }
160    /// <p>Renames the object only if the ETag (entity tag) value provided during the operation matches the ETag of the object in S3. The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
161    /// <p>Expects the ETag value as a string.</p>
162    pub fn destination_if_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
163        self.destination_if_match = ::std::option::Option::Some(input.into());
164        self
165    }
166    /// <p>Renames the object only if the ETag (entity tag) value provided during the operation matches the ETag of the object in S3. The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
167    /// <p>Expects the ETag value as a string.</p>
168    pub fn set_destination_if_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
169        self.destination_if_match = input;
170        self
171    }
172    /// <p>Renames the object only if the ETag (entity tag) value provided during the operation matches the ETag of the object in S3. The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
173    /// <p>Expects the ETag value as a string.</p>
174    pub fn get_destination_if_match(&self) -> &::std::option::Option<::std::string::String> {
175        &self.destination_if_match
176    }
177    /// <p>Renames the object only if the destination does not already exist in the specified directory bucket. If the object does exist when you send a request with <code>If-None-Match:*</code>, the S3 API will return a <code>412 Precondition Failed</code> error, preventing an overwrite. The <code>If-None-Match</code> header prevents overwrites of existing data by validating that there's not an object with the same key name already in your directory bucket.</p>
178    /// <p>Expects the <code>*</code> character (asterisk).</p>
179    pub fn destination_if_none_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
180        self.destination_if_none_match = ::std::option::Option::Some(input.into());
181        self
182    }
183    /// <p>Renames the object only if the destination does not already exist in the specified directory bucket. If the object does exist when you send a request with <code>If-None-Match:*</code>, the S3 API will return a <code>412 Precondition Failed</code> error, preventing an overwrite. The <code>If-None-Match</code> header prevents overwrites of existing data by validating that there's not an object with the same key name already in your directory bucket.</p>
184    /// <p>Expects the <code>*</code> character (asterisk).</p>
185    pub fn set_destination_if_none_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
186        self.destination_if_none_match = input;
187        self
188    }
189    /// <p>Renames the object only if the destination does not already exist in the specified directory bucket. If the object does exist when you send a request with <code>If-None-Match:*</code>, the S3 API will return a <code>412 Precondition Failed</code> error, preventing an overwrite. The <code>If-None-Match</code> header prevents overwrites of existing data by validating that there's not an object with the same key name already in your directory bucket.</p>
190    /// <p>Expects the <code>*</code> character (asterisk).</p>
191    pub fn get_destination_if_none_match(&self) -> &::std::option::Option<::std::string::String> {
192        &self.destination_if_none_match
193    }
194    /// <p>Renames the object if the destination exists and if it has been modified since the specified time.</p>
195    pub fn destination_if_modified_since(mut self, input: ::aws_smithy_types::DateTime) -> Self {
196        self.destination_if_modified_since = ::std::option::Option::Some(input);
197        self
198    }
199    /// <p>Renames the object if the destination exists and if it has been modified since the specified time.</p>
200    pub fn set_destination_if_modified_since(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
201        self.destination_if_modified_since = input;
202        self
203    }
204    /// <p>Renames the object if the destination exists and if it has been modified since the specified time.</p>
205    pub fn get_destination_if_modified_since(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
206        &self.destination_if_modified_since
207    }
208    /// <p>Renames the object if it hasn't been modified since the specified time.</p>
209    pub fn destination_if_unmodified_since(mut self, input: ::aws_smithy_types::DateTime) -> Self {
210        self.destination_if_unmodified_since = ::std::option::Option::Some(input);
211        self
212    }
213    /// <p>Renames the object if it hasn't been modified since the specified time.</p>
214    pub fn set_destination_if_unmodified_since(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
215        self.destination_if_unmodified_since = input;
216        self
217    }
218    /// <p>Renames the object if it hasn't been modified since the specified time.</p>
219    pub fn get_destination_if_unmodified_since(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
220        &self.destination_if_unmodified_since
221    }
222    /// <p>Renames the object if the source exists and if its entity tag (ETag) matches the specified ETag.</p>
223    pub fn source_if_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
224        self.source_if_match = ::std::option::Option::Some(input.into());
225        self
226    }
227    /// <p>Renames the object if the source exists and if its entity tag (ETag) matches the specified ETag.</p>
228    pub fn set_source_if_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
229        self.source_if_match = input;
230        self
231    }
232    /// <p>Renames the object if the source exists and if its entity tag (ETag) matches the specified ETag.</p>
233    pub fn get_source_if_match(&self) -> &::std::option::Option<::std::string::String> {
234        &self.source_if_match
235    }
236    /// <p>Renames the object if the source exists and if its entity tag (ETag) is different than the specified ETag. If an asterisk (<code>*</code>) character is provided, the operation will fail and return a <code>412 Precondition Failed</code> error.</p>
237    pub fn source_if_none_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
238        self.source_if_none_match = ::std::option::Option::Some(input.into());
239        self
240    }
241    /// <p>Renames the object if the source exists and if its entity tag (ETag) is different than the specified ETag. If an asterisk (<code>*</code>) character is provided, the operation will fail and return a <code>412 Precondition Failed</code> error.</p>
242    pub fn set_source_if_none_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
243        self.source_if_none_match = input;
244        self
245    }
246    /// <p>Renames the object if the source exists and if its entity tag (ETag) is different than the specified ETag. If an asterisk (<code>*</code>) character is provided, the operation will fail and return a <code>412 Precondition Failed</code> error.</p>
247    pub fn get_source_if_none_match(&self) -> &::std::option::Option<::std::string::String> {
248        &self.source_if_none_match
249    }
250    /// <p>Renames the object if the source exists and if it has been modified since the specified time.</p>
251    pub fn source_if_modified_since(mut self, input: ::aws_smithy_types::DateTime) -> Self {
252        self.source_if_modified_since = ::std::option::Option::Some(input);
253        self
254    }
255    /// <p>Renames the object if the source exists and if it has been modified since the specified time.</p>
256    pub fn set_source_if_modified_since(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
257        self.source_if_modified_since = input;
258        self
259    }
260    /// <p>Renames the object if the source exists and if it has been modified since the specified time.</p>
261    pub fn get_source_if_modified_since(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
262        &self.source_if_modified_since
263    }
264    /// <p>Renames the object if the source exists and hasn't been modified since the specified time.</p>
265    pub fn source_if_unmodified_since(mut self, input: ::aws_smithy_types::DateTime) -> Self {
266        self.source_if_unmodified_since = ::std::option::Option::Some(input);
267        self
268    }
269    /// <p>Renames the object if the source exists and hasn't been modified since the specified time.</p>
270    pub fn set_source_if_unmodified_since(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
271        self.source_if_unmodified_since = input;
272        self
273    }
274    /// <p>Renames the object if the source exists and hasn't been modified since the specified time.</p>
275    pub fn get_source_if_unmodified_since(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
276        &self.source_if_unmodified_since
277    }
278    /// <p>A unique string with a max of 64 ASCII characters in the ASCII range of 33 - 126. <code>RenameObject</code> supports idempotency using a client token. To make an idempotent API request using <code>RenameObject</code>, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails and an <code>IdempotentParameterMismatch</code> error is returned.</p>
279    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
280        self.client_token = ::std::option::Option::Some(input.into());
281        self
282    }
283    /// <p>A unique string with a max of 64 ASCII characters in the ASCII range of 33 - 126. <code>RenameObject</code> supports idempotency using a client token. To make an idempotent API request using <code>RenameObject</code>, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails and an <code>IdempotentParameterMismatch</code> error is returned.</p>
284    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
285        self.client_token = input;
286        self
287    }
288    /// <p>A unique string with a max of 64 ASCII characters in the ASCII range of 33 - 126. <code>RenameObject</code> supports idempotency using a client token. To make an idempotent API request using <code>RenameObject</code>, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails and an <code>IdempotentParameterMismatch</code> error is returned.</p>
289    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
290        &self.client_token
291    }
292    /// Consumes the builder and constructs a [`RenameObjectInput`](crate::operation::rename_object::RenameObjectInput).
293    pub fn build(
294        self,
295    ) -> ::std::result::Result<crate::operation::rename_object::RenameObjectInput, ::aws_smithy_types::error::operation::BuildError> {
296        ::std::result::Result::Ok(crate::operation::rename_object::RenameObjectInput {
297            bucket: self.bucket,
298            key: self.key,
299            rename_source: self.rename_source,
300            destination_if_match: self.destination_if_match,
301            destination_if_none_match: self.destination_if_none_match,
302            destination_if_modified_since: self.destination_if_modified_since,
303            destination_if_unmodified_since: self.destination_if_unmodified_since,
304            source_if_match: self.source_if_match,
305            source_if_none_match: self.source_if_none_match,
306            source_if_modified_since: self.source_if_modified_since,
307            source_if_unmodified_since: self.source_if_unmodified_since,
308            client_token: self.client_token,
309        })
310    }
311}