aws_sdk_s3/operation/list_parts/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::list_parts::_list_parts_output::ListPartsOutputBuilder;
3
4pub use crate::operation::list_parts::_list_parts_input::ListPartsInputBuilder;
5
6impl crate::operation::list_parts::builders::ListPartsInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::list_parts::ListPartsOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::list_parts::ListPartsError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.list_parts();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `ListParts`.
24///
25/// <important>
26/// <p>End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning <code>DisplayName</code>. Update your applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of <code>DisplayName</code>.</p>
27/// <p>This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region.</p>
28/// </important>
29/// <p>Lists the parts that have been uploaded for a specific multipart upload.</p>
30/// <p>To use this operation, you must provide the <code>upload ID</code> in the request. You obtain this uploadID by sending the initiate multipart upload request through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.</p>
31/// <p>The <code>ListParts</code> request returns a maximum of 1,000 uploaded parts. The limit of 1,000 parts is also the default value. You can restrict the number of parts in a response by specifying the <code>max-parts</code> request parameter. If your multipart upload consists of more than 1,000 parts, the response returns an <code>IsTruncated</code> field with the value of <code>true</code>, and a <code>NextPartNumberMarker</code> element. To list remaining uploaded parts, in subsequent <code>ListParts</code> requests, include the <code>part-number-marker</code> query string parameter and set its value to the <code>NextPartNumberMarker</code> field value from the previous response.</p>
32/// <p>For more information on multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p><note>
33/// <p><b>Directory buckets</b> - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format <code>https://<i>amzn-s3-demo-bucket</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com/<i>key-name</i> </code>. Path-style requests are not supported. For more information about endpoints in Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html">Regional and Zonal endpoints for directory buckets in Availability Zones</a> in the <i>Amazon S3 User Guide</i>. For more information about endpoints in Local Zones, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html">Concepts for directory buckets in Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p>
34/// </note>
35/// <dl>
36/// <dt>
37/// Permissions
38/// </dt>
39/// <dd>
40/// <ul>
41/// <li>
42/// <p><b>General purpose bucket permissions</b> - For information about permissions required to use the multipart upload API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p>
43/// <p>If the upload was created using server-side encryption with Key Management Service (KMS) keys (SSE-KMS) or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), you must have permission to the <code>kms:Decrypt</code> action for the <code>ListParts</code> request to succeed.</p></li>
44/// <li>
45/// <p><b>Directory bucket permissions</b> - To grant access to this API operation on a directory bucket, we recommend that you use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a> API operation for session-based authorization. Specifically, you grant the <code>s3express:CreateSession</code> permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the <code>CreateSession</code> API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another <code>CreateSession</code> API call to generate a new session token for use. Amazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a>.</p></li>
46/// </ul>
47/// </dd>
48/// <dt>
49/// HTTP Host header syntax
50/// </dt>
51/// <dd>
52/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>.</p>
53/// </dd>
54/// </dl>
55/// <p>The following operations are related to <code>ListParts</code>:</p>
56/// <ul>
57/// <li>
58/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a></p></li>
59/// <li>
60/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a></p></li>
61/// <li>
62/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a></p></li>
63/// <li>
64/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a></p></li>
65/// <li>
66/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html">GetObjectAttributes</a></p></li>
67/// <li>
68/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a></p></li>
69/// </ul><important>
70/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
71/// </important>
72#[derive(::std::clone::Clone, ::std::fmt::Debug)]
73pub struct ListPartsFluentBuilder {
74    handle: ::std::sync::Arc<crate::client::Handle>,
75    inner: crate::operation::list_parts::builders::ListPartsInputBuilder,
76    config_override: ::std::option::Option<crate::config::Builder>,
77}
78impl crate::client::customize::internal::CustomizableSend<crate::operation::list_parts::ListPartsOutput, crate::operation::list_parts::ListPartsError>
79    for ListPartsFluentBuilder
80{
81    fn send(
82        self,
83        config_override: crate::config::Builder,
84    ) -> crate::client::customize::internal::BoxFuture<
85        crate::client::customize::internal::SendResult<crate::operation::list_parts::ListPartsOutput, crate::operation::list_parts::ListPartsError>,
86    > {
87        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
88    }
89}
90impl ListPartsFluentBuilder {
91    /// Creates a new `ListPartsFluentBuilder`.
92    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
93        Self {
94            handle,
95            inner: ::std::default::Default::default(),
96            config_override: ::std::option::Option::None,
97        }
98    }
99    /// Access the ListParts as a reference.
100    pub fn as_input(&self) -> &crate::operation::list_parts::builders::ListPartsInputBuilder {
101        &self.inner
102    }
103    /// Sends the request and returns the response.
104    ///
105    /// If an error occurs, an `SdkError` will be returned with additional details that
106    /// can be matched against.
107    ///
108    /// By default, any retryable failures will be retried twice. Retry behavior
109    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
110    /// set when configuring the client.
111    pub async fn send(
112        self,
113    ) -> ::std::result::Result<
114        crate::operation::list_parts::ListPartsOutput,
115        ::aws_smithy_runtime_api::client::result::SdkError<
116            crate::operation::list_parts::ListPartsError,
117            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
118        >,
119    > {
120        let input = self
121            .inner
122            .build()
123            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
124        let runtime_plugins = crate::operation::list_parts::ListParts::operation_runtime_plugins(
125            self.handle.runtime_plugins.clone(),
126            &self.handle.conf,
127            self.config_override,
128        );
129        crate::operation::list_parts::ListParts::orchestrate(&runtime_plugins, input).await
130    }
131
132    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
133    pub fn customize(
134        self,
135    ) -> crate::client::customize::CustomizableOperation<
136        crate::operation::list_parts::ListPartsOutput,
137        crate::operation::list_parts::ListPartsError,
138        Self,
139    > {
140        crate::client::customize::CustomizableOperation::new(self)
141    }
142    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
143        self.set_config_override(::std::option::Option::Some(config_override.into()));
144        self
145    }
146
147    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
148        self.config_override = config_override;
149        self
150    }
151    /// Create a paginator for this request
152    ///
153    /// Paginators are used by calling [`send().await`](crate::operation::list_parts::paginator::ListPartsPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
154    pub fn into_paginator(self) -> crate::operation::list_parts::paginator::ListPartsPaginator {
155        crate::operation::list_parts::paginator::ListPartsPaginator::new(self.handle, self.inner)
156    }
157    /// <p>The name of the bucket to which the parts are being uploaded.</p>
158    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>amzn-s3-demo-bucket</i>--<i>usw2-az1</i>--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>
159    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
160    /// <p>Object Lambda access points are not supported by directory buckets.</p>
161    /// </note>
162    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
163    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
164        self.inner = self.inner.bucket(input.into());
165        self
166    }
167    /// <p>The name of the bucket to which the parts are being uploaded.</p>
168    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>amzn-s3-demo-bucket</i>--<i>usw2-az1</i>--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>
169    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
170    /// <p>Object Lambda access points are not supported by directory buckets.</p>
171    /// </note>
172    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
173    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
174        self.inner = self.inner.set_bucket(input);
175        self
176    }
177    /// <p>The name of the bucket to which the parts are being uploaded.</p>
178    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>amzn-s3-demo-bucket</i>--<i>usw2-az1</i>--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>
179    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
180    /// <p>Object Lambda access points are not supported by directory buckets.</p>
181    /// </note>
182    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
183    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
184        self.inner.get_bucket()
185    }
186    /// <p>Object key for which the multipart upload was initiated.</p>
187    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
188        self.inner = self.inner.key(input.into());
189        self
190    }
191    /// <p>Object key for which the multipart upload was initiated.</p>
192    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
193        self.inner = self.inner.set_key(input);
194        self
195    }
196    /// <p>Object key for which the multipart upload was initiated.</p>
197    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
198        self.inner.get_key()
199    }
200    /// <p>Sets the maximum number of parts to return.</p>
201    pub fn max_parts(mut self, input: i32) -> Self {
202        self.inner = self.inner.max_parts(input);
203        self
204    }
205    /// <p>Sets the maximum number of parts to return.</p>
206    pub fn set_max_parts(mut self, input: ::std::option::Option<i32>) -> Self {
207        self.inner = self.inner.set_max_parts(input);
208        self
209    }
210    /// <p>Sets the maximum number of parts to return.</p>
211    pub fn get_max_parts(&self) -> &::std::option::Option<i32> {
212        self.inner.get_max_parts()
213    }
214    /// <p>Specifies the part after which listing should begin. Only parts with higher part numbers will be listed.</p>
215    pub fn part_number_marker(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
216        self.inner = self.inner.part_number_marker(input.into());
217        self
218    }
219    /// <p>Specifies the part after which listing should begin. Only parts with higher part numbers will be listed.</p>
220    pub fn set_part_number_marker(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
221        self.inner = self.inner.set_part_number_marker(input);
222        self
223    }
224    /// <p>Specifies the part after which listing should begin. Only parts with higher part numbers will be listed.</p>
225    pub fn get_part_number_marker(&self) -> &::std::option::Option<::std::string::String> {
226        self.inner.get_part_number_marker()
227    }
228    /// <p>Upload ID identifying the multipart upload whose parts are being listed.</p>
229    pub fn upload_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
230        self.inner = self.inner.upload_id(input.into());
231        self
232    }
233    /// <p>Upload ID identifying the multipart upload whose parts are being listed.</p>
234    pub fn set_upload_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
235        self.inner = self.inner.set_upload_id(input);
236        self
237    }
238    /// <p>Upload ID identifying the multipart upload whose parts are being listed.</p>
239    pub fn get_upload_id(&self) -> &::std::option::Option<::std::string::String> {
240        self.inner.get_upload_id()
241    }
242    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
243    /// <p>This functionality is not supported for directory buckets.</p>
244    /// </note>
245    pub fn request_payer(mut self, input: crate::types::RequestPayer) -> Self {
246        self.inner = self.inner.request_payer(input);
247        self
248    }
249    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
250    /// <p>This functionality is not supported for directory buckets.</p>
251    /// </note>
252    pub fn set_request_payer(mut self, input: ::std::option::Option<crate::types::RequestPayer>) -> Self {
253        self.inner = self.inner.set_request_payer(input);
254        self
255    }
256    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
257    /// <p>This functionality is not supported for directory buckets.</p>
258    /// </note>
259    pub fn get_request_payer(&self) -> &::std::option::Option<crate::types::RequestPayer> {
260        self.inner.get_request_payer()
261    }
262    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
263    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
264        self.inner = self.inner.expected_bucket_owner(input.into());
265        self
266    }
267    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
268    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
269        self.inner = self.inner.set_expected_bucket_owner(input);
270        self
271    }
272    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
273    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
274        self.inner.get_expected_bucket_owner()
275    }
276    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
277    /// <p>This functionality is not supported for directory buckets.</p>
278    /// </note>
279    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
280        self.inner = self.inner.sse_customer_algorithm(input.into());
281        self
282    }
283    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
284    /// <p>This functionality is not supported for directory buckets.</p>
285    /// </note>
286    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
287        self.inner = self.inner.set_sse_customer_algorithm(input);
288        self
289    }
290    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
291    /// <p>This functionality is not supported for directory buckets.</p>
292    /// </note>
293    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
294        self.inner.get_sse_customer_algorithm()
295    }
296    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
297    /// <p>This functionality is not supported for directory buckets.</p>
298    /// </note>
299    pub fn sse_customer_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
300        self.inner = self.inner.sse_customer_key(input.into());
301        self
302    }
303    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
304    /// <p>This functionality is not supported for directory buckets.</p>
305    /// </note>
306    pub fn set_sse_customer_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
307        self.inner = self.inner.set_sse_customer_key(input);
308        self
309    }
310    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
311    /// <p>This functionality is not supported for directory buckets.</p>
312    /// </note>
313    pub fn get_sse_customer_key(&self) -> &::std::option::Option<::std::string::String> {
314        self.inner.get_sse_customer_key()
315    }
316    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
317    /// <p>This functionality is not supported for directory buckets.</p>
318    /// </note>
319    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
320        self.inner = self.inner.sse_customer_key_md5(input.into());
321        self
322    }
323    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
324    /// <p>This functionality is not supported for directory buckets.</p>
325    /// </note>
326    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
327        self.inner = self.inner.set_sse_customer_key_md5(input);
328        self
329    }
330    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
331    /// <p>This functionality is not supported for directory buckets.</p>
332    /// </note>
333    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
334        self.inner.get_sse_customer_key_md5()
335    }
336}