1/*
2* Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3*
4* Licensed under the Apache License, Version 2.0 (the "License").
5* You may not use this file except in compliance with the License.
6* A copy of the License is located at
7*
8* http://aws.amazon.com/apache2.0
9*
10* or in the "license" file accompanying this file. This file is distributed
11* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12* express or implied. See the License for the specific language governing
13* permissions and limitations under the License.
14*/
15
16#pragma once
17#include <aws/s3/S3_EXPORTS.h>
18#include <aws/core/utils/memory/stl/AWSString.h>
19#include <aws/s3/model/ServerSideEncryption.h>
20#include <aws/s3/model/RequestCharged.h>
21#include <utility>
22
23namespace Aws
24{
25template<typename RESULT_TYPE>
26class AmazonWebServiceResult;
27
28namespace Utils
29{
30namespace Xml
31{
32 class XmlDocument;
33} // namespace Xml
34} // namespace Utils
35namespace S3
36{
37namespace Model
38{
39 class AWS_S3_API CompleteMultipartUploadResult
40 {
41 public:
42 CompleteMultipartUploadResult();
43 CompleteMultipartUploadResult(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
44 CompleteMultipartUploadResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
45
46
47 /**
48 * <p>The URI that identifies the newly created object.</p>
49 */
50 inline const Aws::String& GetLocation() const{ return m_location; }
51
52 /**
53 * <p>The URI that identifies the newly created object.</p>
54 */
55 inline void SetLocation(const Aws::String& value) { m_location = value; }
56
57 /**
58 * <p>The URI that identifies the newly created object.</p>
59 */
60 inline void SetLocation(Aws::String&& value) { m_location = std::move(value); }
61
62 /**
63 * <p>The URI that identifies the newly created object.</p>
64 */
65 inline void SetLocation(const char* value) { m_location.assign(value); }
66
67 /**
68 * <p>The URI that identifies the newly created object.</p>
69 */
70 inline CompleteMultipartUploadResult& WithLocation(const Aws::String& value) { SetLocation(value); return *this;}
71
72 /**
73 * <p>The URI that identifies the newly created object.</p>
74 */
75 inline CompleteMultipartUploadResult& WithLocation(Aws::String&& value) { SetLocation(std::move(value)); return *this;}
76
77 /**
78 * <p>The URI that identifies the newly created object.</p>
79 */
80 inline CompleteMultipartUploadResult& WithLocation(const char* value) { SetLocation(value); return *this;}
81
82
83 /**
84 * <p>The name of the bucket that contains the newly created object.</p>
85 */
86 inline const Aws::String& GetBucket() const{ return m_bucket; }
87
88 /**
89 * <p>The name of the bucket that contains the newly created object.</p>
90 */
91 inline void SetBucket(const Aws::String& value) { m_bucket = value; }
92
93 /**
94 * <p>The name of the bucket that contains the newly created object.</p>
95 */
96 inline void SetBucket(Aws::String&& value) { m_bucket = std::move(value); }
97
98 /**
99 * <p>The name of the bucket that contains the newly created object.</p>
100 */
101 inline void SetBucket(const char* value) { m_bucket.assign(value); }
102
103 /**
104 * <p>The name of the bucket that contains the newly created object.</p>
105 */
106 inline CompleteMultipartUploadResult& WithBucket(const Aws::String& value) { SetBucket(value); return *this;}
107
108 /**
109 * <p>The name of the bucket that contains the newly created object.</p>
110 */
111 inline CompleteMultipartUploadResult& WithBucket(Aws::String&& value) { SetBucket(std::move(value)); return *this;}
112
113 /**
114 * <p>The name of the bucket that contains the newly created object.</p>
115 */
116 inline CompleteMultipartUploadResult& WithBucket(const char* value) { SetBucket(value); return *this;}
117
118
119 /**
120 * <p>The object key of the newly created object.</p>
121 */
122 inline const Aws::String& GetKey() const{ return m_key; }
123
124 /**
125 * <p>The object key of the newly created object.</p>
126 */
127 inline void SetKey(const Aws::String& value) { m_key = value; }
128
129 /**
130 * <p>The object key of the newly created object.</p>
131 */
132 inline void SetKey(Aws::String&& value) { m_key = std::move(value); }
133
134 /**
135 * <p>The object key of the newly created object.</p>
136 */
137 inline void SetKey(const char* value) { m_key.assign(value); }
138
139 /**
140 * <p>The object key of the newly created object.</p>
141 */
142 inline CompleteMultipartUploadResult& WithKey(const Aws::String& value) { SetKey(value); return *this;}
143
144 /**
145 * <p>The object key of the newly created object.</p>
146 */
147 inline CompleteMultipartUploadResult& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;}
148
149 /**
150 * <p>The object key of the newly created object.</p>
151 */
152 inline CompleteMultipartUploadResult& WithKey(const char* value) { SetKey(value); return *this;}
153
154
155 /**
156 * <p>If the object expiration is configured, this will contain the expiration date
157 * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
158 */
159 inline const Aws::String& GetExpiration() const{ return m_expiration; }
160
161 /**
162 * <p>If the object expiration is configured, this will contain the expiration date
163 * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
164 */
165 inline void SetExpiration(const Aws::String& value) { m_expiration = value; }
166
167 /**
168 * <p>If the object expiration is configured, this will contain the expiration date
169 * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
170 */
171 inline void SetExpiration(Aws::String&& value) { m_expiration = std::move(value); }
172
173 /**
174 * <p>If the object expiration is configured, this will contain the expiration date
175 * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
176 */
177 inline void SetExpiration(const char* value) { m_expiration.assign(value); }
178
179 /**
180 * <p>If the object expiration is configured, this will contain the expiration date
181 * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
182 */
183 inline CompleteMultipartUploadResult& WithExpiration(const Aws::String& value) { SetExpiration(value); return *this;}
184
185 /**
186 * <p>If the object expiration is configured, this will contain the expiration date
187 * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
188 */
189 inline CompleteMultipartUploadResult& WithExpiration(Aws::String&& value) { SetExpiration(std::move(value)); return *this;}
190
191 /**
192 * <p>If the object expiration is configured, this will contain the expiration date
193 * (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.</p>
194 */
195 inline CompleteMultipartUploadResult& WithExpiration(const char* value) { SetExpiration(value); return *this;}
196
197
198 /**
199 * <p>Entity tag that identifies the newly created object's data. Objects with
200 * different object data will have different entity tags. The entity tag is an
201 * opaque string. The entity tag may or may not be an MD5 digest of the object
202 * data. If the entity tag is not an MD5 digest of the object data, it will contain
203 * one or more nonhexadecimal characters and/or will consist of less than 32 or
204 * more than 32 hexadecimal digits.</p>
205 */
206 inline const Aws::String& GetETag() const{ return m_eTag; }
207
208 /**
209 * <p>Entity tag that identifies the newly created object's data. Objects with
210 * different object data will have different entity tags. The entity tag is an
211 * opaque string. The entity tag may or may not be an MD5 digest of the object
212 * data. If the entity tag is not an MD5 digest of the object data, it will contain
213 * one or more nonhexadecimal characters and/or will consist of less than 32 or
214 * more than 32 hexadecimal digits.</p>
215 */
216 inline void SetETag(const Aws::String& value) { m_eTag = value; }
217
218 /**
219 * <p>Entity tag that identifies the newly created object's data. Objects with
220 * different object data will have different entity tags. The entity tag is an
221 * opaque string. The entity tag may or may not be an MD5 digest of the object
222 * data. If the entity tag is not an MD5 digest of the object data, it will contain
223 * one or more nonhexadecimal characters and/or will consist of less than 32 or
224 * more than 32 hexadecimal digits.</p>
225 */
226 inline void SetETag(Aws::String&& value) { m_eTag = std::move(value); }
227
228 /**
229 * <p>Entity tag that identifies the newly created object's data. Objects with
230 * different object data will have different entity tags. The entity tag is an
231 * opaque string. The entity tag may or may not be an MD5 digest of the object
232 * data. If the entity tag is not an MD5 digest of the object data, it will contain
233 * one or more nonhexadecimal characters and/or will consist of less than 32 or
234 * more than 32 hexadecimal digits.</p>
235 */
236 inline void SetETag(const char* value) { m_eTag.assign(value); }
237
238 /**
239 * <p>Entity tag that identifies the newly created object's data. Objects with
240 * different object data will have different entity tags. The entity tag is an
241 * opaque string. The entity tag may or may not be an MD5 digest of the object
242 * data. If the entity tag is not an MD5 digest of the object data, it will contain
243 * one or more nonhexadecimal characters and/or will consist of less than 32 or
244 * more than 32 hexadecimal digits.</p>
245 */
246 inline CompleteMultipartUploadResult& WithETag(const Aws::String& value) { SetETag(value); return *this;}
247
248 /**
249 * <p>Entity tag that identifies the newly created object's data. Objects with
250 * different object data will have different entity tags. The entity tag is an
251 * opaque string. The entity tag may or may not be an MD5 digest of the object
252 * data. If the entity tag is not an MD5 digest of the object data, it will contain
253 * one or more nonhexadecimal characters and/or will consist of less than 32 or
254 * more than 32 hexadecimal digits.</p>
255 */
256 inline CompleteMultipartUploadResult& WithETag(Aws::String&& value) { SetETag(std::move(value)); return *this;}
257
258 /**
259 * <p>Entity tag that identifies the newly created object's data. Objects with
260 * different object data will have different entity tags. The entity tag is an
261 * opaque string. The entity tag may or may not be an MD5 digest of the object
262 * data. If the entity tag is not an MD5 digest of the object data, it will contain
263 * one or more nonhexadecimal characters and/or will consist of less than 32 or
264 * more than 32 hexadecimal digits.</p>
265 */
266 inline CompleteMultipartUploadResult& WithETag(const char* value) { SetETag(value); return *this;}
267
268
269 /**
270 * <p>If you specified server-side encryption either with an Amazon S3-managed
271 * encryption key or an AWS KMS customer master key (CMK) in your initiate
272 * multipart upload request, the response includes this header. It confirms the
273 * encryption algorithm that Amazon S3 used to encrypt the object.</p>
274 */
275 inline const ServerSideEncryption& GetServerSideEncryption() const{ return m_serverSideEncryption; }
276
277 /**
278 * <p>If you specified server-side encryption either with an Amazon S3-managed
279 * encryption key or an AWS KMS customer master key (CMK) in your initiate
280 * multipart upload request, the response includes this header. It confirms the
281 * encryption algorithm that Amazon S3 used to encrypt the object.</p>
282 */
283 inline void SetServerSideEncryption(const ServerSideEncryption& value) { m_serverSideEncryption = value; }
284
285 /**
286 * <p>If you specified server-side encryption either with an Amazon S3-managed
287 * encryption key or an AWS KMS customer master key (CMK) in your initiate
288 * multipart upload request, the response includes this header. It confirms the
289 * encryption algorithm that Amazon S3 used to encrypt the object.</p>
290 */
291 inline void SetServerSideEncryption(ServerSideEncryption&& value) { m_serverSideEncryption = std::move(value); }
292
293 /**
294 * <p>If you specified server-side encryption either with an Amazon S3-managed
295 * encryption key or an AWS KMS customer master key (CMK) in your initiate
296 * multipart upload request, the response includes this header. It confirms the
297 * encryption algorithm that Amazon S3 used to encrypt the object.</p>
298 */
299 inline CompleteMultipartUploadResult& WithServerSideEncryption(const ServerSideEncryption& value) { SetServerSideEncryption(value); return *this;}
300
301 /**
302 * <p>If you specified server-side encryption either with an Amazon S3-managed
303 * encryption key or an AWS KMS customer master key (CMK) in your initiate
304 * multipart upload request, the response includes this header. It confirms the
305 * encryption algorithm that Amazon S3 used to encrypt the object.</p>
306 */
307 inline CompleteMultipartUploadResult& WithServerSideEncryption(ServerSideEncryption&& value) { SetServerSideEncryption(std::move(value)); return *this;}
308
309
310 /**
311 * <p>Version ID of the newly created object, in case the bucket has versioning
312 * turned on.</p>
313 */
314 inline const Aws::String& GetVersionId() const{ return m_versionId; }
315
316 /**
317 * <p>Version ID of the newly created object, in case the bucket has versioning
318 * turned on.</p>
319 */
320 inline void SetVersionId(const Aws::String& value) { m_versionId = value; }
321
322 /**
323 * <p>Version ID of the newly created object, in case the bucket has versioning
324 * turned on.</p>
325 */
326 inline void SetVersionId(Aws::String&& value) { m_versionId = std::move(value); }
327
328 /**
329 * <p>Version ID of the newly created object, in case the bucket has versioning
330 * turned on.</p>
331 */
332 inline void SetVersionId(const char* value) { m_versionId.assign(value); }
333
334 /**
335 * <p>Version ID of the newly created object, in case the bucket has versioning
336 * turned on.</p>
337 */
338 inline CompleteMultipartUploadResult& WithVersionId(const Aws::String& value) { SetVersionId(value); return *this;}
339
340 /**
341 * <p>Version ID of the newly created object, in case the bucket has versioning
342 * turned on.</p>
343 */
344 inline CompleteMultipartUploadResult& WithVersionId(Aws::String&& value) { SetVersionId(std::move(value)); return *this;}
345
346 /**
347 * <p>Version ID of the newly created object, in case the bucket has versioning
348 * turned on.</p>
349 */
350 inline CompleteMultipartUploadResult& WithVersionId(const char* value) { SetVersionId(value); return *this;}
351
352
353 /**
354 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
355 * customer master key (CMK) that was used for the object.</p>
356 */
357 inline const Aws::String& GetSSEKMSKeyId() const{ return m_sSEKMSKeyId; }
358
359 /**
360 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
361 * customer master key (CMK) that was used for the object.</p>
362 */
363 inline void SetSSEKMSKeyId(const Aws::String& value) { m_sSEKMSKeyId = value; }
364
365 /**
366 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
367 * customer master key (CMK) that was used for the object.</p>
368 */
369 inline void SetSSEKMSKeyId(Aws::String&& value) { m_sSEKMSKeyId = std::move(value); }
370
371 /**
372 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
373 * customer master key (CMK) that was used for the object.</p>
374 */
375 inline void SetSSEKMSKeyId(const char* value) { m_sSEKMSKeyId.assign(value); }
376
377 /**
378 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
379 * customer master key (CMK) that was used for the object.</p>
380 */
381 inline CompleteMultipartUploadResult& WithSSEKMSKeyId(const Aws::String& value) { SetSSEKMSKeyId(value); return *this;}
382
383 /**
384 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
385 * customer master key (CMK) that was used for the object.</p>
386 */
387 inline CompleteMultipartUploadResult& WithSSEKMSKeyId(Aws::String&& value) { SetSSEKMSKeyId(std::move(value)); return *this;}
388
389 /**
390 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
391 * customer master key (CMK) that was used for the object.</p>
392 */
393 inline CompleteMultipartUploadResult& WithSSEKMSKeyId(const char* value) { SetSSEKMSKeyId(value); return *this;}
394
395
396
397 inline const RequestCharged& GetRequestCharged() const{ return m_requestCharged; }
398
399
400 inline void SetRequestCharged(const RequestCharged& value) { m_requestCharged = value; }
401
402
403 inline void SetRequestCharged(RequestCharged&& value) { m_requestCharged = std::move(value); }
404
405
406 inline CompleteMultipartUploadResult& WithRequestCharged(const RequestCharged& value) { SetRequestCharged(value); return *this;}
407
408
409 inline CompleteMultipartUploadResult& WithRequestCharged(RequestCharged&& value) { SetRequestCharged(std::move(value)); return *this;}
410
411 private:
412
413 Aws::String m_location;
414
415 Aws::String m_bucket;
416
417 Aws::String m_key;
418
419 Aws::String m_expiration;
420
421 Aws::String m_eTag;
422
423 ServerSideEncryption m_serverSideEncryption;
424
425 Aws::String m_versionId;
426
427 Aws::String m_sSEKMSKeyId;
428
429 RequestCharged m_requestCharged;
430 };
431
432} // namespace Model
433} // namespace S3
434} // namespace Aws
435