aws_sdk_s3/operation/get_object/_get_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)]
5pub struct GetObjectInput {
6 /// <p>The bucket name containing the object.</p>
7 /// <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>
8 /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. 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>
9 /// <p><b>Object Lambda access points</b> - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-object-lambda.<i>Region</i>.amazonaws.com.</p><note>
10 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
11 /// </note>
12 /// <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>
13 pub bucket: ::std::option::Option<::std::string::String>,
14 /// <p>Return the object only if its entity tag (ETag) is the same as the one specified in this header; otherwise, return a <code>412 Precondition Failed</code> error.</p>
15 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
16 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
17 pub if_match: ::std::option::Option<::std::string::String>,
18 /// <p>Return the object only if it has been modified since the specified time; otherwise, return a <code>304 Not Modified</code> error.</p>
19 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> status code.</p>
20 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
21 pub if_modified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
22 /// <p>Return the object only if its entity tag (ETag) is different from the one specified in this header; otherwise, return a <code>304 Not Modified</code> error.</p>
23 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> HTTP status code.</p>
24 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
25 pub if_none_match: ::std::option::Option<::std::string::String>,
26 /// <p>Return the object only if it has not been modified since the specified time; otherwise, return a <code>412 Precondition Failed</code> error.</p>
27 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
28 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
29 pub if_unmodified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
30 /// <p>Key of the object to get.</p>
31 pub key: ::std::option::Option<::std::string::String>,
32 /// <p>Downloads the specified byte range of an object. For more information about the HTTP Range header, see <a href="https://www.rfc-editor.org/rfc/rfc9110.html#name-range">https://www.rfc-editor.org/rfc/rfc9110.html#name-range</a>.</p><note>
33 /// <p>Amazon S3 doesn't support retrieving multiple ranges of data per <code>GET</code> request.</p>
34 /// </note>
35 pub range: ::std::option::Option<::std::string::String>,
36 /// <p>Sets the <code>Cache-Control</code> header of the response.</p>
37 pub response_cache_control: ::std::option::Option<::std::string::String>,
38 /// <p>Sets the <code>Content-Disposition</code> header of the response.</p>
39 pub response_content_disposition: ::std::option::Option<::std::string::String>,
40 /// <p>Sets the <code>Content-Encoding</code> header of the response.</p>
41 pub response_content_encoding: ::std::option::Option<::std::string::String>,
42 /// <p>Sets the <code>Content-Language</code> header of the response.</p>
43 pub response_content_language: ::std::option::Option<::std::string::String>,
44 /// <p>Sets the <code>Content-Type</code> header of the response.</p>
45 pub response_content_type: ::std::option::Option<::std::string::String>,
46 /// <p>Sets the <code>Expires</code> header of the response.</p>
47 pub response_expires: ::std::option::Option<::aws_smithy_types::DateTime>,
48 /// <p>Version ID used to reference a specific version of the object.</p>
49 /// <p>By default, the <code>GetObject</code> operation returns the current version of an object. To return a different version, use the <code>versionId</code> subresource.</p><note>
50 /// <ul>
51 /// <li>
52 /// <p>If you include a <code>versionId</code> in your request header, you must have the <code>s3:GetObjectVersion</code> permission to access a specific version of an object. The <code>s3:GetObject</code> permission is not required in this scenario.</p></li>
53 /// <li>
54 /// <p>If you request the current version of an object without a specific <code>versionId</code> in the request header, only the <code>s3:GetObject</code> permission is required. The <code>s3:GetObjectVersion</code> permission is not required in this scenario.</p></li>
55 /// <li>
56 /// <p><b>Directory buckets</b> - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the <code>null</code> value of the version ID is supported by directory buckets. You can only specify <code>null</code> to the <code>versionId</code> query parameter in the request.</p></li>
57 /// </ul>
58 /// </note>
59 /// <p>For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.</p>
60 pub version_id: ::std::option::Option<::std::string::String>,
61 /// <p>Specifies the algorithm to use when decrypting the object (for example, <code>AES256</code>).</p>
62 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
63 /// <ul>
64 /// <li>
65 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
66 /// <li>
67 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
68 /// <li>
69 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
70 /// </ul>
71 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
72 /// <p>This functionality is not supported for directory buckets.</p>
73 /// </note>
74 pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
75 /// <p>Specifies the customer-provided encryption key that you originally provided for Amazon S3 to encrypt the data before storing it. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p>
76 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
77 /// <ul>
78 /// <li>
79 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
80 /// <li>
81 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
82 /// <li>
83 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
84 /// </ul>
85 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
86 /// <p>This functionality is not supported for directory buckets.</p>
87 /// </note>
88 pub sse_customer_key: ::std::option::Option<::std::string::String>,
89 /// <p>Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.</p>
90 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
91 /// <ul>
92 /// <li>
93 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
94 /// <li>
95 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
96 /// <li>
97 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
98 /// </ul>
99 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
100 /// <p>This functionality is not supported for directory buckets.</p>
101 /// </note>
102 pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
103 /// <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>
104 /// <p>This functionality is not supported for directory buckets.</p>
105 /// </note>
106 pub request_payer: ::std::option::Option<crate::types::RequestPayer>,
107 /// <p>Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.</p>
108 pub part_number: ::std::option::Option<i32>,
109 /// <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>
110 pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
111 /// <p>To retrieve the checksum, this mode must be enabled.</p>
112 pub checksum_mode: ::std::option::Option<crate::types::ChecksumMode>,
113}
114impl GetObjectInput {
115 /// <p>The bucket name containing the object.</p>
116 /// <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>
117 /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. 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>
118 /// <p><b>Object Lambda access points</b> - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-object-lambda.<i>Region</i>.amazonaws.com.</p><note>
119 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
120 /// </note>
121 /// <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>
122 pub fn bucket(&self) -> ::std::option::Option<&str> {
123 self.bucket.as_deref()
124 }
125 /// <p>Return the object only if its entity tag (ETag) is the same as the one specified in this header; otherwise, return a <code>412 Precondition Failed</code> error.</p>
126 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
127 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
128 pub fn if_match(&self) -> ::std::option::Option<&str> {
129 self.if_match.as_deref()
130 }
131 /// <p>Return the object only if it has been modified since the specified time; otherwise, return a <code>304 Not Modified</code> error.</p>
132 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> status code.</p>
133 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
134 pub fn if_modified_since(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
135 self.if_modified_since.as_ref()
136 }
137 /// <p>Return the object only if its entity tag (ETag) is different from the one specified in this header; otherwise, return a <code>304 Not Modified</code> error.</p>
138 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> HTTP status code.</p>
139 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
140 pub fn if_none_match(&self) -> ::std::option::Option<&str> {
141 self.if_none_match.as_deref()
142 }
143 /// <p>Return the object only if it has not been modified since the specified time; otherwise, return a <code>412 Precondition Failed</code> error.</p>
144 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
145 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
146 pub fn if_unmodified_since(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
147 self.if_unmodified_since.as_ref()
148 }
149 /// <p>Key of the object to get.</p>
150 pub fn key(&self) -> ::std::option::Option<&str> {
151 self.key.as_deref()
152 }
153 /// <p>Downloads the specified byte range of an object. For more information about the HTTP Range header, see <a href="https://www.rfc-editor.org/rfc/rfc9110.html#name-range">https://www.rfc-editor.org/rfc/rfc9110.html#name-range</a>.</p><note>
154 /// <p>Amazon S3 doesn't support retrieving multiple ranges of data per <code>GET</code> request.</p>
155 /// </note>
156 pub fn range(&self) -> ::std::option::Option<&str> {
157 self.range.as_deref()
158 }
159 /// <p>Sets the <code>Cache-Control</code> header of the response.</p>
160 pub fn response_cache_control(&self) -> ::std::option::Option<&str> {
161 self.response_cache_control.as_deref()
162 }
163 /// <p>Sets the <code>Content-Disposition</code> header of the response.</p>
164 pub fn response_content_disposition(&self) -> ::std::option::Option<&str> {
165 self.response_content_disposition.as_deref()
166 }
167 /// <p>Sets the <code>Content-Encoding</code> header of the response.</p>
168 pub fn response_content_encoding(&self) -> ::std::option::Option<&str> {
169 self.response_content_encoding.as_deref()
170 }
171 /// <p>Sets the <code>Content-Language</code> header of the response.</p>
172 pub fn response_content_language(&self) -> ::std::option::Option<&str> {
173 self.response_content_language.as_deref()
174 }
175 /// <p>Sets the <code>Content-Type</code> header of the response.</p>
176 pub fn response_content_type(&self) -> ::std::option::Option<&str> {
177 self.response_content_type.as_deref()
178 }
179 /// <p>Sets the <code>Expires</code> header of the response.</p>
180 pub fn response_expires(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
181 self.response_expires.as_ref()
182 }
183 /// <p>Version ID used to reference a specific version of the object.</p>
184 /// <p>By default, the <code>GetObject</code> operation returns the current version of an object. To return a different version, use the <code>versionId</code> subresource.</p><note>
185 /// <ul>
186 /// <li>
187 /// <p>If you include a <code>versionId</code> in your request header, you must have the <code>s3:GetObjectVersion</code> permission to access a specific version of an object. The <code>s3:GetObject</code> permission is not required in this scenario.</p></li>
188 /// <li>
189 /// <p>If you request the current version of an object without a specific <code>versionId</code> in the request header, only the <code>s3:GetObject</code> permission is required. The <code>s3:GetObjectVersion</code> permission is not required in this scenario.</p></li>
190 /// <li>
191 /// <p><b>Directory buckets</b> - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the <code>null</code> value of the version ID is supported by directory buckets. You can only specify <code>null</code> to the <code>versionId</code> query parameter in the request.</p></li>
192 /// </ul>
193 /// </note>
194 /// <p>For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.</p>
195 pub fn version_id(&self) -> ::std::option::Option<&str> {
196 self.version_id.as_deref()
197 }
198 /// <p>Specifies the algorithm to use when decrypting the object (for example, <code>AES256</code>).</p>
199 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
200 /// <ul>
201 /// <li>
202 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
203 /// <li>
204 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
205 /// <li>
206 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
207 /// </ul>
208 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
209 /// <p>This functionality is not supported for directory buckets.</p>
210 /// </note>
211 pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
212 self.sse_customer_algorithm.as_deref()
213 }
214 /// <p>Specifies the customer-provided encryption key that you originally provided for Amazon S3 to encrypt the data before storing it. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p>
215 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
216 /// <ul>
217 /// <li>
218 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
219 /// <li>
220 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
221 /// <li>
222 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
223 /// </ul>
224 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
225 /// <p>This functionality is not supported for directory buckets.</p>
226 /// </note>
227 pub fn sse_customer_key(&self) -> ::std::option::Option<&str> {
228 self.sse_customer_key.as_deref()
229 }
230 /// <p>Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.</p>
231 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
232 /// <ul>
233 /// <li>
234 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
235 /// <li>
236 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
237 /// <li>
238 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
239 /// </ul>
240 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
241 /// <p>This functionality is not supported for directory buckets.</p>
242 /// </note>
243 pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
244 self.sse_customer_key_md5.as_deref()
245 }
246 /// <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>
247 /// <p>This functionality is not supported for directory buckets.</p>
248 /// </note>
249 pub fn request_payer(&self) -> ::std::option::Option<&crate::types::RequestPayer> {
250 self.request_payer.as_ref()
251 }
252 /// <p>Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.</p>
253 pub fn part_number(&self) -> ::std::option::Option<i32> {
254 self.part_number
255 }
256 /// <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>
257 pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
258 self.expected_bucket_owner.as_deref()
259 }
260 /// <p>To retrieve the checksum, this mode must be enabled.</p>
261 pub fn checksum_mode(&self) -> ::std::option::Option<&crate::types::ChecksumMode> {
262 self.checksum_mode.as_ref()
263 }
264}
265impl ::std::fmt::Debug for GetObjectInput {
266 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
267 let mut formatter = f.debug_struct("GetObjectInput");
268 formatter.field("bucket", &self.bucket);
269 formatter.field("if_match", &self.if_match);
270 formatter.field("if_modified_since", &self.if_modified_since);
271 formatter.field("if_none_match", &self.if_none_match);
272 formatter.field("if_unmodified_since", &self.if_unmodified_since);
273 formatter.field("key", &self.key);
274 formatter.field("range", &self.range);
275 formatter.field("response_cache_control", &self.response_cache_control);
276 formatter.field("response_content_disposition", &self.response_content_disposition);
277 formatter.field("response_content_encoding", &self.response_content_encoding);
278 formatter.field("response_content_language", &self.response_content_language);
279 formatter.field("response_content_type", &self.response_content_type);
280 formatter.field("response_expires", &self.response_expires);
281 formatter.field("version_id", &self.version_id);
282 formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
283 formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
284 formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
285 formatter.field("request_payer", &self.request_payer);
286 formatter.field("part_number", &self.part_number);
287 formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
288 formatter.field("checksum_mode", &self.checksum_mode);
289 formatter.finish()
290 }
291}
292impl GetObjectInput {
293 /// Creates a new builder-style object to manufacture [`GetObjectInput`](crate::operation::get_object::GetObjectInput).
294 pub fn builder() -> crate::operation::get_object::builders::GetObjectInputBuilder {
295 crate::operation::get_object::builders::GetObjectInputBuilder::default()
296 }
297}
298
299/// A builder for [`GetObjectInput`](crate::operation::get_object::GetObjectInput).
300#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
301#[non_exhaustive]
302pub struct GetObjectInputBuilder {
303 pub(crate) bucket: ::std::option::Option<::std::string::String>,
304 pub(crate) if_match: ::std::option::Option<::std::string::String>,
305 pub(crate) if_modified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
306 pub(crate) if_none_match: ::std::option::Option<::std::string::String>,
307 pub(crate) if_unmodified_since: ::std::option::Option<::aws_smithy_types::DateTime>,
308 pub(crate) key: ::std::option::Option<::std::string::String>,
309 pub(crate) range: ::std::option::Option<::std::string::String>,
310 pub(crate) response_cache_control: ::std::option::Option<::std::string::String>,
311 pub(crate) response_content_disposition: ::std::option::Option<::std::string::String>,
312 pub(crate) response_content_encoding: ::std::option::Option<::std::string::String>,
313 pub(crate) response_content_language: ::std::option::Option<::std::string::String>,
314 pub(crate) response_content_type: ::std::option::Option<::std::string::String>,
315 pub(crate) response_expires: ::std::option::Option<::aws_smithy_types::DateTime>,
316 pub(crate) version_id: ::std::option::Option<::std::string::String>,
317 pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
318 pub(crate) sse_customer_key: ::std::option::Option<::std::string::String>,
319 pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
320 pub(crate) request_payer: ::std::option::Option<crate::types::RequestPayer>,
321 pub(crate) part_number: ::std::option::Option<i32>,
322 pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
323 pub(crate) checksum_mode: ::std::option::Option<crate::types::ChecksumMode>,
324}
325impl GetObjectInputBuilder {
326 /// <p>The bucket name containing the object.</p>
327 /// <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>
328 /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. 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>
329 /// <p><b>Object Lambda access points</b> - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-object-lambda.<i>Region</i>.amazonaws.com.</p><note>
330 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
331 /// </note>
332 /// <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>
333 /// This field is required.
334 pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
335 self.bucket = ::std::option::Option::Some(input.into());
336 self
337 }
338 /// <p>The bucket name containing the object.</p>
339 /// <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>
340 /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. 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>
341 /// <p><b>Object Lambda access points</b> - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-object-lambda.<i>Region</i>.amazonaws.com.</p><note>
342 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
343 /// </note>
344 /// <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>
345 pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
346 self.bucket = input;
347 self
348 }
349 /// <p>The bucket name containing the object.</p>
350 /// <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>
351 /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. 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>
352 /// <p><b>Object Lambda access points</b> - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-object-lambda.<i>Region</i>.amazonaws.com.</p><note>
353 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
354 /// </note>
355 /// <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>
356 pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
357 &self.bucket
358 }
359 /// <p>Return the object only if its entity tag (ETag) is the same as the one specified in this header; otherwise, return a <code>412 Precondition Failed</code> error.</p>
360 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
361 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
362 pub fn if_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
363 self.if_match = ::std::option::Option::Some(input.into());
364 self
365 }
366 /// <p>Return the object only if its entity tag (ETag) is the same as the one specified in this header; otherwise, return a <code>412 Precondition Failed</code> error.</p>
367 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
368 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
369 pub fn set_if_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
370 self.if_match = input;
371 self
372 }
373 /// <p>Return the object only if its entity tag (ETag) is the same as the one specified in this header; otherwise, return a <code>412 Precondition Failed</code> error.</p>
374 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
375 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
376 pub fn get_if_match(&self) -> &::std::option::Option<::std::string::String> {
377 &self.if_match
378 }
379 /// <p>Return the object only if it has been modified since the specified time; otherwise, return a <code>304 Not Modified</code> error.</p>
380 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> status code.</p>
381 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
382 pub fn if_modified_since(mut self, input: ::aws_smithy_types::DateTime) -> Self {
383 self.if_modified_since = ::std::option::Option::Some(input);
384 self
385 }
386 /// <p>Return the object only if it has been modified since the specified time; otherwise, return a <code>304 Not Modified</code> error.</p>
387 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> status code.</p>
388 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
389 pub fn set_if_modified_since(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
390 self.if_modified_since = input;
391 self
392 }
393 /// <p>Return the object only if it has been modified since the specified time; otherwise, return a <code>304 Not Modified</code> error.</p>
394 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> status code.</p>
395 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
396 pub fn get_if_modified_since(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
397 &self.if_modified_since
398 }
399 /// <p>Return the object only if its entity tag (ETag) is different from the one specified in this header; otherwise, return a <code>304 Not Modified</code> error.</p>
400 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> HTTP status code.</p>
401 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
402 pub fn if_none_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
403 self.if_none_match = ::std::option::Option::Some(input.into());
404 self
405 }
406 /// <p>Return the object only if its entity tag (ETag) is different from the one specified in this header; otherwise, return a <code>304 Not Modified</code> error.</p>
407 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> HTTP status code.</p>
408 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
409 pub fn set_if_none_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
410 self.if_none_match = input;
411 self
412 }
413 /// <p>Return the object only if its entity tag (ETag) is different from the one specified in this header; otherwise, return a <code>304 Not Modified</code> error.</p>
414 /// <p>If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns <code>304 Not Modified</code> HTTP status code.</p>
415 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
416 pub fn get_if_none_match(&self) -> &::std::option::Option<::std::string::String> {
417 &self.if_none_match
418 }
419 /// <p>Return the object only if it has not been modified since the specified time; otherwise, return a <code>412 Precondition Failed</code> error.</p>
420 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
421 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
422 pub fn if_unmodified_since(mut self, input: ::aws_smithy_types::DateTime) -> Self {
423 self.if_unmodified_since = ::std::option::Option::Some(input);
424 self
425 }
426 /// <p>Return the object only if it has not been modified since the specified time; otherwise, return a <code>412 Precondition Failed</code> error.</p>
427 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
428 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
429 pub fn set_if_unmodified_since(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
430 self.if_unmodified_since = input;
431 self
432 }
433 /// <p>Return the object only if it has not been modified since the specified time; otherwise, return a <code>412 Precondition Failed</code> error.</p>
434 /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns <code>200 OK</code> and the data requested.</p>
435 /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
436 pub fn get_if_unmodified_since(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
437 &self.if_unmodified_since
438 }
439 /// <p>Key of the object to get.</p>
440 /// This field is required.
441 pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
442 self.key = ::std::option::Option::Some(input.into());
443 self
444 }
445 /// <p>Key of the object to get.</p>
446 pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
447 self.key = input;
448 self
449 }
450 /// <p>Key of the object to get.</p>
451 pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
452 &self.key
453 }
454 /// <p>Downloads the specified byte range of an object. For more information about the HTTP Range header, see <a href="https://www.rfc-editor.org/rfc/rfc9110.html#name-range">https://www.rfc-editor.org/rfc/rfc9110.html#name-range</a>.</p><note>
455 /// <p>Amazon S3 doesn't support retrieving multiple ranges of data per <code>GET</code> request.</p>
456 /// </note>
457 pub fn range(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
458 self.range = ::std::option::Option::Some(input.into());
459 self
460 }
461 /// <p>Downloads the specified byte range of an object. For more information about the HTTP Range header, see <a href="https://www.rfc-editor.org/rfc/rfc9110.html#name-range">https://www.rfc-editor.org/rfc/rfc9110.html#name-range</a>.</p><note>
462 /// <p>Amazon S3 doesn't support retrieving multiple ranges of data per <code>GET</code> request.</p>
463 /// </note>
464 pub fn set_range(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
465 self.range = input;
466 self
467 }
468 /// <p>Downloads the specified byte range of an object. For more information about the HTTP Range header, see <a href="https://www.rfc-editor.org/rfc/rfc9110.html#name-range">https://www.rfc-editor.org/rfc/rfc9110.html#name-range</a>.</p><note>
469 /// <p>Amazon S3 doesn't support retrieving multiple ranges of data per <code>GET</code> request.</p>
470 /// </note>
471 pub fn get_range(&self) -> &::std::option::Option<::std::string::String> {
472 &self.range
473 }
474 /// <p>Sets the <code>Cache-Control</code> header of the response.</p>
475 pub fn response_cache_control(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
476 self.response_cache_control = ::std::option::Option::Some(input.into());
477 self
478 }
479 /// <p>Sets the <code>Cache-Control</code> header of the response.</p>
480 pub fn set_response_cache_control(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
481 self.response_cache_control = input;
482 self
483 }
484 /// <p>Sets the <code>Cache-Control</code> header of the response.</p>
485 pub fn get_response_cache_control(&self) -> &::std::option::Option<::std::string::String> {
486 &self.response_cache_control
487 }
488 /// <p>Sets the <code>Content-Disposition</code> header of the response.</p>
489 pub fn response_content_disposition(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
490 self.response_content_disposition = ::std::option::Option::Some(input.into());
491 self
492 }
493 /// <p>Sets the <code>Content-Disposition</code> header of the response.</p>
494 pub fn set_response_content_disposition(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
495 self.response_content_disposition = input;
496 self
497 }
498 /// <p>Sets the <code>Content-Disposition</code> header of the response.</p>
499 pub fn get_response_content_disposition(&self) -> &::std::option::Option<::std::string::String> {
500 &self.response_content_disposition
501 }
502 /// <p>Sets the <code>Content-Encoding</code> header of the response.</p>
503 pub fn response_content_encoding(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
504 self.response_content_encoding = ::std::option::Option::Some(input.into());
505 self
506 }
507 /// <p>Sets the <code>Content-Encoding</code> header of the response.</p>
508 pub fn set_response_content_encoding(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
509 self.response_content_encoding = input;
510 self
511 }
512 /// <p>Sets the <code>Content-Encoding</code> header of the response.</p>
513 pub fn get_response_content_encoding(&self) -> &::std::option::Option<::std::string::String> {
514 &self.response_content_encoding
515 }
516 /// <p>Sets the <code>Content-Language</code> header of the response.</p>
517 pub fn response_content_language(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
518 self.response_content_language = ::std::option::Option::Some(input.into());
519 self
520 }
521 /// <p>Sets the <code>Content-Language</code> header of the response.</p>
522 pub fn set_response_content_language(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
523 self.response_content_language = input;
524 self
525 }
526 /// <p>Sets the <code>Content-Language</code> header of the response.</p>
527 pub fn get_response_content_language(&self) -> &::std::option::Option<::std::string::String> {
528 &self.response_content_language
529 }
530 /// <p>Sets the <code>Content-Type</code> header of the response.</p>
531 pub fn response_content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
532 self.response_content_type = ::std::option::Option::Some(input.into());
533 self
534 }
535 /// <p>Sets the <code>Content-Type</code> header of the response.</p>
536 pub fn set_response_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
537 self.response_content_type = input;
538 self
539 }
540 /// <p>Sets the <code>Content-Type</code> header of the response.</p>
541 pub fn get_response_content_type(&self) -> &::std::option::Option<::std::string::String> {
542 &self.response_content_type
543 }
544 /// <p>Sets the <code>Expires</code> header of the response.</p>
545 pub fn response_expires(mut self, input: ::aws_smithy_types::DateTime) -> Self {
546 self.response_expires = ::std::option::Option::Some(input);
547 self
548 }
549 /// <p>Sets the <code>Expires</code> header of the response.</p>
550 pub fn set_response_expires(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
551 self.response_expires = input;
552 self
553 }
554 /// <p>Sets the <code>Expires</code> header of the response.</p>
555 pub fn get_response_expires(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
556 &self.response_expires
557 }
558 /// <p>Version ID used to reference a specific version of the object.</p>
559 /// <p>By default, the <code>GetObject</code> operation returns the current version of an object. To return a different version, use the <code>versionId</code> subresource.</p><note>
560 /// <ul>
561 /// <li>
562 /// <p>If you include a <code>versionId</code> in your request header, you must have the <code>s3:GetObjectVersion</code> permission to access a specific version of an object. The <code>s3:GetObject</code> permission is not required in this scenario.</p></li>
563 /// <li>
564 /// <p>If you request the current version of an object without a specific <code>versionId</code> in the request header, only the <code>s3:GetObject</code> permission is required. The <code>s3:GetObjectVersion</code> permission is not required in this scenario.</p></li>
565 /// <li>
566 /// <p><b>Directory buckets</b> - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the <code>null</code> value of the version ID is supported by directory buckets. You can only specify <code>null</code> to the <code>versionId</code> query parameter in the request.</p></li>
567 /// </ul>
568 /// </note>
569 /// <p>For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.</p>
570 pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
571 self.version_id = ::std::option::Option::Some(input.into());
572 self
573 }
574 /// <p>Version ID used to reference a specific version of the object.</p>
575 /// <p>By default, the <code>GetObject</code> operation returns the current version of an object. To return a different version, use the <code>versionId</code> subresource.</p><note>
576 /// <ul>
577 /// <li>
578 /// <p>If you include a <code>versionId</code> in your request header, you must have the <code>s3:GetObjectVersion</code> permission to access a specific version of an object. The <code>s3:GetObject</code> permission is not required in this scenario.</p></li>
579 /// <li>
580 /// <p>If you request the current version of an object without a specific <code>versionId</code> in the request header, only the <code>s3:GetObject</code> permission is required. The <code>s3:GetObjectVersion</code> permission is not required in this scenario.</p></li>
581 /// <li>
582 /// <p><b>Directory buckets</b> - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the <code>null</code> value of the version ID is supported by directory buckets. You can only specify <code>null</code> to the <code>versionId</code> query parameter in the request.</p></li>
583 /// </ul>
584 /// </note>
585 /// <p>For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.</p>
586 pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
587 self.version_id = input;
588 self
589 }
590 /// <p>Version ID used to reference a specific version of the object.</p>
591 /// <p>By default, the <code>GetObject</code> operation returns the current version of an object. To return a different version, use the <code>versionId</code> subresource.</p><note>
592 /// <ul>
593 /// <li>
594 /// <p>If you include a <code>versionId</code> in your request header, you must have the <code>s3:GetObjectVersion</code> permission to access a specific version of an object. The <code>s3:GetObject</code> permission is not required in this scenario.</p></li>
595 /// <li>
596 /// <p>If you request the current version of an object without a specific <code>versionId</code> in the request header, only the <code>s3:GetObject</code> permission is required. The <code>s3:GetObjectVersion</code> permission is not required in this scenario.</p></li>
597 /// <li>
598 /// <p><b>Directory buckets</b> - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the <code>null</code> value of the version ID is supported by directory buckets. You can only specify <code>null</code> to the <code>versionId</code> query parameter in the request.</p></li>
599 /// </ul>
600 /// </note>
601 /// <p>For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.</p>
602 pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
603 &self.version_id
604 }
605 /// <p>Specifies the algorithm to use when decrypting the object (for example, <code>AES256</code>).</p>
606 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
607 /// <ul>
608 /// <li>
609 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
610 /// <li>
611 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
612 /// <li>
613 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
614 /// </ul>
615 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
616 /// <p>This functionality is not supported for directory buckets.</p>
617 /// </note>
618 pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
619 self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
620 self
621 }
622 /// <p>Specifies the algorithm to use when decrypting the object (for example, <code>AES256</code>).</p>
623 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
624 /// <ul>
625 /// <li>
626 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
627 /// <li>
628 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
629 /// <li>
630 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
631 /// </ul>
632 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
633 /// <p>This functionality is not supported for directory buckets.</p>
634 /// </note>
635 pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
636 self.sse_customer_algorithm = input;
637 self
638 }
639 /// <p>Specifies the algorithm to use when decrypting the object (for example, <code>AES256</code>).</p>
640 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
641 /// <ul>
642 /// <li>
643 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
644 /// <li>
645 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
646 /// <li>
647 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
648 /// </ul>
649 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
650 /// <p>This functionality is not supported for directory buckets.</p>
651 /// </note>
652 pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
653 &self.sse_customer_algorithm
654 }
655 /// <p>Specifies the customer-provided encryption key that you originally provided for Amazon S3 to encrypt the data before storing it. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p>
656 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
657 /// <ul>
658 /// <li>
659 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
660 /// <li>
661 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
662 /// <li>
663 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
664 /// </ul>
665 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
666 /// <p>This functionality is not supported for directory buckets.</p>
667 /// </note>
668 pub fn sse_customer_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
669 self.sse_customer_key = ::std::option::Option::Some(input.into());
670 self
671 }
672 /// <p>Specifies the customer-provided encryption key that you originally provided for Amazon S3 to encrypt the data before storing it. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p>
673 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
674 /// <ul>
675 /// <li>
676 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
677 /// <li>
678 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
679 /// <li>
680 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
681 /// </ul>
682 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
683 /// <p>This functionality is not supported for directory buckets.</p>
684 /// </note>
685 pub fn set_sse_customer_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
686 self.sse_customer_key = input;
687 self
688 }
689 /// <p>Specifies the customer-provided encryption key that you originally provided for Amazon S3 to encrypt the data before storing it. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p>
690 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
691 /// <ul>
692 /// <li>
693 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
694 /// <li>
695 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
696 /// <li>
697 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
698 /// </ul>
699 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
700 /// <p>This functionality is not supported for directory buckets.</p>
701 /// </note>
702 pub fn get_sse_customer_key(&self) -> &::std::option::Option<::std::string::String> {
703 &self.sse_customer_key
704 }
705 /// <p>Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.</p>
706 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
707 /// <ul>
708 /// <li>
709 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
710 /// <li>
711 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
712 /// <li>
713 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
714 /// </ul>
715 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
716 /// <p>This functionality is not supported for directory buckets.</p>
717 /// </note>
718 pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
719 self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
720 self
721 }
722 /// <p>Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.</p>
723 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
724 /// <ul>
725 /// <li>
726 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
727 /// <li>
728 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
729 /// <li>
730 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
731 /// </ul>
732 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
733 /// <p>This functionality is not supported for directory buckets.</p>
734 /// </note>
735 pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
736 self.sse_customer_key_md5 = input;
737 self
738 }
739 /// <p>Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.</p>
740 /// <p>If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:</p>
741 /// <ul>
742 /// <li>
743 /// <p><code>x-amz-server-side-encryption-customer-algorithm</code></p></li>
744 /// <li>
745 /// <p><code>x-amz-server-side-encryption-customer-key</code></p></li>
746 /// <li>
747 /// <p><code>x-amz-server-side-encryption-customer-key-MD5</code></p></li>
748 /// </ul>
749 /// <p>For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p><note>
750 /// <p>This functionality is not supported for directory buckets.</p>
751 /// </note>
752 pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
753 &self.sse_customer_key_md5
754 }
755 /// <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>
756 /// <p>This functionality is not supported for directory buckets.</p>
757 /// </note>
758 pub fn request_payer(mut self, input: crate::types::RequestPayer) -> Self {
759 self.request_payer = ::std::option::Option::Some(input);
760 self
761 }
762 /// <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>
763 /// <p>This functionality is not supported for directory buckets.</p>
764 /// </note>
765 pub fn set_request_payer(mut self, input: ::std::option::Option<crate::types::RequestPayer>) -> Self {
766 self.request_payer = input;
767 self
768 }
769 /// <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>
770 /// <p>This functionality is not supported for directory buckets.</p>
771 /// </note>
772 pub fn get_request_payer(&self) -> &::std::option::Option<crate::types::RequestPayer> {
773 &self.request_payer
774 }
775 /// <p>Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.</p>
776 pub fn part_number(mut self, input: i32) -> Self {
777 self.part_number = ::std::option::Option::Some(input);
778 self
779 }
780 /// <p>Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.</p>
781 pub fn set_part_number(mut self, input: ::std::option::Option<i32>) -> Self {
782 self.part_number = input;
783 self
784 }
785 /// <p>Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.</p>
786 pub fn get_part_number(&self) -> &::std::option::Option<i32> {
787 &self.part_number
788 }
789 /// <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>
790 pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
791 self.expected_bucket_owner = ::std::option::Option::Some(input.into());
792 self
793 }
794 /// <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>
795 pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
796 self.expected_bucket_owner = input;
797 self
798 }
799 /// <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>
800 pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
801 &self.expected_bucket_owner
802 }
803 /// <p>To retrieve the checksum, this mode must be enabled.</p>
804 pub fn checksum_mode(mut self, input: crate::types::ChecksumMode) -> Self {
805 self.checksum_mode = ::std::option::Option::Some(input);
806 self
807 }
808 /// <p>To retrieve the checksum, this mode must be enabled.</p>
809 pub fn set_checksum_mode(mut self, input: ::std::option::Option<crate::types::ChecksumMode>) -> Self {
810 self.checksum_mode = input;
811 self
812 }
813 /// <p>To retrieve the checksum, this mode must be enabled.</p>
814 pub fn get_checksum_mode(&self) -> &::std::option::Option<crate::types::ChecksumMode> {
815 &self.checksum_mode
816 }
817 /// Consumes the builder and constructs a [`GetObjectInput`](crate::operation::get_object::GetObjectInput).
818 pub fn build(self) -> ::std::result::Result<crate::operation::get_object::GetObjectInput, ::aws_smithy_types::error::operation::BuildError> {
819 ::std::result::Result::Ok(crate::operation::get_object::GetObjectInput {
820 bucket: self.bucket,
821 if_match: self.if_match,
822 if_modified_since: self.if_modified_since,
823 if_none_match: self.if_none_match,
824 if_unmodified_since: self.if_unmodified_since,
825 key: self.key,
826 range: self.range,
827 response_cache_control: self.response_cache_control,
828 response_content_disposition: self.response_content_disposition,
829 response_content_encoding: self.response_content_encoding,
830 response_content_language: self.response_content_language,
831 response_content_type: self.response_content_type,
832 response_expires: self.response_expires,
833 version_id: self.version_id,
834 sse_customer_algorithm: self.sse_customer_algorithm,
835 sse_customer_key: self.sse_customer_key,
836 sse_customer_key_md5: self.sse_customer_key_md5,
837 request_payer: self.request_payer,
838 part_number: self.part_number,
839 expected_bucket_owner: self.expected_bucket_owner,
840 checksum_mode: self.checksum_mode,
841 })
842 }
843}
844impl ::std::fmt::Debug for GetObjectInputBuilder {
845 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
846 let mut formatter = f.debug_struct("GetObjectInputBuilder");
847 formatter.field("bucket", &self.bucket);
848 formatter.field("if_match", &self.if_match);
849 formatter.field("if_modified_since", &self.if_modified_since);
850 formatter.field("if_none_match", &self.if_none_match);
851 formatter.field("if_unmodified_since", &self.if_unmodified_since);
852 formatter.field("key", &self.key);
853 formatter.field("range", &self.range);
854 formatter.field("response_cache_control", &self.response_cache_control);
855 formatter.field("response_content_disposition", &self.response_content_disposition);
856 formatter.field("response_content_encoding", &self.response_content_encoding);
857 formatter.field("response_content_language", &self.response_content_language);
858 formatter.field("response_content_type", &self.response_content_type);
859 formatter.field("response_expires", &self.response_expires);
860 formatter.field("version_id", &self.version_id);
861 formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
862 formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
863 formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
864 formatter.field("request_payer", &self.request_payer);
865 formatter.field("part_number", &self.part_number);
866 formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
867 formatter.field("checksum_mode", &self.checksum_mode);
868 formatter.finish()
869 }
870}