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/memory/stl/AWSString.h>
9 #include <aws/s3-crt/model/ServerSideEncryption.h>
10 #include <aws/s3-crt/model/RequestCharged.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 template<typename RESULT_TYPE>
16 class AmazonWebServiceResult;
17 
18 namespace Utils
19 {
20 namespace Xml
21 {
22   class XmlDocument;
23 } // namespace Xml
24 } // namespace Utils
25 namespace S3Crt
26 {
27 namespace Model
28 {
29   class AWS_S3CRT_API CompleteMultipartUploadResult
30   {
31   public:
32     CompleteMultipartUploadResult();
33     CompleteMultipartUploadResult(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
34     CompleteMultipartUploadResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
35 
36 
37     /**
38      * <p>The URI that identifies the newly created object.</p>
39      */
GetLocation()40     inline const Aws::String& GetLocation() const{ return m_location; }
41 
42     /**
43      * <p>The URI that identifies the newly created object.</p>
44      */
SetLocation(const Aws::String & value)45     inline void SetLocation(const Aws::String& value) { m_location = value; }
46 
47     /**
48      * <p>The URI that identifies the newly created object.</p>
49      */
SetLocation(Aws::String && value)50     inline void SetLocation(Aws::String&& value) { m_location = std::move(value); }
51 
52     /**
53      * <p>The URI that identifies the newly created object.</p>
54      */
SetLocation(const char * value)55     inline void SetLocation(const char* value) { m_location.assign(value); }
56 
57     /**
58      * <p>The URI that identifies the newly created object.</p>
59      */
WithLocation(const Aws::String & value)60     inline CompleteMultipartUploadResult& WithLocation(const Aws::String& value) { SetLocation(value); return *this;}
61 
62     /**
63      * <p>The URI that identifies the newly created object.</p>
64      */
WithLocation(Aws::String && value)65     inline CompleteMultipartUploadResult& WithLocation(Aws::String&& value) { SetLocation(std::move(value)); return *this;}
66 
67     /**
68      * <p>The URI that identifies the newly created object.</p>
69      */
WithLocation(const char * value)70     inline CompleteMultipartUploadResult& WithLocation(const char* value) { SetLocation(value); return *this;}
71 
72 
73     /**
74      * <p>The name of the bucket that contains the newly created object. Does not
75      * return the access point ARN or access point alias if used.</p> <p>When using
76      * this action with an access point, you must direct requests to the access point
77      * hostname. The access point hostname takes the form
78      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
79      * When using this action with an access point through the Amazon Web Services
80      * SDKs, you provide the access point ARN in place of the bucket name. For more
81      * information about access point ARNs, see <a
82      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
83      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
84      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
85      * Outposts hostname. The S3 on Outposts hostname takes the form
86      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
87      * When using this action using S3 on Outposts through the Amazon Web Services
88      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
89      * information about S3 on Outposts ARNs, see <a
90      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
91      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
92      */
GetBucket()93     inline const Aws::String& GetBucket() const{ return m_bucket; }
94 
95     /**
96      * <p>The name of the bucket that contains the newly created object. Does not
97      * return the access point ARN or access point alias if used.</p> <p>When using
98      * this action with an access point, you must direct requests to the access point
99      * hostname. The access point hostname takes the form
100      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
101      * When using this action with an access point through the Amazon Web Services
102      * SDKs, you provide the access point ARN in place of the bucket name. For more
103      * information about access point ARNs, see <a
104      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
105      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
106      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
107      * Outposts hostname. The S3 on Outposts hostname takes the form
108      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
109      * When using this action using S3 on Outposts through the Amazon Web Services
110      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
111      * information about S3 on Outposts ARNs, see <a
112      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
113      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
114      */
SetBucket(const Aws::String & value)115     inline void SetBucket(const Aws::String& value) { m_bucket = value; }
116 
117     /**
118      * <p>The name of the bucket that contains the newly created object. Does not
119      * return the access point ARN or access point alias if used.</p> <p>When using
120      * this action with an access point, you must direct requests to the access point
121      * hostname. The access point hostname takes the form
122      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
123      * When using this action with an access point through the Amazon Web Services
124      * SDKs, you provide the access point ARN in place of the bucket name. For more
125      * information about access point ARNs, see <a
126      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
127      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
128      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
129      * Outposts hostname. The S3 on Outposts hostname takes the form
130      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
131      * When using this action using S3 on Outposts through the Amazon Web Services
132      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
133      * information about S3 on Outposts ARNs, see <a
134      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
135      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
136      */
SetBucket(Aws::String && value)137     inline void SetBucket(Aws::String&& value) { m_bucket = std::move(value); }
138 
139     /**
140      * <p>The name of the bucket that contains the newly created object. Does not
141      * return the access point ARN or access point alias if used.</p> <p>When using
142      * this action with an access point, you must direct requests to the access point
143      * hostname. The access point hostname takes the form
144      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
145      * When using this action with an access point through the Amazon Web Services
146      * SDKs, you provide the access point ARN in place of the bucket name. For more
147      * information about access point ARNs, see <a
148      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
149      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
150      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
151      * Outposts hostname. The S3 on Outposts hostname takes the form
152      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
153      * When using this action using S3 on Outposts through the Amazon Web Services
154      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
155      * information about S3 on Outposts ARNs, see <a
156      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
157      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
158      */
SetBucket(const char * value)159     inline void SetBucket(const char* value) { m_bucket.assign(value); }
160 
161     /**
162      * <p>The name of the bucket that contains the newly created object. Does not
163      * return the access point ARN or access point alias if used.</p> <p>When using
164      * this action with an access point, you must direct requests to the access point
165      * hostname. The access point hostname takes the form
166      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
167      * When using this action with an access point through the Amazon Web Services
168      * SDKs, you provide the access point ARN in place of the bucket name. For more
169      * information about access point ARNs, see <a
170      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
171      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
172      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
173      * Outposts hostname. The S3 on Outposts hostname takes the form
174      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
175      * When using this action using S3 on Outposts through the Amazon Web Services
176      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
177      * information about S3 on Outposts ARNs, see <a
178      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
179      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
180      */
WithBucket(const Aws::String & value)181     inline CompleteMultipartUploadResult& WithBucket(const Aws::String& value) { SetBucket(value); return *this;}
182 
183     /**
184      * <p>The name of the bucket that contains the newly created object. Does not
185      * return the access point ARN or access point alias if used.</p> <p>When using
186      * this action with an access point, you must direct requests to the access point
187      * hostname. The access point hostname takes the form
188      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
189      * When using this action with an access point through the Amazon Web Services
190      * SDKs, you provide the access point ARN in place of the bucket name. For more
191      * information about access point ARNs, see <a
192      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
193      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
194      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
195      * Outposts hostname. The S3 on Outposts hostname takes the form
196      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
197      * When using this action using S3 on Outposts through the Amazon Web Services
198      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
199      * information about S3 on Outposts ARNs, see <a
200      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
201      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
202      */
WithBucket(Aws::String && value)203     inline CompleteMultipartUploadResult& WithBucket(Aws::String&& value) { SetBucket(std::move(value)); return *this;}
204 
205     /**
206      * <p>The name of the bucket that contains the newly created object. Does not
207      * return the access point ARN or access point alias if used.</p> <p>When using
208      * this action with an access point, you must direct requests to the access point
209      * hostname. The access point hostname takes the form
210      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
211      * When using this action with an access point through the Amazon Web Services
212      * SDKs, you provide the access point ARN in place of the bucket name. For more
213      * information about access point ARNs, see <a
214      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
215      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
216      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
217      * Outposts hostname. The S3 on Outposts hostname takes the form
218      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
219      * When using this action using S3 on Outposts through the Amazon Web Services
220      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
221      * information about S3 on Outposts ARNs, see <a
222      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
223      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
224      */
WithBucket(const char * value)225     inline CompleteMultipartUploadResult& WithBucket(const char* value) { SetBucket(value); return *this;}
226 
227 
228     /**
229      * <p>The object key of the newly created object.</p>
230      */
GetKey()231     inline const Aws::String& GetKey() const{ return m_key; }
232 
233     /**
234      * <p>The object key of the newly created object.</p>
235      */
SetKey(const Aws::String & value)236     inline void SetKey(const Aws::String& value) { m_key = value; }
237 
238     /**
239      * <p>The object key of the newly created object.</p>
240      */
SetKey(Aws::String && value)241     inline void SetKey(Aws::String&& value) { m_key = std::move(value); }
242 
243     /**
244      * <p>The object key of the newly created object.</p>
245      */
SetKey(const char * value)246     inline void SetKey(const char* value) { m_key.assign(value); }
247 
248     /**
249      * <p>The object key of the newly created object.</p>
250      */
WithKey(const Aws::String & value)251     inline CompleteMultipartUploadResult& WithKey(const Aws::String& value) { SetKey(value); return *this;}
252 
253     /**
254      * <p>The object key of the newly created object.</p>
255      */
WithKey(Aws::String && value)256     inline CompleteMultipartUploadResult& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;}
257 
258     /**
259      * <p>The object key of the newly created object.</p>
260      */
WithKey(const char * value)261     inline CompleteMultipartUploadResult& WithKey(const char* value) { SetKey(value); return *this;}
262 
263 
264     /**
265      * <p>If the object expiration is configured, this will contain the expiration date
266      * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
267      */
GetExpiration()268     inline const Aws::String& GetExpiration() const{ return m_expiration; }
269 
270     /**
271      * <p>If the object expiration is configured, this will contain the expiration date
272      * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
273      */
SetExpiration(const Aws::String & value)274     inline void SetExpiration(const Aws::String& value) { m_expiration = value; }
275 
276     /**
277      * <p>If the object expiration is configured, this will contain the expiration date
278      * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
279      */
SetExpiration(Aws::String && value)280     inline void SetExpiration(Aws::String&& value) { m_expiration = std::move(value); }
281 
282     /**
283      * <p>If the object expiration is configured, this will contain the expiration date
284      * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
285      */
SetExpiration(const char * value)286     inline void SetExpiration(const char* value) { m_expiration.assign(value); }
287 
288     /**
289      * <p>If the object expiration is configured, this will contain the expiration date
290      * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
291      */
WithExpiration(const Aws::String & value)292     inline CompleteMultipartUploadResult& WithExpiration(const Aws::String& value) { SetExpiration(value); return *this;}
293 
294     /**
295      * <p>If the object expiration is configured, this will contain the expiration date
296      * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
297      */
WithExpiration(Aws::String && value)298     inline CompleteMultipartUploadResult& WithExpiration(Aws::String&& value) { SetExpiration(std::move(value)); return *this;}
299 
300     /**
301      * <p>If the object expiration is configured, this will contain the expiration date
302      * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
303      */
WithExpiration(const char * value)304     inline CompleteMultipartUploadResult& WithExpiration(const char* value) { SetExpiration(value); return *this;}
305 
306 
307     /**
308      * <p>Entity tag that identifies the newly created object's data. Objects with
309      * different object data will have different entity tags. The entity tag is an
310      * opaque string. The entity tag may or may not be an MD5 digest of the object
311      * data. If the entity tag is not an MD5 digest of the object data, it will contain
312      * one or more nonhexadecimal characters and/or will consist of less than 32 or
313      * more than 32 hexadecimal digits.</p>
314      */
GetETag()315     inline const Aws::String& GetETag() const{ return m_eTag; }
316 
317     /**
318      * <p>Entity tag that identifies the newly created object's data. Objects with
319      * different object data will have different entity tags. The entity tag is an
320      * opaque string. The entity tag may or may not be an MD5 digest of the object
321      * data. If the entity tag is not an MD5 digest of the object data, it will contain
322      * one or more nonhexadecimal characters and/or will consist of less than 32 or
323      * more than 32 hexadecimal digits.</p>
324      */
SetETag(const Aws::String & value)325     inline void SetETag(const Aws::String& value) { m_eTag = value; }
326 
327     /**
328      * <p>Entity tag that identifies the newly created object's data. Objects with
329      * different object data will have different entity tags. The entity tag is an
330      * opaque string. The entity tag may or may not be an MD5 digest of the object
331      * data. If the entity tag is not an MD5 digest of the object data, it will contain
332      * one or more nonhexadecimal characters and/or will consist of less than 32 or
333      * more than 32 hexadecimal digits.</p>
334      */
SetETag(Aws::String && value)335     inline void SetETag(Aws::String&& value) { m_eTag = std::move(value); }
336 
337     /**
338      * <p>Entity tag that identifies the newly created object's data. Objects with
339      * different object data will have different entity tags. The entity tag is an
340      * opaque string. The entity tag may or may not be an MD5 digest of the object
341      * data. If the entity tag is not an MD5 digest of the object data, it will contain
342      * one or more nonhexadecimal characters and/or will consist of less than 32 or
343      * more than 32 hexadecimal digits.</p>
344      */
SetETag(const char * value)345     inline void SetETag(const char* value) { m_eTag.assign(value); }
346 
347     /**
348      * <p>Entity tag that identifies the newly created object's data. Objects with
349      * different object data will have different entity tags. The entity tag is an
350      * opaque string. The entity tag may or may not be an MD5 digest of the object
351      * data. If the entity tag is not an MD5 digest of the object data, it will contain
352      * one or more nonhexadecimal characters and/or will consist of less than 32 or
353      * more than 32 hexadecimal digits.</p>
354      */
WithETag(const Aws::String & value)355     inline CompleteMultipartUploadResult& WithETag(const Aws::String& value) { SetETag(value); return *this;}
356 
357     /**
358      * <p>Entity tag that identifies the newly created object's data. Objects with
359      * different object data will have different entity tags. The entity tag is an
360      * opaque string. The entity tag may or may not be an MD5 digest of the object
361      * data. If the entity tag is not an MD5 digest of the object data, it will contain
362      * one or more nonhexadecimal characters and/or will consist of less than 32 or
363      * more than 32 hexadecimal digits.</p>
364      */
WithETag(Aws::String && value)365     inline CompleteMultipartUploadResult& WithETag(Aws::String&& value) { SetETag(std::move(value)); return *this;}
366 
367     /**
368      * <p>Entity tag that identifies the newly created object's data. Objects with
369      * different object data will have different entity tags. The entity tag is an
370      * opaque string. The entity tag may or may not be an MD5 digest of the object
371      * data. If the entity tag is not an MD5 digest of the object data, it will contain
372      * one or more nonhexadecimal characters and/or will consist of less than 32 or
373      * more than 32 hexadecimal digits.</p>
374      */
WithETag(const char * value)375     inline CompleteMultipartUploadResult& WithETag(const char* value) { SetETag(value); return *this;}
376 
377 
378     /**
379      * <p>If you specified server-side encryption either with an Amazon S3-managed
380      * encryption key or an Amazon Web Services KMS key in your initiate multipart
381      * upload request, the response includes this header. It confirms the encryption
382      * algorithm that Amazon S3 used to encrypt the object.</p>
383      */
GetServerSideEncryption()384     inline const ServerSideEncryption& GetServerSideEncryption() const{ return m_serverSideEncryption; }
385 
386     /**
387      * <p>If you specified server-side encryption either with an Amazon S3-managed
388      * encryption key or an Amazon Web Services KMS key in your initiate multipart
389      * upload request, the response includes this header. It confirms the encryption
390      * algorithm that Amazon S3 used to encrypt the object.</p>
391      */
SetServerSideEncryption(const ServerSideEncryption & value)392     inline void SetServerSideEncryption(const ServerSideEncryption& value) { m_serverSideEncryption = value; }
393 
394     /**
395      * <p>If you specified server-side encryption either with an Amazon S3-managed
396      * encryption key or an Amazon Web Services KMS key in your initiate multipart
397      * upload request, the response includes this header. It confirms the encryption
398      * algorithm that Amazon S3 used to encrypt the object.</p>
399      */
SetServerSideEncryption(ServerSideEncryption && value)400     inline void SetServerSideEncryption(ServerSideEncryption&& value) { m_serverSideEncryption = std::move(value); }
401 
402     /**
403      * <p>If you specified server-side encryption either with an Amazon S3-managed
404      * encryption key or an Amazon Web Services KMS key in your initiate multipart
405      * upload request, the response includes this header. It confirms the encryption
406      * algorithm that Amazon S3 used to encrypt the object.</p>
407      */
WithServerSideEncryption(const ServerSideEncryption & value)408     inline CompleteMultipartUploadResult& WithServerSideEncryption(const ServerSideEncryption& value) { SetServerSideEncryption(value); return *this;}
409 
410     /**
411      * <p>If you specified server-side encryption either with an Amazon S3-managed
412      * encryption key or an Amazon Web Services KMS key in your initiate multipart
413      * upload request, the response includes this header. It confirms the encryption
414      * algorithm that Amazon S3 used to encrypt the object.</p>
415      */
WithServerSideEncryption(ServerSideEncryption && value)416     inline CompleteMultipartUploadResult& WithServerSideEncryption(ServerSideEncryption&& value) { SetServerSideEncryption(std::move(value)); return *this;}
417 
418 
419     /**
420      * <p>Version ID of the newly created object, in case the bucket has versioning
421      * turned on.</p>
422      */
GetVersionId()423     inline const Aws::String& GetVersionId() const{ return m_versionId; }
424 
425     /**
426      * <p>Version ID of the newly created object, in case the bucket has versioning
427      * turned on.</p>
428      */
SetVersionId(const Aws::String & value)429     inline void SetVersionId(const Aws::String& value) { m_versionId = value; }
430 
431     /**
432      * <p>Version ID of the newly created object, in case the bucket has versioning
433      * turned on.</p>
434      */
SetVersionId(Aws::String && value)435     inline void SetVersionId(Aws::String&& value) { m_versionId = std::move(value); }
436 
437     /**
438      * <p>Version ID of the newly created object, in case the bucket has versioning
439      * turned on.</p>
440      */
SetVersionId(const char * value)441     inline void SetVersionId(const char* value) { m_versionId.assign(value); }
442 
443     /**
444      * <p>Version ID of the newly created object, in case the bucket has versioning
445      * turned on.</p>
446      */
WithVersionId(const Aws::String & value)447     inline CompleteMultipartUploadResult& WithVersionId(const Aws::String& value) { SetVersionId(value); return *this;}
448 
449     /**
450      * <p>Version ID of the newly created object, in case the bucket has versioning
451      * turned on.</p>
452      */
WithVersionId(Aws::String && value)453     inline CompleteMultipartUploadResult& WithVersionId(Aws::String&& value) { SetVersionId(std::move(value)); return *this;}
454 
455     /**
456      * <p>Version ID of the newly created object, in case the bucket has versioning
457      * turned on.</p>
458      */
WithVersionId(const char * value)459     inline CompleteMultipartUploadResult& WithVersionId(const char* value) { SetVersionId(value); return *this;}
460 
461 
462     /**
463      * <p>If present, specifies the ID of the Amazon Web Services Key Management
464      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
465      * for the object.</p>
466      */
GetSSEKMSKeyId()467     inline const Aws::String& GetSSEKMSKeyId() const{ return m_sSEKMSKeyId; }
468 
469     /**
470      * <p>If present, specifies the ID of the Amazon Web Services Key Management
471      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
472      * for the object.</p>
473      */
SetSSEKMSKeyId(const Aws::String & value)474     inline void SetSSEKMSKeyId(const Aws::String& value) { m_sSEKMSKeyId = value; }
475 
476     /**
477      * <p>If present, specifies the ID of the Amazon Web Services Key Management
478      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
479      * for the object.</p>
480      */
SetSSEKMSKeyId(Aws::String && value)481     inline void SetSSEKMSKeyId(Aws::String&& value) { m_sSEKMSKeyId = std::move(value); }
482 
483     /**
484      * <p>If present, specifies the ID of the Amazon Web Services Key Management
485      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
486      * for the object.</p>
487      */
SetSSEKMSKeyId(const char * value)488     inline void SetSSEKMSKeyId(const char* value) { m_sSEKMSKeyId.assign(value); }
489 
490     /**
491      * <p>If present, specifies the ID of the Amazon Web Services Key Management
492      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
493      * for the object.</p>
494      */
WithSSEKMSKeyId(const Aws::String & value)495     inline CompleteMultipartUploadResult& WithSSEKMSKeyId(const Aws::String& value) { SetSSEKMSKeyId(value); return *this;}
496 
497     /**
498      * <p>If present, specifies the ID of the Amazon Web Services Key Management
499      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
500      * for the object.</p>
501      */
WithSSEKMSKeyId(Aws::String && value)502     inline CompleteMultipartUploadResult& WithSSEKMSKeyId(Aws::String&& value) { SetSSEKMSKeyId(std::move(value)); return *this;}
503 
504     /**
505      * <p>If present, specifies the ID of the Amazon Web Services Key Management
506      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
507      * for the object.</p>
508      */
WithSSEKMSKeyId(const char * value)509     inline CompleteMultipartUploadResult& WithSSEKMSKeyId(const char* value) { SetSSEKMSKeyId(value); return *this;}
510 
511 
512     /**
513      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
514      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
515      */
GetBucketKeyEnabled()516     inline bool GetBucketKeyEnabled() const{ return m_bucketKeyEnabled; }
517 
518     /**
519      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
520      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
521      */
SetBucketKeyEnabled(bool value)522     inline void SetBucketKeyEnabled(bool value) { m_bucketKeyEnabled = value; }
523 
524     /**
525      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
526      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
527      */
WithBucketKeyEnabled(bool value)528     inline CompleteMultipartUploadResult& WithBucketKeyEnabled(bool value) { SetBucketKeyEnabled(value); return *this;}
529 
530 
531 
GetRequestCharged()532     inline const RequestCharged& GetRequestCharged() const{ return m_requestCharged; }
533 
534 
SetRequestCharged(const RequestCharged & value)535     inline void SetRequestCharged(const RequestCharged& value) { m_requestCharged = value; }
536 
537 
SetRequestCharged(RequestCharged && value)538     inline void SetRequestCharged(RequestCharged&& value) { m_requestCharged = std::move(value); }
539 
540 
WithRequestCharged(const RequestCharged & value)541     inline CompleteMultipartUploadResult& WithRequestCharged(const RequestCharged& value) { SetRequestCharged(value); return *this;}
542 
543 
WithRequestCharged(RequestCharged && value)544     inline CompleteMultipartUploadResult& WithRequestCharged(RequestCharged&& value) { SetRequestCharged(std::move(value)); return *this;}
545 
546   private:
547 
548     Aws::String m_location;
549 
550     Aws::String m_bucket;
551 
552     Aws::String m_key;
553 
554     Aws::String m_expiration;
555 
556     Aws::String m_eTag;
557 
558     ServerSideEncryption m_serverSideEncryption;
559 
560     Aws::String m_versionId;
561 
562     Aws::String m_sSEKMSKeyId;
563 
564     bool m_bucketKeyEnabled;
565 
566     RequestCharged m_requestCharged;
567   };
568 
569 } // namespace Model
570 } // namespace S3Crt
571 } // namespace Aws
572