1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/s3-crt/S3Crt_EXPORTS.h>
8 #include <aws/core/utils/DateTime.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/s3-crt/model/ServerSideEncryption.h>
11 #include <aws/s3-crt/model/RequestCharged.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 template<typename RESULT_TYPE>
17 class AmazonWebServiceResult;
18 
19 namespace Utils
20 {
21 namespace Xml
22 {
23   class XmlDocument;
24 } // namespace Xml
25 } // namespace Utils
26 namespace S3Crt
27 {
28 namespace Model
29 {
30   class AWS_S3CRT_API CreateMultipartUploadResult
31   {
32   public:
33     CreateMultipartUploadResult();
34     CreateMultipartUploadResult(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
35     CreateMultipartUploadResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
36 
37 
38     /**
39      * <p>If the bucket has a lifecycle rule configured with an action to abort
40      * incomplete multipart uploads and the prefix in the lifecycle rule matches the
41      * object name in the request, the response includes this header. The header
42      * indicates when the initiated multipart upload becomes eligible for an abort
43      * operation. For more information, see <a
44      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">
45      * Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p>
46      * <p>The response also includes the <code>x-amz-abort-rule-id</code> header that
47      * provides the ID of the lifecycle configuration rule that defines this
48      * action.</p>
49      */
GetAbortDate()50     inline const Aws::Utils::DateTime& GetAbortDate() const{ return m_abortDate; }
51 
52     /**
53      * <p>If the bucket has a lifecycle rule configured with an action to abort
54      * incomplete multipart uploads and the prefix in the lifecycle rule matches the
55      * object name in the request, the response includes this header. The header
56      * indicates when the initiated multipart upload becomes eligible for an abort
57      * operation. For more information, see <a
58      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">
59      * Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p>
60      * <p>The response also includes the <code>x-amz-abort-rule-id</code> header that
61      * provides the ID of the lifecycle configuration rule that defines this
62      * action.</p>
63      */
SetAbortDate(const Aws::Utils::DateTime & value)64     inline void SetAbortDate(const Aws::Utils::DateTime& value) { m_abortDate = value; }
65 
66     /**
67      * <p>If the bucket has a lifecycle rule configured with an action to abort
68      * incomplete multipart uploads and the prefix in the lifecycle rule matches the
69      * object name in the request, the response includes this header. The header
70      * indicates when the initiated multipart upload becomes eligible for an abort
71      * operation. For more information, see <a
72      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">
73      * Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p>
74      * <p>The response also includes the <code>x-amz-abort-rule-id</code> header that
75      * provides the ID of the lifecycle configuration rule that defines this
76      * action.</p>
77      */
SetAbortDate(Aws::Utils::DateTime && value)78     inline void SetAbortDate(Aws::Utils::DateTime&& value) { m_abortDate = std::move(value); }
79 
80     /**
81      * <p>If the bucket has a lifecycle rule configured with an action to abort
82      * incomplete multipart uploads and the prefix in the lifecycle rule matches the
83      * object name in the request, the response includes this header. The header
84      * indicates when the initiated multipart upload becomes eligible for an abort
85      * operation. For more information, see <a
86      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">
87      * Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p>
88      * <p>The response also includes the <code>x-amz-abort-rule-id</code> header that
89      * provides the ID of the lifecycle configuration rule that defines this
90      * action.</p>
91      */
WithAbortDate(const Aws::Utils::DateTime & value)92     inline CreateMultipartUploadResult& WithAbortDate(const Aws::Utils::DateTime& value) { SetAbortDate(value); return *this;}
93 
94     /**
95      * <p>If the bucket has a lifecycle rule configured with an action to abort
96      * incomplete multipart uploads and the prefix in the lifecycle rule matches the
97      * object name in the request, the response includes this header. The header
98      * indicates when the initiated multipart upload becomes eligible for an abort
99      * operation. For more information, see <a
100      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">
101      * Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p>
102      * <p>The response also includes the <code>x-amz-abort-rule-id</code> header that
103      * provides the ID of the lifecycle configuration rule that defines this
104      * action.</p>
105      */
WithAbortDate(Aws::Utils::DateTime && value)106     inline CreateMultipartUploadResult& WithAbortDate(Aws::Utils::DateTime&& value) { SetAbortDate(std::move(value)); return *this;}
107 
108 
109     /**
110      * <p>This header is returned along with the <code>x-amz-abort-date</code> header.
111      * It identifies the applicable lifecycle configuration rule that defines the
112      * action to abort incomplete multipart uploads.</p>
113      */
GetAbortRuleId()114     inline const Aws::String& GetAbortRuleId() const{ return m_abortRuleId; }
115 
116     /**
117      * <p>This header is returned along with the <code>x-amz-abort-date</code> header.
118      * It identifies the applicable lifecycle configuration rule that defines the
119      * action to abort incomplete multipart uploads.</p>
120      */
SetAbortRuleId(const Aws::String & value)121     inline void SetAbortRuleId(const Aws::String& value) { m_abortRuleId = value; }
122 
123     /**
124      * <p>This header is returned along with the <code>x-amz-abort-date</code> header.
125      * It identifies the applicable lifecycle configuration rule that defines the
126      * action to abort incomplete multipart uploads.</p>
127      */
SetAbortRuleId(Aws::String && value)128     inline void SetAbortRuleId(Aws::String&& value) { m_abortRuleId = std::move(value); }
129 
130     /**
131      * <p>This header is returned along with the <code>x-amz-abort-date</code> header.
132      * It identifies the applicable lifecycle configuration rule that defines the
133      * action to abort incomplete multipart uploads.</p>
134      */
SetAbortRuleId(const char * value)135     inline void SetAbortRuleId(const char* value) { m_abortRuleId.assign(value); }
136 
137     /**
138      * <p>This header is returned along with the <code>x-amz-abort-date</code> header.
139      * It identifies the applicable lifecycle configuration rule that defines the
140      * action to abort incomplete multipart uploads.</p>
141      */
WithAbortRuleId(const Aws::String & value)142     inline CreateMultipartUploadResult& WithAbortRuleId(const Aws::String& value) { SetAbortRuleId(value); return *this;}
143 
144     /**
145      * <p>This header is returned along with the <code>x-amz-abort-date</code> header.
146      * It identifies the applicable lifecycle configuration rule that defines the
147      * action to abort incomplete multipart uploads.</p>
148      */
WithAbortRuleId(Aws::String && value)149     inline CreateMultipartUploadResult& WithAbortRuleId(Aws::String&& value) { SetAbortRuleId(std::move(value)); return *this;}
150 
151     /**
152      * <p>This header is returned along with the <code>x-amz-abort-date</code> header.
153      * It identifies the applicable lifecycle configuration rule that defines the
154      * action to abort incomplete multipart uploads.</p>
155      */
WithAbortRuleId(const char * value)156     inline CreateMultipartUploadResult& WithAbortRuleId(const char* value) { SetAbortRuleId(value); return *this;}
157 
158 
159     /**
160      * <p>The name of the bucket to which the multipart upload was initiated. Does not
161      * return the access point ARN or access point alias if used.</p> <p>When using
162      * this action with an access point, you must direct requests to the access point
163      * hostname. The access point hostname takes the form
164      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
165      * When using this action with an access point through the Amazon Web Services
166      * SDKs, you provide the access point ARN in place of the bucket name. For more
167      * information about access point ARNs, see <a
168      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
169      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
170      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
171      * Outposts hostname. The S3 on Outposts hostname takes the form
172      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
173      * When using this action using S3 on Outposts through the Amazon Web Services
174      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
175      * information about S3 on Outposts ARNs, see <a
176      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
177      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
178      */
GetBucket()179     inline const Aws::String& GetBucket() const{ return m_bucket; }
180 
181     /**
182      * <p>The name of the bucket to which the multipart upload was initiated. Does not
183      * return the access point ARN or access point alias if used.</p> <p>When using
184      * this action with an access point, you must direct requests to the access point
185      * hostname. The access point hostname takes the form
186      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
187      * When using this action with an access point through the Amazon Web Services
188      * SDKs, you provide the access point ARN in place of the bucket name. For more
189      * information about access point ARNs, see <a
190      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
191      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
192      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
193      * Outposts hostname. The S3 on Outposts hostname takes the form
194      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
195      * When using this action using S3 on Outposts through the Amazon Web Services
196      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
197      * information about S3 on Outposts ARNs, see <a
198      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
199      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
200      */
SetBucket(const Aws::String & value)201     inline void SetBucket(const Aws::String& value) { m_bucket = value; }
202 
203     /**
204      * <p>The name of the bucket to which the multipart upload was initiated. Does not
205      * return the access point ARN or access point alias if used.</p> <p>When using
206      * this action with an access point, you must direct requests to the access point
207      * hostname. The access point hostname takes the form
208      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
209      * When using this action with an access point through the Amazon Web Services
210      * SDKs, you provide the access point ARN in place of the bucket name. For more
211      * information about access point ARNs, see <a
212      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
213      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
214      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
215      * Outposts hostname. The S3 on Outposts hostname takes the form
216      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
217      * When using this action using S3 on Outposts through the Amazon Web Services
218      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
219      * information about S3 on Outposts ARNs, see <a
220      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
221      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
222      */
SetBucket(Aws::String && value)223     inline void SetBucket(Aws::String&& value) { m_bucket = std::move(value); }
224 
225     /**
226      * <p>The name of the bucket to which the multipart upload was initiated. Does not
227      * return the access point ARN or access point alias if used.</p> <p>When using
228      * this action with an access point, you must direct requests to the access point
229      * hostname. The access point hostname takes the form
230      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
231      * When using this action with an access point through the Amazon Web Services
232      * SDKs, you provide the access point ARN in place of the bucket name. For more
233      * information about access point ARNs, see <a
234      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
235      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
236      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
237      * Outposts hostname. The S3 on Outposts hostname takes the form
238      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
239      * When using this action using S3 on Outposts through the Amazon Web Services
240      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
241      * information about S3 on Outposts ARNs, see <a
242      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
243      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
244      */
SetBucket(const char * value)245     inline void SetBucket(const char* value) { m_bucket.assign(value); }
246 
247     /**
248      * <p>The name of the bucket to which the multipart upload was initiated. Does not
249      * return the access point ARN or access point alias if used.</p> <p>When using
250      * this action with an access point, you must direct requests to the access point
251      * hostname. The access point hostname takes the form
252      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
253      * When using this action with an access point through the Amazon Web Services
254      * SDKs, you provide the access point ARN in place of the bucket name. For more
255      * information about access point ARNs, see <a
256      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
257      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
258      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
259      * Outposts hostname. The S3 on Outposts hostname takes the form
260      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
261      * When using this action using S3 on Outposts through the Amazon Web Services
262      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
263      * information about S3 on Outposts ARNs, see <a
264      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
265      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
266      */
WithBucket(const Aws::String & value)267     inline CreateMultipartUploadResult& WithBucket(const Aws::String& value) { SetBucket(value); return *this;}
268 
269     /**
270      * <p>The name of the bucket to which the multipart upload was initiated. Does not
271      * return the access point ARN or access point alias if used.</p> <p>When using
272      * this action with an access point, you must direct requests to the access point
273      * hostname. The access point hostname takes the form
274      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
275      * When using this action with an access point through the Amazon Web Services
276      * SDKs, you provide the access point ARN in place of the bucket name. For more
277      * information about access point ARNs, see <a
278      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
279      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
280      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
281      * Outposts hostname. The S3 on Outposts hostname takes the form
282      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
283      * When using this action using S3 on Outposts through the Amazon Web Services
284      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
285      * information about S3 on Outposts ARNs, see <a
286      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
287      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
288      */
WithBucket(Aws::String && value)289     inline CreateMultipartUploadResult& WithBucket(Aws::String&& value) { SetBucket(std::move(value)); return *this;}
290 
291     /**
292      * <p>The name of the bucket to which the multipart upload was initiated. Does not
293      * return the access point ARN or access point alias if used.</p> <p>When using
294      * this action with an access point, you must direct requests to the access point
295      * hostname. The access point hostname takes the form
296      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
297      * When using this action with an access point through the Amazon Web Services
298      * SDKs, you provide the access point ARN in place of the bucket name. For more
299      * information about access point ARNs, see <a
300      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
301      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
302      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
303      * Outposts hostname. The S3 on Outposts hostname takes the form
304      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
305      * When using this action using S3 on Outposts through the Amazon Web Services
306      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
307      * information about S3 on Outposts ARNs, see <a
308      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
309      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
310      */
WithBucket(const char * value)311     inline CreateMultipartUploadResult& WithBucket(const char* value) { SetBucket(value); return *this;}
312 
313 
314     /**
315      * <p>Object key for which the multipart upload was initiated.</p>
316      */
GetKey()317     inline const Aws::String& GetKey() const{ return m_key; }
318 
319     /**
320      * <p>Object key for which the multipart upload was initiated.</p>
321      */
SetKey(const Aws::String & value)322     inline void SetKey(const Aws::String& value) { m_key = value; }
323 
324     /**
325      * <p>Object key for which the multipart upload was initiated.</p>
326      */
SetKey(Aws::String && value)327     inline void SetKey(Aws::String&& value) { m_key = std::move(value); }
328 
329     /**
330      * <p>Object key for which the multipart upload was initiated.</p>
331      */
SetKey(const char * value)332     inline void SetKey(const char* value) { m_key.assign(value); }
333 
334     /**
335      * <p>Object key for which the multipart upload was initiated.</p>
336      */
WithKey(const Aws::String & value)337     inline CreateMultipartUploadResult& WithKey(const Aws::String& value) { SetKey(value); return *this;}
338 
339     /**
340      * <p>Object key for which the multipart upload was initiated.</p>
341      */
WithKey(Aws::String && value)342     inline CreateMultipartUploadResult& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;}
343 
344     /**
345      * <p>Object key for which the multipart upload was initiated.</p>
346      */
WithKey(const char * value)347     inline CreateMultipartUploadResult& WithKey(const char* value) { SetKey(value); return *this;}
348 
349 
350     /**
351      * <p>ID for the initiated multipart upload.</p>
352      */
GetUploadId()353     inline const Aws::String& GetUploadId() const{ return m_uploadId; }
354 
355     /**
356      * <p>ID for the initiated multipart upload.</p>
357      */
SetUploadId(const Aws::String & value)358     inline void SetUploadId(const Aws::String& value) { m_uploadId = value; }
359 
360     /**
361      * <p>ID for the initiated multipart upload.</p>
362      */
SetUploadId(Aws::String && value)363     inline void SetUploadId(Aws::String&& value) { m_uploadId = std::move(value); }
364 
365     /**
366      * <p>ID for the initiated multipart upload.</p>
367      */
SetUploadId(const char * value)368     inline void SetUploadId(const char* value) { m_uploadId.assign(value); }
369 
370     /**
371      * <p>ID for the initiated multipart upload.</p>
372      */
WithUploadId(const Aws::String & value)373     inline CreateMultipartUploadResult& WithUploadId(const Aws::String& value) { SetUploadId(value); return *this;}
374 
375     /**
376      * <p>ID for the initiated multipart upload.</p>
377      */
WithUploadId(Aws::String && value)378     inline CreateMultipartUploadResult& WithUploadId(Aws::String&& value) { SetUploadId(std::move(value)); return *this;}
379 
380     /**
381      * <p>ID for the initiated multipart upload.</p>
382      */
WithUploadId(const char * value)383     inline CreateMultipartUploadResult& WithUploadId(const char* value) { SetUploadId(value); return *this;}
384 
385 
386     /**
387      * <p>The server-side encryption algorithm used when storing this object in Amazon
388      * S3 (for example, AES256, aws:kms).</p>
389      */
GetServerSideEncryption()390     inline const ServerSideEncryption& GetServerSideEncryption() const{ return m_serverSideEncryption; }
391 
392     /**
393      * <p>The server-side encryption algorithm used when storing this object in Amazon
394      * S3 (for example, AES256, aws:kms).</p>
395      */
SetServerSideEncryption(const ServerSideEncryption & value)396     inline void SetServerSideEncryption(const ServerSideEncryption& value) { m_serverSideEncryption = value; }
397 
398     /**
399      * <p>The server-side encryption algorithm used when storing this object in Amazon
400      * S3 (for example, AES256, aws:kms).</p>
401      */
SetServerSideEncryption(ServerSideEncryption && value)402     inline void SetServerSideEncryption(ServerSideEncryption&& value) { m_serverSideEncryption = std::move(value); }
403 
404     /**
405      * <p>The server-side encryption algorithm used when storing this object in Amazon
406      * S3 (for example, AES256, aws:kms).</p>
407      */
WithServerSideEncryption(const ServerSideEncryption & value)408     inline CreateMultipartUploadResult& WithServerSideEncryption(const ServerSideEncryption& value) { SetServerSideEncryption(value); return *this;}
409 
410     /**
411      * <p>The server-side encryption algorithm used when storing this object in Amazon
412      * S3 (for example, AES256, aws:kms).</p>
413      */
WithServerSideEncryption(ServerSideEncryption && value)414     inline CreateMultipartUploadResult& WithServerSideEncryption(ServerSideEncryption&& value) { SetServerSideEncryption(std::move(value)); return *this;}
415 
416 
417     /**
418      * <p>If server-side encryption with a customer-provided encryption key was
419      * requested, the response will include this header confirming the encryption
420      * algorithm used.</p>
421      */
GetSSECustomerAlgorithm()422     inline const Aws::String& GetSSECustomerAlgorithm() const{ return m_sSECustomerAlgorithm; }
423 
424     /**
425      * <p>If server-side encryption with a customer-provided encryption key was
426      * requested, the response will include this header confirming the encryption
427      * algorithm used.</p>
428      */
SetSSECustomerAlgorithm(const Aws::String & value)429     inline void SetSSECustomerAlgorithm(const Aws::String& value) { m_sSECustomerAlgorithm = value; }
430 
431     /**
432      * <p>If server-side encryption with a customer-provided encryption key was
433      * requested, the response will include this header confirming the encryption
434      * algorithm used.</p>
435      */
SetSSECustomerAlgorithm(Aws::String && value)436     inline void SetSSECustomerAlgorithm(Aws::String&& value) { m_sSECustomerAlgorithm = std::move(value); }
437 
438     /**
439      * <p>If server-side encryption with a customer-provided encryption key was
440      * requested, the response will include this header confirming the encryption
441      * algorithm used.</p>
442      */
SetSSECustomerAlgorithm(const char * value)443     inline void SetSSECustomerAlgorithm(const char* value) { m_sSECustomerAlgorithm.assign(value); }
444 
445     /**
446      * <p>If server-side encryption with a customer-provided encryption key was
447      * requested, the response will include this header confirming the encryption
448      * algorithm used.</p>
449      */
WithSSECustomerAlgorithm(const Aws::String & value)450     inline CreateMultipartUploadResult& WithSSECustomerAlgorithm(const Aws::String& value) { SetSSECustomerAlgorithm(value); return *this;}
451 
452     /**
453      * <p>If server-side encryption with a customer-provided encryption key was
454      * requested, the response will include this header confirming the encryption
455      * algorithm used.</p>
456      */
WithSSECustomerAlgorithm(Aws::String && value)457     inline CreateMultipartUploadResult& WithSSECustomerAlgorithm(Aws::String&& value) { SetSSECustomerAlgorithm(std::move(value)); return *this;}
458 
459     /**
460      * <p>If server-side encryption with a customer-provided encryption key was
461      * requested, the response will include this header confirming the encryption
462      * algorithm used.</p>
463      */
WithSSECustomerAlgorithm(const char * value)464     inline CreateMultipartUploadResult& WithSSECustomerAlgorithm(const char* value) { SetSSECustomerAlgorithm(value); return *this;}
465 
466 
467     /**
468      * <p>If server-side encryption with a customer-provided encryption key was
469      * requested, the response will include this header to provide round-trip message
470      * integrity verification of the customer-provided encryption key.</p>
471      */
GetSSECustomerKeyMD5()472     inline const Aws::String& GetSSECustomerKeyMD5() const{ return m_sSECustomerKeyMD5; }
473 
474     /**
475      * <p>If server-side encryption with a customer-provided encryption key was
476      * requested, the response will include this header to provide round-trip message
477      * integrity verification of the customer-provided encryption key.</p>
478      */
SetSSECustomerKeyMD5(const Aws::String & value)479     inline void SetSSECustomerKeyMD5(const Aws::String& value) { m_sSECustomerKeyMD5 = value; }
480 
481     /**
482      * <p>If server-side encryption with a customer-provided encryption key was
483      * requested, the response will include this header to provide round-trip message
484      * integrity verification of the customer-provided encryption key.</p>
485      */
SetSSECustomerKeyMD5(Aws::String && value)486     inline void SetSSECustomerKeyMD5(Aws::String&& value) { m_sSECustomerKeyMD5 = std::move(value); }
487 
488     /**
489      * <p>If server-side encryption with a customer-provided encryption key was
490      * requested, the response will include this header to provide round-trip message
491      * integrity verification of the customer-provided encryption key.</p>
492      */
SetSSECustomerKeyMD5(const char * value)493     inline void SetSSECustomerKeyMD5(const char* value) { m_sSECustomerKeyMD5.assign(value); }
494 
495     /**
496      * <p>If server-side encryption with a customer-provided encryption key was
497      * requested, the response will include this header to provide round-trip message
498      * integrity verification of the customer-provided encryption key.</p>
499      */
WithSSECustomerKeyMD5(const Aws::String & value)500     inline CreateMultipartUploadResult& WithSSECustomerKeyMD5(const Aws::String& value) { SetSSECustomerKeyMD5(value); return *this;}
501 
502     /**
503      * <p>If server-side encryption with a customer-provided encryption key was
504      * requested, the response will include this header to provide round-trip message
505      * integrity verification of the customer-provided encryption key.</p>
506      */
WithSSECustomerKeyMD5(Aws::String && value)507     inline CreateMultipartUploadResult& WithSSECustomerKeyMD5(Aws::String&& value) { SetSSECustomerKeyMD5(std::move(value)); return *this;}
508 
509     /**
510      * <p>If server-side encryption with a customer-provided encryption key was
511      * requested, the response will include this header to provide round-trip message
512      * integrity verification of the customer-provided encryption key.</p>
513      */
WithSSECustomerKeyMD5(const char * value)514     inline CreateMultipartUploadResult& WithSSECustomerKeyMD5(const char* value) { SetSSECustomerKeyMD5(value); return *this;}
515 
516 
517     /**
518      * <p>If present, specifies the ID of the Amazon Web Services Key Management
519      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
520      * for the object.</p>
521      */
GetSSEKMSKeyId()522     inline const Aws::String& GetSSEKMSKeyId() const{ return m_sSEKMSKeyId; }
523 
524     /**
525      * <p>If present, specifies the ID of the Amazon Web Services Key Management
526      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
527      * for the object.</p>
528      */
SetSSEKMSKeyId(const Aws::String & value)529     inline void SetSSEKMSKeyId(const Aws::String& value) { m_sSEKMSKeyId = value; }
530 
531     /**
532      * <p>If present, specifies the ID of the Amazon Web Services Key Management
533      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
534      * for the object.</p>
535      */
SetSSEKMSKeyId(Aws::String && value)536     inline void SetSSEKMSKeyId(Aws::String&& value) { m_sSEKMSKeyId = std::move(value); }
537 
538     /**
539      * <p>If present, specifies the ID of the Amazon Web Services Key Management
540      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
541      * for the object.</p>
542      */
SetSSEKMSKeyId(const char * value)543     inline void SetSSEKMSKeyId(const char* value) { m_sSEKMSKeyId.assign(value); }
544 
545     /**
546      * <p>If present, specifies the ID of the Amazon Web Services Key Management
547      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
548      * for the object.</p>
549      */
WithSSEKMSKeyId(const Aws::String & value)550     inline CreateMultipartUploadResult& WithSSEKMSKeyId(const Aws::String& value) { SetSSEKMSKeyId(value); return *this;}
551 
552     /**
553      * <p>If present, specifies the ID of the Amazon Web Services Key Management
554      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
555      * for the object.</p>
556      */
WithSSEKMSKeyId(Aws::String && value)557     inline CreateMultipartUploadResult& WithSSEKMSKeyId(Aws::String&& value) { SetSSEKMSKeyId(std::move(value)); return *this;}
558 
559     /**
560      * <p>If present, specifies the ID of the Amazon Web Services Key Management
561      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
562      * for the object.</p>
563      */
WithSSEKMSKeyId(const char * value)564     inline CreateMultipartUploadResult& WithSSEKMSKeyId(const char* value) { SetSSEKMSKeyId(value); return *this;}
565 
566 
567     /**
568      * <p>If present, specifies the Amazon Web Services KMS Encryption Context to use
569      * for object encryption. The value of this header is a base64-encoded UTF-8 string
570      * holding JSON with the encryption context key-value pairs.</p>
571      */
GetSSEKMSEncryptionContext()572     inline const Aws::String& GetSSEKMSEncryptionContext() const{ return m_sSEKMSEncryptionContext; }
573 
574     /**
575      * <p>If present, specifies the Amazon Web Services KMS Encryption Context to use
576      * for object encryption. The value of this header is a base64-encoded UTF-8 string
577      * holding JSON with the encryption context key-value pairs.</p>
578      */
SetSSEKMSEncryptionContext(const Aws::String & value)579     inline void SetSSEKMSEncryptionContext(const Aws::String& value) { m_sSEKMSEncryptionContext = value; }
580 
581     /**
582      * <p>If present, specifies the Amazon Web Services KMS Encryption Context to use
583      * for object encryption. The value of this header is a base64-encoded UTF-8 string
584      * holding JSON with the encryption context key-value pairs.</p>
585      */
SetSSEKMSEncryptionContext(Aws::String && value)586     inline void SetSSEKMSEncryptionContext(Aws::String&& value) { m_sSEKMSEncryptionContext = std::move(value); }
587 
588     /**
589      * <p>If present, specifies the Amazon Web Services KMS Encryption Context to use
590      * for object encryption. The value of this header is a base64-encoded UTF-8 string
591      * holding JSON with the encryption context key-value pairs.</p>
592      */
SetSSEKMSEncryptionContext(const char * value)593     inline void SetSSEKMSEncryptionContext(const char* value) { m_sSEKMSEncryptionContext.assign(value); }
594 
595     /**
596      * <p>If present, specifies the Amazon Web Services KMS Encryption Context to use
597      * for object encryption. The value of this header is a base64-encoded UTF-8 string
598      * holding JSON with the encryption context key-value pairs.</p>
599      */
WithSSEKMSEncryptionContext(const Aws::String & value)600     inline CreateMultipartUploadResult& WithSSEKMSEncryptionContext(const Aws::String& value) { SetSSEKMSEncryptionContext(value); return *this;}
601 
602     /**
603      * <p>If present, specifies the Amazon Web Services KMS Encryption Context to use
604      * for object encryption. The value of this header is a base64-encoded UTF-8 string
605      * holding JSON with the encryption context key-value pairs.</p>
606      */
WithSSEKMSEncryptionContext(Aws::String && value)607     inline CreateMultipartUploadResult& WithSSEKMSEncryptionContext(Aws::String&& value) { SetSSEKMSEncryptionContext(std::move(value)); return *this;}
608 
609     /**
610      * <p>If present, specifies the Amazon Web Services KMS Encryption Context to use
611      * for object encryption. The value of this header is a base64-encoded UTF-8 string
612      * holding JSON with the encryption context key-value pairs.</p>
613      */
WithSSEKMSEncryptionContext(const char * value)614     inline CreateMultipartUploadResult& WithSSEKMSEncryptionContext(const char* value) { SetSSEKMSEncryptionContext(value); return *this;}
615 
616 
617     /**
618      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
619      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
620      */
GetBucketKeyEnabled()621     inline bool GetBucketKeyEnabled() const{ return m_bucketKeyEnabled; }
622 
623     /**
624      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
625      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
626      */
SetBucketKeyEnabled(bool value)627     inline void SetBucketKeyEnabled(bool value) { m_bucketKeyEnabled = value; }
628 
629     /**
630      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
631      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
632      */
WithBucketKeyEnabled(bool value)633     inline CreateMultipartUploadResult& WithBucketKeyEnabled(bool value) { SetBucketKeyEnabled(value); return *this;}
634 
635 
636 
GetRequestCharged()637     inline const RequestCharged& GetRequestCharged() const{ return m_requestCharged; }
638 
639 
SetRequestCharged(const RequestCharged & value)640     inline void SetRequestCharged(const RequestCharged& value) { m_requestCharged = value; }
641 
642 
SetRequestCharged(RequestCharged && value)643     inline void SetRequestCharged(RequestCharged&& value) { m_requestCharged = std::move(value); }
644 
645 
WithRequestCharged(const RequestCharged & value)646     inline CreateMultipartUploadResult& WithRequestCharged(const RequestCharged& value) { SetRequestCharged(value); return *this;}
647 
648 
WithRequestCharged(RequestCharged && value)649     inline CreateMultipartUploadResult& WithRequestCharged(RequestCharged&& value) { SetRequestCharged(std::move(value)); return *this;}
650 
651   private:
652 
653     Aws::Utils::DateTime m_abortDate;
654 
655     Aws::String m_abortRuleId;
656 
657     Aws::String m_bucket;
658 
659     Aws::String m_key;
660 
661     Aws::String m_uploadId;
662 
663     ServerSideEncryption m_serverSideEncryption;
664 
665     Aws::String m_sSECustomerAlgorithm;
666 
667     Aws::String m_sSECustomerKeyMD5;
668 
669     Aws::String m_sSEKMSKeyId;
670 
671     Aws::String m_sSEKMSEncryptionContext;
672 
673     bool m_bucketKeyEnabled;
674 
675     RequestCharged m_requestCharged;
676   };
677 
678 } // namespace Model
679 } // namespace S3Crt
680 } // namespace Aws
681