aws_sdk_s3/operation/create_multipart_upload/_create_multipart_upload_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 CreateMultipartUploadInput {
6 /// <p>The canned ACL to apply to the object. Amazon S3 supports a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a> in the <i>Amazon S3 User Guide</i>.</p>
7 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can grant access permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the new object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>. One way to grant the permissions using the request headers is to specify a canned ACL with the <code>x-amz-acl</code> request header.</p><note>
8 /// <ul>
9 /// <li>
10 /// <p>This functionality is not supported for directory buckets.</p></li>
11 /// <li>
12 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
13 /// </ul>
14 /// </note>
15 pub acl: ::std::option::Option<crate::types::ObjectCannedAcl>,
16 /// <p>The name of the bucket where the multipart upload is initiated and where the object is uploaded.</p>
17 /// <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>DOC-EXAMPLE-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>
18 /// <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><note>
19 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
20 /// </note>
21 /// <p><b>S3 on Outposts</b> - When you use this action with Amazon 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 through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, 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>
22 pub bucket: ::std::option::Option<::std::string::String>,
23 /// <p>Specifies caching behavior along the request/reply chain.</p>
24 pub cache_control: ::std::option::Option<::std::string::String>,
25 /// <p>Specifies presentational information for the object.</p>
26 pub content_disposition: ::std::option::Option<::std::string::String>,
27 /// <p>Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p><note>
28 /// <p>For directory buckets, only the <code>aws-chunked</code> value is supported in this header field.</p>
29 /// </note>
30 pub content_encoding: ::std::option::Option<::std::string::String>,
31 /// <p>The language that the content is in.</p>
32 pub content_language: ::std::option::Option<::std::string::String>,
33 /// <p>A standard MIME type describing the format of the object data.</p>
34 pub content_type: ::std::option::Option<::std::string::String>,
35 /// <p>The date and time at which the object is no longer cacheable.</p>
36 pub expires: ::std::option::Option<::aws_smithy_types::DateTime>,
37 /// <p>Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.</p>
38 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
39 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
40 /// <ul>
41 /// <li>
42 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
43 /// <li>
44 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
45 /// <li>
46 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
47 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
48 /// <ul>
49 /// <li>
50 /// <p>US East (N. Virginia)</p></li>
51 /// <li>
52 /// <p>US West (N. California)</p></li>
53 /// <li>
54 /// <p>US West (Oregon)</p></li>
55 /// <li>
56 /// <p>Asia Pacific (Singapore)</p></li>
57 /// <li>
58 /// <p>Asia Pacific (Sydney)</p></li>
59 /// <li>
60 /// <p>Asia Pacific (Tokyo)</p></li>
61 /// <li>
62 /// <p>Europe (Ireland)</p></li>
63 /// <li>
64 /// <p>South America (São Paulo)</p></li>
65 /// </ul>
66 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
67 /// </note></li>
68 /// </ul>
69 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
70 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
71 /// <ul>
72 /// <li>
73 /// <p>This functionality is not supported for directory buckets.</p></li>
74 /// <li>
75 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
76 /// </ul>
77 /// </note>
78 pub grant_full_control: ::std::option::Option<::std::string::String>,
79 /// <p>Specify access permissions explicitly to allow grantee to read the object data and its metadata.</p>
80 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
81 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
82 /// <ul>
83 /// <li>
84 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
85 /// <li>
86 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
87 /// <li>
88 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
89 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
90 /// <ul>
91 /// <li>
92 /// <p>US East (N. Virginia)</p></li>
93 /// <li>
94 /// <p>US West (N. California)</p></li>
95 /// <li>
96 /// <p>US West (Oregon)</p></li>
97 /// <li>
98 /// <p>Asia Pacific (Singapore)</p></li>
99 /// <li>
100 /// <p>Asia Pacific (Sydney)</p></li>
101 /// <li>
102 /// <p>Asia Pacific (Tokyo)</p></li>
103 /// <li>
104 /// <p>Europe (Ireland)</p></li>
105 /// <li>
106 /// <p>South America (São Paulo)</p></li>
107 /// </ul>
108 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
109 /// </note></li>
110 /// </ul>
111 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
112 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
113 /// <ul>
114 /// <li>
115 /// <p>This functionality is not supported for directory buckets.</p></li>
116 /// <li>
117 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
118 /// </ul>
119 /// </note>
120 pub grant_read: ::std::option::Option<::std::string::String>,
121 /// <p>Specify access permissions explicitly to allows grantee to read the object ACL.</p>
122 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
123 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
124 /// <ul>
125 /// <li>
126 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
127 /// <li>
128 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
129 /// <li>
130 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
131 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
132 /// <ul>
133 /// <li>
134 /// <p>US East (N. Virginia)</p></li>
135 /// <li>
136 /// <p>US West (N. California)</p></li>
137 /// <li>
138 /// <p>US West (Oregon)</p></li>
139 /// <li>
140 /// <p>Asia Pacific (Singapore)</p></li>
141 /// <li>
142 /// <p>Asia Pacific (Sydney)</p></li>
143 /// <li>
144 /// <p>Asia Pacific (Tokyo)</p></li>
145 /// <li>
146 /// <p>Europe (Ireland)</p></li>
147 /// <li>
148 /// <p>South America (São Paulo)</p></li>
149 /// </ul>
150 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
151 /// </note></li>
152 /// </ul>
153 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
154 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
155 /// <ul>
156 /// <li>
157 /// <p>This functionality is not supported for directory buckets.</p></li>
158 /// <li>
159 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
160 /// </ul>
161 /// </note>
162 pub grant_read_acp: ::std::option::Option<::std::string::String>,
163 /// <p>Specify access permissions explicitly to allows grantee to allow grantee to write the ACL for the applicable object.</p>
164 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
165 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
166 /// <ul>
167 /// <li>
168 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
169 /// <li>
170 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
171 /// <li>
172 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
173 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
174 /// <ul>
175 /// <li>
176 /// <p>US East (N. Virginia)</p></li>
177 /// <li>
178 /// <p>US West (N. California)</p></li>
179 /// <li>
180 /// <p>US West (Oregon)</p></li>
181 /// <li>
182 /// <p>Asia Pacific (Singapore)</p></li>
183 /// <li>
184 /// <p>Asia Pacific (Sydney)</p></li>
185 /// <li>
186 /// <p>Asia Pacific (Tokyo)</p></li>
187 /// <li>
188 /// <p>Europe (Ireland)</p></li>
189 /// <li>
190 /// <p>South America (São Paulo)</p></li>
191 /// </ul>
192 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
193 /// </note></li>
194 /// </ul>
195 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
196 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
197 /// <ul>
198 /// <li>
199 /// <p>This functionality is not supported for directory buckets.</p></li>
200 /// <li>
201 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
202 /// </ul>
203 /// </note>
204 pub grant_write_acp: ::std::option::Option<::std::string::String>,
205 /// <p>Object key for which the multipart upload is to be initiated.</p>
206 pub key: ::std::option::Option<::std::string::String>,
207 /// <p>A map of metadata to store with the object in S3.</p>
208 pub metadata: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
209 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
210 /// <ul>
211 /// <li>
212 /// <p><b>Directory buckets </b> - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p>
213 /// <p>In the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>) using the REST API, the encryption request headers must match the encryption settings that are specified in the <code>CreateSession</code> request. You can't override the values of the encryption settings (<code>x-amz-server-side-encryption</code>, <code>x-amz-server-side-encryption-aws-kms-key-id</code>, <code>x-amz-server-side-encryption-context</code>, and <code>x-amz-server-side-encryption-bucket-key-enabled</code>) that are specified in the <code>CreateSession</code> request. You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the encryption settings values from the <code>CreateSession</code> request to protect new objects in the directory bucket.</p><note>
214 /// <p>When you use the CLI or the Amazon Web Services SDKs, for <code>CreateSession</code>, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the <code>CreateSession</code> request. It's not supported to override the encryption settings values in the <code>CreateSession</code> request. So in the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>), the encryption request headers must match the default encryption configuration of the directory bucket.</p>
215 /// </note></li>
216 /// </ul>
217 pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
218 /// <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.</p><note>
219 /// <ul>
220 /// <li>
221 /// <p>For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects.</p></li>
222 /// <li>
223 /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>
224 /// </ul>
225 /// </note>
226 pub storage_class: ::std::option::Option<crate::types::StorageClass>,
227 /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
228 /// <p>This functionality is not supported for directory buckets.</p>
229 /// </note>
230 pub website_redirect_location: ::std::option::Option<::std::string::String>,
231 /// <p>Specifies the algorithm to use when encrypting the object (for example, AES256).</p><note>
232 /// <p>This functionality is not supported for directory buckets.</p>
233 /// </note>
234 pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
235 /// <p>Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p><note>
236 /// <p>This functionality is not supported for directory buckets.</p>
237 /// </note>
238 pub sse_customer_key: ::std::option::Option<::std::string::String>,
239 /// <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><note>
240 /// <p>This functionality is not supported for directory buckets.</p>
241 /// </note>
242 pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
243 /// <p>Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist in the same account that's issuing the command, you must use the full Key ARN not the Key ID.</p>
244 /// <p><b>General purpose buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code> or <code>aws:kms:dsse</code>, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key to use. If you specify <code>x-amz-server-side-encryption:aws:kms</code> or <code>x-amz-server-side-encryption:aws:kms:dsse</code>, but do not provide <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the Amazon Web Services managed key (<code>aws/s3</code>) to protect the data.</p>
245 /// <p><b>Directory buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header is implicitly assigned the ID of the KMS symmetric encryption customer managed key that's configured for your directory bucket's default encryption setting. If you want to specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header explicitly, you can only specify it with the ID (Key ID or Key ARN) of the KMS customer managed key that's configured for your directory bucket's default encryption setting. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket for the lifetime of the bucket. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
246 pub ssekms_key_id: ::std::option::Option<::std::string::String>,
247 /// <p>Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
248 /// <p><b>Directory buckets</b> - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.</p>
249 pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
250 /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS).</p>
251 /// <p><b>General purpose buckets</b> - Setting this header to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. Also, specifying this header with a PUT action doesn't affect bucket-level settings for S3 Bucket Key.</p>
252 /// <p><b>Directory buckets</b> - S3 Bucket Keys are always enabled for <code>GET</code> and <code>PUT</code> operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops">the Copy operation in Batch Operations</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job">the import jobs</a>. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.</p>
253 pub bucket_key_enabled: ::std::option::Option<bool>,
254 /// <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>
255 /// <p>This functionality is not supported for directory buckets.</p>
256 /// </note>
257 pub request_payer: ::std::option::Option<crate::types::RequestPayer>,
258 /// <p>The tag-set for the object. The tag-set must be encoded as URL Query parameters.</p><note>
259 /// <p>This functionality is not supported for directory buckets.</p>
260 /// </note>
261 pub tagging: ::std::option::Option<::std::string::String>,
262 /// <p>Specifies the Object Lock mode that you want to apply to the uploaded object.</p><note>
263 /// <p>This functionality is not supported for directory buckets.</p>
264 /// </note>
265 pub object_lock_mode: ::std::option::Option<crate::types::ObjectLockMode>,
266 /// <p>Specifies the date and time when you want the Object Lock to expire.</p><note>
267 /// <p>This functionality is not supported for directory buckets.</p>
268 /// </note>
269 pub object_lock_retain_until_date: ::std::option::Option<::aws_smithy_types::DateTime>,
270 /// <p>Specifies whether you want to apply a legal hold to the uploaded object.</p><note>
271 /// <p>This functionality is not supported for directory buckets.</p>
272 /// </note>
273 pub object_lock_legal_hold_status: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>,
274 /// <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>
275 pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
276 /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
277 pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
278}
279impl CreateMultipartUploadInput {
280 /// <p>The canned ACL to apply to the object. Amazon S3 supports a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a> in the <i>Amazon S3 User Guide</i>.</p>
281 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can grant access permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the new object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>. One way to grant the permissions using the request headers is to specify a canned ACL with the <code>x-amz-acl</code> request header.</p><note>
282 /// <ul>
283 /// <li>
284 /// <p>This functionality is not supported for directory buckets.</p></li>
285 /// <li>
286 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
287 /// </ul>
288 /// </note>
289 pub fn acl(&self) -> ::std::option::Option<&crate::types::ObjectCannedAcl> {
290 self.acl.as_ref()
291 }
292 /// <p>The name of the bucket where the multipart upload is initiated and where the object is uploaded.</p>
293 /// <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>DOC-EXAMPLE-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>
294 /// <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><note>
295 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
296 /// </note>
297 /// <p><b>S3 on Outposts</b> - When you use this action with Amazon 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 through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, 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>
298 pub fn bucket(&self) -> ::std::option::Option<&str> {
299 self.bucket.as_deref()
300 }
301 /// <p>Specifies caching behavior along the request/reply chain.</p>
302 pub fn cache_control(&self) -> ::std::option::Option<&str> {
303 self.cache_control.as_deref()
304 }
305 /// <p>Specifies presentational information for the object.</p>
306 pub fn content_disposition(&self) -> ::std::option::Option<&str> {
307 self.content_disposition.as_deref()
308 }
309 /// <p>Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p><note>
310 /// <p>For directory buckets, only the <code>aws-chunked</code> value is supported in this header field.</p>
311 /// </note>
312 pub fn content_encoding(&self) -> ::std::option::Option<&str> {
313 self.content_encoding.as_deref()
314 }
315 /// <p>The language that the content is in.</p>
316 pub fn content_language(&self) -> ::std::option::Option<&str> {
317 self.content_language.as_deref()
318 }
319 /// <p>A standard MIME type describing the format of the object data.</p>
320 pub fn content_type(&self) -> ::std::option::Option<&str> {
321 self.content_type.as_deref()
322 }
323 /// <p>The date and time at which the object is no longer cacheable.</p>
324 pub fn expires(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
325 self.expires.as_ref()
326 }
327 /// <p>Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.</p>
328 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
329 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
330 /// <ul>
331 /// <li>
332 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
333 /// <li>
334 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
335 /// <li>
336 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
337 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
338 /// <ul>
339 /// <li>
340 /// <p>US East (N. Virginia)</p></li>
341 /// <li>
342 /// <p>US West (N. California)</p></li>
343 /// <li>
344 /// <p>US West (Oregon)</p></li>
345 /// <li>
346 /// <p>Asia Pacific (Singapore)</p></li>
347 /// <li>
348 /// <p>Asia Pacific (Sydney)</p></li>
349 /// <li>
350 /// <p>Asia Pacific (Tokyo)</p></li>
351 /// <li>
352 /// <p>Europe (Ireland)</p></li>
353 /// <li>
354 /// <p>South America (São Paulo)</p></li>
355 /// </ul>
356 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
357 /// </note></li>
358 /// </ul>
359 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
360 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
361 /// <ul>
362 /// <li>
363 /// <p>This functionality is not supported for directory buckets.</p></li>
364 /// <li>
365 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
366 /// </ul>
367 /// </note>
368 pub fn grant_full_control(&self) -> ::std::option::Option<&str> {
369 self.grant_full_control.as_deref()
370 }
371 /// <p>Specify access permissions explicitly to allow grantee to read the object data and its metadata.</p>
372 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
373 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
374 /// <ul>
375 /// <li>
376 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
377 /// <li>
378 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
379 /// <li>
380 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
381 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
382 /// <ul>
383 /// <li>
384 /// <p>US East (N. Virginia)</p></li>
385 /// <li>
386 /// <p>US West (N. California)</p></li>
387 /// <li>
388 /// <p>US West (Oregon)</p></li>
389 /// <li>
390 /// <p>Asia Pacific (Singapore)</p></li>
391 /// <li>
392 /// <p>Asia Pacific (Sydney)</p></li>
393 /// <li>
394 /// <p>Asia Pacific (Tokyo)</p></li>
395 /// <li>
396 /// <p>Europe (Ireland)</p></li>
397 /// <li>
398 /// <p>South America (São Paulo)</p></li>
399 /// </ul>
400 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
401 /// </note></li>
402 /// </ul>
403 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
404 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
405 /// <ul>
406 /// <li>
407 /// <p>This functionality is not supported for directory buckets.</p></li>
408 /// <li>
409 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
410 /// </ul>
411 /// </note>
412 pub fn grant_read(&self) -> ::std::option::Option<&str> {
413 self.grant_read.as_deref()
414 }
415 /// <p>Specify access permissions explicitly to allows grantee to read the object ACL.</p>
416 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
417 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
418 /// <ul>
419 /// <li>
420 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
421 /// <li>
422 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
423 /// <li>
424 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
425 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
426 /// <ul>
427 /// <li>
428 /// <p>US East (N. Virginia)</p></li>
429 /// <li>
430 /// <p>US West (N. California)</p></li>
431 /// <li>
432 /// <p>US West (Oregon)</p></li>
433 /// <li>
434 /// <p>Asia Pacific (Singapore)</p></li>
435 /// <li>
436 /// <p>Asia Pacific (Sydney)</p></li>
437 /// <li>
438 /// <p>Asia Pacific (Tokyo)</p></li>
439 /// <li>
440 /// <p>Europe (Ireland)</p></li>
441 /// <li>
442 /// <p>South America (São Paulo)</p></li>
443 /// </ul>
444 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
445 /// </note></li>
446 /// </ul>
447 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
448 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
449 /// <ul>
450 /// <li>
451 /// <p>This functionality is not supported for directory buckets.</p></li>
452 /// <li>
453 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
454 /// </ul>
455 /// </note>
456 pub fn grant_read_acp(&self) -> ::std::option::Option<&str> {
457 self.grant_read_acp.as_deref()
458 }
459 /// <p>Specify access permissions explicitly to allows grantee to allow grantee to write the ACL for the applicable object.</p>
460 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
461 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
462 /// <ul>
463 /// <li>
464 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
465 /// <li>
466 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
467 /// <li>
468 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
469 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
470 /// <ul>
471 /// <li>
472 /// <p>US East (N. Virginia)</p></li>
473 /// <li>
474 /// <p>US West (N. California)</p></li>
475 /// <li>
476 /// <p>US West (Oregon)</p></li>
477 /// <li>
478 /// <p>Asia Pacific (Singapore)</p></li>
479 /// <li>
480 /// <p>Asia Pacific (Sydney)</p></li>
481 /// <li>
482 /// <p>Asia Pacific (Tokyo)</p></li>
483 /// <li>
484 /// <p>Europe (Ireland)</p></li>
485 /// <li>
486 /// <p>South America (São Paulo)</p></li>
487 /// </ul>
488 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
489 /// </note></li>
490 /// </ul>
491 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
492 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
493 /// <ul>
494 /// <li>
495 /// <p>This functionality is not supported for directory buckets.</p></li>
496 /// <li>
497 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
498 /// </ul>
499 /// </note>
500 pub fn grant_write_acp(&self) -> ::std::option::Option<&str> {
501 self.grant_write_acp.as_deref()
502 }
503 /// <p>Object key for which the multipart upload is to be initiated.</p>
504 pub fn key(&self) -> ::std::option::Option<&str> {
505 self.key.as_deref()
506 }
507 /// <p>A map of metadata to store with the object in S3.</p>
508 pub fn metadata(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
509 self.metadata.as_ref()
510 }
511 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
512 /// <ul>
513 /// <li>
514 /// <p><b>Directory buckets </b> - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p>
515 /// <p>In the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>) using the REST API, the encryption request headers must match the encryption settings that are specified in the <code>CreateSession</code> request. You can't override the values of the encryption settings (<code>x-amz-server-side-encryption</code>, <code>x-amz-server-side-encryption-aws-kms-key-id</code>, <code>x-amz-server-side-encryption-context</code>, and <code>x-amz-server-side-encryption-bucket-key-enabled</code>) that are specified in the <code>CreateSession</code> request. You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the encryption settings values from the <code>CreateSession</code> request to protect new objects in the directory bucket.</p><note>
516 /// <p>When you use the CLI or the Amazon Web Services SDKs, for <code>CreateSession</code>, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the <code>CreateSession</code> request. It's not supported to override the encryption settings values in the <code>CreateSession</code> request. So in the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>), the encryption request headers must match the default encryption configuration of the directory bucket.</p>
517 /// </note></li>
518 /// </ul>
519 pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
520 self.server_side_encryption.as_ref()
521 }
522 /// <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.</p><note>
523 /// <ul>
524 /// <li>
525 /// <p>For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects.</p></li>
526 /// <li>
527 /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>
528 /// </ul>
529 /// </note>
530 pub fn storage_class(&self) -> ::std::option::Option<&crate::types::StorageClass> {
531 self.storage_class.as_ref()
532 }
533 /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
534 /// <p>This functionality is not supported for directory buckets.</p>
535 /// </note>
536 pub fn website_redirect_location(&self) -> ::std::option::Option<&str> {
537 self.website_redirect_location.as_deref()
538 }
539 /// <p>Specifies the algorithm to use when encrypting the object (for example, AES256).</p><note>
540 /// <p>This functionality is not supported for directory buckets.</p>
541 /// </note>
542 pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
543 self.sse_customer_algorithm.as_deref()
544 }
545 /// <p>Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p><note>
546 /// <p>This functionality is not supported for directory buckets.</p>
547 /// </note>
548 pub fn sse_customer_key(&self) -> ::std::option::Option<&str> {
549 self.sse_customer_key.as_deref()
550 }
551 /// <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><note>
552 /// <p>This functionality is not supported for directory buckets.</p>
553 /// </note>
554 pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
555 self.sse_customer_key_md5.as_deref()
556 }
557 /// <p>Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist in the same account that's issuing the command, you must use the full Key ARN not the Key ID.</p>
558 /// <p><b>General purpose buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code> or <code>aws:kms:dsse</code>, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key to use. If you specify <code>x-amz-server-side-encryption:aws:kms</code> or <code>x-amz-server-side-encryption:aws:kms:dsse</code>, but do not provide <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the Amazon Web Services managed key (<code>aws/s3</code>) to protect the data.</p>
559 /// <p><b>Directory buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header is implicitly assigned the ID of the KMS symmetric encryption customer managed key that's configured for your directory bucket's default encryption setting. If you want to specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header explicitly, you can only specify it with the ID (Key ID or Key ARN) of the KMS customer managed key that's configured for your directory bucket's default encryption setting. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket for the lifetime of the bucket. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
560 pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
561 self.ssekms_key_id.as_deref()
562 }
563 /// <p>Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
564 /// <p><b>Directory buckets</b> - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.</p>
565 pub fn ssekms_encryption_context(&self) -> ::std::option::Option<&str> {
566 self.ssekms_encryption_context.as_deref()
567 }
568 /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS).</p>
569 /// <p><b>General purpose buckets</b> - Setting this header to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. Also, specifying this header with a PUT action doesn't affect bucket-level settings for S3 Bucket Key.</p>
570 /// <p><b>Directory buckets</b> - S3 Bucket Keys are always enabled for <code>GET</code> and <code>PUT</code> operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops">the Copy operation in Batch Operations</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job">the import jobs</a>. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.</p>
571 pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
572 self.bucket_key_enabled
573 }
574 /// <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>
575 /// <p>This functionality is not supported for directory buckets.</p>
576 /// </note>
577 pub fn request_payer(&self) -> ::std::option::Option<&crate::types::RequestPayer> {
578 self.request_payer.as_ref()
579 }
580 /// <p>The tag-set for the object. The tag-set must be encoded as URL Query parameters.</p><note>
581 /// <p>This functionality is not supported for directory buckets.</p>
582 /// </note>
583 pub fn tagging(&self) -> ::std::option::Option<&str> {
584 self.tagging.as_deref()
585 }
586 /// <p>Specifies the Object Lock mode that you want to apply to the uploaded object.</p><note>
587 /// <p>This functionality is not supported for directory buckets.</p>
588 /// </note>
589 pub fn object_lock_mode(&self) -> ::std::option::Option<&crate::types::ObjectLockMode> {
590 self.object_lock_mode.as_ref()
591 }
592 /// <p>Specifies the date and time when you want the Object Lock to expire.</p><note>
593 /// <p>This functionality is not supported for directory buckets.</p>
594 /// </note>
595 pub fn object_lock_retain_until_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
596 self.object_lock_retain_until_date.as_ref()
597 }
598 /// <p>Specifies whether you want to apply a legal hold to the uploaded object.</p><note>
599 /// <p>This functionality is not supported for directory buckets.</p>
600 /// </note>
601 pub fn object_lock_legal_hold_status(&self) -> ::std::option::Option<&crate::types::ObjectLockLegalHoldStatus> {
602 self.object_lock_legal_hold_status.as_ref()
603 }
604 /// <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>
605 pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
606 self.expected_bucket_owner.as_deref()
607 }
608 /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
609 pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
610 self.checksum_algorithm.as_ref()
611 }
612}
613impl ::std::fmt::Debug for CreateMultipartUploadInput {
614 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
615 let mut formatter = f.debug_struct("CreateMultipartUploadInput");
616 formatter.field("acl", &self.acl);
617 formatter.field("bucket", &self.bucket);
618 formatter.field("cache_control", &self.cache_control);
619 formatter.field("content_disposition", &self.content_disposition);
620 formatter.field("content_encoding", &self.content_encoding);
621 formatter.field("content_language", &self.content_language);
622 formatter.field("content_type", &self.content_type);
623 formatter.field("expires", &self.expires);
624 formatter.field("grant_full_control", &self.grant_full_control);
625 formatter.field("grant_read", &self.grant_read);
626 formatter.field("grant_read_acp", &self.grant_read_acp);
627 formatter.field("grant_write_acp", &self.grant_write_acp);
628 formatter.field("key", &self.key);
629 formatter.field("metadata", &self.metadata);
630 formatter.field("server_side_encryption", &self.server_side_encryption);
631 formatter.field("storage_class", &self.storage_class);
632 formatter.field("website_redirect_location", &self.website_redirect_location);
633 formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
634 formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
635 formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
636 formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
637 formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
638 formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
639 formatter.field("request_payer", &self.request_payer);
640 formatter.field("tagging", &self.tagging);
641 formatter.field("object_lock_mode", &self.object_lock_mode);
642 formatter.field("object_lock_retain_until_date", &self.object_lock_retain_until_date);
643 formatter.field("object_lock_legal_hold_status", &self.object_lock_legal_hold_status);
644 formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
645 formatter.field("checksum_algorithm", &self.checksum_algorithm);
646 formatter.finish()
647 }
648}
649impl CreateMultipartUploadInput {
650 /// Creates a new builder-style object to manufacture [`CreateMultipartUploadInput`](crate::operation::create_multipart_upload::CreateMultipartUploadInput).
651 pub fn builder() -> crate::operation::create_multipart_upload::builders::CreateMultipartUploadInputBuilder {
652 crate::operation::create_multipart_upload::builders::CreateMultipartUploadInputBuilder::default()
653 }
654}
655
656/// A builder for [`CreateMultipartUploadInput`](crate::operation::create_multipart_upload::CreateMultipartUploadInput).
657#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
658#[non_exhaustive]
659pub struct CreateMultipartUploadInputBuilder {
660 pub(crate) acl: ::std::option::Option<crate::types::ObjectCannedAcl>,
661 pub(crate) bucket: ::std::option::Option<::std::string::String>,
662 pub(crate) cache_control: ::std::option::Option<::std::string::String>,
663 pub(crate) content_disposition: ::std::option::Option<::std::string::String>,
664 pub(crate) content_encoding: ::std::option::Option<::std::string::String>,
665 pub(crate) content_language: ::std::option::Option<::std::string::String>,
666 pub(crate) content_type: ::std::option::Option<::std::string::String>,
667 pub(crate) expires: ::std::option::Option<::aws_smithy_types::DateTime>,
668 pub(crate) grant_full_control: ::std::option::Option<::std::string::String>,
669 pub(crate) grant_read: ::std::option::Option<::std::string::String>,
670 pub(crate) grant_read_acp: ::std::option::Option<::std::string::String>,
671 pub(crate) grant_write_acp: ::std::option::Option<::std::string::String>,
672 pub(crate) key: ::std::option::Option<::std::string::String>,
673 pub(crate) metadata: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
674 pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
675 pub(crate) storage_class: ::std::option::Option<crate::types::StorageClass>,
676 pub(crate) website_redirect_location: ::std::option::Option<::std::string::String>,
677 pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
678 pub(crate) sse_customer_key: ::std::option::Option<::std::string::String>,
679 pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
680 pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
681 pub(crate) ssekms_encryption_context: ::std::option::Option<::std::string::String>,
682 pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
683 pub(crate) request_payer: ::std::option::Option<crate::types::RequestPayer>,
684 pub(crate) tagging: ::std::option::Option<::std::string::String>,
685 pub(crate) object_lock_mode: ::std::option::Option<crate::types::ObjectLockMode>,
686 pub(crate) object_lock_retain_until_date: ::std::option::Option<::aws_smithy_types::DateTime>,
687 pub(crate) object_lock_legal_hold_status: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>,
688 pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
689 pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
690}
691impl CreateMultipartUploadInputBuilder {
692 /// <p>The canned ACL to apply to the object. Amazon S3 supports a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a> in the <i>Amazon S3 User Guide</i>.</p>
693 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can grant access permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the new object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>. One way to grant the permissions using the request headers is to specify a canned ACL with the <code>x-amz-acl</code> request header.</p><note>
694 /// <ul>
695 /// <li>
696 /// <p>This functionality is not supported for directory buckets.</p></li>
697 /// <li>
698 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
699 /// </ul>
700 /// </note>
701 pub fn acl(mut self, input: crate::types::ObjectCannedAcl) -> Self {
702 self.acl = ::std::option::Option::Some(input);
703 self
704 }
705 /// <p>The canned ACL to apply to the object. Amazon S3 supports a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a> in the <i>Amazon S3 User Guide</i>.</p>
706 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can grant access permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the new object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>. One way to grant the permissions using the request headers is to specify a canned ACL with the <code>x-amz-acl</code> request header.</p><note>
707 /// <ul>
708 /// <li>
709 /// <p>This functionality is not supported for directory buckets.</p></li>
710 /// <li>
711 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
712 /// </ul>
713 /// </note>
714 pub fn set_acl(mut self, input: ::std::option::Option<crate::types::ObjectCannedAcl>) -> Self {
715 self.acl = input;
716 self
717 }
718 /// <p>The canned ACL to apply to the object. Amazon S3 supports a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a> in the <i>Amazon S3 User Guide</i>.</p>
719 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can grant access permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the new object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>. One way to grant the permissions using the request headers is to specify a canned ACL with the <code>x-amz-acl</code> request header.</p><note>
720 /// <ul>
721 /// <li>
722 /// <p>This functionality is not supported for directory buckets.</p></li>
723 /// <li>
724 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
725 /// </ul>
726 /// </note>
727 pub fn get_acl(&self) -> &::std::option::Option<crate::types::ObjectCannedAcl> {
728 &self.acl
729 }
730 /// <p>The name of the bucket where the multipart upload is initiated and where the object is uploaded.</p>
731 /// <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>DOC-EXAMPLE-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>
732 /// <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><note>
733 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
734 /// </note>
735 /// <p><b>S3 on Outposts</b> - When you use this action with Amazon 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 through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, 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>
736 /// This field is required.
737 pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
738 self.bucket = ::std::option::Option::Some(input.into());
739 self
740 }
741 /// <p>The name of the bucket where the multipart upload is initiated and where the object is uploaded.</p>
742 /// <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>DOC-EXAMPLE-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>
743 /// <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><note>
744 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
745 /// </note>
746 /// <p><b>S3 on Outposts</b> - When you use this action with Amazon 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 through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, 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>
747 pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
748 self.bucket = input;
749 self
750 }
751 /// <p>The name of the bucket where the multipart upload is initiated and where the object is uploaded.</p>
752 /// <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>DOC-EXAMPLE-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>
753 /// <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><note>
754 /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
755 /// </note>
756 /// <p><b>S3 on Outposts</b> - When you use this action with Amazon 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 through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, 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>
757 pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
758 &self.bucket
759 }
760 /// <p>Specifies caching behavior along the request/reply chain.</p>
761 pub fn cache_control(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
762 self.cache_control = ::std::option::Option::Some(input.into());
763 self
764 }
765 /// <p>Specifies caching behavior along the request/reply chain.</p>
766 pub fn set_cache_control(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
767 self.cache_control = input;
768 self
769 }
770 /// <p>Specifies caching behavior along the request/reply chain.</p>
771 pub fn get_cache_control(&self) -> &::std::option::Option<::std::string::String> {
772 &self.cache_control
773 }
774 /// <p>Specifies presentational information for the object.</p>
775 pub fn content_disposition(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
776 self.content_disposition = ::std::option::Option::Some(input.into());
777 self
778 }
779 /// <p>Specifies presentational information for the object.</p>
780 pub fn set_content_disposition(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
781 self.content_disposition = input;
782 self
783 }
784 /// <p>Specifies presentational information for the object.</p>
785 pub fn get_content_disposition(&self) -> &::std::option::Option<::std::string::String> {
786 &self.content_disposition
787 }
788 /// <p>Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p><note>
789 /// <p>For directory buckets, only the <code>aws-chunked</code> value is supported in this header field.</p>
790 /// </note>
791 pub fn content_encoding(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
792 self.content_encoding = ::std::option::Option::Some(input.into());
793 self
794 }
795 /// <p>Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p><note>
796 /// <p>For directory buckets, only the <code>aws-chunked</code> value is supported in this header field.</p>
797 /// </note>
798 pub fn set_content_encoding(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
799 self.content_encoding = input;
800 self
801 }
802 /// <p>Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p><note>
803 /// <p>For directory buckets, only the <code>aws-chunked</code> value is supported in this header field.</p>
804 /// </note>
805 pub fn get_content_encoding(&self) -> &::std::option::Option<::std::string::String> {
806 &self.content_encoding
807 }
808 /// <p>The language that the content is in.</p>
809 pub fn content_language(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
810 self.content_language = ::std::option::Option::Some(input.into());
811 self
812 }
813 /// <p>The language that the content is in.</p>
814 pub fn set_content_language(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
815 self.content_language = input;
816 self
817 }
818 /// <p>The language that the content is in.</p>
819 pub fn get_content_language(&self) -> &::std::option::Option<::std::string::String> {
820 &self.content_language
821 }
822 /// <p>A standard MIME type describing the format of the object data.</p>
823 pub fn content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
824 self.content_type = ::std::option::Option::Some(input.into());
825 self
826 }
827 /// <p>A standard MIME type describing the format of the object data.</p>
828 pub fn set_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
829 self.content_type = input;
830 self
831 }
832 /// <p>A standard MIME type describing the format of the object data.</p>
833 pub fn get_content_type(&self) -> &::std::option::Option<::std::string::String> {
834 &self.content_type
835 }
836 /// <p>The date and time at which the object is no longer cacheable.</p>
837 pub fn expires(mut self, input: ::aws_smithy_types::DateTime) -> Self {
838 self.expires = ::std::option::Option::Some(input);
839 self
840 }
841 /// <p>The date and time at which the object is no longer cacheable.</p>
842 pub fn set_expires(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
843 self.expires = input;
844 self
845 }
846 /// <p>The date and time at which the object is no longer cacheable.</p>
847 pub fn get_expires(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
848 &self.expires
849 }
850 /// <p>Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.</p>
851 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
852 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
853 /// <ul>
854 /// <li>
855 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
856 /// <li>
857 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
858 /// <li>
859 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
860 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
861 /// <ul>
862 /// <li>
863 /// <p>US East (N. Virginia)</p></li>
864 /// <li>
865 /// <p>US West (N. California)</p></li>
866 /// <li>
867 /// <p>US West (Oregon)</p></li>
868 /// <li>
869 /// <p>Asia Pacific (Singapore)</p></li>
870 /// <li>
871 /// <p>Asia Pacific (Sydney)</p></li>
872 /// <li>
873 /// <p>Asia Pacific (Tokyo)</p></li>
874 /// <li>
875 /// <p>Europe (Ireland)</p></li>
876 /// <li>
877 /// <p>South America (São Paulo)</p></li>
878 /// </ul>
879 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
880 /// </note></li>
881 /// </ul>
882 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
883 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
884 /// <ul>
885 /// <li>
886 /// <p>This functionality is not supported for directory buckets.</p></li>
887 /// <li>
888 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
889 /// </ul>
890 /// </note>
891 pub fn grant_full_control(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
892 self.grant_full_control = ::std::option::Option::Some(input.into());
893 self
894 }
895 /// <p>Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.</p>
896 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
897 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
898 /// <ul>
899 /// <li>
900 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
901 /// <li>
902 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
903 /// <li>
904 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
905 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
906 /// <ul>
907 /// <li>
908 /// <p>US East (N. Virginia)</p></li>
909 /// <li>
910 /// <p>US West (N. California)</p></li>
911 /// <li>
912 /// <p>US West (Oregon)</p></li>
913 /// <li>
914 /// <p>Asia Pacific (Singapore)</p></li>
915 /// <li>
916 /// <p>Asia Pacific (Sydney)</p></li>
917 /// <li>
918 /// <p>Asia Pacific (Tokyo)</p></li>
919 /// <li>
920 /// <p>Europe (Ireland)</p></li>
921 /// <li>
922 /// <p>South America (São Paulo)</p></li>
923 /// </ul>
924 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
925 /// </note></li>
926 /// </ul>
927 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
928 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
929 /// <ul>
930 /// <li>
931 /// <p>This functionality is not supported for directory buckets.</p></li>
932 /// <li>
933 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
934 /// </ul>
935 /// </note>
936 pub fn set_grant_full_control(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
937 self.grant_full_control = input;
938 self
939 }
940 /// <p>Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.</p>
941 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
942 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
943 /// <ul>
944 /// <li>
945 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
946 /// <li>
947 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
948 /// <li>
949 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
950 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
951 /// <ul>
952 /// <li>
953 /// <p>US East (N. Virginia)</p></li>
954 /// <li>
955 /// <p>US West (N. California)</p></li>
956 /// <li>
957 /// <p>US West (Oregon)</p></li>
958 /// <li>
959 /// <p>Asia Pacific (Singapore)</p></li>
960 /// <li>
961 /// <p>Asia Pacific (Sydney)</p></li>
962 /// <li>
963 /// <p>Asia Pacific (Tokyo)</p></li>
964 /// <li>
965 /// <p>Europe (Ireland)</p></li>
966 /// <li>
967 /// <p>South America (São Paulo)</p></li>
968 /// </ul>
969 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
970 /// </note></li>
971 /// </ul>
972 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
973 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
974 /// <ul>
975 /// <li>
976 /// <p>This functionality is not supported for directory buckets.</p></li>
977 /// <li>
978 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
979 /// </ul>
980 /// </note>
981 pub fn get_grant_full_control(&self) -> &::std::option::Option<::std::string::String> {
982 &self.grant_full_control
983 }
984 /// <p>Specify access permissions explicitly to allow grantee to read the object data and its metadata.</p>
985 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
986 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
987 /// <ul>
988 /// <li>
989 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
990 /// <li>
991 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
992 /// <li>
993 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
994 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
995 /// <ul>
996 /// <li>
997 /// <p>US East (N. Virginia)</p></li>
998 /// <li>
999 /// <p>US West (N. California)</p></li>
1000 /// <li>
1001 /// <p>US West (Oregon)</p></li>
1002 /// <li>
1003 /// <p>Asia Pacific (Singapore)</p></li>
1004 /// <li>
1005 /// <p>Asia Pacific (Sydney)</p></li>
1006 /// <li>
1007 /// <p>Asia Pacific (Tokyo)</p></li>
1008 /// <li>
1009 /// <p>Europe (Ireland)</p></li>
1010 /// <li>
1011 /// <p>South America (São Paulo)</p></li>
1012 /// </ul>
1013 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1014 /// </note></li>
1015 /// </ul>
1016 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1017 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1018 /// <ul>
1019 /// <li>
1020 /// <p>This functionality is not supported for directory buckets.</p></li>
1021 /// <li>
1022 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1023 /// </ul>
1024 /// </note>
1025 pub fn grant_read(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1026 self.grant_read = ::std::option::Option::Some(input.into());
1027 self
1028 }
1029 /// <p>Specify access permissions explicitly to allow grantee to read the object data and its metadata.</p>
1030 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
1031 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
1032 /// <ul>
1033 /// <li>
1034 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
1035 /// <li>
1036 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
1037 /// <li>
1038 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
1039 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
1040 /// <ul>
1041 /// <li>
1042 /// <p>US East (N. Virginia)</p></li>
1043 /// <li>
1044 /// <p>US West (N. California)</p></li>
1045 /// <li>
1046 /// <p>US West (Oregon)</p></li>
1047 /// <li>
1048 /// <p>Asia Pacific (Singapore)</p></li>
1049 /// <li>
1050 /// <p>Asia Pacific (Sydney)</p></li>
1051 /// <li>
1052 /// <p>Asia Pacific (Tokyo)</p></li>
1053 /// <li>
1054 /// <p>Europe (Ireland)</p></li>
1055 /// <li>
1056 /// <p>South America (São Paulo)</p></li>
1057 /// </ul>
1058 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1059 /// </note></li>
1060 /// </ul>
1061 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1062 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1063 /// <ul>
1064 /// <li>
1065 /// <p>This functionality is not supported for directory buckets.</p></li>
1066 /// <li>
1067 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1068 /// </ul>
1069 /// </note>
1070 pub fn set_grant_read(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1071 self.grant_read = input;
1072 self
1073 }
1074 /// <p>Specify access permissions explicitly to allow grantee to read the object data and its metadata.</p>
1075 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
1076 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
1077 /// <ul>
1078 /// <li>
1079 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
1080 /// <li>
1081 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
1082 /// <li>
1083 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
1084 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
1085 /// <ul>
1086 /// <li>
1087 /// <p>US East (N. Virginia)</p></li>
1088 /// <li>
1089 /// <p>US West (N. California)</p></li>
1090 /// <li>
1091 /// <p>US West (Oregon)</p></li>
1092 /// <li>
1093 /// <p>Asia Pacific (Singapore)</p></li>
1094 /// <li>
1095 /// <p>Asia Pacific (Sydney)</p></li>
1096 /// <li>
1097 /// <p>Asia Pacific (Tokyo)</p></li>
1098 /// <li>
1099 /// <p>Europe (Ireland)</p></li>
1100 /// <li>
1101 /// <p>South America (São Paulo)</p></li>
1102 /// </ul>
1103 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1104 /// </note></li>
1105 /// </ul>
1106 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1107 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1108 /// <ul>
1109 /// <li>
1110 /// <p>This functionality is not supported for directory buckets.</p></li>
1111 /// <li>
1112 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1113 /// </ul>
1114 /// </note>
1115 pub fn get_grant_read(&self) -> &::std::option::Option<::std::string::String> {
1116 &self.grant_read
1117 }
1118 /// <p>Specify access permissions explicitly to allows grantee to read the object ACL.</p>
1119 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
1120 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
1121 /// <ul>
1122 /// <li>
1123 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
1124 /// <li>
1125 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
1126 /// <li>
1127 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
1128 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
1129 /// <ul>
1130 /// <li>
1131 /// <p>US East (N. Virginia)</p></li>
1132 /// <li>
1133 /// <p>US West (N. California)</p></li>
1134 /// <li>
1135 /// <p>US West (Oregon)</p></li>
1136 /// <li>
1137 /// <p>Asia Pacific (Singapore)</p></li>
1138 /// <li>
1139 /// <p>Asia Pacific (Sydney)</p></li>
1140 /// <li>
1141 /// <p>Asia Pacific (Tokyo)</p></li>
1142 /// <li>
1143 /// <p>Europe (Ireland)</p></li>
1144 /// <li>
1145 /// <p>South America (São Paulo)</p></li>
1146 /// </ul>
1147 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1148 /// </note></li>
1149 /// </ul>
1150 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1151 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1152 /// <ul>
1153 /// <li>
1154 /// <p>This functionality is not supported for directory buckets.</p></li>
1155 /// <li>
1156 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1157 /// </ul>
1158 /// </note>
1159 pub fn grant_read_acp(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1160 self.grant_read_acp = ::std::option::Option::Some(input.into());
1161 self
1162 }
1163 /// <p>Specify access permissions explicitly to allows grantee to read the object ACL.</p>
1164 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
1165 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
1166 /// <ul>
1167 /// <li>
1168 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
1169 /// <li>
1170 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
1171 /// <li>
1172 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
1173 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
1174 /// <ul>
1175 /// <li>
1176 /// <p>US East (N. Virginia)</p></li>
1177 /// <li>
1178 /// <p>US West (N. California)</p></li>
1179 /// <li>
1180 /// <p>US West (Oregon)</p></li>
1181 /// <li>
1182 /// <p>Asia Pacific (Singapore)</p></li>
1183 /// <li>
1184 /// <p>Asia Pacific (Sydney)</p></li>
1185 /// <li>
1186 /// <p>Asia Pacific (Tokyo)</p></li>
1187 /// <li>
1188 /// <p>Europe (Ireland)</p></li>
1189 /// <li>
1190 /// <p>South America (São Paulo)</p></li>
1191 /// </ul>
1192 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1193 /// </note></li>
1194 /// </ul>
1195 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1196 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1197 /// <ul>
1198 /// <li>
1199 /// <p>This functionality is not supported for directory buckets.</p></li>
1200 /// <li>
1201 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1202 /// </ul>
1203 /// </note>
1204 pub fn set_grant_read_acp(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1205 self.grant_read_acp = input;
1206 self
1207 }
1208 /// <p>Specify access permissions explicitly to allows grantee to read the object ACL.</p>
1209 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
1210 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
1211 /// <ul>
1212 /// <li>
1213 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
1214 /// <li>
1215 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
1216 /// <li>
1217 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
1218 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
1219 /// <ul>
1220 /// <li>
1221 /// <p>US East (N. Virginia)</p></li>
1222 /// <li>
1223 /// <p>US West (N. California)</p></li>
1224 /// <li>
1225 /// <p>US West (Oregon)</p></li>
1226 /// <li>
1227 /// <p>Asia Pacific (Singapore)</p></li>
1228 /// <li>
1229 /// <p>Asia Pacific (Sydney)</p></li>
1230 /// <li>
1231 /// <p>Asia Pacific (Tokyo)</p></li>
1232 /// <li>
1233 /// <p>Europe (Ireland)</p></li>
1234 /// <li>
1235 /// <p>South America (São Paulo)</p></li>
1236 /// </ul>
1237 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1238 /// </note></li>
1239 /// </ul>
1240 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1241 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1242 /// <ul>
1243 /// <li>
1244 /// <p>This functionality is not supported for directory buckets.</p></li>
1245 /// <li>
1246 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1247 /// </ul>
1248 /// </note>
1249 pub fn get_grant_read_acp(&self) -> &::std::option::Option<::std::string::String> {
1250 &self.grant_read_acp
1251 }
1252 /// <p>Specify access permissions explicitly to allows grantee to allow grantee to write the ACL for the applicable object.</p>
1253 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
1254 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
1255 /// <ul>
1256 /// <li>
1257 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
1258 /// <li>
1259 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
1260 /// <li>
1261 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
1262 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
1263 /// <ul>
1264 /// <li>
1265 /// <p>US East (N. Virginia)</p></li>
1266 /// <li>
1267 /// <p>US West (N. California)</p></li>
1268 /// <li>
1269 /// <p>US West (Oregon)</p></li>
1270 /// <li>
1271 /// <p>Asia Pacific (Singapore)</p></li>
1272 /// <li>
1273 /// <p>Asia Pacific (Sydney)</p></li>
1274 /// <li>
1275 /// <p>Asia Pacific (Tokyo)</p></li>
1276 /// <li>
1277 /// <p>Europe (Ireland)</p></li>
1278 /// <li>
1279 /// <p>South America (São Paulo)</p></li>
1280 /// </ul>
1281 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1282 /// </note></li>
1283 /// </ul>
1284 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1285 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1286 /// <ul>
1287 /// <li>
1288 /// <p>This functionality is not supported for directory buckets.</p></li>
1289 /// <li>
1290 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1291 /// </ul>
1292 /// </note>
1293 pub fn grant_write_acp(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1294 self.grant_write_acp = ::std::option::Option::Some(input.into());
1295 self
1296 }
1297 /// <p>Specify access permissions explicitly to allows grantee to allow grantee to write the ACL for the applicable object.</p>
1298 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
1299 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
1300 /// <ul>
1301 /// <li>
1302 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
1303 /// <li>
1304 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
1305 /// <li>
1306 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
1307 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
1308 /// <ul>
1309 /// <li>
1310 /// <p>US East (N. Virginia)</p></li>
1311 /// <li>
1312 /// <p>US West (N. California)</p></li>
1313 /// <li>
1314 /// <p>US West (Oregon)</p></li>
1315 /// <li>
1316 /// <p>Asia Pacific (Singapore)</p></li>
1317 /// <li>
1318 /// <p>Asia Pacific (Sydney)</p></li>
1319 /// <li>
1320 /// <p>Asia Pacific (Tokyo)</p></li>
1321 /// <li>
1322 /// <p>Europe (Ireland)</p></li>
1323 /// <li>
1324 /// <p>South America (São Paulo)</p></li>
1325 /// </ul>
1326 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1327 /// </note></li>
1328 /// </ul>
1329 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1330 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1331 /// <ul>
1332 /// <li>
1333 /// <p>This functionality is not supported for directory buckets.</p></li>
1334 /// <li>
1335 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1336 /// </ul>
1337 /// </note>
1338 pub fn set_grant_write_acp(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1339 self.grant_write_acp = input;
1340 self
1341 }
1342 /// <p>Specify access permissions explicitly to allows grantee to allow grantee to write the ACL for the applicable object.</p>
1343 /// <p>By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
1344 /// <p>You specify each grantee as a type=value pair, where the type is one of the following:</p>
1345 /// <ul>
1346 /// <li>
1347 /// <p><code>id</code> – if the value specified is the canonical user ID of an Amazon Web Services account</p></li>
1348 /// <li>
1349 /// <p><code>uri</code> – if you are granting permissions to a predefined group</p></li>
1350 /// <li>
1351 /// <p><code>emailAddress</code> – if the value specified is the email address of an Amazon Web Services account</p><note>
1352 /// <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:</p>
1353 /// <ul>
1354 /// <li>
1355 /// <p>US East (N. Virginia)</p></li>
1356 /// <li>
1357 /// <p>US West (N. California)</p></li>
1358 /// <li>
1359 /// <p>US West (Oregon)</p></li>
1360 /// <li>
1361 /// <p>Asia Pacific (Singapore)</p></li>
1362 /// <li>
1363 /// <p>Asia Pacific (Sydney)</p></li>
1364 /// <li>
1365 /// <p>Asia Pacific (Tokyo)</p></li>
1366 /// <li>
1367 /// <p>Europe (Ireland)</p></li>
1368 /// <li>
1369 /// <p>South America (São Paulo)</p></li>
1370 /// </ul>
1371 /// <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>
1372 /// </note></li>
1373 /// </ul>
1374 /// <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>
1375 /// <p><code>x-amz-grant-read: id="11112222333", id="444455556666" </code></p><note>
1376 /// <ul>
1377 /// <li>
1378 /// <p>This functionality is not supported for directory buckets.</p></li>
1379 /// <li>
1380 /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
1381 /// </ul>
1382 /// </note>
1383 pub fn get_grant_write_acp(&self) -> &::std::option::Option<::std::string::String> {
1384 &self.grant_write_acp
1385 }
1386 /// <p>Object key for which the multipart upload is to be initiated.</p>
1387 /// This field is required.
1388 pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1389 self.key = ::std::option::Option::Some(input.into());
1390 self
1391 }
1392 /// <p>Object key for which the multipart upload is to be initiated.</p>
1393 pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1394 self.key = input;
1395 self
1396 }
1397 /// <p>Object key for which the multipart upload is to be initiated.</p>
1398 pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
1399 &self.key
1400 }
1401 /// Adds a key-value pair to `metadata`.
1402 ///
1403 /// To override the contents of this collection use [`set_metadata`](Self::set_metadata).
1404 ///
1405 /// <p>A map of metadata to store with the object in S3.</p>
1406 pub fn metadata(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
1407 let mut hash_map = self.metadata.unwrap_or_default();
1408 hash_map.insert(k.into(), v.into());
1409 self.metadata = ::std::option::Option::Some(hash_map);
1410 self
1411 }
1412 /// <p>A map of metadata to store with the object in S3.</p>
1413 pub fn set_metadata(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
1414 self.metadata = input;
1415 self
1416 }
1417 /// <p>A map of metadata to store with the object in S3.</p>
1418 pub fn get_metadata(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
1419 &self.metadata
1420 }
1421 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
1422 /// <ul>
1423 /// <li>
1424 /// <p><b>Directory buckets </b> - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p>
1425 /// <p>In the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>) using the REST API, the encryption request headers must match the encryption settings that are specified in the <code>CreateSession</code> request. You can't override the values of the encryption settings (<code>x-amz-server-side-encryption</code>, <code>x-amz-server-side-encryption-aws-kms-key-id</code>, <code>x-amz-server-side-encryption-context</code>, and <code>x-amz-server-side-encryption-bucket-key-enabled</code>) that are specified in the <code>CreateSession</code> request. You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the encryption settings values from the <code>CreateSession</code> request to protect new objects in the directory bucket.</p><note>
1426 /// <p>When you use the CLI or the Amazon Web Services SDKs, for <code>CreateSession</code>, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the <code>CreateSession</code> request. It's not supported to override the encryption settings values in the <code>CreateSession</code> request. So in the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>), the encryption request headers must match the default encryption configuration of the directory bucket.</p>
1427 /// </note></li>
1428 /// </ul>
1429 pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
1430 self.server_side_encryption = ::std::option::Option::Some(input);
1431 self
1432 }
1433 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
1434 /// <ul>
1435 /// <li>
1436 /// <p><b>Directory buckets </b> - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p>
1437 /// <p>In the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>) using the REST API, the encryption request headers must match the encryption settings that are specified in the <code>CreateSession</code> request. You can't override the values of the encryption settings (<code>x-amz-server-side-encryption</code>, <code>x-amz-server-side-encryption-aws-kms-key-id</code>, <code>x-amz-server-side-encryption-context</code>, and <code>x-amz-server-side-encryption-bucket-key-enabled</code>) that are specified in the <code>CreateSession</code> request. You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the encryption settings values from the <code>CreateSession</code> request to protect new objects in the directory bucket.</p><note>
1438 /// <p>When you use the CLI or the Amazon Web Services SDKs, for <code>CreateSession</code>, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the <code>CreateSession</code> request. It's not supported to override the encryption settings values in the <code>CreateSession</code> request. So in the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>), the encryption request headers must match the default encryption configuration of the directory bucket.</p>
1439 /// </note></li>
1440 /// </ul>
1441 pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
1442 self.server_side_encryption = input;
1443 self
1444 }
1445 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
1446 /// <ul>
1447 /// <li>
1448 /// <p><b>Directory buckets </b> - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p>
1449 /// <p>In the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>) using the REST API, the encryption request headers must match the encryption settings that are specified in the <code>CreateSession</code> request. You can't override the values of the encryption settings (<code>x-amz-server-side-encryption</code>, <code>x-amz-server-side-encryption-aws-kms-key-id</code>, <code>x-amz-server-side-encryption-context</code>, and <code>x-amz-server-side-encryption-bucket-key-enabled</code>) that are specified in the <code>CreateSession</code> request. You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the encryption settings values from the <code>CreateSession</code> request to protect new objects in the directory bucket.</p><note>
1450 /// <p>When you use the CLI or the Amazon Web Services SDKs, for <code>CreateSession</code>, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the <code>CreateSession</code> request. It's not supported to override the encryption settings values in the <code>CreateSession</code> request. So in the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>), the encryption request headers must match the default encryption configuration of the directory bucket.</p>
1451 /// </note></li>
1452 /// </ul>
1453 pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
1454 &self.server_side_encryption
1455 }
1456 /// <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.</p><note>
1457 /// <ul>
1458 /// <li>
1459 /// <p>For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects.</p></li>
1460 /// <li>
1461 /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>
1462 /// </ul>
1463 /// </note>
1464 pub fn storage_class(mut self, input: crate::types::StorageClass) -> Self {
1465 self.storage_class = ::std::option::Option::Some(input);
1466 self
1467 }
1468 /// <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.</p><note>
1469 /// <ul>
1470 /// <li>
1471 /// <p>For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects.</p></li>
1472 /// <li>
1473 /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>
1474 /// </ul>
1475 /// </note>
1476 pub fn set_storage_class(mut self, input: ::std::option::Option<crate::types::StorageClass>) -> Self {
1477 self.storage_class = input;
1478 self
1479 }
1480 /// <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.</p><note>
1481 /// <ul>
1482 /// <li>
1483 /// <p>For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects.</p></li>
1484 /// <li>
1485 /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>
1486 /// </ul>
1487 /// </note>
1488 pub fn get_storage_class(&self) -> &::std::option::Option<crate::types::StorageClass> {
1489 &self.storage_class
1490 }
1491 /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
1492 /// <p>This functionality is not supported for directory buckets.</p>
1493 /// </note>
1494 pub fn website_redirect_location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1495 self.website_redirect_location = ::std::option::Option::Some(input.into());
1496 self
1497 }
1498 /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
1499 /// <p>This functionality is not supported for directory buckets.</p>
1500 /// </note>
1501 pub fn set_website_redirect_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1502 self.website_redirect_location = input;
1503 self
1504 }
1505 /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
1506 /// <p>This functionality is not supported for directory buckets.</p>
1507 /// </note>
1508 pub fn get_website_redirect_location(&self) -> &::std::option::Option<::std::string::String> {
1509 &self.website_redirect_location
1510 }
1511 /// <p>Specifies the algorithm to use when encrypting the object (for example, AES256).</p><note>
1512 /// <p>This functionality is not supported for directory buckets.</p>
1513 /// </note>
1514 pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1515 self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
1516 self
1517 }
1518 /// <p>Specifies the algorithm to use when encrypting the object (for example, AES256).</p><note>
1519 /// <p>This functionality is not supported for directory buckets.</p>
1520 /// </note>
1521 pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1522 self.sse_customer_algorithm = input;
1523 self
1524 }
1525 /// <p>Specifies the algorithm to use when encrypting the object (for example, AES256).</p><note>
1526 /// <p>This functionality is not supported for directory buckets.</p>
1527 /// </note>
1528 pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
1529 &self.sse_customer_algorithm
1530 }
1531 /// <p>Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p><note>
1532 /// <p>This functionality is not supported for directory buckets.</p>
1533 /// </note>
1534 pub fn sse_customer_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1535 self.sse_customer_key = ::std::option::Option::Some(input.into());
1536 self
1537 }
1538 /// <p>Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p><note>
1539 /// <p>This functionality is not supported for directory buckets.</p>
1540 /// </note>
1541 pub fn set_sse_customer_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1542 self.sse_customer_key = input;
1543 self
1544 }
1545 /// <p>Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.</p><note>
1546 /// <p>This functionality is not supported for directory buckets.</p>
1547 /// </note>
1548 pub fn get_sse_customer_key(&self) -> &::std::option::Option<::std::string::String> {
1549 &self.sse_customer_key
1550 }
1551 /// <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><note>
1552 /// <p>This functionality is not supported for directory buckets.</p>
1553 /// </note>
1554 pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1555 self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
1556 self
1557 }
1558 /// <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><note>
1559 /// <p>This functionality is not supported for directory buckets.</p>
1560 /// </note>
1561 pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1562 self.sse_customer_key_md5 = input;
1563 self
1564 }
1565 /// <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><note>
1566 /// <p>This functionality is not supported for directory buckets.</p>
1567 /// </note>
1568 pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
1569 &self.sse_customer_key_md5
1570 }
1571 /// <p>Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist in the same account that's issuing the command, you must use the full Key ARN not the Key ID.</p>
1572 /// <p><b>General purpose buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code> or <code>aws:kms:dsse</code>, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key to use. If you specify <code>x-amz-server-side-encryption:aws:kms</code> or <code>x-amz-server-side-encryption:aws:kms:dsse</code>, but do not provide <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the Amazon Web Services managed key (<code>aws/s3</code>) to protect the data.</p>
1573 /// <p><b>Directory buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header is implicitly assigned the ID of the KMS symmetric encryption customer managed key that's configured for your directory bucket's default encryption setting. If you want to specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header explicitly, you can only specify it with the ID (Key ID or Key ARN) of the KMS customer managed key that's configured for your directory bucket's default encryption setting. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket for the lifetime of the bucket. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
1574 pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1575 self.ssekms_key_id = ::std::option::Option::Some(input.into());
1576 self
1577 }
1578 /// <p>Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist in the same account that's issuing the command, you must use the full Key ARN not the Key ID.</p>
1579 /// <p><b>General purpose buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code> or <code>aws:kms:dsse</code>, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key to use. If you specify <code>x-amz-server-side-encryption:aws:kms</code> or <code>x-amz-server-side-encryption:aws:kms:dsse</code>, but do not provide <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the Amazon Web Services managed key (<code>aws/s3</code>) to protect the data.</p>
1580 /// <p><b>Directory buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header is implicitly assigned the ID of the KMS symmetric encryption customer managed key that's configured for your directory bucket's default encryption setting. If you want to specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header explicitly, you can only specify it with the ID (Key ID or Key ARN) of the KMS customer managed key that's configured for your directory bucket's default encryption setting. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket for the lifetime of the bucket. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
1581 pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1582 self.ssekms_key_id = input;
1583 self
1584 }
1585 /// <p>Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist in the same account that's issuing the command, you must use the full Key ARN not the Key ID.</p>
1586 /// <p><b>General purpose buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code> or <code>aws:kms:dsse</code>, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key to use. If you specify <code>x-amz-server-side-encryption:aws:kms</code> or <code>x-amz-server-side-encryption:aws:kms:dsse</code>, but do not provide <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the Amazon Web Services managed key (<code>aws/s3</code>) to protect the data.</p>
1587 /// <p><b>Directory buckets</b> - If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header is implicitly assigned the ID of the KMS symmetric encryption customer managed key that's configured for your directory bucket's default encryption setting. If you want to specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header explicitly, you can only specify it with the ID (Key ID or Key ARN) of the KMS customer managed key that's configured for your directory bucket's default encryption setting. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket for the lifetime of the bucket. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
1588 pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
1589 &self.ssekms_key_id
1590 }
1591 /// <p>Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
1592 /// <p><b>Directory buckets</b> - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.</p>
1593 pub fn ssekms_encryption_context(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1594 self.ssekms_encryption_context = ::std::option::Option::Some(input.into());
1595 self
1596 }
1597 /// <p>Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
1598 /// <p><b>Directory buckets</b> - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.</p>
1599 pub fn set_ssekms_encryption_context(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1600 self.ssekms_encryption_context = input;
1601 self
1602 }
1603 /// <p>Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
1604 /// <p><b>Directory buckets</b> - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.</p>
1605 pub fn get_ssekms_encryption_context(&self) -> &::std::option::Option<::std::string::String> {
1606 &self.ssekms_encryption_context
1607 }
1608 /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS).</p>
1609 /// <p><b>General purpose buckets</b> - Setting this header to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. Also, specifying this header with a PUT action doesn't affect bucket-level settings for S3 Bucket Key.</p>
1610 /// <p><b>Directory buckets</b> - S3 Bucket Keys are always enabled for <code>GET</code> and <code>PUT</code> operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops">the Copy operation in Batch Operations</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job">the import jobs</a>. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.</p>
1611 pub fn bucket_key_enabled(mut self, input: bool) -> Self {
1612 self.bucket_key_enabled = ::std::option::Option::Some(input);
1613 self
1614 }
1615 /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS).</p>
1616 /// <p><b>General purpose buckets</b> - Setting this header to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. Also, specifying this header with a PUT action doesn't affect bucket-level settings for S3 Bucket Key.</p>
1617 /// <p><b>Directory buckets</b> - S3 Bucket Keys are always enabled for <code>GET</code> and <code>PUT</code> operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops">the Copy operation in Batch Operations</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job">the import jobs</a>. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.</p>
1618 pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
1619 self.bucket_key_enabled = input;
1620 self
1621 }
1622 /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS).</p>
1623 /// <p><b>General purpose buckets</b> - Setting this header to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. Also, specifying this header with a PUT action doesn't affect bucket-level settings for S3 Bucket Key.</p>
1624 /// <p><b>Directory buckets</b> - S3 Bucket Keys are always enabled for <code>GET</code> and <code>PUT</code> operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops">the Copy operation in Batch Operations</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job">the import jobs</a>. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.</p>
1625 pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
1626 &self.bucket_key_enabled
1627 }
1628 /// <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>
1629 /// <p>This functionality is not supported for directory buckets.</p>
1630 /// </note>
1631 pub fn request_payer(mut self, input: crate::types::RequestPayer) -> Self {
1632 self.request_payer = ::std::option::Option::Some(input);
1633 self
1634 }
1635 /// <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>
1636 /// <p>This functionality is not supported for directory buckets.</p>
1637 /// </note>
1638 pub fn set_request_payer(mut self, input: ::std::option::Option<crate::types::RequestPayer>) -> Self {
1639 self.request_payer = input;
1640 self
1641 }
1642 /// <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>
1643 /// <p>This functionality is not supported for directory buckets.</p>
1644 /// </note>
1645 pub fn get_request_payer(&self) -> &::std::option::Option<crate::types::RequestPayer> {
1646 &self.request_payer
1647 }
1648 /// <p>The tag-set for the object. The tag-set must be encoded as URL Query parameters.</p><note>
1649 /// <p>This functionality is not supported for directory buckets.</p>
1650 /// </note>
1651 pub fn tagging(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1652 self.tagging = ::std::option::Option::Some(input.into());
1653 self
1654 }
1655 /// <p>The tag-set for the object. The tag-set must be encoded as URL Query parameters.</p><note>
1656 /// <p>This functionality is not supported for directory buckets.</p>
1657 /// </note>
1658 pub fn set_tagging(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1659 self.tagging = input;
1660 self
1661 }
1662 /// <p>The tag-set for the object. The tag-set must be encoded as URL Query parameters.</p><note>
1663 /// <p>This functionality is not supported for directory buckets.</p>
1664 /// </note>
1665 pub fn get_tagging(&self) -> &::std::option::Option<::std::string::String> {
1666 &self.tagging
1667 }
1668 /// <p>Specifies the Object Lock mode that you want to apply to the uploaded object.</p><note>
1669 /// <p>This functionality is not supported for directory buckets.</p>
1670 /// </note>
1671 pub fn object_lock_mode(mut self, input: crate::types::ObjectLockMode) -> Self {
1672 self.object_lock_mode = ::std::option::Option::Some(input);
1673 self
1674 }
1675 /// <p>Specifies the Object Lock mode that you want to apply to the uploaded object.</p><note>
1676 /// <p>This functionality is not supported for directory buckets.</p>
1677 /// </note>
1678 pub fn set_object_lock_mode(mut self, input: ::std::option::Option<crate::types::ObjectLockMode>) -> Self {
1679 self.object_lock_mode = input;
1680 self
1681 }
1682 /// <p>Specifies the Object Lock mode that you want to apply to the uploaded object.</p><note>
1683 /// <p>This functionality is not supported for directory buckets.</p>
1684 /// </note>
1685 pub fn get_object_lock_mode(&self) -> &::std::option::Option<crate::types::ObjectLockMode> {
1686 &self.object_lock_mode
1687 }
1688 /// <p>Specifies the date and time when you want the Object Lock to expire.</p><note>
1689 /// <p>This functionality is not supported for directory buckets.</p>
1690 /// </note>
1691 pub fn object_lock_retain_until_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
1692 self.object_lock_retain_until_date = ::std::option::Option::Some(input);
1693 self
1694 }
1695 /// <p>Specifies the date and time when you want the Object Lock to expire.</p><note>
1696 /// <p>This functionality is not supported for directory buckets.</p>
1697 /// </note>
1698 pub fn set_object_lock_retain_until_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
1699 self.object_lock_retain_until_date = input;
1700 self
1701 }
1702 /// <p>Specifies the date and time when you want the Object Lock to expire.</p><note>
1703 /// <p>This functionality is not supported for directory buckets.</p>
1704 /// </note>
1705 pub fn get_object_lock_retain_until_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
1706 &self.object_lock_retain_until_date
1707 }
1708 /// <p>Specifies whether you want to apply a legal hold to the uploaded object.</p><note>
1709 /// <p>This functionality is not supported for directory buckets.</p>
1710 /// </note>
1711 pub fn object_lock_legal_hold_status(mut self, input: crate::types::ObjectLockLegalHoldStatus) -> Self {
1712 self.object_lock_legal_hold_status = ::std::option::Option::Some(input);
1713 self
1714 }
1715 /// <p>Specifies whether you want to apply a legal hold to the uploaded object.</p><note>
1716 /// <p>This functionality is not supported for directory buckets.</p>
1717 /// </note>
1718 pub fn set_object_lock_legal_hold_status(mut self, input: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>) -> Self {
1719 self.object_lock_legal_hold_status = input;
1720 self
1721 }
1722 /// <p>Specifies whether you want to apply a legal hold to the uploaded object.</p><note>
1723 /// <p>This functionality is not supported for directory buckets.</p>
1724 /// </note>
1725 pub fn get_object_lock_legal_hold_status(&self) -> &::std::option::Option<crate::types::ObjectLockLegalHoldStatus> {
1726 &self.object_lock_legal_hold_status
1727 }
1728 /// <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>
1729 pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1730 self.expected_bucket_owner = ::std::option::Option::Some(input.into());
1731 self
1732 }
1733 /// <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>
1734 pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1735 self.expected_bucket_owner = input;
1736 self
1737 }
1738 /// <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>
1739 pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
1740 &self.expected_bucket_owner
1741 }
1742 /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
1743 pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
1744 self.checksum_algorithm = ::std::option::Option::Some(input);
1745 self
1746 }
1747 /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
1748 pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
1749 self.checksum_algorithm = input;
1750 self
1751 }
1752 /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
1753 pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
1754 &self.checksum_algorithm
1755 }
1756 /// Consumes the builder and constructs a [`CreateMultipartUploadInput`](crate::operation::create_multipart_upload::CreateMultipartUploadInput).
1757 pub fn build(
1758 self,
1759 ) -> ::std::result::Result<crate::operation::create_multipart_upload::CreateMultipartUploadInput, ::aws_smithy_types::error::operation::BuildError>
1760 {
1761 ::std::result::Result::Ok(crate::operation::create_multipart_upload::CreateMultipartUploadInput {
1762 acl: self.acl,
1763 bucket: self.bucket,
1764 cache_control: self.cache_control,
1765 content_disposition: self.content_disposition,
1766 content_encoding: self.content_encoding,
1767 content_language: self.content_language,
1768 content_type: self.content_type,
1769 expires: self.expires,
1770 grant_full_control: self.grant_full_control,
1771 grant_read: self.grant_read,
1772 grant_read_acp: self.grant_read_acp,
1773 grant_write_acp: self.grant_write_acp,
1774 key: self.key,
1775 metadata: self.metadata,
1776 server_side_encryption: self.server_side_encryption,
1777 storage_class: self.storage_class,
1778 website_redirect_location: self.website_redirect_location,
1779 sse_customer_algorithm: self.sse_customer_algorithm,
1780 sse_customer_key: self.sse_customer_key,
1781 sse_customer_key_md5: self.sse_customer_key_md5,
1782 ssekms_key_id: self.ssekms_key_id,
1783 ssekms_encryption_context: self.ssekms_encryption_context,
1784 bucket_key_enabled: self.bucket_key_enabled,
1785 request_payer: self.request_payer,
1786 tagging: self.tagging,
1787 object_lock_mode: self.object_lock_mode,
1788 object_lock_retain_until_date: self.object_lock_retain_until_date,
1789 object_lock_legal_hold_status: self.object_lock_legal_hold_status,
1790 expected_bucket_owner: self.expected_bucket_owner,
1791 checksum_algorithm: self.checksum_algorithm,
1792 })
1793 }
1794}
1795impl ::std::fmt::Debug for CreateMultipartUploadInputBuilder {
1796 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1797 let mut formatter = f.debug_struct("CreateMultipartUploadInputBuilder");
1798 formatter.field("acl", &self.acl);
1799 formatter.field("bucket", &self.bucket);
1800 formatter.field("cache_control", &self.cache_control);
1801 formatter.field("content_disposition", &self.content_disposition);
1802 formatter.field("content_encoding", &self.content_encoding);
1803 formatter.field("content_language", &self.content_language);
1804 formatter.field("content_type", &self.content_type);
1805 formatter.field("expires", &self.expires);
1806 formatter.field("grant_full_control", &self.grant_full_control);
1807 formatter.field("grant_read", &self.grant_read);
1808 formatter.field("grant_read_acp", &self.grant_read_acp);
1809 formatter.field("grant_write_acp", &self.grant_write_acp);
1810 formatter.field("key", &self.key);
1811 formatter.field("metadata", &self.metadata);
1812 formatter.field("server_side_encryption", &self.server_side_encryption);
1813 formatter.field("storage_class", &self.storage_class);
1814 formatter.field("website_redirect_location", &self.website_redirect_location);
1815 formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
1816 formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
1817 formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
1818 formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
1819 formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
1820 formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
1821 formatter.field("request_payer", &self.request_payer);
1822 formatter.field("tagging", &self.tagging);
1823 formatter.field("object_lock_mode", &self.object_lock_mode);
1824 formatter.field("object_lock_retain_until_date", &self.object_lock_retain_until_date);
1825 formatter.field("object_lock_legal_hold_status", &self.object_lock_legal_hold_status);
1826 formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
1827 formatter.field("checksum_algorithm", &self.checksum_algorithm);
1828 formatter.finish()
1829 }
1830}