AWS SDK for C++

AWS SDK for C++ Version 1.11.812

Loading...
Searching...
No Matches
PutObjectRequest.h
1
6#pragma once
7#include <aws/core/utils/Array.h>
8#include <aws/core/utils/DateTime.h>
9#include <aws/core/utils/memory/stl/AWSMap.h>
10#include <aws/core/utils/memory/stl/AWSString.h>
11#include <aws/s3/S3Request.h>
12#include <aws/s3/S3_EXPORTS.h>
13#include <aws/s3/model/ChecksumAlgorithm.h>
14#include <aws/s3/model/ObjectCannedACL.h>
15#include <aws/s3/model/ObjectLockLegalHoldStatus.h>
16#include <aws/s3/model/ObjectLockMode.h>
17#include <aws/s3/model/RequestPayer.h>
18#include <aws/s3/model/ServerSideEncryption.h>
19#include <aws/s3/model/StorageClass.h>
20
21#include <utility>
22
23namespace Aws {
24namespace Http {
25class URI;
26} // namespace Http
27namespace S3 {
28namespace Model {
29
33 public:
34 AWS_S3_API PutObjectRequest() = default;
35
36 // Service request name is the Operation name which will send this request out,
37 // each operation should has unique request name, so that we can get operation's name from this request.
38 // Note: this is not true for response, multiple operations may have the same response name,
39 // so we can not get operation's name from response.
40 inline virtual const char* GetServiceRequestName() const override { return "PutObject"; }
41
42 AWS_S3_API void AddQueryStringParameters(Aws::Http::URI& uri) const override;
43
45
46 AWS_S3_API bool HasEmbeddedError(IOStream& body, const Http::HeaderValueCollection& header) const override;
47 AWS_S3_API Aws::String GetChecksumAlgorithmName() const override;
51 AWS_S3_API EndpointParameters GetEndpointContextParams() const override;
52
54
81 inline ObjectCannedACL GetACL() const { return m_aCL; }
82 inline bool ACLHasBeenSet() const { return m_aCLHasBeenSet; }
83 inline void SetACL(ObjectCannedACL value) {
84 m_aCLHasBeenSet = true;
85 m_aCL = value;
86 }
88 SetACL(value);
89 return *this;
90 }
92
94
129 inline const Aws::String& GetBucket() const { return m_bucket; }
130 inline bool BucketHasBeenSet() const { return m_bucketHasBeenSet; }
131 template <typename BucketT = Aws::String>
132 void SetBucket(BucketT&& value) {
133 m_bucketHasBeenSet = true;
134 m_bucket = std::forward<BucketT>(value);
135 }
136 template <typename BucketT = Aws::String>
137 PutObjectRequest& WithBucket(BucketT&& value) {
138 SetBucket(std::forward<BucketT>(value));
139 return *this;
140 }
142
144
149 inline const Aws::String& GetCacheControl() const { return m_cacheControl; }
150 inline bool CacheControlHasBeenSet() const { return m_cacheControlHasBeenSet; }
151 template <typename CacheControlT = Aws::String>
152 void SetCacheControl(CacheControlT&& value) {
153 m_cacheControlHasBeenSet = true;
154 m_cacheControl = std::forward<CacheControlT>(value);
155 }
156 template <typename CacheControlT = Aws::String>
157 PutObjectRequest& WithCacheControl(CacheControlT&& value) {
158 SetCacheControl(std::forward<CacheControlT>(value));
159 return *this;
160 }
162
164
169 inline const Aws::String& GetContentDisposition() const { return m_contentDisposition; }
170 inline bool ContentDispositionHasBeenSet() const { return m_contentDispositionHasBeenSet; }
171 template <typename ContentDispositionT = Aws::String>
172 void SetContentDisposition(ContentDispositionT&& value) {
173 m_contentDispositionHasBeenSet = true;
174 m_contentDisposition = std::forward<ContentDispositionT>(value);
175 }
176 template <typename ContentDispositionT = Aws::String>
177 PutObjectRequest& WithContentDisposition(ContentDispositionT&& value) {
178 SetContentDisposition(std::forward<ContentDispositionT>(value));
179 return *this;
180 }
182
184
190 inline const Aws::String& GetContentEncoding() const { return m_contentEncoding; }
191 inline bool ContentEncodingHasBeenSet() const { return m_contentEncodingHasBeenSet; }
192 template <typename ContentEncodingT = Aws::String>
193 void SetContentEncoding(ContentEncodingT&& value) {
194 m_contentEncodingHasBeenSet = true;
195 m_contentEncoding = std::forward<ContentEncodingT>(value);
196 }
197 template <typename ContentEncodingT = Aws::String>
198 PutObjectRequest& WithContentEncoding(ContentEncodingT&& value) {
199 SetContentEncoding(std::forward<ContentEncodingT>(value));
200 return *this;
201 }
203
205
208 inline const Aws::String& GetContentLanguage() const { return m_contentLanguage; }
209 inline bool ContentLanguageHasBeenSet() const { return m_contentLanguageHasBeenSet; }
210 template <typename ContentLanguageT = Aws::String>
211 void SetContentLanguage(ContentLanguageT&& value) {
212 m_contentLanguageHasBeenSet = true;
213 m_contentLanguage = std::forward<ContentLanguageT>(value);
214 }
215 template <typename ContentLanguageT = Aws::String>
216 PutObjectRequest& WithContentLanguage(ContentLanguageT&& value) {
217 SetContentLanguage(std::forward<ContentLanguageT>(value));
218 return *this;
219 }
221
223
228 inline long long GetContentLength() const { return m_contentLength; }
229 inline bool ContentLengthHasBeenSet() const { return m_contentLengthHasBeenSet; }
230 inline void SetContentLength(long long value) {
231 m_contentLengthHasBeenSet = true;
232 m_contentLength = value;
233 }
234 inline PutObjectRequest& WithContentLength(long long value) {
235 SetContentLength(value);
236 return *this;
237 }
239
241
258 inline const Aws::String& GetContentMD5() const { return m_contentMD5; }
259 inline bool ContentMD5HasBeenSet() const { return m_contentMD5HasBeenSet; }
260 template <typename ContentMD5T = Aws::String>
261 void SetContentMD5(ContentMD5T&& value) {
262 m_contentMD5HasBeenSet = true;
263 m_contentMD5 = std::forward<ContentMD5T>(value);
264 }
265 template <typename ContentMD5T = Aws::String>
266 PutObjectRequest& WithContentMD5(ContentMD5T&& value) {
267 SetContentMD5(std::forward<ContentMD5T>(value));
268 return *this;
269 }
271
273
303 inline ChecksumAlgorithm GetChecksumAlgorithm() const { return m_checksumAlgorithm; }
304 inline bool ChecksumAlgorithmHasBeenSet() const { return m_checksumAlgorithmHasBeenSet; }
306 m_checksumAlgorithmHasBeenSet = true;
307 m_checksumAlgorithm = value;
308 }
311 return *this;
312 }
314
316
324 inline const Aws::String& GetChecksumCRC32() const { return m_checksumCRC32; }
325 inline bool ChecksumCRC32HasBeenSet() const { return m_checksumCRC32HasBeenSet; }
326 template <typename ChecksumCRC32T = Aws::String>
327 void SetChecksumCRC32(ChecksumCRC32T&& value) {
328 m_checksumCRC32HasBeenSet = true;
329 m_checksumCRC32 = std::forward<ChecksumCRC32T>(value);
331 }
332 inline void SetChecksumCRC32(const char* value) {
333 m_checksumCRC32HasBeenSet = true;
334 m_checksumCRC32.assign(value);
336 }
337 template <typename ChecksumCRC32T = Aws::String>
338 PutObjectRequest& WithChecksumCRC32(ChecksumCRC32T&& value) {
339 SetChecksumCRC32(std::forward<ChecksumCRC32T>(value));
340 return *this;
341 }
343
345
353 inline const Aws::String& GetChecksumCRC32C() const { return m_checksumCRC32C; }
354 inline bool ChecksumCRC32CHasBeenSet() const { return m_checksumCRC32CHasBeenSet; }
355 template <typename ChecksumCRC32CT = Aws::String>
356 void SetChecksumCRC32C(ChecksumCRC32CT&& value) {
357 m_checksumCRC32CHasBeenSet = true;
358 m_checksumCRC32C = std::forward<ChecksumCRC32CT>(value);
360 }
361 inline void SetChecksumCRC32C(const char* value) {
362 m_checksumCRC32CHasBeenSet = true;
363 m_checksumCRC32C.assign(value);
365 }
366 template <typename ChecksumCRC32CT = Aws::String>
367 PutObjectRequest& WithChecksumCRC32C(ChecksumCRC32CT&& value) {
368 SetChecksumCRC32C(std::forward<ChecksumCRC32CT>(value));
369 return *this;
370 }
372
374
383 inline const Aws::String& GetChecksumCRC64NVME() const { return m_checksumCRC64NVME; }
384 inline bool ChecksumCRC64NVMEHasBeenSet() const { return m_checksumCRC64NVMEHasBeenSet; }
385 template <typename ChecksumCRC64NVMET = Aws::String>
386 void SetChecksumCRC64NVME(ChecksumCRC64NVMET&& value) {
387 m_checksumCRC64NVMEHasBeenSet = true;
388 m_checksumCRC64NVME = std::forward<ChecksumCRC64NVMET>(value);
389 }
390 template <typename ChecksumCRC64NVMET = Aws::String>
391 PutObjectRequest& WithChecksumCRC64NVME(ChecksumCRC64NVMET&& value) {
392 SetChecksumCRC64NVME(std::forward<ChecksumCRC64NVMET>(value));
393 return *this;
394 }
396
398
406 inline const Aws::String& GetChecksumSHA1() const { return m_checksumSHA1; }
407 inline bool ChecksumSHA1HasBeenSet() const { return m_checksumSHA1HasBeenSet; }
408 template <typename ChecksumSHA1T = Aws::String>
409 void SetChecksumSHA1(ChecksumSHA1T&& value) {
410 m_checksumSHA1HasBeenSet = true;
411 m_checksumSHA1 = std::forward<ChecksumSHA1T>(value);
413 }
414 inline void SetChecksumSHA1(const char* value) {
415 m_checksumSHA1HasBeenSet = true;
416 m_checksumSHA1.assign(value);
418 }
419 template <typename ChecksumSHA1T = Aws::String>
420 PutObjectRequest& WithChecksumSHA1(ChecksumSHA1T&& value) {
421 SetChecksumSHA1(std::forward<ChecksumSHA1T>(value));
422 return *this;
423 }
425
427
435 inline const Aws::String& GetChecksumSHA256() const { return m_checksumSHA256; }
436 inline bool ChecksumSHA256HasBeenSet() const { return m_checksumSHA256HasBeenSet; }
437 template <typename ChecksumSHA256T = Aws::String>
438 void SetChecksumSHA256(ChecksumSHA256T&& value) {
439 m_checksumSHA256HasBeenSet = true;
440 m_checksumSHA256 = std::forward<ChecksumSHA256T>(value);
442 }
443 inline void SetChecksumSHA256(const char* value) {
444 m_checksumSHA256HasBeenSet = true;
445 m_checksumSHA256.assign(value);
447 }
448 template <typename ChecksumSHA256T = Aws::String>
449 PutObjectRequest& WithChecksumSHA256(ChecksumSHA256T&& value) {
450 SetChecksumSHA256(std::forward<ChecksumSHA256T>(value));
451 return *this;
452 }
454
456
464 inline const Aws::String& GetChecksumSHA512() const { return m_checksumSHA512; }
465 inline bool ChecksumSHA512HasBeenSet() const { return m_checksumSHA512HasBeenSet; }
466 template <typename ChecksumSHA512T = Aws::String>
467 void SetChecksumSHA512(ChecksumSHA512T&& value) {
468 m_checksumSHA512HasBeenSet = true;
469 m_checksumSHA512 = std::forward<ChecksumSHA512T>(value);
471 }
472 inline void SetChecksumSHA512(const char* value) {
473 m_checksumSHA512HasBeenSet = true;
474 m_checksumSHA512.assign(value);
476 }
477 template <typename ChecksumSHA512T = Aws::String>
478 PutObjectRequest& WithChecksumSHA512(ChecksumSHA512T&& value) {
479 SetChecksumSHA512(std::forward<ChecksumSHA512T>(value));
480 return *this;
481 }
483
485
493 inline const Aws::String& GetChecksumMD5() const { return m_checksumMD5; }
494 inline bool ChecksumMD5HasBeenSet() const { return m_checksumMD5HasBeenSet; }
495 template <typename ChecksumMD5T = Aws::String>
496 void SetChecksumMD5(ChecksumMD5T&& value) {
497 m_checksumMD5HasBeenSet = true;
498 m_checksumMD5 = std::forward<ChecksumMD5T>(value);
500 }
501 inline void SetChecksumMD5(const char* value) {
502 m_checksumMD5HasBeenSet = true;
503 m_checksumMD5.assign(value);
505 }
506 template <typename ChecksumMD5T = Aws::String>
507 PutObjectRequest& WithChecksumMD5(ChecksumMD5T&& value) {
508 SetChecksumMD5(std::forward<ChecksumMD5T>(value));
509 return *this;
510 }
512
514
522 inline const Aws::String& GetChecksumXXHASH64() const { return m_checksumXXHASH64; }
523 inline bool ChecksumXXHASH64HasBeenSet() const { return m_checksumXXHASH64HasBeenSet; }
524 template <typename ChecksumXXHASH64T = Aws::String>
525 void SetChecksumXXHASH64(ChecksumXXHASH64T&& value) {
526 m_checksumXXHASH64HasBeenSet = true;
527 m_checksumXXHASH64 = std::forward<ChecksumXXHASH64T>(value);
529 }
530 inline void SetChecksumXXHASH64(const char* value) {
531 m_checksumXXHASH64HasBeenSet = true;
532 m_checksumXXHASH64.assign(value);
534 }
535 template <typename ChecksumXXHASH64T = Aws::String>
536 PutObjectRequest& WithChecksumXXHASH64(ChecksumXXHASH64T&& value) {
537 SetChecksumXXHASH64(std::forward<ChecksumXXHASH64T>(value));
538 return *this;
539 }
541
543
551 inline const Aws::String& GetChecksumXXHASH3() const { return m_checksumXXHASH3; }
552 inline bool ChecksumXXHASH3HasBeenSet() const { return m_checksumXXHASH3HasBeenSet; }
553 template <typename ChecksumXXHASH3T = Aws::String>
554 void SetChecksumXXHASH3(ChecksumXXHASH3T&& value) {
555 m_checksumXXHASH3HasBeenSet = true;
556 m_checksumXXHASH3 = std::forward<ChecksumXXHASH3T>(value);
558 }
559 inline void SetChecksumXXHASH3(const char* value) {
560 m_checksumXXHASH3HasBeenSet = true;
561 m_checksumXXHASH3.assign(value);
563 }
564 template <typename ChecksumXXHASH3T = Aws::String>
565 PutObjectRequest& WithChecksumXXHASH3(ChecksumXXHASH3T&& value) {
566 SetChecksumXXHASH3(std::forward<ChecksumXXHASH3T>(value));
567 return *this;
568 }
570
572
580 inline const Aws::String& GetChecksumXXHASH128() const { return m_checksumXXHASH128; }
581 inline bool ChecksumXXHASH128HasBeenSet() const { return m_checksumXXHASH128HasBeenSet; }
582 template <typename ChecksumXXHASH128T = Aws::String>
583 void SetChecksumXXHASH128(ChecksumXXHASH128T&& value) {
584 m_checksumXXHASH128HasBeenSet = true;
585 m_checksumXXHASH128 = std::forward<ChecksumXXHASH128T>(value);
587 }
588 inline void SetChecksumXXHASH128(const char* value) {
589 m_checksumXXHASH128HasBeenSet = true;
590 m_checksumXXHASH128.assign(value);
592 }
593 template <typename ChecksumXXHASH128T = Aws::String>
594 PutObjectRequest& WithChecksumXXHASH128(ChecksumXXHASH128T&& value) {
595 SetChecksumXXHASH128(std::forward<ChecksumXXHASH128T>(value));
596 return *this;
597 }
599
601
606 inline const Aws::Utils::DateTime& GetExpires() const { return m_expires; }
607 inline bool ExpiresHasBeenSet() const { return m_expiresHasBeenSet; }
608 template <typename ExpiresT = Aws::Utils::DateTime>
609 void SetExpires(ExpiresT&& value) {
610 m_expiresHasBeenSet = true;
611 m_expires = std::forward<ExpiresT>(value);
612 }
613 template <typename ExpiresT = Aws::Utils::DateTime>
614 PutObjectRequest& WithExpires(ExpiresT&& value) {
615 SetExpires(std::forward<ExpiresT>(value));
616 return *this;
617 }
619
621
633 inline const Aws::String& GetIfMatch() const { return m_ifMatch; }
634 inline bool IfMatchHasBeenSet() const { return m_ifMatchHasBeenSet; }
635 template <typename IfMatchT = Aws::String>
636 void SetIfMatch(IfMatchT&& value) {
637 m_ifMatchHasBeenSet = true;
638 m_ifMatch = std::forward<IfMatchT>(value);
639 }
640 template <typename IfMatchT = Aws::String>
641 PutObjectRequest& WithIfMatch(IfMatchT&& value) {
642 SetIfMatch(std::forward<IfMatchT>(value));
643 return *this;
644 }
646
648
659 inline const Aws::String& GetIfNoneMatch() const { return m_ifNoneMatch; }
660 inline bool IfNoneMatchHasBeenSet() const { return m_ifNoneMatchHasBeenSet; }
661 template <typename IfNoneMatchT = Aws::String>
662 void SetIfNoneMatch(IfNoneMatchT&& value) {
663 m_ifNoneMatchHasBeenSet = true;
664 m_ifNoneMatch = std::forward<IfNoneMatchT>(value);
665 }
666 template <typename IfNoneMatchT = Aws::String>
667 PutObjectRequest& WithIfNoneMatch(IfNoneMatchT&& value) {
668 SetIfNoneMatch(std::forward<IfNoneMatchT>(value));
669 return *this;
670 }
672
674
680 inline const Aws::String& GetGrantFullControl() const { return m_grantFullControl; }
681 inline bool GrantFullControlHasBeenSet() const { return m_grantFullControlHasBeenSet; }
682 template <typename GrantFullControlT = Aws::String>
683 void SetGrantFullControl(GrantFullControlT&& value) {
684 m_grantFullControlHasBeenSet = true;
685 m_grantFullControl = std::forward<GrantFullControlT>(value);
686 }
687 template <typename GrantFullControlT = Aws::String>
688 PutObjectRequest& WithGrantFullControl(GrantFullControlT&& value) {
689 SetGrantFullControl(std::forward<GrantFullControlT>(value));
690 return *this;
691 }
693
695
701 inline const Aws::String& GetGrantRead() const { return m_grantRead; }
702 inline bool GrantReadHasBeenSet() const { return m_grantReadHasBeenSet; }
703 template <typename GrantReadT = Aws::String>
704 void SetGrantRead(GrantReadT&& value) {
705 m_grantReadHasBeenSet = true;
706 m_grantRead = std::forward<GrantReadT>(value);
707 }
708 template <typename GrantReadT = Aws::String>
709 PutObjectRequest& WithGrantRead(GrantReadT&& value) {
710 SetGrantRead(std::forward<GrantReadT>(value));
711 return *this;
712 }
714
716
722 inline const Aws::String& GetGrantReadACP() const { return m_grantReadACP; }
723 inline bool GrantReadACPHasBeenSet() const { return m_grantReadACPHasBeenSet; }
724 template <typename GrantReadACPT = Aws::String>
725 void SetGrantReadACP(GrantReadACPT&& value) {
726 m_grantReadACPHasBeenSet = true;
727 m_grantReadACP = std::forward<GrantReadACPT>(value);
728 }
729 template <typename GrantReadACPT = Aws::String>
730 PutObjectRequest& WithGrantReadACP(GrantReadACPT&& value) {
731 SetGrantReadACP(std::forward<GrantReadACPT>(value));
732 return *this;
733 }
735
737
743 inline const Aws::String& GetGrantWriteACP() const { return m_grantWriteACP; }
744 inline bool GrantWriteACPHasBeenSet() const { return m_grantWriteACPHasBeenSet; }
745 template <typename GrantWriteACPT = Aws::String>
746 void SetGrantWriteACP(GrantWriteACPT&& value) {
747 m_grantWriteACPHasBeenSet = true;
748 m_grantWriteACP = std::forward<GrantWriteACPT>(value);
749 }
750 template <typename GrantWriteACPT = Aws::String>
751 PutObjectRequest& WithGrantWriteACP(GrantWriteACPT&& value) {
752 SetGrantWriteACP(std::forward<GrantWriteACPT>(value));
753 return *this;
754 }
756
758
761 inline const Aws::String& GetKey() const { return m_key; }
762 inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; }
763 template <typename KeyT = Aws::String>
764 void SetKey(KeyT&& value) {
765 m_keyHasBeenSet = true;
766 m_key = std::forward<KeyT>(value);
767 }
768 template <typename KeyT = Aws::String>
769 PutObjectRequest& WithKey(KeyT&& value) {
770 SetKey(std::forward<KeyT>(value));
771 return *this;
772 }
774
776
783 inline long long GetWriteOffsetBytes() const { return m_writeOffsetBytes; }
784 inline bool WriteOffsetBytesHasBeenSet() const { return m_writeOffsetBytesHasBeenSet; }
785 inline void SetWriteOffsetBytes(long long value) {
786 m_writeOffsetBytesHasBeenSet = true;
787 m_writeOffsetBytes = value;
788 }
789 inline PutObjectRequest& WithWriteOffsetBytes(long long value) {
790 SetWriteOffsetBytes(value);
791 return *this;
792 }
794
796
799 inline const Aws::Map<Aws::String, Aws::String>& GetMetadata() const { return m_metadata; }
800 inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; }
801 template <typename MetadataT = Aws::Map<Aws::String, Aws::String>>
802 void SetMetadata(MetadataT&& value) {
803 m_metadataHasBeenSet = true;
804 m_metadata = std::forward<MetadataT>(value);
805 }
806 template <typename MetadataT = Aws::Map<Aws::String, Aws::String>>
807 PutObjectRequest& WithMetadata(MetadataT&& value) {
808 SetMetadata(std::forward<MetadataT>(value));
809 return *this;
810 }
811 template <typename MetadataKeyT = Aws::String, typename MetadataValueT = Aws::String>
812 PutObjectRequest& AddMetadata(MetadataKeyT&& key, MetadataValueT&& value) {
813 m_metadataHasBeenSet = true;
814 m_metadata.emplace(std::forward<MetadataKeyT>(key), std::forward<MetadataValueT>(value));
815 return *this;
816 }
818
820
882 inline ServerSideEncryption GetServerSideEncryption() const { return m_serverSideEncryption; }
883 inline bool ServerSideEncryptionHasBeenSet() const { return m_serverSideEncryptionHasBeenSet; }
885 m_serverSideEncryptionHasBeenSet = true;
886 m_serverSideEncryption = value;
887 }
890 return *this;
891 }
893
895
908 inline StorageClass GetStorageClass() const { return m_storageClass; }
909 inline bool StorageClassHasBeenSet() const { return m_storageClassHasBeenSet; }
910 inline void SetStorageClass(StorageClass value) {
911 m_storageClassHasBeenSet = true;
912 m_storageClass = value;
913 }
915 SetStorageClass(value);
916 return *this;
917 }
919
921
940 inline const Aws::String& GetWebsiteRedirectLocation() const { return m_websiteRedirectLocation; }
941 inline bool WebsiteRedirectLocationHasBeenSet() const { return m_websiteRedirectLocationHasBeenSet; }
942 template <typename WebsiteRedirectLocationT = Aws::String>
943 void SetWebsiteRedirectLocation(WebsiteRedirectLocationT&& value) {
944 m_websiteRedirectLocationHasBeenSet = true;
945 m_websiteRedirectLocation = std::forward<WebsiteRedirectLocationT>(value);
946 }
947 template <typename WebsiteRedirectLocationT = Aws::String>
948 PutObjectRequest& WithWebsiteRedirectLocation(WebsiteRedirectLocationT&& value) {
949 SetWebsiteRedirectLocation(std::forward<WebsiteRedirectLocationT>(value));
950 return *this;
951 }
953
955
960 inline const Aws::String& GetSSECustomerAlgorithm() const { return m_sSECustomerAlgorithm; }
961 inline bool SSECustomerAlgorithmHasBeenSet() const { return m_sSECustomerAlgorithmHasBeenSet; }
962 template <typename SSECustomerAlgorithmT = Aws::String>
963 void SetSSECustomerAlgorithm(SSECustomerAlgorithmT&& value) {
964 m_sSECustomerAlgorithmHasBeenSet = true;
965 m_sSECustomerAlgorithm = std::forward<SSECustomerAlgorithmT>(value);
966 }
967 template <typename SSECustomerAlgorithmT = Aws::String>
968 PutObjectRequest& WithSSECustomerAlgorithm(SSECustomerAlgorithmT&& value) {
969 SetSSECustomerAlgorithm(std::forward<SSECustomerAlgorithmT>(value));
970 return *this;
971 }
973
975
983 inline const Aws::String& GetSSECustomerKey() const { return m_sSECustomerKey; }
984 inline bool SSECustomerKeyHasBeenSet() const { return m_sSECustomerKeyHasBeenSet; }
985 template <typename SSECustomerKeyT = Aws::String>
986 void SetSSECustomerKey(SSECustomerKeyT&& value) {
987 m_sSECustomerKeyHasBeenSet = true;
988 m_sSECustomerKey = std::forward<SSECustomerKeyT>(value);
989 }
990 template <typename SSECustomerKeyT = Aws::String>
991 PutObjectRequest& WithSSECustomerKey(SSECustomerKeyT&& value) {
992 SetSSECustomerKey(std::forward<SSECustomerKeyT>(value));
993 return *this;
994 }
996
998
1004 inline const Aws::String& GetSSECustomerKeyMD5() const { return m_sSECustomerKeyMD5; }
1005 inline bool SSECustomerKeyMD5HasBeenSet() const { return m_sSECustomerKeyMD5HasBeenSet; }
1006 template <typename SSECustomerKeyMD5T = Aws::String>
1007 void SetSSECustomerKeyMD5(SSECustomerKeyMD5T&& value) {
1008 m_sSECustomerKeyMD5HasBeenSet = true;
1009 m_sSECustomerKeyMD5 = std::forward<SSECustomerKeyMD5T>(value);
1010 }
1011 template <typename SSECustomerKeyMD5T = Aws::String>
1012 PutObjectRequest& WithSSECustomerKeyMD5(SSECustomerKeyMD5T&& value) {
1013 SetSSECustomerKeyMD5(std::forward<SSECustomerKeyMD5T>(value));
1014 return *this;
1015 }
1017
1019
1044 inline const Aws::String& GetSSEKMSKeyId() const { return m_sSEKMSKeyId; }
1045 inline bool SSEKMSKeyIdHasBeenSet() const { return m_sSEKMSKeyIdHasBeenSet; }
1046 template <typename SSEKMSKeyIdT = Aws::String>
1047 void SetSSEKMSKeyId(SSEKMSKeyIdT&& value) {
1048 m_sSEKMSKeyIdHasBeenSet = true;
1049 m_sSEKMSKeyId = std::forward<SSEKMSKeyIdT>(value);
1050 }
1051 template <typename SSEKMSKeyIdT = Aws::String>
1052 PutObjectRequest& WithSSEKMSKeyId(SSEKMSKeyIdT&& value) {
1053 SetSSEKMSKeyId(std::forward<SSEKMSKeyIdT>(value));
1054 return *this;
1055 }
1057
1059
1075 inline const Aws::String& GetSSEKMSEncryptionContext() const { return m_sSEKMSEncryptionContext; }
1076 inline bool SSEKMSEncryptionContextHasBeenSet() const { return m_sSEKMSEncryptionContextHasBeenSet; }
1077 template <typename SSEKMSEncryptionContextT = Aws::String>
1078 void SetSSEKMSEncryptionContext(SSEKMSEncryptionContextT&& value) {
1079 m_sSEKMSEncryptionContextHasBeenSet = true;
1080 m_sSEKMSEncryptionContext = std::forward<SSEKMSEncryptionContextT>(value);
1081 }
1082 template <typename SSEKMSEncryptionContextT = Aws::String>
1083 PutObjectRequest& WithSSEKMSEncryptionContext(SSEKMSEncryptionContextT&& value) {
1084 SetSSEKMSEncryptionContext(std::forward<SSEKMSEncryptionContextT>(value));
1085 return *this;
1086 }
1088
1090
1112 inline bool GetBucketKeyEnabled() const { return m_bucketKeyEnabled; }
1113 inline bool BucketKeyEnabledHasBeenSet() const { return m_bucketKeyEnabledHasBeenSet; }
1114 inline void SetBucketKeyEnabled(bool value) {
1115 m_bucketKeyEnabledHasBeenSet = true;
1116 m_bucketKeyEnabled = value;
1117 }
1119 SetBucketKeyEnabled(value);
1120 return *this;
1121 }
1123
1125
1126 inline RequestPayer GetRequestPayer() const { return m_requestPayer; }
1127 inline bool RequestPayerHasBeenSet() const { return m_requestPayerHasBeenSet; }
1128 inline void SetRequestPayer(RequestPayer value) {
1129 m_requestPayerHasBeenSet = true;
1130 m_requestPayer = value;
1131 }
1133 SetRequestPayer(value);
1134 return *this;
1135 }
1137
1139
1144 inline const Aws::String& GetTagging() const { return m_tagging; }
1145 inline bool TaggingHasBeenSet() const { return m_taggingHasBeenSet; }
1146 template <typename TaggingT = Aws::String>
1147 void SetTagging(TaggingT&& value) {
1148 m_taggingHasBeenSet = true;
1149 m_tagging = std::forward<TaggingT>(value);
1150 }
1151 template <typename TaggingT = Aws::String>
1152 PutObjectRequest& WithTagging(TaggingT&& value) {
1153 SetTagging(std::forward<TaggingT>(value));
1154 return *this;
1155 }
1157
1159
1163 inline ObjectLockMode GetObjectLockMode() const { return m_objectLockMode; }
1164 inline bool ObjectLockModeHasBeenSet() const { return m_objectLockModeHasBeenSet; }
1166 m_objectLockModeHasBeenSet = true;
1167 m_objectLockMode = value;
1168 }
1170 SetObjectLockMode(value);
1171 return *this;
1172 }
1174
1176
1181 inline const Aws::Utils::DateTime& GetObjectLockRetainUntilDate() const { return m_objectLockRetainUntilDate; }
1182 inline bool ObjectLockRetainUntilDateHasBeenSet() const { return m_objectLockRetainUntilDateHasBeenSet; }
1183 template <typename ObjectLockRetainUntilDateT = Aws::Utils::DateTime>
1184 void SetObjectLockRetainUntilDate(ObjectLockRetainUntilDateT&& value) {
1185 m_objectLockRetainUntilDateHasBeenSet = true;
1186 m_objectLockRetainUntilDate = std::forward<ObjectLockRetainUntilDateT>(value);
1187 }
1188 template <typename ObjectLockRetainUntilDateT = Aws::Utils::DateTime>
1189 PutObjectRequest& WithObjectLockRetainUntilDate(ObjectLockRetainUntilDateT&& value) {
1190 SetObjectLockRetainUntilDate(std::forward<ObjectLockRetainUntilDateT>(value));
1191 return *this;
1192 }
1194
1196
1203 inline ObjectLockLegalHoldStatus GetObjectLockLegalHoldStatus() const { return m_objectLockLegalHoldStatus; }
1204 inline bool ObjectLockLegalHoldStatusHasBeenSet() const { return m_objectLockLegalHoldStatusHasBeenSet; }
1206 m_objectLockLegalHoldStatusHasBeenSet = true;
1207 m_objectLockLegalHoldStatus = value;
1208 }
1211 return *this;
1212 }
1214
1216
1221 inline const Aws::String& GetExpectedBucketOwner() const { return m_expectedBucketOwner; }
1222 inline bool ExpectedBucketOwnerHasBeenSet() const { return m_expectedBucketOwnerHasBeenSet; }
1223 template <typename ExpectedBucketOwnerT = Aws::String>
1224 void SetExpectedBucketOwner(ExpectedBucketOwnerT&& value) {
1225 m_expectedBucketOwnerHasBeenSet = true;
1226 m_expectedBucketOwner = std::forward<ExpectedBucketOwnerT>(value);
1227 }
1228 template <typename ExpectedBucketOwnerT = Aws::String>
1229 PutObjectRequest& WithExpectedBucketOwner(ExpectedBucketOwnerT&& value) {
1230 SetExpectedBucketOwner(std::forward<ExpectedBucketOwnerT>(value));
1231 return *this;
1232 }
1234
1236
1237 inline const Aws::Map<Aws::String, Aws::String>& GetCustomizedAccessLogTag() const { return m_customizedAccessLogTag; }
1238 inline bool CustomizedAccessLogTagHasBeenSet() const { return m_customizedAccessLogTagHasBeenSet; }
1239 template <typename CustomizedAccessLogTagT = Aws::Map<Aws::String, Aws::String>>
1240 void SetCustomizedAccessLogTag(CustomizedAccessLogTagT&& value) {
1241 m_customizedAccessLogTagHasBeenSet = true;
1242 m_customizedAccessLogTag = std::forward<CustomizedAccessLogTagT>(value);
1243 }
1244 template <typename CustomizedAccessLogTagT = Aws::Map<Aws::String, Aws::String>>
1245 PutObjectRequest& WithCustomizedAccessLogTag(CustomizedAccessLogTagT&& value) {
1246 SetCustomizedAccessLogTag(std::forward<CustomizedAccessLogTagT>(value));
1247 return *this;
1248 }
1249 template <typename CustomizedAccessLogTagKeyT = Aws::String, typename CustomizedAccessLogTagValueT = Aws::String>
1250 PutObjectRequest& AddCustomizedAccessLogTag(CustomizedAccessLogTagKeyT&& key, CustomizedAccessLogTagValueT&& value) {
1251 m_customizedAccessLogTagHasBeenSet = true;
1252 m_customizedAccessLogTag.emplace(std::forward<CustomizedAccessLogTagKeyT>(key), std::forward<CustomizedAccessLogTagValueT>(value));
1253 return *this;
1254 }
1256 private:
1258
1259 Aws::String m_bucket;
1260
1261 Aws::String m_cacheControl;
1262
1263 Aws::String m_contentDisposition;
1264
1265 Aws::String m_contentEncoding;
1266
1267 Aws::String m_contentLanguage;
1268
1269 long long m_contentLength{0};
1270
1271 Aws::String m_contentMD5;
1272
1273 ChecksumAlgorithm m_checksumAlgorithm{ChecksumAlgorithm::NOT_SET};
1274
1275 Aws::String m_checksumCRC32;
1276
1277 Aws::String m_checksumCRC32C;
1278
1279 Aws::String m_checksumCRC64NVME;
1280
1281 Aws::String m_checksumSHA1;
1282
1283 Aws::String m_checksumSHA256;
1284
1285 Aws::String m_checksumSHA512;
1286
1287 Aws::String m_checksumMD5;
1288
1289 Aws::String m_checksumXXHASH64;
1290
1291 Aws::String m_checksumXXHASH3;
1292
1293 Aws::String m_checksumXXHASH128;
1294
1295 Aws::Utils::DateTime m_expires{};
1296
1297 Aws::String m_ifMatch;
1298
1299 Aws::String m_ifNoneMatch;
1300
1301 Aws::String m_grantFullControl;
1302
1303 Aws::String m_grantRead;
1304
1305 Aws::String m_grantReadACP;
1306
1307 Aws::String m_grantWriteACP;
1308
1309 Aws::String m_key;
1310
1311 long long m_writeOffsetBytes{0};
1312
1314
1316
1317 StorageClass m_storageClass{StorageClass::NOT_SET};
1318
1319 Aws::String m_websiteRedirectLocation;
1320
1321 Aws::String m_sSECustomerAlgorithm;
1322
1323 Aws::String m_sSECustomerKey;
1324
1325 Aws::String m_sSECustomerKeyMD5;
1326
1327 Aws::String m_sSEKMSKeyId;
1328
1329 Aws::String m_sSEKMSEncryptionContext;
1330
1331 bool m_bucketKeyEnabled{false};
1332
1333 RequestPayer m_requestPayer{RequestPayer::NOT_SET};
1334
1335 Aws::String m_tagging;
1336
1337 ObjectLockMode m_objectLockMode{ObjectLockMode::NOT_SET};
1338
1339 Aws::Utils::DateTime m_objectLockRetainUntilDate{};
1340
1342
1343 Aws::String m_expectedBucketOwner;
1344
1345 Aws::Map<Aws::String, Aws::String> m_customizedAccessLogTag;
1346 bool m_aCLHasBeenSet = false;
1347 bool m_bucketHasBeenSet = false;
1348 bool m_cacheControlHasBeenSet = false;
1349 bool m_contentDispositionHasBeenSet = false;
1350 bool m_contentEncodingHasBeenSet = false;
1351 bool m_contentLanguageHasBeenSet = false;
1352 bool m_contentLengthHasBeenSet = false;
1353 bool m_contentMD5HasBeenSet = false;
1354 bool m_checksumAlgorithmHasBeenSet = false;
1355 bool m_checksumCRC32HasBeenSet = false;
1356 bool m_checksumCRC32CHasBeenSet = false;
1357 bool m_checksumCRC64NVMEHasBeenSet = false;
1358 bool m_checksumSHA1HasBeenSet = false;
1359 bool m_checksumSHA256HasBeenSet = false;
1360 bool m_checksumSHA512HasBeenSet = false;
1361 bool m_checksumMD5HasBeenSet = false;
1362 bool m_checksumXXHASH64HasBeenSet = false;
1363 bool m_checksumXXHASH3HasBeenSet = false;
1364 bool m_checksumXXHASH128HasBeenSet = false;
1365 bool m_expiresHasBeenSet = false;
1366 bool m_ifMatchHasBeenSet = false;
1367 bool m_ifNoneMatchHasBeenSet = false;
1368 bool m_grantFullControlHasBeenSet = false;
1369 bool m_grantReadHasBeenSet = false;
1370 bool m_grantReadACPHasBeenSet = false;
1371 bool m_grantWriteACPHasBeenSet = false;
1372 bool m_keyHasBeenSet = false;
1373 bool m_writeOffsetBytesHasBeenSet = false;
1374 bool m_metadataHasBeenSet = false;
1375 bool m_serverSideEncryptionHasBeenSet = false;
1376 bool m_storageClassHasBeenSet = false;
1377 bool m_websiteRedirectLocationHasBeenSet = false;
1378 bool m_sSECustomerAlgorithmHasBeenSet = false;
1379 bool m_sSECustomerKeyHasBeenSet = false;
1380 bool m_sSECustomerKeyMD5HasBeenSet = false;
1381 bool m_sSEKMSKeyIdHasBeenSet = false;
1382 bool m_sSEKMSEncryptionContextHasBeenSet = false;
1383 bool m_bucketKeyEnabledHasBeenSet = false;
1384 bool m_requestPayerHasBeenSet = false;
1385 bool m_taggingHasBeenSet = false;
1386 bool m_objectLockModeHasBeenSet = false;
1387 bool m_objectLockRetainUntilDateHasBeenSet = false;
1388 bool m_objectLockLegalHoldStatusHasBeenSet = false;
1389 bool m_expectedBucketOwnerHasBeenSet = false;
1390 bool m_customizedAccessLogTagHasBeenSet = false;
1391};
1392
1393} // namespace Model
1394} // namespace S3
1395} // namespace Aws
Aws::Vector< Aws::Endpoint::EndpointParameter > EndpointParameters
void SetSSEKMSKeyId(SSEKMSKeyIdT &&value)
PutObjectRequest & WithChecksumMD5(ChecksumMD5T &&value)
PutObjectRequest & WithChecksumXXHASH64(ChecksumXXHASH64T &&value)
PutObjectRequest & WithGrantFullControl(GrantFullControlT &&value)
const Aws::String & GetSSEKMSKeyId() const
AWS_S3_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override
void SetSSECustomerKeyMD5(SSECustomerKeyMD5T &&value)
void SetExpectedBucketOwner(ExpectedBucketOwnerT &&value)
void SetObjectLockRetainUntilDate(ObjectLockRetainUntilDateT &&value)
void SetChecksumSHA256(ChecksumSHA256T &&value)
void SetChecksumCRC32C(const char *value)
PutObjectRequest & WithGrantWriteACP(GrantWriteACPT &&value)
void SetIfMatch(IfMatchT &&value)
PutObjectRequest & WithContentDisposition(ContentDispositionT &&value)
const Aws::String & GetChecksumXXHASH64() const
PutObjectRequest & WithCustomizedAccessLogTag(CustomizedAccessLogTagT &&value)
PutObjectRequest & WithObjectLockMode(ObjectLockMode value)
PutObjectRequest & WithObjectLockRetainUntilDate(ObjectLockRetainUntilDateT &&value)
void SetSSECustomerAlgorithm(SSECustomerAlgorithmT &&value)
void SetIfNoneMatch(IfNoneMatchT &&value)
void SetChecksumSHA1(ChecksumSHA1T &&value)
void SetChecksumSHA1(const char *value)
const Aws::String & GetChecksumCRC32C() const
PutObjectRequest & WithChecksumSHA512(ChecksumSHA512T &&value)
PutObjectRequest & WithObjectLockLegalHoldStatus(ObjectLockLegalHoldStatus value)
PutObjectRequest & WithSSEKMSEncryptionContext(SSEKMSEncryptionContextT &&value)
const Aws::String & GetChecksumXXHASH3() const
virtual const char * GetServiceRequestName() const override
void SetChecksumXXHASH3(const char *value)
PutObjectRequest & WithChecksumCRC64NVME(ChecksumCRC64NVMET &&value)
PutObjectRequest & WithIfMatch(IfMatchT &&value)
const Aws::String & GetChecksumSHA512() const
PutObjectRequest & WithChecksumSHA256(ChecksumSHA256T &&value)
void SetChecksumSHA512(ChecksumSHA512T &&value)
const Aws::String & GetExpectedBucketOwner() const
const Aws::String & GetChecksumCRC64NVME() const
void SetStorageClass(StorageClass value)
void SetWriteOffsetBytes(long long value)
PutObjectRequest & WithWriteOffsetBytes(long long value)
void SetChecksumXXHASH3(ChecksumXXHASH3T &&value)
const Aws::String & GetGrantRead() const
PutObjectRequest & WithSSEKMSKeyId(SSEKMSKeyIdT &&value)
PutObjectRequest & WithBucketKeyEnabled(bool value)
PutObjectRequest & WithExpectedBucketOwner(ExpectedBucketOwnerT &&value)
const Aws::String & GetIfNoneMatch() const
void SetSSEKMSEncryptionContext(SSEKMSEncryptionContextT &&value)
void SetChecksumCRC32(ChecksumCRC32T &&value)
void SetChecksumMD5(ChecksumMD5T &&value)
void SetChecksumXXHASH64(const char *value)
AWS_S3_API PutObjectRequest()=default
const Aws::String & GetContentLanguage() const
void SetSSECustomerKey(SSECustomerKeyT &&value)
void SetWebsiteRedirectLocation(WebsiteRedirectLocationT &&value)
void SetCustomizedAccessLogTag(CustomizedAccessLogTagT &&value)
const Aws::String & GetContentEncoding() const
PutObjectRequest & WithStorageClass(StorageClass value)
PutObjectRequest & WithACL(ObjectCannedACL value)
void SetExpires(ExpiresT &&value)
AWS_S3_API void AddQueryStringParameters(Aws::Http::URI &uri) const override
void SetChecksumSHA512(const char *value)
void SetChecksumSHA256(const char *value)
const Aws::String & GetTagging() const
void SetCacheControl(CacheControlT &&value)
PutObjectRequest & WithGrantRead(GrantReadT &&value)
ObjectLockMode GetObjectLockMode() const
PutObjectRequest & WithSSECustomerAlgorithm(SSECustomerAlgorithmT &&value)
PutObjectRequest & WithChecksumXXHASH128(ChecksumXXHASH128T &&value)
AWS_S3_API Aws::String GetChecksumAlgorithmName() const override
void SetChecksumAlgorithm(ChecksumAlgorithm value)
void SetGrantFullControl(GrantFullControlT &&value)
void SetContentLanguage(ContentLanguageT &&value)
PutObjectRequest & WithContentLanguage(ContentLanguageT &&value)
PutObjectRequest & AddCustomizedAccessLogTag(CustomizedAccessLogTagKeyT &&key, CustomizedAccessLogTagValueT &&value)
void SetChecksumCRC64NVME(ChecksumCRC64NVMET &&value)
const Aws::String & GetSSECustomerKey() const
const Aws::String & GetContentMD5() const
const Aws::String & GetSSECustomerAlgorithm() const
const Aws::String & GetGrantFullControl() const
PutObjectRequest & WithServerSideEncryption(ServerSideEncryption value)
void SetContentLength(long long value)
void SetACL(ObjectCannedACL value)
PutObjectRequest & WithBucket(BucketT &&value)
const Aws::Utils::DateTime & GetExpires() const
void SetServerSideEncryption(ServerSideEncryption value)
const Aws::Map< Aws::String, Aws::String > & GetCustomizedAccessLogTag() const
AWS_S3_API EndpointParameters GetEndpointContextParams() const override
void SetChecksumXXHASH128(const char *value)
PutObjectRequest & WithIfNoneMatch(IfNoneMatchT &&value)
void SetContentMD5(ContentMD5T &&value)
const Aws::String & GetGrantReadACP() const
const Aws::Utils::DateTime & GetObjectLockRetainUntilDate() const
PutObjectRequest & WithWebsiteRedirectLocation(WebsiteRedirectLocationT &&value)
const Aws::String & GetChecksumMD5() const
void SetMetadata(MetadataT &&value)
const Aws::String & GetChecksumCRC32() const
AWS_S3_API bool HasEmbeddedError(IOStream &body, const Http::HeaderValueCollection &header) const override
ServerSideEncryption GetServerSideEncryption() const
const Aws::String & GetChecksumSHA1() const
PutObjectRequest & WithKey(KeyT &&value)
PutObjectRequest & AddMetadata(MetadataKeyT &&key, MetadataValueT &&value)
void SetGrantReadACP(GrantReadACPT &&value)
PutObjectRequest & WithChecksumCRC32(ChecksumCRC32T &&value)
void SetChecksumMD5(const char *value)
const Aws::String & GetKey() const
const Aws::String & GetGrantWriteACP() const
const Aws::String & GetBucket() const
PutObjectRequest & WithContentEncoding(ContentEncodingT &&value)
void SetChecksumCRC32(const char *value)
void SetChecksumCRC32C(ChecksumCRC32CT &&value)
const Aws::String & GetChecksumSHA256() const
PutObjectRequest & WithExpires(ExpiresT &&value)
PutObjectRequest & WithSSECustomerKey(SSECustomerKeyT &&value)
const Aws::String & GetWebsiteRedirectLocation() const
void SetChecksumXXHASH128(ChecksumXXHASH128T &&value)
PutObjectRequest & WithChecksumAlgorithm(ChecksumAlgorithm value)
const Aws::String & GetSSECustomerKeyMD5() const
PutObjectRequest & WithTagging(TaggingT &&value)
ObjectCannedACL GetACL() const
void SetObjectLockLegalHoldStatus(ObjectLockLegalHoldStatus value)
void SetGrantRead(GrantReadT &&value)
PutObjectRequest & WithMetadata(MetadataT &&value)
const Aws::String & GetSSEKMSEncryptionContext() const
ChecksumAlgorithm GetChecksumAlgorithm() const
const Aws::Map< Aws::String, Aws::String > & GetMetadata() const
void SetRequestPayer(RequestPayer value)
void SetObjectLockMode(ObjectLockMode value)
PutObjectRequest & WithContentMD5(ContentMD5T &&value)
void SetContentEncoding(ContentEncodingT &&value)
PutObjectRequest & WithSSECustomerKeyMD5(SSECustomerKeyMD5T &&value)
PutObjectRequest & WithChecksumCRC32C(ChecksumCRC32CT &&value)
PutObjectRequest & WithCacheControl(CacheControlT &&value)
void SetChecksumXXHASH64(ChecksumXXHASH64T &&value)
PutObjectRequest & WithChecksumSHA1(ChecksumSHA1T &&value)
PutObjectRequest & WithChecksumXXHASH3(ChecksumXXHASH3T &&value)
void SetGrantWriteACP(GrantWriteACPT &&value)
const Aws::String & GetIfMatch() const
const Aws::String & GetCacheControl() const
const Aws::String & GetContentDisposition() const
void SetContentDisposition(ContentDispositionT &&value)
ObjectLockLegalHoldStatus GetObjectLockLegalHoldStatus() const
const Aws::String & GetChecksumXXHASH128() const
PutObjectRequest & WithRequestPayer(RequestPayer value)
PutObjectRequest & WithContentLength(long long value)
PutObjectRequest & WithGrantReadACP(GrantReadACPT &&value)
Aws::Map< Aws::String, Aws::String > HeaderValueCollection
std::map< K, V, std::less< K >, Aws::Allocator< std::pair< const K, V > > > Map
std::basic_iostream< char, std::char_traits< char > > IOStream
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String