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