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/CopyPartResult.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 UploadPartCopyResult
31   {
32   public:
33     UploadPartCopyResult();
34     UploadPartCopyResult(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
35     UploadPartCopyResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
36 
37 
38     /**
39      * <p>The version of the source object that was copied, if you have enabled
40      * versioning on the source bucket.</p>
41      */
GetCopySourceVersionId()42     inline const Aws::String& GetCopySourceVersionId() const{ return m_copySourceVersionId; }
43 
44     /**
45      * <p>The version of the source object that was copied, if you have enabled
46      * versioning on the source bucket.</p>
47      */
SetCopySourceVersionId(const Aws::String & value)48     inline void SetCopySourceVersionId(const Aws::String& value) { m_copySourceVersionId = value; }
49 
50     /**
51      * <p>The version of the source object that was copied, if you have enabled
52      * versioning on the source bucket.</p>
53      */
SetCopySourceVersionId(Aws::String && value)54     inline void SetCopySourceVersionId(Aws::String&& value) { m_copySourceVersionId = std::move(value); }
55 
56     /**
57      * <p>The version of the source object that was copied, if you have enabled
58      * versioning on the source bucket.</p>
59      */
SetCopySourceVersionId(const char * value)60     inline void SetCopySourceVersionId(const char* value) { m_copySourceVersionId.assign(value); }
61 
62     /**
63      * <p>The version of the source object that was copied, if you have enabled
64      * versioning on the source bucket.</p>
65      */
WithCopySourceVersionId(const Aws::String & value)66     inline UploadPartCopyResult& WithCopySourceVersionId(const Aws::String& value) { SetCopySourceVersionId(value); return *this;}
67 
68     /**
69      * <p>The version of the source object that was copied, if you have enabled
70      * versioning on the source bucket.</p>
71      */
WithCopySourceVersionId(Aws::String && value)72     inline UploadPartCopyResult& WithCopySourceVersionId(Aws::String&& value) { SetCopySourceVersionId(std::move(value)); return *this;}
73 
74     /**
75      * <p>The version of the source object that was copied, if you have enabled
76      * versioning on the source bucket.</p>
77      */
WithCopySourceVersionId(const char * value)78     inline UploadPartCopyResult& WithCopySourceVersionId(const char* value) { SetCopySourceVersionId(value); return *this;}
79 
80 
81     /**
82      * <p>Container for all response elements.</p>
83      */
GetCopyPartResult()84     inline const CopyPartResult& GetCopyPartResult() const{ return m_copyPartResult; }
85 
86     /**
87      * <p>Container for all response elements.</p>
88      */
SetCopyPartResult(const CopyPartResult & value)89     inline void SetCopyPartResult(const CopyPartResult& value) { m_copyPartResult = value; }
90 
91     /**
92      * <p>Container for all response elements.</p>
93      */
SetCopyPartResult(CopyPartResult && value)94     inline void SetCopyPartResult(CopyPartResult&& value) { m_copyPartResult = std::move(value); }
95 
96     /**
97      * <p>Container for all response elements.</p>
98      */
WithCopyPartResult(const CopyPartResult & value)99     inline UploadPartCopyResult& WithCopyPartResult(const CopyPartResult& value) { SetCopyPartResult(value); return *this;}
100 
101     /**
102      * <p>Container for all response elements.</p>
103      */
WithCopyPartResult(CopyPartResult && value)104     inline UploadPartCopyResult& WithCopyPartResult(CopyPartResult&& value) { SetCopyPartResult(std::move(value)); return *this;}
105 
106 
107     /**
108      * <p>The server-side encryption algorithm used when storing this object in Amazon
109      * S3 (for example, AES256, aws:kms).</p>
110      */
GetServerSideEncryption()111     inline const ServerSideEncryption& GetServerSideEncryption() const{ return m_serverSideEncryption; }
112 
113     /**
114      * <p>The server-side encryption algorithm used when storing this object in Amazon
115      * S3 (for example, AES256, aws:kms).</p>
116      */
SetServerSideEncryption(const ServerSideEncryption & value)117     inline void SetServerSideEncryption(const ServerSideEncryption& value) { m_serverSideEncryption = value; }
118 
119     /**
120      * <p>The server-side encryption algorithm used when storing this object in Amazon
121      * S3 (for example, AES256, aws:kms).</p>
122      */
SetServerSideEncryption(ServerSideEncryption && value)123     inline void SetServerSideEncryption(ServerSideEncryption&& value) { m_serverSideEncryption = std::move(value); }
124 
125     /**
126      * <p>The server-side encryption algorithm used when storing this object in Amazon
127      * S3 (for example, AES256, aws:kms).</p>
128      */
WithServerSideEncryption(const ServerSideEncryption & value)129     inline UploadPartCopyResult& WithServerSideEncryption(const ServerSideEncryption& value) { SetServerSideEncryption(value); return *this;}
130 
131     /**
132      * <p>The server-side encryption algorithm used when storing this object in Amazon
133      * S3 (for example, AES256, aws:kms).</p>
134      */
WithServerSideEncryption(ServerSideEncryption && value)135     inline UploadPartCopyResult& WithServerSideEncryption(ServerSideEncryption&& value) { SetServerSideEncryption(std::move(value)); return *this;}
136 
137 
138     /**
139      * <p>If server-side encryption with a customer-provided encryption key was
140      * requested, the response will include this header confirming the encryption
141      * algorithm used.</p>
142      */
GetSSECustomerAlgorithm()143     inline const Aws::String& GetSSECustomerAlgorithm() const{ return m_sSECustomerAlgorithm; }
144 
145     /**
146      * <p>If server-side encryption with a customer-provided encryption key was
147      * requested, the response will include this header confirming the encryption
148      * algorithm used.</p>
149      */
SetSSECustomerAlgorithm(const Aws::String & value)150     inline void SetSSECustomerAlgorithm(const Aws::String& value) { m_sSECustomerAlgorithm = value; }
151 
152     /**
153      * <p>If server-side encryption with a customer-provided encryption key was
154      * requested, the response will include this header confirming the encryption
155      * algorithm used.</p>
156      */
SetSSECustomerAlgorithm(Aws::String && value)157     inline void SetSSECustomerAlgorithm(Aws::String&& value) { m_sSECustomerAlgorithm = std::move(value); }
158 
159     /**
160      * <p>If server-side encryption with a customer-provided encryption key was
161      * requested, the response will include this header confirming the encryption
162      * algorithm used.</p>
163      */
SetSSECustomerAlgorithm(const char * value)164     inline void SetSSECustomerAlgorithm(const char* value) { m_sSECustomerAlgorithm.assign(value); }
165 
166     /**
167      * <p>If server-side encryption with a customer-provided encryption key was
168      * requested, the response will include this header confirming the encryption
169      * algorithm used.</p>
170      */
WithSSECustomerAlgorithm(const Aws::String & value)171     inline UploadPartCopyResult& WithSSECustomerAlgorithm(const Aws::String& value) { SetSSECustomerAlgorithm(value); return *this;}
172 
173     /**
174      * <p>If server-side encryption with a customer-provided encryption key was
175      * requested, the response will include this header confirming the encryption
176      * algorithm used.</p>
177      */
WithSSECustomerAlgorithm(Aws::String && value)178     inline UploadPartCopyResult& WithSSECustomerAlgorithm(Aws::String&& value) { SetSSECustomerAlgorithm(std::move(value)); return *this;}
179 
180     /**
181      * <p>If server-side encryption with a customer-provided encryption key was
182      * requested, the response will include this header confirming the encryption
183      * algorithm used.</p>
184      */
WithSSECustomerAlgorithm(const char * value)185     inline UploadPartCopyResult& WithSSECustomerAlgorithm(const char* value) { SetSSECustomerAlgorithm(value); return *this;}
186 
187 
188     /**
189      * <p>If server-side encryption with a customer-provided encryption key was
190      * requested, the response will include this header to provide round-trip message
191      * integrity verification of the customer-provided encryption key.</p>
192      */
GetSSECustomerKeyMD5()193     inline const Aws::String& GetSSECustomerKeyMD5() const{ return m_sSECustomerKeyMD5; }
194 
195     /**
196      * <p>If server-side encryption with a customer-provided encryption key was
197      * requested, the response will include this header to provide round-trip message
198      * integrity verification of the customer-provided encryption key.</p>
199      */
SetSSECustomerKeyMD5(const Aws::String & value)200     inline void SetSSECustomerKeyMD5(const Aws::String& value) { m_sSECustomerKeyMD5 = value; }
201 
202     /**
203      * <p>If server-side encryption with a customer-provided encryption key was
204      * requested, the response will include this header to provide round-trip message
205      * integrity verification of the customer-provided encryption key.</p>
206      */
SetSSECustomerKeyMD5(Aws::String && value)207     inline void SetSSECustomerKeyMD5(Aws::String&& value) { m_sSECustomerKeyMD5 = std::move(value); }
208 
209     /**
210      * <p>If server-side encryption with a customer-provided encryption key was
211      * requested, the response will include this header to provide round-trip message
212      * integrity verification of the customer-provided encryption key.</p>
213      */
SetSSECustomerKeyMD5(const char * value)214     inline void SetSSECustomerKeyMD5(const char* value) { m_sSECustomerKeyMD5.assign(value); }
215 
216     /**
217      * <p>If server-side encryption with a customer-provided encryption key was
218      * requested, the response will include this header to provide round-trip message
219      * integrity verification of the customer-provided encryption key.</p>
220      */
WithSSECustomerKeyMD5(const Aws::String & value)221     inline UploadPartCopyResult& WithSSECustomerKeyMD5(const Aws::String& value) { SetSSECustomerKeyMD5(value); return *this;}
222 
223     /**
224      * <p>If server-side encryption with a customer-provided encryption key was
225      * requested, the response will include this header to provide round-trip message
226      * integrity verification of the customer-provided encryption key.</p>
227      */
WithSSECustomerKeyMD5(Aws::String && value)228     inline UploadPartCopyResult& WithSSECustomerKeyMD5(Aws::String&& value) { SetSSECustomerKeyMD5(std::move(value)); return *this;}
229 
230     /**
231      * <p>If server-side encryption with a customer-provided encryption key was
232      * requested, the response will include this header to provide round-trip message
233      * integrity verification of the customer-provided encryption key.</p>
234      */
WithSSECustomerKeyMD5(const char * value)235     inline UploadPartCopyResult& WithSSECustomerKeyMD5(const char* value) { SetSSECustomerKeyMD5(value); return *this;}
236 
237 
238     /**
239      * <p>If present, specifies the ID of the Amazon Web Services Key Management
240      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
241      * for the object.</p>
242      */
GetSSEKMSKeyId()243     inline const Aws::String& GetSSEKMSKeyId() const{ return m_sSEKMSKeyId; }
244 
245     /**
246      * <p>If present, specifies the ID of the Amazon Web Services Key Management
247      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
248      * for the object.</p>
249      */
SetSSEKMSKeyId(const Aws::String & value)250     inline void SetSSEKMSKeyId(const Aws::String& value) { m_sSEKMSKeyId = value; }
251 
252     /**
253      * <p>If present, specifies the ID of the Amazon Web Services Key Management
254      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
255      * for the object.</p>
256      */
SetSSEKMSKeyId(Aws::String && value)257     inline void SetSSEKMSKeyId(Aws::String&& value) { m_sSEKMSKeyId = std::move(value); }
258 
259     /**
260      * <p>If present, specifies the ID of the Amazon Web Services Key Management
261      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
262      * for the object.</p>
263      */
SetSSEKMSKeyId(const char * value)264     inline void SetSSEKMSKeyId(const char* value) { m_sSEKMSKeyId.assign(value); }
265 
266     /**
267      * <p>If present, specifies the ID of the Amazon Web Services Key Management
268      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
269      * for the object.</p>
270      */
WithSSEKMSKeyId(const Aws::String & value)271     inline UploadPartCopyResult& WithSSEKMSKeyId(const Aws::String& value) { SetSSEKMSKeyId(value); return *this;}
272 
273     /**
274      * <p>If present, specifies the ID of the Amazon Web Services Key Management
275      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
276      * for the object.</p>
277      */
WithSSEKMSKeyId(Aws::String && value)278     inline UploadPartCopyResult& WithSSEKMSKeyId(Aws::String&& value) { SetSSEKMSKeyId(std::move(value)); return *this;}
279 
280     /**
281      * <p>If present, specifies the ID of the Amazon Web Services Key Management
282      * Service (Amazon Web Services KMS) symmetric customer managed key that was used
283      * for the object.</p>
284      */
WithSSEKMSKeyId(const char * value)285     inline UploadPartCopyResult& WithSSEKMSKeyId(const char* value) { SetSSEKMSKeyId(value); return *this;}
286 
287 
288     /**
289      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
290      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
291      */
GetBucketKeyEnabled()292     inline bool GetBucketKeyEnabled() const{ return m_bucketKeyEnabled; }
293 
294     /**
295      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
296      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
297      */
SetBucketKeyEnabled(bool value)298     inline void SetBucketKeyEnabled(bool value) { m_bucketKeyEnabled = value; }
299 
300     /**
301      * <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side
302      * encryption with Amazon Web Services KMS (SSE-KMS).</p>
303      */
WithBucketKeyEnabled(bool value)304     inline UploadPartCopyResult& WithBucketKeyEnabled(bool value) { SetBucketKeyEnabled(value); return *this;}
305 
306 
307 
GetRequestCharged()308     inline const RequestCharged& GetRequestCharged() const{ return m_requestCharged; }
309 
310 
SetRequestCharged(const RequestCharged & value)311     inline void SetRequestCharged(const RequestCharged& value) { m_requestCharged = value; }
312 
313 
SetRequestCharged(RequestCharged && value)314     inline void SetRequestCharged(RequestCharged&& value) { m_requestCharged = std::move(value); }
315 
316 
WithRequestCharged(const RequestCharged & value)317     inline UploadPartCopyResult& WithRequestCharged(const RequestCharged& value) { SetRequestCharged(value); return *this;}
318 
319 
WithRequestCharged(RequestCharged && value)320     inline UploadPartCopyResult& WithRequestCharged(RequestCharged&& value) { SetRequestCharged(std::move(value)); return *this;}
321 
322   private:
323 
324     Aws::String m_copySourceVersionId;
325 
326     CopyPartResult m_copyPartResult;
327 
328     ServerSideEncryption m_serverSideEncryption;
329 
330     Aws::String m_sSECustomerAlgorithm;
331 
332     Aws::String m_sSECustomerKeyMD5;
333 
334     Aws::String m_sSEKMSKeyId;
335 
336     bool m_bucketKeyEnabled;
337 
338     RequestCharged m_requestCharged;
339   };
340 
341 } // namespace Model
342 } // namespace S3Crt
343 } // namespace Aws
344