aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source
diff options
context:
space:
mode:
authordakovalkov <dakovalkov@yandex-team.com>2023-12-03 13:33:55 +0300
committerdakovalkov <dakovalkov@yandex-team.com>2023-12-03 14:04:39 +0300
commit2a718325637e5302334b6d0a6430f63168f8dbb3 (patch)
tree64be81080b7df9ec1d86d053a0c394ae53fcf1fe /contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source
parente0d94a470142d95c3007e9c5d80380994940664a (diff)
downloadydb-2a718325637e5302334b6d0a6430f63168f8dbb3.tar.gz
Update contrib/libs/aws-sdk-cpp to 1.11.37
Diffstat (limited to 'contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source')
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ARN.cpp210
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Client.cpp3439
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ClientConfiguration.cpp89
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Endpoint.cpp221
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3EndpointProvider.cpp72
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3EndpointRules.cpp4191
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Request.cpp14
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Bucket.cpp4
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLocationConstraint.cpp14
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Checksum.cpp106
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ChecksumAlgorithm.cpp84
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ChecksumMode.cpp63
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadRequest.cpp88
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadResult.cpp20
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedPart.cpp56
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectRequest.cpp47
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResultDetails.cpp64
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyPartResult.cpp64
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketRequest.cpp19
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadRequest.cpp21
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadResult.cpp14
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketAnalyticsConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketCorsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketEncryptionRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketIntelligentTieringConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketInventoryConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketLifecycleRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketMetricsConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketOwnershipControlsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketPolicyRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketReplicationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketTaggingRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketWebsiteRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerEntry.cpp4
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletePublicAccessBlockRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Event.cpp70
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/EventBridgeConfiguration.cpp51
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationResult.cpp3
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationResult.cpp5
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesParts.cpp163
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesRequest.cpp144
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesResult.cpp96
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRequest.cpp38
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectResult.cpp38
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadBucketRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectRequest.cpp21
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectResult.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryOptionalField.cpp14
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleExpiration.cpp4
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleAndOperator.cpp40
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleFilter.cpp36
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Request.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsRequest.cpp34
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsResult.cpp13
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsAndOperator.cpp18
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsFilter.cpp14
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MultipartUpload.cpp24
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionExpiration.cpp22
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionTransition.cpp22
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfiguration.cpp18
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Object.cpp28
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectAttributes.cpp91
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetention.cpp4
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectOwnership.cpp7
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectPart.cpp142
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectStorageClass.cpp7
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersion.cpp28
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Part.cpp64
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAccelerateConfigurationRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAclRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAnalyticsConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketCorsRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketEncryptionRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketIntelligentTieringConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketInventoryConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLifecycleConfigurationRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLoggingRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketMetricsConfigurationRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketNotificationConfigurationRequest.cpp19
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketOwnershipControlsRequest.cpp10
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketPolicyRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketReplicationRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketRequestPaymentRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketTaggingRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketVersioningRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketWebsiteRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRequest.cpp66
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectResult.cpp24
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutPublicAccessBlockRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectRequest.cpp30
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentRequest.cpp12
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClass.cpp7
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Transition.cpp4
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TransitionStorageClass.cpp7
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyRequest.cpp36
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartRequest.cpp62
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartResult.cpp24
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WriteGetObjectResponseRequest.cpp46
142 files changed, 8417 insertions, 3263 deletions
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ARN.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ARN.cpp
deleted file mode 100644
index 72bbbc8c7e..0000000000
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ARN.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
- * SPDX-License-Identifier: Apache-2.0.
- */
-
-#include <cassert>
-#include <aws/core/Region.h>
-#include <aws/core/utils/DNS.h>
-#include <aws/core/utils/Outcome.h>
-#include <aws/core/utils/StringUtils.h>
-#include <aws/s3/S3ARN.h>
-
-namespace Aws
-{
- namespace S3
- {
- S3ARN::S3ARN(const Aws::String& arn) : Utils::ARN(arn)
- {
- ParseARNResource();
- }
-
- S3ARNOutcome S3ARN::Validate(const char* clientRegion) const
- {
- // Take pseudo region into consideration here.
- Aws::String region = clientRegion ? clientRegion : "";
- Aws::StringStream ss;
- if (this->GetResourceType() == ARNResourceType::OUTPOST && region.find("fips") != Aws::String::npos)
- {
- ss.str("");
- ss << "Outposts ARN do not support fips regions right now.";
- return S3ARNOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION", ss.str(), false));
- }
- else if (this->GetRegion() != Aws::Region::ComputeSignerRegion(clientRegion))
- {
- ss.str("");
- ss << "Region mismatch between \"" << this->GetRegion() << "\" defined in ARN and \""
- << clientRegion << "\" defined in client configuration. "
- << "You can specify AWS_S3_USE_ARN_REGION to ignore region defined in client configuration.";
- return S3ARNOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION", ss.str(), false));
- }
- else
- {
- return Validate();
- }
- }
-
- S3ARNOutcome S3ARN::Validate() const
- {
- Aws::String errorMessage;
- bool success = false;
- Aws::StringStream ss;
-
- if (!*this)
- {
- errorMessage = "Invalid ARN.";
- }
- // Validation on partition.
- else if (this->GetPartition().find("aws") != 0)
- {
- ss.str("");
- ss << "Invalid partition in ARN: " << this->GetPartition() << ". Valid options: aws, aws-cn, and etc.";
- }
- // Validation on service.
- else if (this->GetService() != ARNService::S3 && this->GetService() != ARNService::S3_OUTPOSTS && this->GetService() != ARNService::S3_OBJECT_LAMBDA)
- {
- ss.str("");
- ss << "Invalid service in ARN: " << this->GetService() << ". Valid options: " << ARNService::S3 << ", " << ARNService::S3_OUTPOSTS << ", " << ARNService::S3_OBJECT_LAMBDA << ".";
- errorMessage = ss.str();
- }
- // Validation on region.
- // TODO: Failure on different partitions.
- else if (this->GetRegion().empty())
- {
- errorMessage = "Invalid ARN with empty region.";
- }
- else if (!Utils::IsValidDnsLabel(this->GetRegion()))
- {
- ss.str("");
- ss << "Invalid region in ARN: " << this->GetRegion() << ". Region should be a RFC 3986 Host label.";
- errorMessage = ss.str();
- }
- // Validation on account ID
- else if (!Utils::IsValidDnsLabel(this->GetAccountId()))
- {
- ss.str("");
- ss << "Invalid account ID in ARN: " << this->GetAccountId() << ". Account ID should be a RFC 3986 Host label.";
- errorMessage = ss.str();
- }
- // Validation on Access Point ARN and Object Lambda Access Point ARN:
- else if (this->GetResourceType() == ARNResourceType::ACCESSPOINT)
- {
- if (!Utils::IsValidDnsLabel(this->GetResourceId()))
- {
- ss.str("");
- ss << "Invalid resource ID in accesspoint ARN: " << this->GetResourceId() << ". Resource ID should be a RFC 3986 Host label.";
- errorMessage = ss.str();
- }
- else if (!this->GetResourceQualifier().empty())
- {
- ss.str("");
- ss << "Invalid accesspoint ARN with non empty resource qualifier: " << this->GetResourceQualifier();
- errorMessage = ss.str();
- }
- else if (!this->GetSubResourceType().empty() || !this->GetSubResourceId().empty())
- {
- ss.str("");
- ss << "Invalid accesspoint ARN with non empty sub resource type: " << this->GetSubResourceType() << ", sub resource ID: " << this->GetSubResourceId();
- errorMessage = ss.str();
- }
- else
- {
- success = true;
- }
- }
- // Validation on Outposts ARN:
- else if (this->GetResourceType() == ARNResourceType::OUTPOST)
- {
- if (this->GetRegion().find("fips") != Aws::String::npos)
- {
- ss.str("");
- ss << "Outposts ARN do not support fips regions right now.";
- errorMessage = ss.str();
- }
- else if (!Utils::IsValidDnsLabel(this->GetResourceId()))
- {
- ss.str("");
- ss << "Invalid outpost ID in Outposts ARN: " << this->GetResourceId() << ". Outpost ID should be a RFC 3986 Host label.";
- errorMessage = ss.str();
- }
- else if (this->GetSubResourceType() != ARNResourceType::ACCESSPOINT)
- {
- ss.str("");
- ss << "Invalid sub resource type in Outposts ARN: " << this->GetSubResourceType() << ". Valid options: " << ARNResourceType::ACCESSPOINT;
- errorMessage = ss.str();
- }
- else if (!Utils::IsValidDnsLabel(this->GetSubResourceId()))
- {
- ss.str("");
- ss << "Invalid accesspoint name in Outposts ARN: " << this->GetSubResourceId() << ", accesspoint name should be a RFC 3986 Host label.";
- errorMessage = ss.str();
- }
- else
- {
- success = true;
- }
- }
- // ARN with unknown resource type.
- else
- {
- ss.str("");
- ss << "Invalid resource type in ARN: " << this->GetResourceType() << ". Valid options: " << ARNResourceType::ACCESSPOINT << ", " << ARNResourceType::OUTPOST << ".";
- errorMessage = ss.str();
- }
-
- if (success)
- {
- return S3ARNOutcome(success);
- }
- else
- {
- return S3ARNOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION", errorMessage, false));
- }
- }
-
- void S3ARN::ParseARNResource()
- {
- if (!*this) return;
-
- Aws::String resource = this->GetResource();
- Aws::Vector<Aws::String> resourceSegments;
- if (resource.find(':') != std::string::npos)
- {
- resourceSegments = Utils::StringUtils::Split(resource, ':', 4, Utils::StringUtils::SplitOptions::INCLUDE_EMPTY_ENTRIES);
- }
- else if (resource.find('/') != std::string::npos)
- {
- resourceSegments = Utils::StringUtils::Split(resource, '/', 4, Utils::StringUtils::SplitOptions::INCLUDE_EMPTY_ENTRIES);
- }
- else
- {
- resourceSegments.emplace_back(resource);
- }
-
- switch (resourceSegments.size())
- {
- case 1:
- m_resourceId = resourceSegments[0];
- break;
- case 2:
- m_resourceType = resourceSegments[0];
- m_resourceId = resourceSegments[1];
- break;
- case 3:
- m_resourceType = resourceSegments[0];
- m_resourceId = resourceSegments[1];
- m_resourceQualifier = resourceSegments[2];
- break;
- case 4:
- m_resourceType = resourceSegments[0];
- m_resourceId = resourceSegments[1];
- m_subResourceType = resourceSegments[2];
- m_subResourceId = resourceSegments[3];
- break;
- default:
- assert(false);
- break;
- }
- }
- }
-}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Client.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Client.cpp
index 7f9eb2b4c6..fa38c023e0 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Client.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Client.cpp
@@ -16,12 +16,13 @@
#include <aws/core/utils/threading/Executor.h>
#include <aws/core/utils/DNS.h>
#include <aws/core/utils/logging/LogMacros.h>
-
+#include <aws/core/utils/logging/ErrorMacros.h>
#include <aws/core/utils/event/EventStream.h>
+#include <aws/core/platform/Environment.h>
+
#include <aws/s3/S3Client.h>
-#include <aws/s3/S3Endpoint.h>
#include <aws/s3/S3ErrorMarshaller.h>
-#include <aws/s3/S3ARN.h>
+#include <aws/s3/S3EndpointProvider.h>
#include <aws/s3/model/AbortMultipartUploadRequest.h>
#include <aws/s3/model/CompleteMultipartUploadRequest.h>
#include <aws/s3/model/CopyObjectRequest.h>
@@ -66,6 +67,7 @@
#include <aws/s3/model/GetBucketWebsiteRequest.h>
#include <aws/s3/model/GetObjectRequest.h>
#include <aws/s3/model/GetObjectAclRequest.h>
+#include <aws/s3/model/GetObjectAttributesRequest.h>
#include <aws/s3/model/GetObjectLegalHoldRequest.h>
#include <aws/s3/model/GetObjectLockConfigurationRequest.h>
#include <aws/s3/model/GetObjectRetentionRequest.h>
@@ -121,88 +123,151 @@ using namespace Aws::S3;
using namespace Aws::S3::Model;
using namespace Aws::Http;
using namespace Aws::Utils::Xml;
+using ResolveEndpointOutcome = Aws::Endpoint::ResolveEndpointOutcome;
-static const char* SERVICE_NAME = "s3";
-static const char* ALLOCATION_TAG = "S3Client";
-
+const char* S3Client::SERVICE_NAME = "s3";
+const char* S3Client::ALLOCATION_TAG = "S3Client";
-S3Client::S3Client(const Client::ClientConfiguration& clientConfiguration, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads, bool useVirtualAddressing, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption) :
+S3Client::S3Client(const S3::S3ClientConfiguration& clientConfiguration,
+ std::shared_ptr<S3EndpointProviderBase> endpointProvider) :
BASECLASS(clientConfiguration,
- Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG),
- SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region), signPayloads, false),
- Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
- m_executor(clientConfiguration.executor), m_useVirtualAddressing(useVirtualAddressing), m_USEast1RegionalEndpointOption(USEast1RegionalEndPointOption)
+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG,
+ Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG),
+ SERVICE_NAME,
+ Aws::Region::ComputeSignerRegion(clientConfiguration.region),
+ clientConfiguration.payloadSigningPolicy,
+ /*doubleEncodeValue*/ false),
+ Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
+ m_clientConfiguration(clientConfiguration),
+ m_executor(clientConfiguration.executor),
+ m_endpointProvider(std::move(endpointProvider))
+{
+ init(m_clientConfiguration);
+}
+
+S3Client::S3Client(const AWSCredentials& credentials,
+ std::shared_ptr<S3EndpointProviderBase> endpointProvider,
+ const S3::S3ClientConfiguration& clientConfiguration) :
+ BASECLASS(clientConfiguration,
+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG,
+ Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials),
+ SERVICE_NAME,
+ Aws::Region::ComputeSignerRegion(clientConfiguration.region),
+ clientConfiguration.payloadSigningPolicy,
+ /*doubleEncodeValue*/ false),
+ Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
+ m_clientConfiguration(clientConfiguration),
+ m_executor(clientConfiguration.executor),
+ m_endpointProvider(std::move(endpointProvider))
{
- init(clientConfiguration);
+ init(m_clientConfiguration);
}
-S3Client::S3Client(const AWSCredentials& credentials, const Client::ClientConfiguration& clientConfiguration, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads, bool useVirtualAddressing, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption) :
+S3Client::S3Client(const std::shared_ptr<AWSCredentialsProvider>& credentialsProvider,
+ std::shared_ptr<S3EndpointProviderBase> endpointProvider,
+ const S3::S3ClientConfiguration& clientConfiguration) :
+ BASECLASS(clientConfiguration,
+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG,
+ credentialsProvider,
+ SERVICE_NAME,
+ Aws::Region::ComputeSignerRegion(clientConfiguration.region),
+ clientConfiguration.payloadSigningPolicy,
+ /*doubleEncodeValue*/ false),
+ Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
+ m_clientConfiguration(clientConfiguration),
+ m_executor(clientConfiguration.executor),
+ m_endpointProvider(std::move(endpointProvider))
+{
+ init(m_clientConfiguration);
+}
+
+ /* Legacy constructors due deprecation */
+ S3Client::S3Client(const Client::ClientConfiguration& clientConfiguration,
+ Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads /*= Never*/,
+ bool useVirtualAddressing /*= true*/,
+ Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption) :
BASECLASS(clientConfiguration,
- Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials),
- SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region), signPayloads, false),
- Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
- m_executor(clientConfiguration.executor), m_useVirtualAddressing(useVirtualAddressing), m_USEast1RegionalEndpointOption(USEast1RegionalEndPointOption)
+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG,
+ Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG),
+ SERVICE_NAME,
+ Aws::Region::ComputeSignerRegion(clientConfiguration.region),
+ signPayloads,
+ /*doubleEncodeValue*/ false),
+ Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
+ m_clientConfiguration(clientConfiguration, signPayloads, useVirtualAddressing, USEast1RegionalEndPointOption),
+ m_executor(clientConfiguration.executor),
+ m_endpointProvider(Aws::MakeShared<S3EndpointProvider>(ALLOCATION_TAG))
+{
+ init(m_clientConfiguration);
+}
+
+S3Client::S3Client(const AWSCredentials& credentials,
+ const Client::ClientConfiguration& clientConfiguration,
+ Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads /*= Never*/,
+ bool useVirtualAddressing /*= true*/,
+ Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption) :
+ BASECLASS(clientConfiguration,
+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG,
+ Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials),
+ SERVICE_NAME,
+ Aws::Region::ComputeSignerRegion(clientConfiguration.region),
+ signPayloads,
+ /*doubleEncodeValue*/ false),
+ Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
+ m_clientConfiguration(clientConfiguration, signPayloads, useVirtualAddressing, USEast1RegionalEndPointOption),
+ m_executor(clientConfiguration.executor),
+ m_endpointProvider(Aws::MakeShared<S3EndpointProvider>(ALLOCATION_TAG))
{
- init(clientConfiguration);
+ init(m_clientConfiguration);
}
S3Client::S3Client(const std::shared_ptr<AWSCredentialsProvider>& credentialsProvider,
- const Client::ClientConfiguration& clientConfiguration, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads, bool useVirtualAddressing, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption) :
+ const Client::ClientConfiguration& clientConfiguration,
+ Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads /*= Never*/,
+ bool useVirtualAddressing /*= true*/,
+ Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption) :
BASECLASS(clientConfiguration,
- Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, credentialsProvider,
- SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region), signPayloads, false),
- Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
- m_executor(clientConfiguration.executor), m_useVirtualAddressing(useVirtualAddressing), m_USEast1RegionalEndpointOption(USEast1RegionalEndPointOption)
+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG,
+ credentialsProvider,
+ SERVICE_NAME,
+ Aws::Region::ComputeSignerRegion(clientConfiguration.region),
+ signPayloads,
+ /*doubleEncodeValue*/ false),
+ Aws::MakeShared<S3ErrorMarshaller>(ALLOCATION_TAG)),
+ m_clientConfiguration(clientConfiguration, signPayloads, useVirtualAddressing, USEast1RegionalEndPointOption),
+ m_executor(clientConfiguration.executor),
+ m_endpointProvider(Aws::MakeShared<S3EndpointProvider>(ALLOCATION_TAG))
{
- init(clientConfiguration);
+ init(m_clientConfiguration);
}
+ /* End of legacy constructors due deprecation */
S3Client::~S3Client()
{
}
-void S3Client::init(const ClientConfiguration& config)
+std::shared_ptr<S3EndpointProviderBase>& S3Client::accessEndpointProvider()
{
- SetServiceClientName("S3");
- LoadS3SpecificConfig(config.profileName);
- m_configScheme = SchemeMapper::ToString(config.scheme);
- m_scheme = m_configScheme;
- m_useDualStack = config.useDualStack;
- if (config.endpointOverride.empty())
- {
- m_useCustomEndpoint = false;
- m_baseUri = S3Endpoint::ForRegion(config.region, config.useDualStack, m_USEast1RegionalEndpointOption == Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::REGIONAL);
- }
- else
- {
- m_useCustomEndpoint = true;
- OverrideEndpoint(config.endpointOverride);
- }
- m_enableHostPrefixInjection = config.enableHostPrefixInjection;
+ return m_endpointProvider;
+}
+
+void S3Client::init(const S3::S3ClientConfiguration& config)
+{
+ AWSClient::SetServiceClientName("S3");
+ AWS_CHECK_PTR(SERVICE_NAME, m_endpointProvider);
+ m_endpointProvider->InitBuiltInParameters(config);
}
void S3Client::OverrideEndpoint(const Aws::String& endpoint)
{
- if (endpoint.compare(0, 7, "http://") == 0)
- {
- m_scheme = "http";
- m_baseUri = endpoint.substr(7);
- }
- else if (endpoint.compare(0, 8, "https://") == 0)
- {
- m_scheme = "https";
- m_baseUri = endpoint.substr(8);
- }
- else
- {
- m_scheme = m_configScheme;
- m_baseUri = endpoint;
- }
+ AWS_CHECK_PTR(SERVICE_NAME, m_endpointProvider);
+ m_endpointProvider->OverrideEndpoint(endpoint);
}
AbortMultipartUploadOutcome S3Client::AbortMultipartUpload(const AbortMultipartUploadRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, AbortMultipartUpload, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("AbortMultipartUpload", "Required field: Bucket, is not set");
@@ -218,39 +283,15 @@ AbortMultipartUploadOutcome S3Client::AbortMultipartUpload(const AbortMultipartU
AWS_LOGSTREAM_ERROR("AbortMultipartUpload", "Required field: UploadId, is not set");
return AbortMultipartUploadOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [UploadId]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return AbortMultipartUploadOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return AbortMultipartUploadOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-AbortMultipartUploadOutcomeCallable S3Client::AbortMultipartUploadCallable(const AbortMultipartUploadRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< AbortMultipartUploadOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->AbortMultipartUpload(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::AbortMultipartUploadAsync(const AbortMultipartUploadRequest& request, const AbortMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->AbortMultipartUploadAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::AbortMultipartUploadAsyncHelper(const AbortMultipartUploadRequest& request, const AbortMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, AbortMultipartUpload(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, AbortMultipartUpload, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return AbortMultipartUploadOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
CompleteMultipartUploadOutcome S3Client::CompleteMultipartUpload(const CompleteMultipartUploadRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, CompleteMultipartUpload, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("CompleteMultipartUpload", "Required field: Bucket, is not set");
@@ -266,39 +307,15 @@ CompleteMultipartUploadOutcome S3Client::CompleteMultipartUpload(const CompleteM
AWS_LOGSTREAM_ERROR("CompleteMultipartUpload", "Required field: UploadId, is not set");
return CompleteMultipartUploadOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [UploadId]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return CompleteMultipartUploadOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return CompleteMultipartUploadOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-CompleteMultipartUploadOutcomeCallable S3Client::CompleteMultipartUploadCallable(const CompleteMultipartUploadRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< CompleteMultipartUploadOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CompleteMultipartUpload(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::CompleteMultipartUploadAsync(const CompleteMultipartUploadRequest& request, const CompleteMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->CompleteMultipartUploadAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::CompleteMultipartUploadAsyncHelper(const CompleteMultipartUploadRequest& request, const CompleteMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, CompleteMultipartUpload(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, CompleteMultipartUpload, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return CompleteMultipartUploadOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST));
}
CopyObjectOutcome S3Client::CopyObject(const CopyObjectRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, CopyObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("CopyObject", "Required field: Bucket, is not set");
@@ -314,77 +331,28 @@ CopyObjectOutcome S3Client::CopyObject(const CopyObjectRequest& request) const
AWS_LOGSTREAM_ERROR("CopyObject", "Required field: Key, is not set");
return CopyObjectOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return CopyObjectOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return CopyObjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-CopyObjectOutcomeCallable S3Client::CopyObjectCallable(const CopyObjectRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< CopyObjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CopyObject(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::CopyObjectAsync(const CopyObjectRequest& request, const CopyObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->CopyObjectAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::CopyObjectAsyncHelper(const CopyObjectRequest& request, const CopyObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, CopyObject(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, CopyObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return CopyObjectOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
CreateBucketOutcome S3Client::CreateBucket(const CreateBucketRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, CreateBucket, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("CreateBucket", "Required field: Bucket, is not set");
return CreateBucketOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString();
- if (!computeEndpointOutcome.IsSuccess())
- {
- return CreateBucketOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetBucket();
- uri.SetPath(uri.GetPath() + ss.str());
- return CreateBucketOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-CreateBucketOutcomeCallable S3Client::CreateBucketCallable(const CreateBucketRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< CreateBucketOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateBucket(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::CreateBucketAsync(const CreateBucketRequest& request, const CreateBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->CreateBucketAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::CreateBucketAsyncHelper(const CreateBucketRequest& request, const CreateBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, CreateBucket(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, CreateBucket, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ return CreateBucketOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
CreateMultipartUploadOutcome S3Client::CreateMultipartUpload(const CreateMultipartUploadRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, CreateMultipartUpload, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("CreateMultipartUpload", "Required field: Bucket, is not set");
@@ -395,77 +363,31 @@ CreateMultipartUploadOutcome S3Client::CreateMultipartUpload(const CreateMultipa
AWS_LOGSTREAM_ERROR("CreateMultipartUpload", "Required field: Key, is not set");
return CreateMultipartUploadOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return CreateMultipartUploadOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, CreateMultipartUpload, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?uploads");
- uri.SetQueryString(ss.str());
- return CreateMultipartUploadOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-CreateMultipartUploadOutcomeCallable S3Client::CreateMultipartUploadCallable(const CreateMultipartUploadRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< CreateMultipartUploadOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateMultipartUpload(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::CreateMultipartUploadAsync(const CreateMultipartUploadRequest& request, const CreateMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->CreateMultipartUploadAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::CreateMultipartUploadAsyncHelper(const CreateMultipartUploadRequest& request, const CreateMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, CreateMultipartUpload(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return CreateMultipartUploadOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST));
}
DeleteBucketOutcome S3Client::DeleteBucket(const DeleteBucketRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucket, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucket", "Required field: Bucket, is not set");
return DeleteBucketOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- uri.SetPath(uri.GetPath() + ss.str());
- return DeleteBucketOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketOutcomeCallable S3Client::DeleteBucketCallable(const DeleteBucketRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucket(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketAsync(const DeleteBucketRequest& request, const DeleteBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketAsyncHelper(const DeleteBucketRequest& request, const DeleteBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucket(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucket, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ return DeleteBucketOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketAnalyticsConfigurationOutcome S3Client::DeleteBucketAnalyticsConfiguration(const DeleteBucketAnalyticsConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketAnalyticsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketAnalyticsConfiguration", "Required field: Bucket, is not set");
@@ -476,112 +398,49 @@ DeleteBucketAnalyticsConfigurationOutcome S3Client::DeleteBucketAnalyticsConfigu
AWS_LOGSTREAM_ERROR("DeleteBucketAnalyticsConfiguration", "Required field: Id, is not set");
return DeleteBucketAnalyticsConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketAnalyticsConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketAnalyticsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?analytics");
- uri.SetQueryString(ss.str());
- return DeleteBucketAnalyticsConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketAnalyticsConfigurationOutcomeCallable S3Client::DeleteBucketAnalyticsConfigurationCallable(const DeleteBucketAnalyticsConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketAnalyticsConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketAnalyticsConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketAnalyticsConfigurationAsync(const DeleteBucketAnalyticsConfigurationRequest& request, const DeleteBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketAnalyticsConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketAnalyticsConfigurationAsyncHelper(const DeleteBucketAnalyticsConfigurationRequest& request, const DeleteBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketAnalyticsConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketAnalyticsConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketCorsOutcome S3Client::DeleteBucketCors(const DeleteBucketCorsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketCors, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketCors", "Required field: Bucket, is not set");
return DeleteBucketCorsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketCorsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketCors, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?cors");
- uri.SetQueryString(ss.str());
- return DeleteBucketCorsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketCorsOutcomeCallable S3Client::DeleteBucketCorsCallable(const DeleteBucketCorsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketCorsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketCors(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketCorsAsync(const DeleteBucketCorsRequest& request, const DeleteBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketCorsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketCorsAsyncHelper(const DeleteBucketCorsRequest& request, const DeleteBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketCors(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketCorsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketEncryptionOutcome S3Client::DeleteBucketEncryption(const DeleteBucketEncryptionRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketEncryption, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketEncryption", "Required field: Bucket, is not set");
return DeleteBucketEncryptionOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketEncryptionOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketEncryption, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?encryption");
- uri.SetQueryString(ss.str());
- return DeleteBucketEncryptionOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketEncryptionOutcomeCallable S3Client::DeleteBucketEncryptionCallable(const DeleteBucketEncryptionRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketEncryptionOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketEncryption(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketEncryptionAsync(const DeleteBucketEncryptionRequest& request, const DeleteBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketEncryptionAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketEncryptionAsyncHelper(const DeleteBucketEncryptionRequest& request, const DeleteBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketEncryption(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketEncryptionOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketIntelligentTieringConfigurationOutcome S3Client::DeleteBucketIntelligentTieringConfiguration(const DeleteBucketIntelligentTieringConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketIntelligentTieringConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketIntelligentTieringConfiguration", "Required field: Bucket, is not set");
@@ -592,38 +451,17 @@ DeleteBucketIntelligentTieringConfigurationOutcome S3Client::DeleteBucketIntelli
AWS_LOGSTREAM_ERROR("DeleteBucketIntelligentTieringConfiguration", "Required field: Id, is not set");
return DeleteBucketIntelligentTieringConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketIntelligentTieringConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketIntelligentTieringConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?intelligent-tiering");
- uri.SetQueryString(ss.str());
- return DeleteBucketIntelligentTieringConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketIntelligentTieringConfigurationOutcomeCallable S3Client::DeleteBucketIntelligentTieringConfigurationCallable(const DeleteBucketIntelligentTieringConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketIntelligentTieringConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketIntelligentTieringConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketIntelligentTieringConfigurationAsync(const DeleteBucketIntelligentTieringConfigurationRequest& request, const DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketIntelligentTieringConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketIntelligentTieringConfigurationAsyncHelper(const DeleteBucketIntelligentTieringConfigurationRequest& request, const DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketIntelligentTieringConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketIntelligentTieringConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketInventoryConfigurationOutcome S3Client::DeleteBucketInventoryConfiguration(const DeleteBucketInventoryConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketInventoryConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketInventoryConfiguration", "Required field: Bucket, is not set");
@@ -634,75 +472,33 @@ DeleteBucketInventoryConfigurationOutcome S3Client::DeleteBucketInventoryConfigu
AWS_LOGSTREAM_ERROR("DeleteBucketInventoryConfiguration", "Required field: Id, is not set");
return DeleteBucketInventoryConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketInventoryConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketInventoryConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?inventory");
- uri.SetQueryString(ss.str());
- return DeleteBucketInventoryConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketInventoryConfigurationOutcomeCallable S3Client::DeleteBucketInventoryConfigurationCallable(const DeleteBucketInventoryConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketInventoryConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketInventoryConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketInventoryConfigurationAsync(const DeleteBucketInventoryConfigurationRequest& request, const DeleteBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketInventoryConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketInventoryConfigurationAsyncHelper(const DeleteBucketInventoryConfigurationRequest& request, const DeleteBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketInventoryConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketInventoryConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketLifecycleOutcome S3Client::DeleteBucketLifecycle(const DeleteBucketLifecycleRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketLifecycle, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketLifecycle", "Required field: Bucket, is not set");
return DeleteBucketLifecycleOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketLifecycleOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketLifecycle, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?lifecycle");
- uri.SetQueryString(ss.str());
- return DeleteBucketLifecycleOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketLifecycleOutcomeCallable S3Client::DeleteBucketLifecycleCallable(const DeleteBucketLifecycleRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketLifecycleOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketLifecycle(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketLifecycleAsync(const DeleteBucketLifecycleRequest& request, const DeleteBucketLifecycleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketLifecycleAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketLifecycleAsyncHelper(const DeleteBucketLifecycleRequest& request, const DeleteBucketLifecycleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketLifecycle(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketLifecycleOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketMetricsConfigurationOutcome S3Client::DeleteBucketMetricsConfiguration(const DeleteBucketMetricsConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketMetricsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketMetricsConfiguration", "Required field: Bucket, is not set");
@@ -713,223 +509,97 @@ DeleteBucketMetricsConfigurationOutcome S3Client::DeleteBucketMetricsConfigurati
AWS_LOGSTREAM_ERROR("DeleteBucketMetricsConfiguration", "Required field: Id, is not set");
return DeleteBucketMetricsConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketMetricsConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketMetricsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?metrics");
- uri.SetQueryString(ss.str());
- return DeleteBucketMetricsConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketMetricsConfigurationOutcomeCallable S3Client::DeleteBucketMetricsConfigurationCallable(const DeleteBucketMetricsConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketMetricsConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketMetricsConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketMetricsConfigurationAsync(const DeleteBucketMetricsConfigurationRequest& request, const DeleteBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketMetricsConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketMetricsConfigurationAsyncHelper(const DeleteBucketMetricsConfigurationRequest& request, const DeleteBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketMetricsConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketMetricsConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketOwnershipControlsOutcome S3Client::DeleteBucketOwnershipControls(const DeleteBucketOwnershipControlsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketOwnershipControls, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketOwnershipControls", "Required field: Bucket, is not set");
return DeleteBucketOwnershipControlsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketOwnershipControlsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketOwnershipControls, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?ownershipControls");
- uri.SetQueryString(ss.str());
- return DeleteBucketOwnershipControlsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketOwnershipControlsOutcomeCallable S3Client::DeleteBucketOwnershipControlsCallable(const DeleteBucketOwnershipControlsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketOwnershipControlsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketOwnershipControls(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketOwnershipControlsAsync(const DeleteBucketOwnershipControlsRequest& request, const DeleteBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketOwnershipControlsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketOwnershipControlsAsyncHelper(const DeleteBucketOwnershipControlsRequest& request, const DeleteBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketOwnershipControls(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketOwnershipControlsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketPolicyOutcome S3Client::DeleteBucketPolicy(const DeleteBucketPolicyRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketPolicy, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketPolicy", "Required field: Bucket, is not set");
return DeleteBucketPolicyOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketPolicyOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketPolicy, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?policy");
- uri.SetQueryString(ss.str());
- return DeleteBucketPolicyOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketPolicyOutcomeCallable S3Client::DeleteBucketPolicyCallable(const DeleteBucketPolicyRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketPolicyOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketPolicy(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketPolicyAsync(const DeleteBucketPolicyRequest& request, const DeleteBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketPolicyAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketPolicyAsyncHelper(const DeleteBucketPolicyRequest& request, const DeleteBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketPolicy(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketPolicyOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketReplicationOutcome S3Client::DeleteBucketReplication(const DeleteBucketReplicationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketReplication, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketReplication", "Required field: Bucket, is not set");
return DeleteBucketReplicationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketReplicationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketReplication, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?replication");
- uri.SetQueryString(ss.str());
- return DeleteBucketReplicationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketReplicationOutcomeCallable S3Client::DeleteBucketReplicationCallable(const DeleteBucketReplicationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketReplicationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketReplication(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketReplicationAsync(const DeleteBucketReplicationRequest& request, const DeleteBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketReplicationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketReplicationAsyncHelper(const DeleteBucketReplicationRequest& request, const DeleteBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketReplication(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketReplicationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketTaggingOutcome S3Client::DeleteBucketTagging(const DeleteBucketTaggingRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketTagging", "Required field: Bucket, is not set");
return DeleteBucketTaggingOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketTaggingOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?tagging");
- uri.SetQueryString(ss.str());
- return DeleteBucketTaggingOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketTaggingOutcomeCallable S3Client::DeleteBucketTaggingCallable(const DeleteBucketTaggingRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketTaggingOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketTagging(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketTaggingAsync(const DeleteBucketTaggingRequest& request, const DeleteBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketTaggingAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketTaggingAsyncHelper(const DeleteBucketTaggingRequest& request, const DeleteBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketTagging(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketTaggingOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteBucketWebsiteOutcome S3Client::DeleteBucketWebsite(const DeleteBucketWebsiteRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteBucketWebsite, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteBucketWebsite", "Required field: Bucket, is not set");
return DeleteBucketWebsiteOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteBucketWebsiteOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteBucketWebsite, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?website");
- uri.SetQueryString(ss.str());
- return DeleteBucketWebsiteOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteBucketWebsiteOutcomeCallable S3Client::DeleteBucketWebsiteCallable(const DeleteBucketWebsiteRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteBucketWebsiteOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBucketWebsite(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteBucketWebsiteAsync(const DeleteBucketWebsiteRequest& request, const DeleteBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteBucketWebsiteAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteBucketWebsiteAsyncHelper(const DeleteBucketWebsiteRequest& request, const DeleteBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteBucketWebsite(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteBucketWebsiteOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteObjectOutcome S3Client::DeleteObject(const DeleteObjectRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteObject", "Required field: Bucket, is not set");
@@ -940,39 +610,15 @@ DeleteObjectOutcome S3Client::DeleteObject(const DeleteObjectRequest& request) c
AWS_LOGSTREAM_ERROR("DeleteObject", "Required field: Key, is not set");
return DeleteObjectOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteObjectOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return DeleteObjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteObjectOutcomeCallable S3Client::DeleteObjectCallable(const DeleteObjectRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteObjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteObject(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteObjectAsync(const DeleteObjectRequest& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteObjectAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteObjectAsyncHelper(const DeleteObjectRequest& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteObject(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return DeleteObjectOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteObjectTaggingOutcome S3Client::DeleteObjectTagging(const DeleteObjectTaggingRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteObjectTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteObjectTagging", "Required field: Bucket, is not set");
@@ -983,189 +629,82 @@ DeleteObjectTaggingOutcome S3Client::DeleteObjectTagging(const DeleteObjectTaggi
AWS_LOGSTREAM_ERROR("DeleteObjectTagging", "Required field: Key, is not set");
return DeleteObjectTaggingOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteObjectTaggingOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteObjectTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?tagging");
- uri.SetQueryString(ss.str());
- return DeleteObjectTaggingOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteObjectTaggingOutcomeCallable S3Client::DeleteObjectTaggingCallable(const DeleteObjectTaggingRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteObjectTaggingOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteObjectTagging(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteObjectTaggingAsync(const DeleteObjectTaggingRequest& request, const DeleteObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteObjectTaggingAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteObjectTaggingAsyncHelper(const DeleteObjectTaggingRequest& request, const DeleteObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteObjectTagging(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteObjectTaggingOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
DeleteObjectsOutcome S3Client::DeleteObjects(const DeleteObjectsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteObjects, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeleteObjects", "Required field: Bucket, is not set");
return DeleteObjectsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeleteObjectsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteObjects, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?delete");
- uri.SetQueryString(ss.str());
- return DeleteObjectsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeleteObjectsOutcomeCallable S3Client::DeleteObjectsCallable(const DeleteObjectsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeleteObjectsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteObjects(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeleteObjectsAsync(const DeleteObjectsRequest& request, const DeleteObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeleteObjectsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeleteObjectsAsyncHelper(const DeleteObjectsRequest& request, const DeleteObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeleteObjects(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeleteObjectsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST));
}
DeletePublicAccessBlockOutcome S3Client::DeletePublicAccessBlock(const DeletePublicAccessBlockRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeletePublicAccessBlock, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("DeletePublicAccessBlock", "Required field: Bucket, is not set");
return DeletePublicAccessBlockOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return DeletePublicAccessBlockOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeletePublicAccessBlock, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?publicAccessBlock");
- uri.SetQueryString(ss.str());
- return DeletePublicAccessBlockOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-DeletePublicAccessBlockOutcomeCallable S3Client::DeletePublicAccessBlockCallable(const DeletePublicAccessBlockRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< DeletePublicAccessBlockOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeletePublicAccessBlock(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::DeletePublicAccessBlockAsync(const DeletePublicAccessBlockRequest& request, const DeletePublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->DeletePublicAccessBlockAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::DeletePublicAccessBlockAsyncHelper(const DeletePublicAccessBlockRequest& request, const DeletePublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, DeletePublicAccessBlock(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return DeletePublicAccessBlockOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_DELETE));
}
GetBucketAccelerateConfigurationOutcome S3Client::GetBucketAccelerateConfiguration(const GetBucketAccelerateConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketAccelerateConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketAccelerateConfiguration", "Required field: Bucket, is not set");
return GetBucketAccelerateConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketAccelerateConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketAccelerateConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?accelerate");
- uri.SetQueryString(ss.str());
- return GetBucketAccelerateConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketAccelerateConfigurationOutcomeCallable S3Client::GetBucketAccelerateConfigurationCallable(const GetBucketAccelerateConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketAccelerateConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketAccelerateConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketAccelerateConfigurationAsync(const GetBucketAccelerateConfigurationRequest& request, const GetBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketAccelerateConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketAccelerateConfigurationAsyncHelper(const GetBucketAccelerateConfigurationRequest& request, const GetBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketAccelerateConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketAccelerateConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketAclOutcome S3Client::GetBucketAcl(const GetBucketAclRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketAcl, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketAcl", "Required field: Bucket, is not set");
return GetBucketAclOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketAclOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketAcl, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?acl");
- uri.SetQueryString(ss.str());
- return GetBucketAclOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketAclOutcomeCallable S3Client::GetBucketAclCallable(const GetBucketAclRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketAclOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketAcl(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketAclAsync(const GetBucketAclRequest& request, const GetBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketAclAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketAclAsyncHelper(const GetBucketAclRequest& request, const GetBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketAcl(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketAclOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketAnalyticsConfigurationOutcome S3Client::GetBucketAnalyticsConfiguration(const GetBucketAnalyticsConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketAnalyticsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketAnalyticsConfiguration", "Required field: Bucket, is not set");
@@ -1176,112 +715,49 @@ GetBucketAnalyticsConfigurationOutcome S3Client::GetBucketAnalyticsConfiguration
AWS_LOGSTREAM_ERROR("GetBucketAnalyticsConfiguration", "Required field: Id, is not set");
return GetBucketAnalyticsConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketAnalyticsConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketAnalyticsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?analytics");
- uri.SetQueryString(ss.str());
- return GetBucketAnalyticsConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketAnalyticsConfigurationOutcomeCallable S3Client::GetBucketAnalyticsConfigurationCallable(const GetBucketAnalyticsConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketAnalyticsConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketAnalyticsConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketAnalyticsConfigurationAsync(const GetBucketAnalyticsConfigurationRequest& request, const GetBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketAnalyticsConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketAnalyticsConfigurationAsyncHelper(const GetBucketAnalyticsConfigurationRequest& request, const GetBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketAnalyticsConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketAnalyticsConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketCorsOutcome S3Client::GetBucketCors(const GetBucketCorsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketCors, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketCors", "Required field: Bucket, is not set");
return GetBucketCorsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketCorsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketCors, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?cors");
- uri.SetQueryString(ss.str());
- return GetBucketCorsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketCorsOutcomeCallable S3Client::GetBucketCorsCallable(const GetBucketCorsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketCorsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketCors(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketCorsAsync(const GetBucketCorsRequest& request, const GetBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketCorsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketCorsAsyncHelper(const GetBucketCorsRequest& request, const GetBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketCors(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketCorsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketEncryptionOutcome S3Client::GetBucketEncryption(const GetBucketEncryptionRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketEncryption, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketEncryption", "Required field: Bucket, is not set");
return GetBucketEncryptionOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketEncryptionOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketEncryption, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?encryption");
- uri.SetQueryString(ss.str());
- return GetBucketEncryptionOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketEncryptionOutcomeCallable S3Client::GetBucketEncryptionCallable(const GetBucketEncryptionRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketEncryptionOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketEncryption(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketEncryptionAsync(const GetBucketEncryptionRequest& request, const GetBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketEncryptionAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketEncryptionAsyncHelper(const GetBucketEncryptionRequest& request, const GetBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketEncryption(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketEncryptionOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketIntelligentTieringConfigurationOutcome S3Client::GetBucketIntelligentTieringConfiguration(const GetBucketIntelligentTieringConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketIntelligentTieringConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketIntelligentTieringConfiguration", "Required field: Bucket, is not set");
@@ -1292,38 +768,17 @@ GetBucketIntelligentTieringConfigurationOutcome S3Client::GetBucketIntelligentTi
AWS_LOGSTREAM_ERROR("GetBucketIntelligentTieringConfiguration", "Required field: Id, is not set");
return GetBucketIntelligentTieringConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketIntelligentTieringConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketIntelligentTieringConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?intelligent-tiering");
- uri.SetQueryString(ss.str());
- return GetBucketIntelligentTieringConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketIntelligentTieringConfigurationOutcomeCallable S3Client::GetBucketIntelligentTieringConfigurationCallable(const GetBucketIntelligentTieringConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketIntelligentTieringConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketIntelligentTieringConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketIntelligentTieringConfigurationAsync(const GetBucketIntelligentTieringConfigurationRequest& request, const GetBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketIntelligentTieringConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketIntelligentTieringConfigurationAsyncHelper(const GetBucketIntelligentTieringConfigurationRequest& request, const GetBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketIntelligentTieringConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketIntelligentTieringConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketInventoryConfigurationOutcome S3Client::GetBucketInventoryConfiguration(const GetBucketInventoryConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketInventoryConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketInventoryConfiguration", "Required field: Bucket, is not set");
@@ -1334,149 +789,65 @@ GetBucketInventoryConfigurationOutcome S3Client::GetBucketInventoryConfiguration
AWS_LOGSTREAM_ERROR("GetBucketInventoryConfiguration", "Required field: Id, is not set");
return GetBucketInventoryConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketInventoryConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketInventoryConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?inventory");
- uri.SetQueryString(ss.str());
- return GetBucketInventoryConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketInventoryConfigurationOutcomeCallable S3Client::GetBucketInventoryConfigurationCallable(const GetBucketInventoryConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketInventoryConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketInventoryConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketInventoryConfigurationAsync(const GetBucketInventoryConfigurationRequest& request, const GetBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketInventoryConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketInventoryConfigurationAsyncHelper(const GetBucketInventoryConfigurationRequest& request, const GetBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketInventoryConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketInventoryConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketLifecycleConfigurationOutcome S3Client::GetBucketLifecycleConfiguration(const GetBucketLifecycleConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketLifecycleConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketLifecycleConfiguration", "Required field: Bucket, is not set");
return GetBucketLifecycleConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketLifecycleConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketLifecycleConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?lifecycle");
- uri.SetQueryString(ss.str());
- return GetBucketLifecycleConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketLifecycleConfigurationOutcomeCallable S3Client::GetBucketLifecycleConfigurationCallable(const GetBucketLifecycleConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketLifecycleConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketLifecycleConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketLifecycleConfigurationAsync(const GetBucketLifecycleConfigurationRequest& request, const GetBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketLifecycleConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketLifecycleConfigurationAsyncHelper(const GetBucketLifecycleConfigurationRequest& request, const GetBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketLifecycleConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketLifecycleConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketLocationOutcome S3Client::GetBucketLocation(const GetBucketLocationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketLocation, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketLocation", "Required field: Bucket, is not set");
return GetBucketLocationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketLocationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketLocation, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?location");
- uri.SetQueryString(ss.str());
- return GetBucketLocationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketLocationOutcomeCallable S3Client::GetBucketLocationCallable(const GetBucketLocationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketLocationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketLocation(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketLocationAsync(const GetBucketLocationRequest& request, const GetBucketLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketLocationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketLocationAsyncHelper(const GetBucketLocationRequest& request, const GetBucketLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketLocation(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketLocationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketLoggingOutcome S3Client::GetBucketLogging(const GetBucketLoggingRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketLogging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketLogging", "Required field: Bucket, is not set");
return GetBucketLoggingOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketLoggingOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketLogging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?logging");
- uri.SetQueryString(ss.str());
- return GetBucketLoggingOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketLoggingOutcomeCallable S3Client::GetBucketLoggingCallable(const GetBucketLoggingRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketLoggingOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketLogging(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketLoggingAsync(const GetBucketLoggingRequest& request, const GetBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketLoggingAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketLoggingAsyncHelper(const GetBucketLoggingRequest& request, const GetBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketLogging(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketLoggingOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketMetricsConfigurationOutcome S3Client::GetBucketMetricsConfiguration(const GetBucketMetricsConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketMetricsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketMetricsConfiguration", "Required field: Bucket, is not set");
@@ -1487,371 +858,161 @@ GetBucketMetricsConfigurationOutcome S3Client::GetBucketMetricsConfiguration(con
AWS_LOGSTREAM_ERROR("GetBucketMetricsConfiguration", "Required field: Id, is not set");
return GetBucketMetricsConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketMetricsConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketMetricsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?metrics");
- uri.SetQueryString(ss.str());
- return GetBucketMetricsConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketMetricsConfigurationOutcomeCallable S3Client::GetBucketMetricsConfigurationCallable(const GetBucketMetricsConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketMetricsConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketMetricsConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketMetricsConfigurationAsync(const GetBucketMetricsConfigurationRequest& request, const GetBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketMetricsConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketMetricsConfigurationAsyncHelper(const GetBucketMetricsConfigurationRequest& request, const GetBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketMetricsConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketMetricsConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketNotificationConfigurationOutcome S3Client::GetBucketNotificationConfiguration(const GetBucketNotificationConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketNotificationConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketNotificationConfiguration", "Required field: Bucket, is not set");
return GetBucketNotificationConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketNotificationConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketNotificationConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?notification");
- uri.SetQueryString(ss.str());
- return GetBucketNotificationConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketNotificationConfigurationOutcomeCallable S3Client::GetBucketNotificationConfigurationCallable(const GetBucketNotificationConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketNotificationConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketNotificationConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketNotificationConfigurationAsync(const GetBucketNotificationConfigurationRequest& request, const GetBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketNotificationConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketNotificationConfigurationAsyncHelper(const GetBucketNotificationConfigurationRequest& request, const GetBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketNotificationConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketNotificationConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketOwnershipControlsOutcome S3Client::GetBucketOwnershipControls(const GetBucketOwnershipControlsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketOwnershipControls, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketOwnershipControls", "Required field: Bucket, is not set");
return GetBucketOwnershipControlsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketOwnershipControlsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketOwnershipControls, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?ownershipControls");
- uri.SetQueryString(ss.str());
- return GetBucketOwnershipControlsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketOwnershipControlsOutcomeCallable S3Client::GetBucketOwnershipControlsCallable(const GetBucketOwnershipControlsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketOwnershipControlsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketOwnershipControls(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketOwnershipControlsAsync(const GetBucketOwnershipControlsRequest& request, const GetBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketOwnershipControlsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketOwnershipControlsAsyncHelper(const GetBucketOwnershipControlsRequest& request, const GetBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketOwnershipControls(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketOwnershipControlsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketPolicyOutcome S3Client::GetBucketPolicy(const GetBucketPolicyRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketPolicy, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketPolicy", "Required field: Bucket, is not set");
return GetBucketPolicyOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketPolicyOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketPolicy, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?policy");
- uri.SetQueryString(ss.str());
- return GetBucketPolicyOutcome(MakeRequestWithUnparsedResponse(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketPolicyOutcomeCallable S3Client::GetBucketPolicyCallable(const GetBucketPolicyRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketPolicyOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketPolicy(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketPolicyAsync(const GetBucketPolicyRequest& request, const GetBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketPolicyAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketPolicyAsyncHelper(const GetBucketPolicyRequest& request, const GetBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketPolicy(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketPolicyOutcome(MakeRequestWithUnparsedResponse(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketPolicyStatusOutcome S3Client::GetBucketPolicyStatus(const GetBucketPolicyStatusRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketPolicyStatus, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketPolicyStatus", "Required field: Bucket, is not set");
return GetBucketPolicyStatusOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketPolicyStatusOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketPolicyStatus, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?policyStatus");
- uri.SetQueryString(ss.str());
- return GetBucketPolicyStatusOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketPolicyStatusOutcomeCallable S3Client::GetBucketPolicyStatusCallable(const GetBucketPolicyStatusRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketPolicyStatusOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketPolicyStatus(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketPolicyStatusAsync(const GetBucketPolicyStatusRequest& request, const GetBucketPolicyStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketPolicyStatusAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketPolicyStatusAsyncHelper(const GetBucketPolicyStatusRequest& request, const GetBucketPolicyStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketPolicyStatus(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketPolicyStatusOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketReplicationOutcome S3Client::GetBucketReplication(const GetBucketReplicationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketReplication, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketReplication", "Required field: Bucket, is not set");
return GetBucketReplicationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketReplicationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketReplication, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?replication");
- uri.SetQueryString(ss.str());
- return GetBucketReplicationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketReplicationOutcomeCallable S3Client::GetBucketReplicationCallable(const GetBucketReplicationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketReplicationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketReplication(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketReplicationAsync(const GetBucketReplicationRequest& request, const GetBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketReplicationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketReplicationAsyncHelper(const GetBucketReplicationRequest& request, const GetBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketReplication(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketReplicationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketRequestPaymentOutcome S3Client::GetBucketRequestPayment(const GetBucketRequestPaymentRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketRequestPayment, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketRequestPayment", "Required field: Bucket, is not set");
return GetBucketRequestPaymentOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketRequestPaymentOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketRequestPayment, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?requestPayment");
- uri.SetQueryString(ss.str());
- return GetBucketRequestPaymentOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketRequestPaymentOutcomeCallable S3Client::GetBucketRequestPaymentCallable(const GetBucketRequestPaymentRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketRequestPaymentOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketRequestPayment(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketRequestPaymentAsync(const GetBucketRequestPaymentRequest& request, const GetBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketRequestPaymentAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketRequestPaymentAsyncHelper(const GetBucketRequestPaymentRequest& request, const GetBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketRequestPayment(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketRequestPaymentOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketTaggingOutcome S3Client::GetBucketTagging(const GetBucketTaggingRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketTagging", "Required field: Bucket, is not set");
return GetBucketTaggingOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketTaggingOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?tagging");
- uri.SetQueryString(ss.str());
- return GetBucketTaggingOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketTaggingOutcomeCallable S3Client::GetBucketTaggingCallable(const GetBucketTaggingRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketTaggingOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketTagging(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketTaggingAsync(const GetBucketTaggingRequest& request, const GetBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketTaggingAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketTaggingAsyncHelper(const GetBucketTaggingRequest& request, const GetBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketTagging(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketTaggingOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketVersioningOutcome S3Client::GetBucketVersioning(const GetBucketVersioningRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketVersioning, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketVersioning", "Required field: Bucket, is not set");
return GetBucketVersioningOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketVersioningOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketVersioning, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?versioning");
- uri.SetQueryString(ss.str());
- return GetBucketVersioningOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketVersioningOutcomeCallable S3Client::GetBucketVersioningCallable(const GetBucketVersioningRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketVersioningOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketVersioning(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketVersioningAsync(const GetBucketVersioningRequest& request, const GetBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketVersioningAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketVersioningAsyncHelper(const GetBucketVersioningRequest& request, const GetBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketVersioning(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketVersioningOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetBucketWebsiteOutcome S3Client::GetBucketWebsite(const GetBucketWebsiteRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetBucketWebsite, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetBucketWebsite", "Required field: Bucket, is not set");
return GetBucketWebsiteOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetBucketWebsiteOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetBucketWebsite, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?website");
- uri.SetQueryString(ss.str());
- return GetBucketWebsiteOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetBucketWebsiteOutcomeCallable S3Client::GetBucketWebsiteCallable(const GetBucketWebsiteRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetBucketWebsiteOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetBucketWebsite(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetBucketWebsiteAsync(const GetBucketWebsiteRequest& request, const GetBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetBucketWebsiteAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetBucketWebsiteAsyncHelper(const GetBucketWebsiteRequest& request, const GetBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetBucketWebsite(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetBucketWebsiteOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetObjectOutcome S3Client::GetObject(const GetObjectRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetObject", "Required field: Bucket, is not set");
@@ -1862,17 +1023,10 @@ GetObjectOutcome S3Client::GetObject(const GetObjectRequest& request) const
AWS_LOGSTREAM_ERROR("GetObject", "Required field: Key, is not set");
return GetObjectOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetObjectOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return GetObjectOutcome(MakeRequestWithUnparsedResponse(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return GetObjectOutcome(MakeRequestWithUnparsedResponse(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetObjectOutcomeCallable S3Client::GetObjectCallable(const GetObjectRequest& request) const
@@ -1885,16 +1039,15 @@ GetObjectOutcomeCallable S3Client::GetObjectCallable(const GetObjectRequest& req
void S3Client::GetObjectAsync(const GetObjectRequest& request, const GetObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
- m_executor->Submit( [this, request, handler, context](){ this->GetObjectAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetObjectAsyncHelper(const GetObjectRequest& request, const GetObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetObject(request), context);
+ m_executor->Submit( [this, request, handler, context]()
+ {
+ handler(this, request, GetObject(request), context);
+ } );
}
GetObjectAclOutcome S3Client::GetObjectAcl(const GetObjectAclRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetObjectAcl, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetObjectAcl", "Required field: Bucket, is not set");
@@ -1905,41 +1058,45 @@ GetObjectAclOutcome S3Client::GetObjectAcl(const GetObjectAclRequest& request) c
AWS_LOGSTREAM_ERROR("GetObjectAcl", "Required field: Key, is not set");
return GetObjectAclOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetObjectAclOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetObjectAcl, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?acl");
- uri.SetQueryString(ss.str());
- return GetObjectAclOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetObjectAclOutcomeCallable S3Client::GetObjectAclCallable(const GetObjectAclRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetObjectAclOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetObjectAcl(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetObjectAclAsync(const GetObjectAclRequest& request, const GetObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetObjectAclAsyncHelper( request, handler, context ); } );
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetObjectAclOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
-void S3Client::GetObjectAclAsyncHelper(const GetObjectAclRequest& request, const GetObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
+GetObjectAttributesOutcome S3Client::GetObjectAttributes(const GetObjectAttributesRequest& request) const
{
- handler(this, request, GetObjectAcl(request), context);
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetObjectAttributes, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
+ if (!request.BucketHasBeenSet())
+ {
+ AWS_LOGSTREAM_ERROR("GetObjectAttributes", "Required field: Bucket, is not set");
+ return GetObjectAttributesOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
+ }
+ if (!request.KeyHasBeenSet())
+ {
+ AWS_LOGSTREAM_ERROR("GetObjectAttributes", "Required field: Key, is not set");
+ return GetObjectAttributesOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
+ }
+ if (!request.ObjectAttributesHasBeenSet())
+ {
+ AWS_LOGSTREAM_ERROR("GetObjectAttributes", "Required field: ObjectAttributes, is not set");
+ return GetObjectAttributesOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ObjectAttributes]", false));
+ }
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetObjectAttributes, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ Aws::StringStream ss;
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ ss.str("?attributes");
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetObjectAttributesOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetObjectLegalHoldOutcome S3Client::GetObjectLegalHold(const GetObjectLegalHoldRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetObjectLegalHold, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetObjectLegalHold", "Required field: Bucket, is not set");
@@ -1950,78 +1107,34 @@ GetObjectLegalHoldOutcome S3Client::GetObjectLegalHold(const GetObjectLegalHoldR
AWS_LOGSTREAM_ERROR("GetObjectLegalHold", "Required field: Key, is not set");
return GetObjectLegalHoldOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetObjectLegalHoldOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetObjectLegalHold, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?legal-hold");
- uri.SetQueryString(ss.str());
- return GetObjectLegalHoldOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetObjectLegalHoldOutcomeCallable S3Client::GetObjectLegalHoldCallable(const GetObjectLegalHoldRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetObjectLegalHoldOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetObjectLegalHold(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetObjectLegalHoldAsync(const GetObjectLegalHoldRequest& request, const GetObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetObjectLegalHoldAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetObjectLegalHoldAsyncHelper(const GetObjectLegalHoldRequest& request, const GetObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetObjectLegalHold(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetObjectLegalHoldOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetObjectLockConfigurationOutcome S3Client::GetObjectLockConfiguration(const GetObjectLockConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetObjectLockConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetObjectLockConfiguration", "Required field: Bucket, is not set");
return GetObjectLockConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetObjectLockConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetObjectLockConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?object-lock");
- uri.SetQueryString(ss.str());
- return GetObjectLockConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetObjectLockConfigurationOutcomeCallable S3Client::GetObjectLockConfigurationCallable(const GetObjectLockConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetObjectLockConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetObjectLockConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetObjectLockConfigurationAsync(const GetObjectLockConfigurationRequest& request, const GetObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetObjectLockConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetObjectLockConfigurationAsyncHelper(const GetObjectLockConfigurationRequest& request, const GetObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetObjectLockConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetObjectLockConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetObjectRetentionOutcome S3Client::GetObjectRetention(const GetObjectRetentionRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetObjectRetention, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetObjectRetention", "Required field: Bucket, is not set");
@@ -2032,41 +1145,18 @@ GetObjectRetentionOutcome S3Client::GetObjectRetention(const GetObjectRetentionR
AWS_LOGSTREAM_ERROR("GetObjectRetention", "Required field: Key, is not set");
return GetObjectRetentionOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetObjectRetentionOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetObjectRetention, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?retention");
- uri.SetQueryString(ss.str());
- return GetObjectRetentionOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetObjectRetentionOutcomeCallable S3Client::GetObjectRetentionCallable(const GetObjectRetentionRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetObjectRetentionOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetObjectRetention(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetObjectRetentionAsync(const GetObjectRetentionRequest& request, const GetObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetObjectRetentionAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetObjectRetentionAsyncHelper(const GetObjectRetentionRequest& request, const GetObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetObjectRetention(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetObjectRetentionOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetObjectTaggingOutcome S3Client::GetObjectTagging(const GetObjectTaggingRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetObjectTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetObjectTagging", "Required field: Bucket, is not set");
@@ -2077,41 +1167,18 @@ GetObjectTaggingOutcome S3Client::GetObjectTagging(const GetObjectTaggingRequest
AWS_LOGSTREAM_ERROR("GetObjectTagging", "Required field: Key, is not set");
return GetObjectTaggingOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetObjectTaggingOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetObjectTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?tagging");
- uri.SetQueryString(ss.str());
- return GetObjectTaggingOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetObjectTaggingOutcomeCallable S3Client::GetObjectTaggingCallable(const GetObjectTaggingRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetObjectTaggingOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetObjectTagging(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetObjectTaggingAsync(const GetObjectTaggingRequest& request, const GetObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetObjectTaggingAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetObjectTaggingAsyncHelper(const GetObjectTaggingRequest& request, const GetObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetObjectTagging(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetObjectTaggingOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetObjectTorrentOutcome S3Client::GetObjectTorrent(const GetObjectTorrentRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetObjectTorrent, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetObjectTorrent", "Required field: Bucket, is not set");
@@ -2122,114 +1189,47 @@ GetObjectTorrentOutcome S3Client::GetObjectTorrent(const GetObjectTorrentRequest
AWS_LOGSTREAM_ERROR("GetObjectTorrent", "Required field: Key, is not set");
return GetObjectTorrentOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetObjectTorrentOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetObjectTorrent, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?torrent");
- uri.SetQueryString(ss.str());
- return GetObjectTorrentOutcome(MakeRequestWithUnparsedResponse(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetObjectTorrentOutcomeCallable S3Client::GetObjectTorrentCallable(const GetObjectTorrentRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetObjectTorrentOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetObjectTorrent(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetObjectTorrentAsync(const GetObjectTorrentRequest& request, const GetObjectTorrentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetObjectTorrentAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetObjectTorrentAsyncHelper(const GetObjectTorrentRequest& request, const GetObjectTorrentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetObjectTorrent(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetObjectTorrentOutcome(MakeRequestWithUnparsedResponse(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
GetPublicAccessBlockOutcome S3Client::GetPublicAccessBlock(const GetPublicAccessBlockRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetPublicAccessBlock, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("GetPublicAccessBlock", "Required field: Bucket, is not set");
return GetPublicAccessBlockOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return GetPublicAccessBlockOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetPublicAccessBlock, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?publicAccessBlock");
- uri.SetQueryString(ss.str());
- return GetPublicAccessBlockOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-GetPublicAccessBlockOutcomeCallable S3Client::GetPublicAccessBlockCallable(const GetPublicAccessBlockRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< GetPublicAccessBlockOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetPublicAccessBlock(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::GetPublicAccessBlockAsync(const GetPublicAccessBlockRequest& request, const GetPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->GetPublicAccessBlockAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::GetPublicAccessBlockAsyncHelper(const GetPublicAccessBlockRequest& request, const GetPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, GetPublicAccessBlock(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return GetPublicAccessBlockOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
HeadBucketOutcome S3Client::HeadBucket(const HeadBucketRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, HeadBucket, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("HeadBucket", "Required field: Bucket, is not set");
return HeadBucketOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return HeadBucketOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- uri.SetPath(uri.GetPath() + ss.str());
- return HeadBucketOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_HEAD, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-HeadBucketOutcomeCallable S3Client::HeadBucketCallable(const HeadBucketRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< HeadBucketOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->HeadBucket(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::HeadBucketAsync(const HeadBucketRequest& request, const HeadBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->HeadBucketAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::HeadBucketAsyncHelper(const HeadBucketRequest& request, const HeadBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, HeadBucket(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, HeadBucket, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ return HeadBucketOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_HEAD));
}
HeadObjectOutcome S3Client::HeadObject(const HeadObjectRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, HeadObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("HeadObject", "Required field: Bucket, is not set");
@@ -2240,364 +1240,149 @@ HeadObjectOutcome S3Client::HeadObject(const HeadObjectRequest& request) const
AWS_LOGSTREAM_ERROR("HeadObject", "Required field: Key, is not set");
return HeadObjectOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return HeadObjectOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return HeadObjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_HEAD, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-HeadObjectOutcomeCallable S3Client::HeadObjectCallable(const HeadObjectRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< HeadObjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->HeadObject(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::HeadObjectAsync(const HeadObjectRequest& request, const HeadObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->HeadObjectAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::HeadObjectAsyncHelper(const HeadObjectRequest& request, const HeadObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, HeadObject(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, HeadObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return HeadObjectOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_HEAD));
}
ListBucketAnalyticsConfigurationsOutcome S3Client::ListBucketAnalyticsConfigurations(const ListBucketAnalyticsConfigurationsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListBucketAnalyticsConfigurations, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListBucketAnalyticsConfigurations", "Required field: Bucket, is not set");
return ListBucketAnalyticsConfigurationsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListBucketAnalyticsConfigurationsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListBucketAnalyticsConfigurations, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?analytics");
- uri.SetQueryString(ss.str());
- return ListBucketAnalyticsConfigurationsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListBucketAnalyticsConfigurationsOutcomeCallable S3Client::ListBucketAnalyticsConfigurationsCallable(const ListBucketAnalyticsConfigurationsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListBucketAnalyticsConfigurationsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListBucketAnalyticsConfigurations(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListBucketAnalyticsConfigurationsAsync(const ListBucketAnalyticsConfigurationsRequest& request, const ListBucketAnalyticsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListBucketAnalyticsConfigurationsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListBucketAnalyticsConfigurationsAsyncHelper(const ListBucketAnalyticsConfigurationsRequest& request, const ListBucketAnalyticsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListBucketAnalyticsConfigurations(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return ListBucketAnalyticsConfigurationsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
ListBucketIntelligentTieringConfigurationsOutcome S3Client::ListBucketIntelligentTieringConfigurations(const ListBucketIntelligentTieringConfigurationsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListBucketIntelligentTieringConfigurations, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListBucketIntelligentTieringConfigurations", "Required field: Bucket, is not set");
return ListBucketIntelligentTieringConfigurationsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListBucketIntelligentTieringConfigurationsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListBucketIntelligentTieringConfigurations, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?intelligent-tiering");
- uri.SetQueryString(ss.str());
- return ListBucketIntelligentTieringConfigurationsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListBucketIntelligentTieringConfigurationsOutcomeCallable S3Client::ListBucketIntelligentTieringConfigurationsCallable(const ListBucketIntelligentTieringConfigurationsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListBucketIntelligentTieringConfigurationsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListBucketIntelligentTieringConfigurations(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListBucketIntelligentTieringConfigurationsAsync(const ListBucketIntelligentTieringConfigurationsRequest& request, const ListBucketIntelligentTieringConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListBucketIntelligentTieringConfigurationsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListBucketIntelligentTieringConfigurationsAsyncHelper(const ListBucketIntelligentTieringConfigurationsRequest& request, const ListBucketIntelligentTieringConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListBucketIntelligentTieringConfigurations(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return ListBucketIntelligentTieringConfigurationsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
ListBucketInventoryConfigurationsOutcome S3Client::ListBucketInventoryConfigurations(const ListBucketInventoryConfigurationsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListBucketInventoryConfigurations, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListBucketInventoryConfigurations", "Required field: Bucket, is not set");
return ListBucketInventoryConfigurationsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListBucketInventoryConfigurationsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListBucketInventoryConfigurations, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?inventory");
- uri.SetQueryString(ss.str());
- return ListBucketInventoryConfigurationsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListBucketInventoryConfigurationsOutcomeCallable S3Client::ListBucketInventoryConfigurationsCallable(const ListBucketInventoryConfigurationsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListBucketInventoryConfigurationsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListBucketInventoryConfigurations(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListBucketInventoryConfigurationsAsync(const ListBucketInventoryConfigurationsRequest& request, const ListBucketInventoryConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListBucketInventoryConfigurationsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListBucketInventoryConfigurationsAsyncHelper(const ListBucketInventoryConfigurationsRequest& request, const ListBucketInventoryConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListBucketInventoryConfigurations(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return ListBucketInventoryConfigurationsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
ListBucketMetricsConfigurationsOutcome S3Client::ListBucketMetricsConfigurations(const ListBucketMetricsConfigurationsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListBucketMetricsConfigurations, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListBucketMetricsConfigurations", "Required field: Bucket, is not set");
return ListBucketMetricsConfigurationsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListBucketMetricsConfigurationsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListBucketMetricsConfigurations, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?metrics");
- uri.SetQueryString(ss.str());
- return ListBucketMetricsConfigurationsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListBucketMetricsConfigurationsOutcomeCallable S3Client::ListBucketMetricsConfigurationsCallable(const ListBucketMetricsConfigurationsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListBucketMetricsConfigurationsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListBucketMetricsConfigurations(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListBucketMetricsConfigurationsAsync(const ListBucketMetricsConfigurationsRequest& request, const ListBucketMetricsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListBucketMetricsConfigurationsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListBucketMetricsConfigurationsAsyncHelper(const ListBucketMetricsConfigurationsRequest& request, const ListBucketMetricsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListBucketMetricsConfigurations(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return ListBucketMetricsConfigurationsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
ListBucketsOutcome S3Client::ListBuckets() const
{
- Aws::StringStream ss;
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString();
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListBucketsOutcome(computeEndpointOutcome.GetError());
- }
- ss << computeEndpointOutcome.GetResult().endpoint;
- return ListBucketsOutcome(MakeRequest(ss.str(), Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, "ListBuckets", computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListBucketsOutcomeCallable S3Client::ListBucketsCallable() const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListBucketsOutcome() > >(ALLOCATION_TAG, [this](){ return this->ListBuckets(); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListBucketsAsync(const ListBucketsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, handler, context](){ this->ListBucketsAsyncHelper( handler, context ); } );
-}
-
-void S3Client::ListBucketsAsyncHelper(const ListBucketsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, ListBuckets(), context);
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListBuckets, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
+ const Aws::Vector<Aws::Endpoint::EndpointParameter> staticEndpointParameters;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(staticEndpointParameters);
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListBuckets, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ return ListBucketsOutcome(MakeRequest(endpointResolutionOutcome.GetResult(), "ListBuckets", Aws::Http::HttpMethod::HTTP_GET));
}
ListMultipartUploadsOutcome S3Client::ListMultipartUploads(const ListMultipartUploadsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListMultipartUploads, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListMultipartUploads", "Required field: Bucket, is not set");
return ListMultipartUploadsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListMultipartUploadsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListMultipartUploads, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?uploads");
- uri.SetQueryString(ss.str());
- return ListMultipartUploadsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListMultipartUploadsOutcomeCallable S3Client::ListMultipartUploadsCallable(const ListMultipartUploadsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListMultipartUploadsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListMultipartUploads(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListMultipartUploadsAsync(const ListMultipartUploadsRequest& request, const ListMultipartUploadsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListMultipartUploadsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListMultipartUploadsAsyncHelper(const ListMultipartUploadsRequest& request, const ListMultipartUploadsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListMultipartUploads(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return ListMultipartUploadsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
ListObjectVersionsOutcome S3Client::ListObjectVersions(const ListObjectVersionsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListObjectVersions, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListObjectVersions", "Required field: Bucket, is not set");
return ListObjectVersionsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListObjectVersionsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListObjectVersions, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?versions");
- uri.SetQueryString(ss.str());
- return ListObjectVersionsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListObjectVersionsOutcomeCallable S3Client::ListObjectVersionsCallable(const ListObjectVersionsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListObjectVersionsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListObjectVersions(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListObjectVersionsAsync(const ListObjectVersionsRequest& request, const ListObjectVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListObjectVersionsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListObjectVersionsAsyncHelper(const ListObjectVersionsRequest& request, const ListObjectVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListObjectVersions(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return ListObjectVersionsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
ListObjectsOutcome S3Client::ListObjects(const ListObjectsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListObjects, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListObjects", "Required field: Bucket, is not set");
return ListObjectsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListObjectsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- uri.SetPath(uri.GetPath() + ss.str());
- return ListObjectsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListObjectsOutcomeCallable S3Client::ListObjectsCallable(const ListObjectsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListObjectsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListObjects(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListObjectsAsync(const ListObjectsRequest& request, const ListObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListObjectsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListObjectsAsyncHelper(const ListObjectsRequest& request, const ListObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListObjects(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListObjects, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ return ListObjectsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
ListObjectsV2Outcome S3Client::ListObjectsV2(const ListObjectsV2Request& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListObjectsV2, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListObjectsV2", "Required field: Bucket, is not set");
return ListObjectsV2Outcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListObjectsV2Outcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListObjectsV2, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?list-type=2");
- uri.SetQueryString(ss.str());
- return ListObjectsV2Outcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListObjectsV2OutcomeCallable S3Client::ListObjectsV2Callable(const ListObjectsV2Request& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListObjectsV2Outcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListObjectsV2(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListObjectsV2Async(const ListObjectsV2Request& request, const ListObjectsV2ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListObjectsV2AsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListObjectsV2AsyncHelper(const ListObjectsV2Request& request, const ListObjectsV2ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListObjectsV2(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return ListObjectsV2Outcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
ListPartsOutcome S3Client::ListParts(const ListPartsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListParts, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("ListParts", "Required field: Bucket, is not set");
@@ -2613,113 +1398,47 @@ ListPartsOutcome S3Client::ListParts(const ListPartsRequest& request) const
AWS_LOGSTREAM_ERROR("ListParts", "Required field: UploadId, is not set");
return ListPartsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [UploadId]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return ListPartsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return ListPartsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-ListPartsOutcomeCallable S3Client::ListPartsCallable(const ListPartsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< ListPartsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListParts(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::ListPartsAsync(const ListPartsRequest& request, const ListPartsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->ListPartsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::ListPartsAsyncHelper(const ListPartsRequest& request, const ListPartsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, ListParts(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListParts, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return ListPartsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_GET));
}
PutBucketAccelerateConfigurationOutcome S3Client::PutBucketAccelerateConfiguration(const PutBucketAccelerateConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketAccelerateConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketAccelerateConfiguration", "Required field: Bucket, is not set");
return PutBucketAccelerateConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketAccelerateConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketAccelerateConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?accelerate");
- uri.SetQueryString(ss.str());
- return PutBucketAccelerateConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketAccelerateConfigurationOutcomeCallable S3Client::PutBucketAccelerateConfigurationCallable(const PutBucketAccelerateConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketAccelerateConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketAccelerateConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketAccelerateConfigurationAsync(const PutBucketAccelerateConfigurationRequest& request, const PutBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketAccelerateConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketAccelerateConfigurationAsyncHelper(const PutBucketAccelerateConfigurationRequest& request, const PutBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketAccelerateConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketAccelerateConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketAclOutcome S3Client::PutBucketAcl(const PutBucketAclRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketAcl, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketAcl", "Required field: Bucket, is not set");
return PutBucketAclOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketAclOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketAcl, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?acl");
- uri.SetQueryString(ss.str());
- return PutBucketAclOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketAclOutcomeCallable S3Client::PutBucketAclCallable(const PutBucketAclRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketAclOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketAcl(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketAclAsync(const PutBucketAclRequest& request, const PutBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketAclAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketAclAsyncHelper(const PutBucketAclRequest& request, const PutBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketAcl(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketAclOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketAnalyticsConfigurationOutcome S3Client::PutBucketAnalyticsConfiguration(const PutBucketAnalyticsConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketAnalyticsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketAnalyticsConfiguration", "Required field: Bucket, is not set");
@@ -2730,112 +1449,49 @@ PutBucketAnalyticsConfigurationOutcome S3Client::PutBucketAnalyticsConfiguration
AWS_LOGSTREAM_ERROR("PutBucketAnalyticsConfiguration", "Required field: Id, is not set");
return PutBucketAnalyticsConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketAnalyticsConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketAnalyticsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?analytics");
- uri.SetQueryString(ss.str());
- return PutBucketAnalyticsConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketAnalyticsConfigurationOutcomeCallable S3Client::PutBucketAnalyticsConfigurationCallable(const PutBucketAnalyticsConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketAnalyticsConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketAnalyticsConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketAnalyticsConfigurationAsync(const PutBucketAnalyticsConfigurationRequest& request, const PutBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketAnalyticsConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketAnalyticsConfigurationAsyncHelper(const PutBucketAnalyticsConfigurationRequest& request, const PutBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketAnalyticsConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketAnalyticsConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketCorsOutcome S3Client::PutBucketCors(const PutBucketCorsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketCors, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketCors", "Required field: Bucket, is not set");
return PutBucketCorsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketCorsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketCors, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?cors");
- uri.SetQueryString(ss.str());
- return PutBucketCorsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketCorsOutcomeCallable S3Client::PutBucketCorsCallable(const PutBucketCorsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketCorsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketCors(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketCorsAsync(const PutBucketCorsRequest& request, const PutBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketCorsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketCorsAsyncHelper(const PutBucketCorsRequest& request, const PutBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketCors(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketCorsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketEncryptionOutcome S3Client::PutBucketEncryption(const PutBucketEncryptionRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketEncryption, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketEncryption", "Required field: Bucket, is not set");
return PutBucketEncryptionOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketEncryptionOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketEncryption, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?encryption");
- uri.SetQueryString(ss.str());
- return PutBucketEncryptionOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketEncryptionOutcomeCallable S3Client::PutBucketEncryptionCallable(const PutBucketEncryptionRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketEncryptionOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketEncryption(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketEncryptionAsync(const PutBucketEncryptionRequest& request, const PutBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketEncryptionAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketEncryptionAsyncHelper(const PutBucketEncryptionRequest& request, const PutBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketEncryption(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketEncryptionOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketIntelligentTieringConfigurationOutcome S3Client::PutBucketIntelligentTieringConfiguration(const PutBucketIntelligentTieringConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketIntelligentTieringConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketIntelligentTieringConfiguration", "Required field: Bucket, is not set");
@@ -2846,38 +1502,17 @@ PutBucketIntelligentTieringConfigurationOutcome S3Client::PutBucketIntelligentTi
AWS_LOGSTREAM_ERROR("PutBucketIntelligentTieringConfiguration", "Required field: Id, is not set");
return PutBucketIntelligentTieringConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketIntelligentTieringConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketIntelligentTieringConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?intelligent-tiering");
- uri.SetQueryString(ss.str());
- return PutBucketIntelligentTieringConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketIntelligentTieringConfigurationOutcomeCallable S3Client::PutBucketIntelligentTieringConfigurationCallable(const PutBucketIntelligentTieringConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketIntelligentTieringConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketIntelligentTieringConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketIntelligentTieringConfigurationAsync(const PutBucketIntelligentTieringConfigurationRequest& request, const PutBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketIntelligentTieringConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketIntelligentTieringConfigurationAsyncHelper(const PutBucketIntelligentTieringConfigurationRequest& request, const PutBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketIntelligentTieringConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketIntelligentTieringConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketInventoryConfigurationOutcome S3Client::PutBucketInventoryConfiguration(const PutBucketInventoryConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketInventoryConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketInventoryConfiguration", "Required field: Bucket, is not set");
@@ -2888,112 +1523,49 @@ PutBucketInventoryConfigurationOutcome S3Client::PutBucketInventoryConfiguration
AWS_LOGSTREAM_ERROR("PutBucketInventoryConfiguration", "Required field: Id, is not set");
return PutBucketInventoryConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketInventoryConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketInventoryConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?inventory");
- uri.SetQueryString(ss.str());
- return PutBucketInventoryConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketInventoryConfigurationOutcomeCallable S3Client::PutBucketInventoryConfigurationCallable(const PutBucketInventoryConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketInventoryConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketInventoryConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketInventoryConfigurationAsync(const PutBucketInventoryConfigurationRequest& request, const PutBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketInventoryConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketInventoryConfigurationAsyncHelper(const PutBucketInventoryConfigurationRequest& request, const PutBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketInventoryConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketInventoryConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketLifecycleConfigurationOutcome S3Client::PutBucketLifecycleConfiguration(const PutBucketLifecycleConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketLifecycleConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketLifecycleConfiguration", "Required field: Bucket, is not set");
return PutBucketLifecycleConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketLifecycleConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketLifecycleConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?lifecycle");
- uri.SetQueryString(ss.str());
- return PutBucketLifecycleConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketLifecycleConfigurationOutcomeCallable S3Client::PutBucketLifecycleConfigurationCallable(const PutBucketLifecycleConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketLifecycleConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketLifecycleConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketLifecycleConfigurationAsync(const PutBucketLifecycleConfigurationRequest& request, const PutBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketLifecycleConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketLifecycleConfigurationAsyncHelper(const PutBucketLifecycleConfigurationRequest& request, const PutBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketLifecycleConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketLifecycleConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketLoggingOutcome S3Client::PutBucketLogging(const PutBucketLoggingRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketLogging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketLogging", "Required field: Bucket, is not set");
return PutBucketLoggingOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketLoggingOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketLogging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?logging");
- uri.SetQueryString(ss.str());
- return PutBucketLoggingOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketLoggingOutcomeCallable S3Client::PutBucketLoggingCallable(const PutBucketLoggingRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketLoggingOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketLogging(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketLoggingAsync(const PutBucketLoggingRequest& request, const PutBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketLoggingAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketLoggingAsyncHelper(const PutBucketLoggingRequest& request, const PutBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketLogging(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketLoggingOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketMetricsConfigurationOutcome S3Client::PutBucketMetricsConfiguration(const PutBucketMetricsConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketMetricsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketMetricsConfiguration", "Required field: Bucket, is not set");
@@ -3004,334 +1576,145 @@ PutBucketMetricsConfigurationOutcome S3Client::PutBucketMetricsConfiguration(con
AWS_LOGSTREAM_ERROR("PutBucketMetricsConfiguration", "Required field: Id, is not set");
return PutBucketMetricsConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketMetricsConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketMetricsConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?metrics");
- uri.SetQueryString(ss.str());
- return PutBucketMetricsConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketMetricsConfigurationOutcomeCallable S3Client::PutBucketMetricsConfigurationCallable(const PutBucketMetricsConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketMetricsConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketMetricsConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketMetricsConfigurationAsync(const PutBucketMetricsConfigurationRequest& request, const PutBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketMetricsConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketMetricsConfigurationAsyncHelper(const PutBucketMetricsConfigurationRequest& request, const PutBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketMetricsConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketMetricsConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketNotificationConfigurationOutcome S3Client::PutBucketNotificationConfiguration(const PutBucketNotificationConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketNotificationConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketNotificationConfiguration", "Required field: Bucket, is not set");
return PutBucketNotificationConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketNotificationConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketNotificationConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?notification");
- uri.SetQueryString(ss.str());
- return PutBucketNotificationConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketNotificationConfigurationOutcomeCallable S3Client::PutBucketNotificationConfigurationCallable(const PutBucketNotificationConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketNotificationConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketNotificationConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketNotificationConfigurationAsync(const PutBucketNotificationConfigurationRequest& request, const PutBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketNotificationConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketNotificationConfigurationAsyncHelper(const PutBucketNotificationConfigurationRequest& request, const PutBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketNotificationConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketNotificationConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketOwnershipControlsOutcome S3Client::PutBucketOwnershipControls(const PutBucketOwnershipControlsRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketOwnershipControls, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketOwnershipControls", "Required field: Bucket, is not set");
return PutBucketOwnershipControlsOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketOwnershipControlsOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketOwnershipControls, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?ownershipControls");
- uri.SetQueryString(ss.str());
- return PutBucketOwnershipControlsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketOwnershipControlsOutcomeCallable S3Client::PutBucketOwnershipControlsCallable(const PutBucketOwnershipControlsRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketOwnershipControlsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketOwnershipControls(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketOwnershipControlsAsync(const PutBucketOwnershipControlsRequest& request, const PutBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketOwnershipControlsAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketOwnershipControlsAsyncHelper(const PutBucketOwnershipControlsRequest& request, const PutBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketOwnershipControls(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketOwnershipControlsOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketPolicyOutcome S3Client::PutBucketPolicy(const PutBucketPolicyRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketPolicy, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketPolicy", "Required field: Bucket, is not set");
return PutBucketPolicyOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketPolicyOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketPolicy, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?policy");
- uri.SetQueryString(ss.str());
- return PutBucketPolicyOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketPolicyOutcomeCallable S3Client::PutBucketPolicyCallable(const PutBucketPolicyRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketPolicyOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketPolicy(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketPolicyAsync(const PutBucketPolicyRequest& request, const PutBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketPolicyAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketPolicyAsyncHelper(const PutBucketPolicyRequest& request, const PutBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketPolicy(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketPolicyOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketReplicationOutcome S3Client::PutBucketReplication(const PutBucketReplicationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketReplication, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketReplication", "Required field: Bucket, is not set");
return PutBucketReplicationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketReplicationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketReplication, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?replication");
- uri.SetQueryString(ss.str());
- return PutBucketReplicationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketReplicationOutcomeCallable S3Client::PutBucketReplicationCallable(const PutBucketReplicationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketReplicationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketReplication(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketReplicationAsync(const PutBucketReplicationRequest& request, const PutBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketReplicationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketReplicationAsyncHelper(const PutBucketReplicationRequest& request, const PutBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketReplication(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketReplicationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketRequestPaymentOutcome S3Client::PutBucketRequestPayment(const PutBucketRequestPaymentRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketRequestPayment, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketRequestPayment", "Required field: Bucket, is not set");
return PutBucketRequestPaymentOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketRequestPaymentOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketRequestPayment, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?requestPayment");
- uri.SetQueryString(ss.str());
- return PutBucketRequestPaymentOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketRequestPaymentOutcomeCallable S3Client::PutBucketRequestPaymentCallable(const PutBucketRequestPaymentRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketRequestPaymentOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketRequestPayment(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketRequestPaymentAsync(const PutBucketRequestPaymentRequest& request, const PutBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketRequestPaymentAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketRequestPaymentAsyncHelper(const PutBucketRequestPaymentRequest& request, const PutBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketRequestPayment(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketRequestPaymentOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketTaggingOutcome S3Client::PutBucketTagging(const PutBucketTaggingRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketTagging", "Required field: Bucket, is not set");
return PutBucketTaggingOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketTaggingOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?tagging");
- uri.SetQueryString(ss.str());
- return PutBucketTaggingOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketTaggingOutcomeCallable S3Client::PutBucketTaggingCallable(const PutBucketTaggingRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketTaggingOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketTagging(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketTaggingAsync(const PutBucketTaggingRequest& request, const PutBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketTaggingAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketTaggingAsyncHelper(const PutBucketTaggingRequest& request, const PutBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketTagging(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketTaggingOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketVersioningOutcome S3Client::PutBucketVersioning(const PutBucketVersioningRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketVersioning, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketVersioning", "Required field: Bucket, is not set");
return PutBucketVersioningOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketVersioningOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketVersioning, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?versioning");
- uri.SetQueryString(ss.str());
- return PutBucketVersioningOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketVersioningOutcomeCallable S3Client::PutBucketVersioningCallable(const PutBucketVersioningRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketVersioningOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketVersioning(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketVersioningAsync(const PutBucketVersioningRequest& request, const PutBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketVersioningAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketVersioningAsyncHelper(const PutBucketVersioningRequest& request, const PutBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketVersioning(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketVersioningOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutBucketWebsiteOutcome S3Client::PutBucketWebsite(const PutBucketWebsiteRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutBucketWebsite, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutBucketWebsite", "Required field: Bucket, is not set");
return PutBucketWebsiteOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutBucketWebsiteOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutBucketWebsite, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?website");
- uri.SetQueryString(ss.str());
- return PutBucketWebsiteOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutBucketWebsiteOutcomeCallable S3Client::PutBucketWebsiteCallable(const PutBucketWebsiteRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutBucketWebsiteOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutBucketWebsite(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutBucketWebsiteAsync(const PutBucketWebsiteRequest& request, const PutBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutBucketWebsiteAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutBucketWebsiteAsyncHelper(const PutBucketWebsiteRequest& request, const PutBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutBucketWebsite(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutBucketWebsiteOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutObjectOutcome S3Client::PutObject(const PutObjectRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutObject", "Required field: Bucket, is not set");
@@ -3342,17 +1725,10 @@ PutObjectOutcome S3Client::PutObject(const PutObjectRequest& request) const
AWS_LOGSTREAM_ERROR("PutObject", "Required field: Key, is not set");
return PutObjectOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutObjectOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return PutObjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return PutObjectOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutObjectOutcomeCallable S3Client::PutObjectCallable(const PutObjectRequest& request) const
@@ -3365,16 +1741,15 @@ PutObjectOutcomeCallable S3Client::PutObjectCallable(const PutObjectRequest& req
void S3Client::PutObjectAsync(const PutObjectRequest& request, const PutObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
- m_executor->Submit( [this, request, handler, context](){ this->PutObjectAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutObjectAsyncHelper(const PutObjectRequest& request, const PutObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutObject(request), context);
+ m_executor->Submit( [this, request, handler, context]()
+ {
+ handler(this, request, PutObject(request), context);
+ } );
}
PutObjectAclOutcome S3Client::PutObjectAcl(const PutObjectAclRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutObjectAcl, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutObjectAcl", "Required field: Bucket, is not set");
@@ -3385,41 +1760,18 @@ PutObjectAclOutcome S3Client::PutObjectAcl(const PutObjectAclRequest& request) c
AWS_LOGSTREAM_ERROR("PutObjectAcl", "Required field: Key, is not set");
return PutObjectAclOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutObjectAclOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutObjectAcl, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?acl");
- uri.SetQueryString(ss.str());
- return PutObjectAclOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutObjectAclOutcomeCallable S3Client::PutObjectAclCallable(const PutObjectAclRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutObjectAclOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutObjectAcl(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutObjectAclAsync(const PutObjectAclRequest& request, const PutObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutObjectAclAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutObjectAclAsyncHelper(const PutObjectAclRequest& request, const PutObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutObjectAcl(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutObjectAclOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutObjectLegalHoldOutcome S3Client::PutObjectLegalHold(const PutObjectLegalHoldRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutObjectLegalHold, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutObjectLegalHold", "Required field: Bucket, is not set");
@@ -3430,78 +1782,34 @@ PutObjectLegalHoldOutcome S3Client::PutObjectLegalHold(const PutObjectLegalHoldR
AWS_LOGSTREAM_ERROR("PutObjectLegalHold", "Required field: Key, is not set");
return PutObjectLegalHoldOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutObjectLegalHoldOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutObjectLegalHold, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?legal-hold");
- uri.SetQueryString(ss.str());
- return PutObjectLegalHoldOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutObjectLegalHoldOutcomeCallable S3Client::PutObjectLegalHoldCallable(const PutObjectLegalHoldRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutObjectLegalHoldOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutObjectLegalHold(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutObjectLegalHoldAsync(const PutObjectLegalHoldRequest& request, const PutObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutObjectLegalHoldAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutObjectLegalHoldAsyncHelper(const PutObjectLegalHoldRequest& request, const PutObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutObjectLegalHold(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutObjectLegalHoldOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutObjectLockConfigurationOutcome S3Client::PutObjectLockConfiguration(const PutObjectLockConfigurationRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutObjectLockConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutObjectLockConfiguration", "Required field: Bucket, is not set");
return PutObjectLockConfigurationOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutObjectLockConfigurationOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutObjectLockConfiguration, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?object-lock");
- uri.SetQueryString(ss.str());
- return PutObjectLockConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutObjectLockConfigurationOutcomeCallable S3Client::PutObjectLockConfigurationCallable(const PutObjectLockConfigurationRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutObjectLockConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutObjectLockConfiguration(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutObjectLockConfigurationAsync(const PutObjectLockConfigurationRequest& request, const PutObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutObjectLockConfigurationAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutObjectLockConfigurationAsyncHelper(const PutObjectLockConfigurationRequest& request, const PutObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutObjectLockConfiguration(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutObjectLockConfigurationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutObjectRetentionOutcome S3Client::PutObjectRetention(const PutObjectRetentionRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutObjectRetention, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutObjectRetention", "Required field: Bucket, is not set");
@@ -3512,41 +1820,18 @@ PutObjectRetentionOutcome S3Client::PutObjectRetention(const PutObjectRetentionR
AWS_LOGSTREAM_ERROR("PutObjectRetention", "Required field: Key, is not set");
return PutObjectRetentionOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutObjectRetentionOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutObjectRetention, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?retention");
- uri.SetQueryString(ss.str());
- return PutObjectRetentionOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutObjectRetentionOutcomeCallable S3Client::PutObjectRetentionCallable(const PutObjectRetentionRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutObjectRetentionOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutObjectRetention(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutObjectRetentionAsync(const PutObjectRetentionRequest& request, const PutObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutObjectRetentionAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutObjectRetentionAsyncHelper(const PutObjectRetentionRequest& request, const PutObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutObjectRetention(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutObjectRetentionOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutObjectTaggingOutcome S3Client::PutObjectTagging(const PutObjectTaggingRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutObjectTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutObjectTagging", "Required field: Bucket, is not set");
@@ -3557,78 +1842,34 @@ PutObjectTaggingOutcome S3Client::PutObjectTagging(const PutObjectTaggingRequest
AWS_LOGSTREAM_ERROR("PutObjectTagging", "Required field: Key, is not set");
return PutObjectTaggingOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutObjectTaggingOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutObjectTagging, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?tagging");
- uri.SetQueryString(ss.str());
- return PutObjectTaggingOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutObjectTaggingOutcomeCallable S3Client::PutObjectTaggingCallable(const PutObjectTaggingRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutObjectTaggingOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutObjectTagging(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutObjectTaggingAsync(const PutObjectTaggingRequest& request, const PutObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutObjectTaggingAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutObjectTaggingAsyncHelper(const PutObjectTaggingRequest& request, const PutObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutObjectTagging(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutObjectTaggingOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
PutPublicAccessBlockOutcome S3Client::PutPublicAccessBlock(const PutPublicAccessBlockRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutPublicAccessBlock, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("PutPublicAccessBlock", "Required field: Bucket, is not set");
return PutPublicAccessBlockOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Bucket]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return PutPublicAccessBlockOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutPublicAccessBlock, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
ss.str("?publicAccessBlock");
- uri.SetQueryString(ss.str());
- return PutPublicAccessBlockOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-PutPublicAccessBlockOutcomeCallable S3Client::PutPublicAccessBlockCallable(const PutPublicAccessBlockRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< PutPublicAccessBlockOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutPublicAccessBlock(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::PutPublicAccessBlockAsync(const PutPublicAccessBlockRequest& request, const PutPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->PutPublicAccessBlockAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::PutPublicAccessBlockAsyncHelper(const PutPublicAccessBlockRequest& request, const PutPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, PutPublicAccessBlock(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return PutPublicAccessBlockOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
RestoreObjectOutcome S3Client::RestoreObject(const RestoreObjectRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, RestoreObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("RestoreObject", "Required field: Bucket, is not set");
@@ -3639,41 +1880,18 @@ RestoreObjectOutcome S3Client::RestoreObject(const RestoreObjectRequest& request
AWS_LOGSTREAM_ERROR("RestoreObject", "Required field: Key, is not set");
return RestoreObjectOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return RestoreObjectOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, RestoreObject, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?restore");
- uri.SetQueryString(ss.str());
- return RestoreObjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-RestoreObjectOutcomeCallable S3Client::RestoreObjectCallable(const RestoreObjectRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< RestoreObjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->RestoreObject(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::RestoreObjectAsync(const RestoreObjectRequest& request, const RestoreObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->RestoreObjectAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::RestoreObjectAsyncHelper(const RestoreObjectRequest& request, const RestoreObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, RestoreObject(request), context);
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
+ return RestoreObjectOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST));
}
SelectObjectContentOutcome S3Client::SelectObjectContent(SelectObjectContentRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, SelectObjectContent, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("SelectObjectContent", "Required field: Bucket, is not set");
@@ -3684,44 +1902,21 @@ SelectObjectContentOutcome S3Client::SelectObjectContent(SelectObjectContentRequ
AWS_LOGSTREAM_ERROR("SelectObjectContent", "Required field: Key, is not set");
return SelectObjectContentOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Key]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return SelectObjectContentOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, SelectObjectContent, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
ss.str("?select&select-type=2");
- uri.SetQueryString(ss.str());
+ endpointResolutionOutcome.GetResult().SetQueryString(ss.str());
request.SetResponseStreamFactory(
[&] { request.GetEventStreamDecoder().Reset(); return Aws::New<Aws::Utils::Event::EventDecoderStream>(ALLOCATION_TAG, request.GetEventStreamDecoder()); }
);
- return SelectObjectContentOutcome(MakeRequestWithEventStream(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-SelectObjectContentOutcomeCallable S3Client::SelectObjectContentCallable(SelectObjectContentRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< SelectObjectContentOutcome() > >(ALLOCATION_TAG, [this, &request](){ return this->SelectObjectContent(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::SelectObjectContentAsync(SelectObjectContentRequest& request, const SelectObjectContentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, &request, handler, context](){ this->SelectObjectContentAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::SelectObjectContentAsyncHelper(SelectObjectContentRequest& request, const SelectObjectContentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, SelectObjectContent(request), context);
+ return SelectObjectContentOutcome(MakeRequestWithEventStream(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST));
}
UploadPartOutcome S3Client::UploadPart(const UploadPartRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, UploadPart, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("UploadPart", "Required field: Bucket, is not set");
@@ -3742,39 +1937,15 @@ UploadPartOutcome S3Client::UploadPart(const UploadPartRequest& request) const
AWS_LOGSTREAM_ERROR("UploadPart", "Required field: UploadId, is not set");
return UploadPartOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [UploadId]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return UploadPartOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return UploadPartOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-UploadPartOutcomeCallable S3Client::UploadPartCallable(const UploadPartRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< UploadPartOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UploadPart(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::UploadPartAsync(const UploadPartRequest& request, const UploadPartResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->UploadPartAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::UploadPartAsyncHelper(const UploadPartRequest& request, const UploadPartResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, UploadPart(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, UploadPart, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return UploadPartOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
UploadPartCopyOutcome S3Client::UploadPartCopy(const UploadPartCopyRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, UploadPartCopy, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.BucketHasBeenSet())
{
AWS_LOGSTREAM_ERROR("UploadPartCopy", "Required field: Bucket, is not set");
@@ -3800,39 +1971,15 @@ UploadPartCopyOutcome S3Client::UploadPartCopy(const UploadPartCopyRequest& requ
AWS_LOGSTREAM_ERROR("UploadPartCopy", "Required field: UploadId, is not set");
return UploadPartCopyOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [UploadId]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(request.GetBucket());
- if (!computeEndpointOutcome.IsSuccess())
- {
- return UploadPartCopyOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- Aws::StringStream ss;
- ss << "/";
- ss << request.GetKey();
- uri.SetPath(uri.GetPath() + ss.str());
- return UploadPartCopyOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
-}
-
-UploadPartCopyOutcomeCallable S3Client::UploadPartCopyCallable(const UploadPartCopyRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< UploadPartCopyOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UploadPartCopy(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-
-void S3Client::UploadPartCopyAsync(const UploadPartCopyRequest& request, const UploadPartCopyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->UploadPartCopyAsyncHelper( request, handler, context ); } );
-}
-
-void S3Client::UploadPartCopyAsyncHelper(const UploadPartCopyRequest& request, const UploadPartCopyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, UploadPartCopy(request), context);
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, UploadPartCopy, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ endpointResolutionOutcome.GetResult().AddPathSegments(request.GetKey());
+ return UploadPartCopyOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_PUT));
}
WriteGetObjectResponseOutcome S3Client::WriteGetObjectResponse(const WriteGetObjectResponseRequest& request) const
{
+ AWS_OPERATION_CHECK_PTR(m_endpointProvider, WriteGetObjectResponse, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE);
if (!request.RequestRouteHasBeenSet())
{
AWS_LOGSTREAM_ERROR("WriteGetObjectResponse", "Required field: RequestRoute, is not set");
@@ -3843,349 +1990,123 @@ WriteGetObjectResponseOutcome S3Client::WriteGetObjectResponse(const WriteGetObj
AWS_LOGSTREAM_ERROR("WriteGetObjectResponse", "Required field: RequestToken, is not set");
return WriteGetObjectResponseOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [RequestToken]", false));
}
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointStringWithServiceName("s3-object-lambda");
- if (!computeEndpointOutcome.IsSuccess())
- {
- return WriteGetObjectResponseOutcome(computeEndpointOutcome.GetError());
- }
- Aws::Http::URI uri = computeEndpointOutcome.GetResult().endpoint;
- if (m_enableHostPrefixInjection)
- {
- if (request.GetRequestRoute().empty())
- {
- AWS_LOGSTREAM_ERROR("WriteGetObjectResponse", "HostPrefix required field: RequestRoute, is empty");
- return WriteGetObjectResponseOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::INVALID_PARAMETER_VALUE, "INVALID_PARAMETER", "Host prefix field is empty", false));
- }
- uri.SetAuthority("" + request.GetRequestRoute() + "." + uri.GetAuthority());
- if (!Aws::Utils::IsValidHost(uri.GetAuthority()))
- {
- AWS_LOGSTREAM_ERROR("WriteGetObjectResponse", "Invalid DNS host: " << uri.GetAuthority());
- return WriteGetObjectResponseOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::INVALID_PARAMETER_VALUE, "INVALID_PARAMETER", "Host is invalid", false));
- }
- }
- Aws::StringStream ss;
- ss << "/WriteGetObjectResponse";
- uri.SetPath(uri.GetPath() + ss.str());
- return WriteGetObjectResponseOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER, computeEndpointOutcome.GetResult().signerRegion.c_str() /*signerRegionOverride*/, computeEndpointOutcome.GetResult().signerServiceName.c_str() /*signerServiceNameOverride*/));
+ ResolveEndpointOutcome endpointResolutionOutcome = m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams());
+ AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, WriteGetObjectResponse, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage());
+ auto addPrefixErr = endpointResolutionOutcome.GetResult().AddPrefixIfMissing("" + request.GetRequestRoute() + ".");
+ AWS_CHECK(SERVICE_NAME, !addPrefixErr, addPrefixErr->GetMessage(), WriteGetObjectResponseOutcome(addPrefixErr.value()));
+ endpointResolutionOutcome.GetResult().AddPathSegments("/WriteGetObjectResponse");
+ return WriteGetObjectResponseOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST));
}
-WriteGetObjectResponseOutcomeCallable S3Client::WriteGetObjectResponseCallable(const WriteGetObjectResponseRequest& request) const
-{
- auto task = Aws::MakeShared< std::packaged_task< WriteGetObjectResponseOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->WriteGetObjectResponse(request); } );
- auto packagedFunction = [task]() { (*task)(); };
- m_executor->Submit(packagedFunction);
- return task->get_future();
-}
-void S3Client::WriteGetObjectResponseAsync(const WriteGetObjectResponseRequest& request, const WriteGetObjectResponseResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- m_executor->Submit( [this, request, handler, context](){ this->WriteGetObjectResponseAsyncHelper( request, handler, context ); } );
-}
-void S3Client::WriteGetObjectResponseAsyncHelper(const WriteGetObjectResponseRequest& request, const WriteGetObjectResponseResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
-{
- handler(this, request, WriteGetObjectResponse(request), context);
-}
-
-
-
-#include<aws/core/platform/Environment.h>
-
-static const char US_EAST_1_REGIONAL_ENDPOINT_ENV_VAR[] = "AWS_S3_US_EAST_1_REGIONAL_ENDPOINT";
-static const char US_EAST_1_REGIONAL_ENDPOINT_CONFIG_VAR[] = "s3_us_east_1_regional_endpoint";
-static const char S3_USE_ARN_REGION_ENVIRONMENT_VARIABLE[] = "AWS_S3_USE_ARN_REGION";
-static const char S3_USE_ARN_REGION_CONFIG_FILE_OPTION[] = "s3_use_arn_region";
-
-void S3Client::LoadS3SpecificConfig(const Aws::String& profile)
+#include<aws/core/utils/HashingUtils.h>
+Aws::String S3Client::GeneratePresignedUrl(const Aws::String& bucket,
+ const Aws::String& key,
+ Aws::Http::HttpMethod method,
+ uint64_t expirationInSeconds)
{
- if (m_USEast1RegionalEndpointOption == Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::NOT_SET)
- {
- Aws::String option = Aws::Environment::GetEnv(US_EAST_1_REGIONAL_ENDPOINT_ENV_VAR);
- if (option.empty())
- {
- option = Aws::Config::GetCachedConfigValue(profile, US_EAST_1_REGIONAL_ENDPOINT_CONFIG_VAR);
- }
-
- if (Aws::Utils::StringUtils::ToLower(option.c_str()) == "legacy")
- {
- m_USEast1RegionalEndpointOption = Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::LEGACY;
- }
- else // defaults is regional
- {
- m_USEast1RegionalEndpointOption = Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::REGIONAL;
- }
- }
-
- Aws::String s3UseArnRegion = Aws::Environment::GetEnv(S3_USE_ARN_REGION_ENVIRONMENT_VARIABLE);
- if (s3UseArnRegion.empty())
- {
- s3UseArnRegion = Aws::Config::GetCachedConfigValue(profile, S3_USE_ARN_REGION_CONFIG_FILE_OPTION);
- }
-
- if (s3UseArnRegion == "true")
- {
- m_useArnRegion = true;
- }
- else
- {
- if (!s3UseArnRegion.empty() && s3UseArnRegion != "false")
- {
- AWS_LOGSTREAM_WARN("S3Client", "AWS_S3_USE_ARN_REGION in environment variables or s3_use_arn_region in config file"
- << "should either be true of false if specified, otherwise turn off this flag by default.");
- }
- m_useArnRegion = false;
- }
+ return GeneratePresignedUrl(bucket, key, method, {}, expirationInSeconds);
}
-#include<aws/core/utils/HashingUtils.h>
-Aws::String S3Client::GeneratePresignedUrl(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, long long expirationInSeconds)
+Aws::String S3Client::GeneratePresignedUrl(const Aws::String& bucket,
+ const Aws::String& key,
+ Aws::Http::HttpMethod method,
+ const Http::HeaderValueCollection& customizedHeaders,
+ uint64_t expirationInSeconds)
{
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(bucket);
- if (!computeEndpointOutcome.IsSuccess())
+ if (!m_endpointProvider)
{
- AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError());
+ AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Endpoint provider is not initialized.");
return {};
}
- Aws::StringStream ss;
- ss << computeEndpointOutcome.GetResult().endpoint << "/" << key;
- URI uri(ss.str());
- return AWSClient::GeneratePresignedUrl(uri, method, computeEndpointOutcome.GetResult().signerRegion.c_str(), computeEndpointOutcome.GetResult().signerServiceName.c_str(), expirationInSeconds);
-}
-
-Aws::String S3Client::GeneratePresignedUrl(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, const Http::HeaderValueCollection& customizedHeaders, long long expirationInSeconds)
-{
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(bucket);
+ ResolveEndpointOutcome computeEndpointOutcome = m_endpointProvider->ResolveEndpoint({{Aws::String("Bucket"), bucket}});
if (!computeEndpointOutcome.IsSuccess())
{
- AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError());
+ AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError().GetMessage());
return {};
}
- Aws::StringStream ss;
- ss << computeEndpointOutcome.GetResult().endpoint << "/" << key;
- URI uri(ss.str());
- return AWSClient::GeneratePresignedUrl(uri, method, computeEndpointOutcome.GetResult().signerRegion.c_str(), computeEndpointOutcome.GetResult().signerServiceName.c_str(), customizedHeaders, expirationInSeconds);
+ Aws::Endpoint::AWSEndpoint& endpoint = computeEndpointOutcome.GetResult();
+ URI uri(endpoint.GetURL());
+ uri.SetPath(uri.GetPath() + "/" + key);
+ endpoint.SetURL(uri.GetURIString());
+ return AWSClient::GeneratePresignedUrl(endpoint, method, customizedHeaders, expirationInSeconds);
}
-Aws::String S3Client::GeneratePresignedUrlWithSSES3(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, long long expirationInSeconds)
+Aws::String S3Client::GeneratePresignedUrlWithSSES3(const Aws::String& bucket,
+ const Aws::String& key,
+ Aws::Http::HttpMethod method,
+ uint64_t expirationInSeconds)
{
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(bucket);
- if (!computeEndpointOutcome.IsSuccess())
- {
- AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError());
- return {};
- }
- Aws::StringStream ss;
- ss << computeEndpointOutcome.GetResult().endpoint << "/" << key;
- URI uri(ss.str());
Aws::Http::HeaderValueCollection headers;
headers.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION, Aws::S3::Model::ServerSideEncryptionMapper::GetNameForServerSideEncryption(Aws::S3::Model::ServerSideEncryption::AES256));
- return AWSClient::GeneratePresignedUrl(uri, method, computeEndpointOutcome.GetResult().signerRegion.c_str(), computeEndpointOutcome.GetResult().signerServiceName.c_str(), headers, expirationInSeconds);
+ return GeneratePresignedUrl(bucket, key, method, headers, expirationInSeconds);
}
-Aws::String S3Client::GeneratePresignedUrlWithSSES3(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, Http::HeaderValueCollection customizedHeaders, long long expirationInSeconds)
+Aws::String S3Client::GeneratePresignedUrlWithSSES3(const Aws::String& bucket,
+ const Aws::String& key,
+ Aws::Http::HttpMethod method,
+ Http::HeaderValueCollection customizedHeaders,
+ uint64_t expirationInSeconds)
{
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(bucket);
- if (!computeEndpointOutcome.IsSuccess())
- {
- AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError());
- return {};
- }
- Aws::StringStream ss;
- ss << computeEndpointOutcome.GetResult().endpoint << "/" << key;
- URI uri(ss.str());
customizedHeaders.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION, Aws::S3::Model::ServerSideEncryptionMapper::GetNameForServerSideEncryption(Aws::S3::Model::ServerSideEncryption::AES256));
- return AWSClient::GeneratePresignedUrl(uri, method, computeEndpointOutcome.GetResult().signerRegion.c_str(), computeEndpointOutcome.GetResult().signerServiceName.c_str(), customizedHeaders, expirationInSeconds);
+ return GeneratePresignedUrl(bucket, key, method, customizedHeaders, expirationInSeconds);
}
-Aws::String S3Client::GeneratePresignedUrlWithSSEKMS(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, const Aws::String& kmsMasterKeyId, long long expirationInSeconds)
+Aws::String S3Client::GeneratePresignedUrlWithSSEKMS(const Aws::String& bucket,
+ const Aws::String& key,
+ Aws::Http::HttpMethod method,
+ const Aws::String& kmsMasterKeyId,
+ uint64_t expirationInSeconds)
{
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(bucket);
- if (!computeEndpointOutcome.IsSuccess())
- {
- AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError());
- return {};
- }
- Aws::StringStream ss;
- ss << computeEndpointOutcome.GetResult().endpoint << "/" << key;
- URI uri(ss.str());
Aws::Http::HeaderValueCollection headers;
headers.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION, Aws::S3::Model::ServerSideEncryptionMapper::GetNameForServerSideEncryption(Aws::S3::Model::ServerSideEncryption::aws_kms));
headers.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION_AWS_KMS_KEY_ID, kmsMasterKeyId);
- return AWSClient::GeneratePresignedUrl(uri, method, computeEndpointOutcome.GetResult().signerRegion.c_str(), computeEndpointOutcome.GetResult().signerServiceName.c_str(), headers, expirationInSeconds);
+ return GeneratePresignedUrl(bucket, key, method, headers, expirationInSeconds);
}
-Aws::String S3Client::GeneratePresignedUrlWithSSEKMS(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, Http::HeaderValueCollection customizedHeaders, const Aws::String& kmsMasterKeyId, long long expirationInSeconds)
+Aws::String S3Client::GeneratePresignedUrlWithSSEKMS(const Aws::String& bucket,
+ const Aws::String& key,
+ Aws::Http::HttpMethod method,
+ Http::HeaderValueCollection customizedHeaders,
+ const Aws::String& kmsMasterKeyId,
+ uint64_t expirationInSeconds)
{
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(bucket);
- if (!computeEndpointOutcome.IsSuccess())
- {
- AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError());
- return {};
- }
- Aws::StringStream ss;
- ss << computeEndpointOutcome.GetResult().endpoint << "/" << key;
- URI uri(ss.str());
customizedHeaders.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION, Aws::S3::Model::ServerSideEncryptionMapper::GetNameForServerSideEncryption(Aws::S3::Model::ServerSideEncryption::aws_kms));
customizedHeaders.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION_AWS_KMS_KEY_ID, kmsMasterKeyId);
- return AWSClient::GeneratePresignedUrl(uri, method, computeEndpointOutcome.GetResult().signerRegion.c_str(), computeEndpointOutcome.GetResult().signerServiceName.c_str(), customizedHeaders, expirationInSeconds);
+ return GeneratePresignedUrl(bucket, key, method, customizedHeaders, expirationInSeconds);
}
-Aws::String S3Client::GeneratePresignedUrlWithSSEC(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, const Aws::String& base64EncodedAES256Key, long long expirationInSeconds)
+Aws::String S3Client::GeneratePresignedUrlWithSSEC(const Aws::String& bucket,
+ const Aws::String& key,
+ Aws::Http::HttpMethod method,
+ const Aws::String& base64EncodedAES256Key,
+ uint64_t expirationInSeconds)
{
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(bucket);
- if (!computeEndpointOutcome.IsSuccess())
- {
- AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError());
- return {};
- }
- Aws::StringStream ss;
- ss << computeEndpointOutcome.GetResult().endpoint << "/" << key;
- URI uri(ss.str());
Aws::Http::HeaderValueCollection headers;
headers.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION_CUSTOMER_ALGORITHM, Aws::S3::Model::ServerSideEncryptionMapper::GetNameForServerSideEncryption(Aws::S3::Model::ServerSideEncryption::AES256));
headers.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION_CUSTOMER_KEY, base64EncodedAES256Key);
Aws::Utils::ByteBuffer buffer = Aws::Utils::HashingUtils::Base64Decode(base64EncodedAES256Key);
Aws::String strBuffer(reinterpret_cast<char*>(buffer.GetUnderlyingData()), buffer.GetLength());
headers.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION_CUSTOMER_KEY_MD5, Aws::Utils::HashingUtils::Base64Encode(Aws::Utils::HashingUtils::CalculateMD5(strBuffer)));
- return AWSClient::GeneratePresignedUrl(uri, method, computeEndpointOutcome.GetResult().signerRegion.c_str(), computeEndpointOutcome.GetResult().signerServiceName.c_str(), headers, expirationInSeconds);
+ return GeneratePresignedUrl(bucket, key, method, headers, expirationInSeconds);
}
-Aws::String S3Client::GeneratePresignedUrlWithSSEC(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, Http::HeaderValueCollection customizedHeaders, const Aws::String& base64EncodedAES256Key, long long expirationInSeconds)
+Aws::String S3Client::GeneratePresignedUrlWithSSEC(const Aws::String& bucket,
+ const Aws::String& key,
+ Aws::Http::HttpMethod method,
+ Http::HeaderValueCollection customizedHeaders,
+ const Aws::String& base64EncodedAES256Key,
+ uint64_t expirationInSeconds)
{
- ComputeEndpointOutcome computeEndpointOutcome = ComputeEndpointString(bucket);
- if (!computeEndpointOutcome.IsSuccess())
- {
- AWS_LOGSTREAM_ERROR(ALLOCATION_TAG, "Presigned URL generating failed. Encountered error: " << computeEndpointOutcome.GetError());
- return {};
- }
- Aws::StringStream ss;
- ss << computeEndpointOutcome.GetResult().endpoint << "/" << key;
- URI uri(ss.str());
customizedHeaders.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION_CUSTOMER_ALGORITHM, Aws::S3::Model::ServerSideEncryptionMapper::GetNameForServerSideEncryption(Aws::S3::Model::ServerSideEncryption::AES256));
customizedHeaders.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION_CUSTOMER_KEY, base64EncodedAES256Key);
Aws::Utils::ByteBuffer buffer = Aws::Utils::HashingUtils::Base64Decode(base64EncodedAES256Key);
Aws::String strBuffer(reinterpret_cast<char*>(buffer.GetUnderlyingData()), buffer.GetLength());
customizedHeaders.emplace(Aws::S3::SSEHeaders::SERVER_SIDE_ENCRYPTION_CUSTOMER_KEY_MD5, Aws::Utils::HashingUtils::Base64Encode(Aws::Utils::HashingUtils::CalculateMD5(strBuffer)));
- return AWSClient::GeneratePresignedUrl(uri, method, computeEndpointOutcome.GetResult().signerRegion.c_str(), computeEndpointOutcome.GetResult().signerServiceName.c_str(), customizedHeaders, expirationInSeconds);
+ return GeneratePresignedUrl(bucket, key, method, customizedHeaders, expirationInSeconds);
}
-ComputeEndpointOutcome S3Client::ComputeEndpointString(const Aws::String& bucketOrArn) const
-{
- if (m_useDualStack && m_useCustomEndpoint)
- {
- return ComputeEndpointOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION",
- "Dual-stack endpoint is incompatible with a custom endpoint override.", false));
- }
-
- Aws::StringStream ss;
- ss << m_scheme << "://";
- Aws::String bucket = bucketOrArn;
- Aws::String signerRegion = Aws::Region::ComputeSignerRegion(m_region);
- S3ARN arn(bucketOrArn);
-
- if (arn)
- {
- if (!m_useVirtualAddressing)
- {
- return ComputeEndpointOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION",
- "Path style addressing is not compatible with Access Point ARN or Outposts ARN in Bucket field, please consider using virtual addressing for this client instead.", false));
- }
-
- S3ARNOutcome s3ArnOutcome = m_useArnRegion ? arn.Validate() : arn.Validate(m_region.c_str());
- if (!s3ArnOutcome.IsSuccess())
- {
- return ComputeEndpointOutcome(s3ArnOutcome.GetError());
- }
- signerRegion = m_useArnRegion ? arn.GetRegion() : signerRegion;
- if (arn.GetService() == ARNService::S3_OBJECT_LAMBDA)
- {
- if (m_useDualStack)
- {
- return ComputeEndpointOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION",
- "S3 Object Lambda Access Point ARNs do not support dualstack right now.", false));
- }
- ss << S3Endpoint::ForObjectLambdaAccessPointArn(arn, m_useArnRegion ? "" : m_region, m_useDualStack, m_useCustomEndpoint ? m_baseUri : "");
- return ComputeEndpointOutcome(ComputeEndpointResult(ss.str(), signerRegion, ARNService::S3_OBJECT_LAMBDA));
- }
- else if (arn.GetResourceType() == ARNResourceType::ACCESSPOINT)
- {
- ss << S3Endpoint::ForAccessPointArn(arn, m_useArnRegion ? "" : m_region, m_useDualStack, m_useCustomEndpoint ? m_baseUri : "");
- return ComputeEndpointOutcome(ComputeEndpointResult(ss.str(), signerRegion, SERVICE_NAME));
- }
- else if (arn.GetResourceType() == ARNResourceType::OUTPOST)
- {
- if (m_useDualStack)
- {
- return ComputeEndpointOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION",
- "Outposts Access Points do not support dualstack right now.", false));
- }
- ss << S3Endpoint::ForOutpostsArn(arn, m_useArnRegion ? "" : m_region, m_useDualStack, m_useCustomEndpoint ? m_baseUri : "");
- return ComputeEndpointOutcome(ComputeEndpointResult(ss.str(), signerRegion, "s3-outposts"));
- }
- }
-
- // when using virtual hosting of buckets, the bucket name has to follow some rules.
- // Mainly, it has to be a valid DNS label, and it must be lowercase.
- // For more information see http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket
- if(m_useVirtualAddressing && Aws::Utils::IsValidDnsLabel(bucket) &&
- bucket == Aws::Utils::StringUtils::ToLower(bucket.c_str()))
- {
- ss << bucket << "." << m_baseUri;
- }
- else
- {
- ss << m_baseUri << "/" << bucket;
- }
-
- return ComputeEndpointOutcome(ComputeEndpointResult(ss.str(), signerRegion, SERVICE_NAME));
-}
-
-ComputeEndpointOutcome S3Client::ComputeEndpointString() const
-{
- if (m_useDualStack && m_useCustomEndpoint)
- {
- return ComputeEndpointOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION",
- "Dual-stack endpoint is incompatible with a custom endpoint override.", false));
- }
- Aws::StringStream ss;
- ss << m_scheme << "://" << m_baseUri;
- return ComputeEndpointOutcome(ComputeEndpointResult(ss.str(), Aws::Region::ComputeSignerRegion(m_region), SERVICE_NAME));
-}
-
-ComputeEndpointOutcome S3Client::ComputeEndpointStringWithServiceName(const Aws::String& serviceNameOverride) const
-{
- if (serviceNameOverride.empty())
- {
- return ComputeEndpointString();
- }
-
- if (m_useDualStack && m_useCustomEndpoint)
- {
- return ComputeEndpointOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION",
- "Dual-stack endpoint is incompatible with a custom endpoint override.", false));
- }
-
- Aws::StringStream ss;
- ss << m_scheme << "://";
- if (m_useCustomEndpoint)
- {
- ss << m_baseUri;
- return ComputeEndpointOutcome(ComputeEndpointResult(ss.str(), Aws::Region::ComputeSignerRegion(m_region), serviceNameOverride));
- }
- else
- {
- if (m_useDualStack)
- {
- return ComputeEndpointOutcome(Aws::Client::AWSError<S3Errors>(S3Errors::VALIDATION, "VALIDATION",
- "S3 Object Lambda endpoints do not support dualstack right now.", false));
- }
- else
- {
- ss << S3Endpoint::ForRegion(m_region, m_useDualStack, true, serviceNameOverride);
- return ComputeEndpointOutcome(ComputeEndpointResult(ss.str(), Aws::Region::ComputeSignerRegion(m_region), serviceNameOverride));
- }
- }
-}
bool S3Client::MultipartUploadSupported() const
{
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ClientConfiguration.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ClientConfiguration.cpp
new file mode 100644
index 0000000000..0e379b3dad
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ClientConfiguration.cpp
@@ -0,0 +1,89 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/S3ClientConfiguration.h>
+
+namespace Aws
+{
+namespace S3
+{
+
+static const char US_EAST_1_REGIONAL_ENDPOINT_ENV_VAR[] = "AWS_S3_US_EAST_1_REGIONAL_ENDPOINT";
+static const char US_EAST_1_REGIONAL_ENDPOINT_CONFIG_VAR[] = "s3_us_east_1_regional_endpoint";
+static const char S3_DISABLE_MULTIREGION_ACCESS_POINTS_ENV_VAR[] = "AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS";
+static const char S3_DISABLE_MULTIREGION_ACCESS_POINTS_CONFIG_VAR[] = "s3_disable_multiregion_access_points";
+static const char S3_USE_ARN_REGION_ENVIRONMENT_VARIABLE[] = "AWS_S3_USE_ARN_REGION";
+static const char S3_USE_ARN_REGION_CONFIG_FILE_OPTION[] = "s3_use_arn_region";
+
+void S3ClientConfiguration::LoadS3SpecificConfig(const Aws::String& inputProfileName)
+{
+ if (Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::NOT_SET == this->useUSEast1RegionalEndPointOption)
+ {
+ const Aws::String& useUSEastOption =
+ BaseClientConfigClass::LoadConfigFromEnvOrProfile(US_EAST_1_REGIONAL_ENDPOINT_ENV_VAR,
+ inputProfileName,
+ US_EAST_1_REGIONAL_ENDPOINT_CONFIG_VAR,
+ {"legacy", "regional"},
+ "regional");
+ if (useUSEastOption == "legacy") {
+ this->useUSEast1RegionalEndPointOption = Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::LEGACY;
+ } else {
+ this->useUSEast1RegionalEndPointOption = Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::REGIONAL;
+ }
+ }
+
+ Aws::String s3DisableMultiRegionAccessPoints = ClientConfiguration::LoadConfigFromEnvOrProfile(S3_DISABLE_MULTIREGION_ACCESS_POINTS_ENV_VAR,
+ inputProfileName,
+ S3_DISABLE_MULTIREGION_ACCESS_POINTS_CONFIG_VAR,
+ {"true", "false"},
+ "false");
+ if (s3DisableMultiRegionAccessPoints == "true")
+ {
+ disableMultiRegionAccessPoints = true;
+ }
+ Aws::String useArnRegionCfg = ClientConfiguration::LoadConfigFromEnvOrProfile(S3_USE_ARN_REGION_ENVIRONMENT_VARIABLE,
+ inputProfileName,
+ S3_USE_ARN_REGION_CONFIG_FILE_OPTION,
+ {"true", "false"},
+ "false");
+ if (useArnRegionCfg == "true")
+ {
+ useArnRegion = true;
+ }
+}
+
+S3ClientConfiguration::S3ClientConfiguration()
+: BaseClientConfigClass()
+{
+ LoadS3SpecificConfig(this->profileName);
+}
+
+S3ClientConfiguration::S3ClientConfiguration(const char* inputProfileName, bool shouldDisableIMDS)
+: BaseClientConfigClass(inputProfileName, shouldDisableIMDS)
+{
+ LoadS3SpecificConfig(Aws::String(inputProfileName));
+}
+
+S3ClientConfiguration::S3ClientConfiguration(bool useSmartDefaults, const char* defaultMode, bool shouldDisableIMDS)
+: BaseClientConfigClass(useSmartDefaults, defaultMode, shouldDisableIMDS)
+{
+ LoadS3SpecificConfig(this->profileName);
+}
+
+S3ClientConfiguration::S3ClientConfiguration(const Client::ClientConfiguration& config,
+ Client::AWSAuthV4Signer::PayloadSigningPolicy iPayloadSigningPolicy,
+ bool iUseVirtualAddressing,
+ US_EAST_1_REGIONAL_ENDPOINT_OPTION iUseUSEast1RegionalEndPointOption)
+ : BaseClientConfigClass(config),
+ useVirtualAddressing(iUseVirtualAddressing),
+ useUSEast1RegionalEndPointOption(iUseUSEast1RegionalEndPointOption),
+ payloadSigningPolicy(iPayloadSigningPolicy)
+{
+ LoadS3SpecificConfig(this->profileName);
+}
+
+
+} // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Endpoint.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Endpoint.cpp
deleted file mode 100644
index d684a11a44..0000000000
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Endpoint.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/**
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
- * SPDX-License-Identifier: Apache-2.0.
- */
-
-#include <aws/s3/S3Endpoint.h>
-#include <aws/core/utils/memory/stl/AWSStringStream.h>
-#include <aws/core/utils/HashingUtils.h>
-
-using namespace Aws;
-using namespace Aws::S3;
-
-namespace Aws
-{
-namespace S3
-{
-namespace S3Endpoint
-{
- static const int CN_NORTH_1_HASH = Aws::Utils::HashingUtils::HashString("cn-north-1");
- static const int CN_NORTHWEST_1_HASH = Aws::Utils::HashingUtils::HashString("cn-northwest-1");
- static const int US_ISO_EAST_1_HASH = Aws::Utils::HashingUtils::HashString("us-iso-east-1");
- static const int US_ISOB_EAST_1_HASH = Aws::Utils::HashingUtils::HashString("us-isob-east-1");
-
- static const int FIPS_US_GOV_WEST_1_HASH = Aws::Utils::HashingUtils::HashString("fips-us-gov-west-1");
- static const int US_GOV_WEST_1_HASH = Aws::Utils::HashingUtils::HashString("us-gov-west-1");
- static const int US_GOV_EAST_1_HASH = Aws::Utils::HashingUtils::HashString("us-gov-east-1");
- static const int S3_EXTERNAL_1_HASH = Aws::Utils::HashingUtils::HashString("s3-external-1");
- static const int US_EAST_1_HASH = Aws::Utils::HashingUtils::HashString("us-east-1");
- static const int AWS_GLOBAL_HASH = Aws::Utils::HashingUtils::HashString("aws-global");
-
- Aws::String ForAccessPointArn(const S3ARN& arn, const Aws::String& regionNameOverride, bool useDualStack, const Aws::String& endpointOverride)
- {
- Aws::StringStream ss;
-
- if (!endpointOverride.empty())
- {
- ss << arn.GetResourceId() << "-" << arn.GetAccountId() << "." << endpointOverride;
- return ss.str();
- }
-
- const Aws::String& region = regionNameOverride.empty() ? arn.GetRegion() : regionNameOverride;
- auto hash = Aws::Utils::HashingUtils::HashString(region.c_str());
-
- ss << arn.GetResourceId() << "-" << arn.GetAccountId() << ".s3-accesspoint.";
- if (useDualStack)
- {
- ss << "dualstack.";
- }
- ss << region << "." << "amazonaws.com";
-
- if (hash == CN_NORTH_1_HASH || hash == CN_NORTHWEST_1_HASH)
- {
- ss << ".cn";
- }
-
- return ss.str();
- }
-
- Aws::String ForOutpostsArn(const S3ARN& arn, const Aws::String& regionNameOverride, bool useDualStack, const Aws::String& endpointOverride)
- {
- AWS_UNREFERENCED_PARAM(useDualStack);
- assert(!useDualStack);
- Aws::StringStream ss;
-
- if (!endpointOverride.empty())
- {
- ss << arn.GetSubResourceId() << "-" << arn.GetAccountId() << "." << arn.GetResourceId() << "." << endpointOverride;
- return ss.str();
- }
-
- const Aws::String& region = regionNameOverride.empty() ? arn.GetRegion() : regionNameOverride;
- auto hash = Aws::Utils::HashingUtils::HashString(region.c_str());
-
- ss << arn.GetSubResourceId() << "-" << arn.GetAccountId() << "." << arn.GetResourceId() << "." << ARNService::S3_OUTPOSTS << "." << region << "." << "amazonaws.com";
-
- if (hash == CN_NORTH_1_HASH || hash == CN_NORTHWEST_1_HASH)
- {
- ss << ".cn";
- }
-
- return ss.str();
- }
-
- Aws::String ForObjectLambdaAccessPointArn(const S3ARN& arn, const Aws::String& regionNameOverride, bool useDualStack, const Aws::String& endpointOverride)
- {
- AWS_UNREFERENCED_PARAM(useDualStack);
- assert(!useDualStack);
- Aws::StringStream ss;
-
- if (!endpointOverride.empty())
- {
- ss << arn.GetResourceId() << "-" << arn.GetAccountId() << "." << endpointOverride;
- return ss.str();
- }
-
- Aws::String region = regionNameOverride.empty() ? arn.GetRegion() : regionNameOverride;
- Aws::String fipsSuffix = "";
- if (region.size() >= 5 && region.compare(0, 5, "fips-") == 0)
- {
- region = region.substr(5);
- fipsSuffix = "-fips";
- }
- else if (region.size() >= 5 && region.compare(region.size() - 5, 5, "-fips") == 0)
- {
- region = region.substr(0, region.size() - 5);
- fipsSuffix = "-fips";
- }
-
- ss << arn.GetResourceId() << "-" << arn.GetAccountId() << "." << ARNService::S3_OBJECT_LAMBDA << fipsSuffix << "." << region << "." << "amazonaws.com";
-
- auto hash = Aws::Utils::HashingUtils::HashString(region.c_str());
- if (hash == CN_NORTH_1_HASH || hash == CN_NORTHWEST_1_HASH)
- {
- ss << ".cn";
- }
-
- return ss.str();
- }
-
- Aws::String ForRegion(const Aws::String& regionName, bool useDualStack, bool USEast1UseRegionalEndpoint, const Aws::String& serviceName)
- {
- auto hash = Aws::Utils::HashingUtils::HashString(regionName.c_str());
-
- if (!serviceName.empty())
- {
- assert(!useDualStack);
-
- Aws::StringStream ss;
- ss << serviceName;
-
- if (regionName.size() >= 5 && regionName.compare(0, 5, "fips-") == 0)
- {
- ss << "-fips." << regionName.substr(5);
- }
- else if (regionName.size() >= 5 && regionName.compare(regionName.size() - 5, 5, "-fips") == 0)
- {
- ss << "-fips." << regionName.substr(0, regionName.size() - 5);
- }
- else if (hash == AWS_GLOBAL_HASH || hash == S3_EXTERNAL_1_HASH)
- {
- ss << "." << Aws::Region::US_EAST_1;
- }
- else
- {
- ss << "." << regionName;
- }
- ss << ".amazonaws.com";
- if (hash == CN_NORTH_1_HASH || hash == CN_NORTHWEST_1_HASH)
- {
- ss << ".cn";
- }
- return ss.str();
- }
-
- if(!useDualStack)
- {
- if(hash == FIPS_US_GOV_WEST_1_HASH)
- {
- return "s3-fips-us-gov-west-1.amazonaws.com";
- }
- if(hash == US_GOV_WEST_1_HASH)
- {
- return "s3.us-gov-west-1.amazonaws.com";
- }
- if(hash == US_GOV_EAST_1_HASH)
- {
- return "s3.us-gov-east-1.amazonaws.com";
- }
- if (hash == AWS_GLOBAL_HASH)
- {
- return "s3.amazonaws.com";
- }
- if (hash == S3_EXTERNAL_1_HASH)
- {
- return "s3-external-1.amazonaws.com";
- }
- if(hash == US_EAST_1_HASH)
- {
- if (USEast1UseRegionalEndpoint)
- {
- return "s3.us-east-1.amazonaws.com";
- }
- else
- {
- return "s3.amazonaws.com";
- }
- }
- }
- Aws::StringStream ss;
- ss << "s3" << ".";
-
- if(useDualStack)
- {
- ss << "dualstack.";
- }
-
- ss << regionName;
-
- if (hash == CN_NORTH_1_HASH || hash == CN_NORTHWEST_1_HASH)
- {
- ss << ".amazonaws.com.cn";
- }
- else if (hash == US_ISO_EAST_1_HASH)
- {
- ss << ".c2s.ic.gov";
- }
- else if (hash == US_ISOB_EAST_1_HASH)
- {
- ss << ".sc2s.sgov.gov";
- }
- else
- {
- ss << ".amazonaws.com";
- }
-
- return ss.str();
- }
-
-} // namespace S3Endpoint
-} // namespace S3
-} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3EndpointProvider.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3EndpointProvider.cpp
new file mode 100644
index 0000000000..32803417d4
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3EndpointProvider.cpp
@@ -0,0 +1,72 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/S3EndpointProvider.h>
+
+namespace Aws
+{
+namespace S3
+{
+namespace Endpoint
+{
+ void S3ClientContextParameters::SetForcePathStyle(bool value)
+ {
+ return SetBooleanParameter(Aws::String("ForcePathStyle"), value);
+ }
+ const S3ClientContextParameters::ClientContextParameters::EndpointParameter& S3ClientContextParameters::GetForcePathStyle() const
+ {
+ return GetParameter("ForcePathStyle");
+ }
+ void S3ClientContextParameters::SetDisableMultiRegionAccessPoints(bool value)
+ {
+ return SetBooleanParameter(Aws::String("DisableMultiRegionAccessPoints"), value);
+ }
+ const S3ClientContextParameters::ClientContextParameters::EndpointParameter& S3ClientContextParameters::GetDisableMultiRegionAccessPoints() const
+ {
+ return GetParameter("DisableMultiRegionAccessPoints");
+ }
+ void S3ClientContextParameters::SetUseArnRegion(bool value)
+ {
+ return SetBooleanParameter(Aws::String("UseArnRegion"), value);
+ }
+ const S3ClientContextParameters::ClientContextParameters::EndpointParameter& S3ClientContextParameters::GetUseArnRegion() const
+ {
+ return GetParameter("UseArnRegion");
+ }
+ void S3ClientContextParameters::SetAccelerate(bool value)
+ {
+ return SetBooleanParameter(Aws::String("Accelerate"), value);
+ }
+ const S3ClientContextParameters::ClientContextParameters::EndpointParameter& S3ClientContextParameters::GetAccelerate() const
+ {
+ return GetParameter("Accelerate");
+ }
+ void S3BuiltInParameters::SetFromClientConfiguration(const S3ClientConfiguration& config)
+ {
+ SetFromClientConfiguration(static_cast<const S3ClientConfiguration::BaseClientConfigClass&>(config));
+
+ static const char* AWS_S3_USE_GLOBAL_ENDPOINT = "UseGlobalEndpoint";
+ if (config.useUSEast1RegionalEndPointOption == US_EAST_1_REGIONAL_ENDPOINT_OPTION::LEGACY) {
+ SetBooleanParameter(AWS_S3_USE_GLOBAL_ENDPOINT, true);
+ }
+
+ // Not supported by this SDK:
+ // static const char* AWS_S3_ACCELERATE = "Accelerate";
+ // static const char* AWS_S3_FORCE_PATH_STYLE = "ForcePathStyle";
+
+ static const char* AWS_S3_USE_ARN_REGION = "UseArnRegion";
+ SetBooleanParameter(AWS_S3_USE_ARN_REGION, config.useArnRegion);
+
+ static const char* AWS_S3_DISABLE_MRAP = "DisableMultiRegionAccessPoints";
+ SetBooleanParameter(AWS_S3_DISABLE_MRAP, config.disableMultiRegionAccessPoints);
+
+ static const char* AWS_S3_FORCE_PATH_STYLE = "ForcePathStyle";
+ if (!config.useVirtualAddressing) {
+ SetBooleanParameter(AWS_S3_FORCE_PATH_STYLE, true);
+ }
+ }
+} // namespace Endpoint
+} // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3EndpointRules.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3EndpointRules.cpp
new file mode 100644
index 0000000000..d855b8910f
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3EndpointRules.cpp
@@ -0,0 +1,4191 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/S3EndpointRules.h>
+#include <aws/core/utils/memory/stl/AWSArray.h>
+
+namespace Aws
+{
+namespace S3
+{
+const size_t S3EndpointRules::RulesBlobStrLen = 104103;
+const size_t S3EndpointRules::RulesBlobSize = 104104;
+
+using RulesBlobT = Aws::Array<const char, S3EndpointRules::RulesBlobSize>;
+static constexpr RulesBlobT RulesBlob = {{
+'{','"','v','e','r','s','i','o','n','"',':','"','1','.','0','"',',','"','p','a','r','a','m','e','t',
+'e','r','s','"',':','{','"','B','u','c','k','e','t','"',':','{','"','r','e','q','u','i','r','e','d',
+'"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"',':','"',
+'T','h','e',' ','S','3',' ','b','u','c','k','e','t',' ','u','s','e','d',' ','t','o',' ','s','e','n',
+'d',' ','t','h','e',' ','r','e','q','u','e','s','t','.',' ','T','h','i','s',' ','i','s',' ','a','n',
+' ','o','p','t','i','o','n','a','l',' ','p','a','r','a','m','e','t','e','r',' ','t','h','a','t',' ',
+'w','i','l','l',' ','b','e',' ','s','e','t',' ','a','u','t','o','m','a','t','i','c','a','l','l','y',
+' ','f','o','r',' ','o','p','e','r','a','t','i','o','n','s',' ','t','h','a','t',' ','a','r','e',' ',
+'s','c','o','p','e','d',' ','t','o',' ','a','n',' ','S','3',' ','b','u','c','k','e','t','.','"',',',
+'"','t','y','p','e','"',':','"','S','t','r','i','n','g','"','}',',','"','R','e','g','i','o','n','"',
+':','{','"','b','u','i','l','t','I','n','"',':','"','A','W','S',':',':','R','e','g','i','o','n','"',
+',','"','r','e','q','u','i','r','e','d','"',':','f','a','l','s','e',',','"','d','o','c','u','m','e',
+'n','t','a','t','i','o','n','"',':','"','T','h','e',' ','A','W','S',' ','r','e','g','i','o','n',' ',
+'u','s','e','d',' ','t','o',' ','d','i','s','p','a','t','c','h',' ','t','h','e',' ','r','e','q','u',
+'e','s','t','.','"',',','"','t','y','p','e','"',':','"','S','t','r','i','n','g','"','}',',','"','U',
+'s','e','F','I','P','S','"',':','{','"','b','u','i','l','t','I','n','"',':','"','A','W','S',':',':',
+'U','s','e','F','I','P','S','"',',','"','r','e','q','u','i','r','e','d','"',':','t','r','u','e',',',
+'"','d','e','f','a','u','l','t','"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t',
+'a','t','i','o','n','"',':','"','W','h','e','n',' ','t','r','u','e',',',' ','s','e','n','d',' ','t',
+'h','i','s',' ','r','e','q','u','e','s','t',' ','t','o',' ','t','h','e',' ','F','I','P','S','-','c',
+'o','m','p','l','i','a','n','t',' ','r','e','g','i','o','n','a','l',' ','e','n','d','p','o','i','n',
+'t','.',' ','I','f',' ','t','h','e',' ','c','o','n','f','i','g','u','r','e','d',' ','e','n','d','p',
+'o','i','n','t',' ','d','o','e','s',' ','n','o','t',' ','h','a','v','e',' ','a',' ','F','I','P','S',
+' ','c','o','m','p','l','i','a','n','t',' ','e','n','d','p','o','i','n','t',',',' ','d','i','s','p',
+'a','t','c','h','i','n','g',' ','t','h','e',' ','r','e','q','u','e','s','t',' ','w','i','l','l',' ',
+'r','e','t','u','r','n',' ','a','n',' ','e','r','r','o','r','.','"',',','"','t','y','p','e','"',':',
+'"','B','o','o','l','e','a','n','"','}',',','"','U','s','e','D','u','a','l','S','t','a','c','k','"',
+':','{','"','b','u','i','l','t','I','n','"',':','"','A','W','S',':',':','U','s','e','D','u','a','l',
+'S','t','a','c','k','"',',','"','r','e','q','u','i','r','e','d','"',':','t','r','u','e',',','"','d',
+'e','f','a','u','l','t','"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t',
+'i','o','n','"',':','"','W','h','e','n',' ','t','r','u','e',',',' ','u','s','e',' ','t','h','e',' ',
+'d','u','a','l','-','s','t','a','c','k',' ','e','n','d','p','o','i','n','t','.',' ','I','f',' ','t',
+'h','e',' ','c','o','n','f','i','g','u','r','e','d',' ','e','n','d','p','o','i','n','t',' ','d','o',
+'e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','d','u','a','l','-','s','t','a','c','k',
+',',' ','d','i','s','p','a','t','c','h','i','n','g',' ','t','h','e',' ','r','e','q','u','e','s','t',
+' ','M','A','Y',' ','r','e','t','u','r','n',' ','a','n',' ','e','r','r','o','r','.','"',',','"','t',
+'y','p','e','"',':','"','B','o','o','l','e','a','n','"','}',',','"','E','n','d','p','o','i','n','t',
+'"',':','{','"','b','u','i','l','t','I','n','"',':','"','S','D','K',':',':','E','n','d','p','o','i',
+'n','t','"',',','"','r','e','q','u','i','r','e','d','"',':','f','a','l','s','e',',','"','d','o','c',
+'u','m','e','n','t','a','t','i','o','n','"',':','"','O','v','e','r','r','i','d','e',' ','t','h','e',
+' ','e','n','d','p','o','i','n','t',' ','u','s','e','d',' ','t','o',' ','s','e','n','d',' ','t','h',
+'i','s',' ','r','e','q','u','e','s','t','"',',','"','t','y','p','e','"',':','"','S','t','r','i','n',
+'g','"','}',',','"','F','o','r','c','e','P','a','t','h','S','t','y','l','e','"',':','{','"','b','u',
+'i','l','t','I','n','"',':','"','A','W','S',':',':','S','3',':',':','F','o','r','c','e','P','a','t',
+'h','S','t','y','l','e','"',',','"','r','e','q','u','i','r','e','d','"',':','f','a','l','s','e',',',
+'"','d','o','c','u','m','e','n','t','a','t','i','o','n','"',':','"','W','h','e','n',' ','t','r','u',
+'e',',',' ','f','o','r','c','e',' ','a',' ','p','a','t','h','-','s','t','y','l','e',' ','e','n','d',
+'p','o','i','n','t',' ','t','o',' ','b','e',' ','u','s','e','d',' ','w','h','e','r','e',' ','t','h',
+'e',' ','b','u','c','k','e','t',' ','n','a','m','e',' ','i','s',' ','p','a','r','t',' ','o','f',' ',
+'t','h','e',' ','p','a','t','h','.','"',',','"','t','y','p','e','"',':','"','B','o','o','l','e','a',
+'n','"','}',',','"','A','c','c','e','l','e','r','a','t','e','"',':','{','"','b','u','i','l','t','I',
+'n','"',':','"','A','W','S',':',':','S','3',':',':','A','c','c','e','l','e','r','a','t','e','"',',',
+'"','r','e','q','u','i','r','e','d','"',':','t','r','u','e',',','"','d','e','f','a','u','l','t','"',
+':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"',':','"','W',
+'h','e','n',' ','t','r','u','e',',',' ','u','s','e',' ','S','3',' ','A','c','c','e','l','e','r','a',
+'t','e','.',' ','N','O','T','E',':',' ','N','o','t',' ','a','l','l',' ','r','e','g','i','o','n','s',
+' ','s','u','p','p','o','r','t',' ','S','3',' ','a','c','c','e','l','e','r','a','t','e','.','"',',',
+'"','t','y','p','e','"',':','"','B','o','o','l','e','a','n','"','}',',','"','U','s','e','G','l','o',
+'b','a','l','E','n','d','p','o','i','n','t','"',':','{','"','b','u','i','l','t','I','n','"',':','"',
+'A','W','S',':',':','S','3',':',':','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n',
+'t','"',',','"','r','e','q','u','i','r','e','d','"',':','t','r','u','e',',','"','d','e','f','a','u',
+'l','t','"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"',
+':','"','W','h','e','t','h','e','r',' ','t','h','e',' ','g','l','o','b','a','l',' ','e','n','d','p',
+'o','i','n','t',' ','s','h','o','u','l','d',' ','b','e',' ','u','s','e','d',',',' ','r','a','t','h',
+'e','r',' ','t','h','e','n',' ','t','h','e',' ','r','e','g','i','o','n','a','l',' ','e','n','d','p',
+'o','i','n','t',' ','f','o','r',' ','u','s','-','e','a','s','t','-','1','.','"',',','"','t','y','p',
+'e','"',':','"','B','o','o','l','e','a','n','"','}',',','"','U','s','e','O','b','j','e','c','t','L',
+'a','m','b','d','a','E','n','d','p','o','i','n','t','"',':','{','"','r','e','q','u','i','r','e','d',
+'"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"',':','"',
+'I','n','t','e','r','n','a','l',' ','p','a','r','a','m','e','t','e','r',' ','t','o',' ','u','s','e',
+' ','o','b','j','e','c','t',' ','l','a','m','b','d','a',' ','e','n','d','p','o','i','n','t',' ','f',
+'o','r',' ','a','n',' ','o','p','e','r','a','t','i','o','n',' ','(','e','g',':',' ','W','r','i','t',
+'e','G','e','t','O','b','j','e','c','t','R','e','s','p','o','n','s','e',')','"',',','"','t','y','p',
+'e','"',':','"','B','o','o','l','e','a','n','"','}',',','"','D','i','s','a','b','l','e','A','c','c',
+'e','s','s','P','o','i','n','t','s','"',':','{','"','r','e','q','u','i','r','e','d','"',':','f','a',
+'l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"',':','"','I','n','t','e',
+'r','n','a','l',' ','p','a','r','a','m','e','t','e','r',' ','t','o',' ','d','i','s','a','b','l','e',
+' ','A','c','c','e','s','s',' ','P','o','i','n','t',' ','B','u','c','k','e','t','s','"',',','"','t',
+'y','p','e','"',':','"','B','o','o','l','e','a','n','"','}',',','"','D','i','s','a','b','l','e','M',
+'u','l','t','i','R','e','g','i','o','n','A','c','c','e','s','s','P','o','i','n','t','s','"',':','{',
+'"','b','u','i','l','t','I','n','"',':','"','A','W','S',':',':','S','3',':',':','D','i','s','a','b',
+'l','e','M','u','l','t','i','R','e','g','i','o','n','A','c','c','e','s','s','P','o','i','n','t','s',
+'"',',','"','r','e','q','u','i','r','e','d','"',':','t','r','u','e',',','"','d','e','f','a','u','l',
+'t','"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"',':',
+'"','W','h','e','t','h','e','r',' ','m','u','l','t','i','-','r','e','g','i','o','n',' ','a','c','c',
+'e','s','s',' ','p','o','i','n','t','s',' ','(','M','R','A','P',')',' ','s','h','o','u','l','d',' ',
+'b','e',' ','d','i','s','a','b','l','e','d','.','"',',','"','t','y','p','e','"',':','"','B','o','o',
+'l','e','a','n','"','}',',','"','U','s','e','A','r','n','R','e','g','i','o','n','"',':','{','"','b',
+'u','i','l','t','I','n','"',':','"','A','W','S',':',':','S','3',':',':','U','s','e','A','r','n','R',
+'e','g','i','o','n','"',',','"','r','e','q','u','i','r','e','d','"',':','f','a','l','s','e',',','"',
+'d','o','c','u','m','e','n','t','a','t','i','o','n','"',':','"','W','h','e','n',' ','a','n',' ','A',
+'c','c','e','s','s',' ','P','o','i','n','t',' ','A','R','N',' ','i','s',' ','p','r','o','v','i','d',
+'e','d',' ','a','n','d',' ','t','h','i','s',' ','f','l','a','g',' ','i','s',' ','e','n','a','b','l',
+'e','d',',',' ','t','h','e',' ','S','D','K',' ','M','U','S','T',' ','u','s','e',' ','t','h','e',' ',
+'A','R','N','\'','s',' ','r','e','g','i','o','n',' ','w','h','e','n',' ','c','o','n','s','t','r','u',
+'c','t','i','n','g',' ','t','h','e',' ','e','n','d','p','o','i','n','t',' ','i','n','s','t','e','a',
+'d',' ','o','f',' ','t','h','e',' ','c','l','i','e','n','t','\'','s',' ','c','o','n','f','i','g','u',
+'r','e','d',' ','r','e','g','i','o','n','.','"',',','"','t','y','p','e','"',':','"','B','o','o','l',
+'e','a','n','"','}','}',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e',
+'"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s',
+'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k',
+'e','t','"','}',']','}',',','{','"','f','n','"',':','"','s','u','b','s','t','r','i','n','g','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k','e','t','"','}',',',
+'4','9',',','5','0',',','t','r','u','e',']',',','"','a','s','s','i','g','n','"',':','"','h','a','r',
+'d','w','a','r','e','T','y','p','e','"','}',',','{','"','f','n','"',':','"','s','u','b','s','t','r',
+'i','n','g','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k',
+'e','t','"','}',',','8',',','1','2',',','t','r','u','e',']',',','"','a','s','s','i','g','n','"',':',
+'"','r','e','g','i','o','n','P','r','e','f','i','x','"','}',',','{','"','f','n','"',':','"','s','u',
+'b','s','t','r','i','n','g','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'B','u','c','k','e','t','"','}',',','0',',','7',',','t','r','u','e',']',',','"','a','s','s','i','g',
+'n','"',':','"','a','b','b','a','S','u','f','f','i','x','"','}',',','{','"','f','n','"',':','"','s',
+'u','b','s','t','r','i','n','g','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','B','u','c','k','e','t','"','}',',','3','2',',','4','9',',','t','r','u','e',']',',','"','a','s',
+'s','i','g','n','"',':','"','o','u','t','p','o','s','t','I','d','"','}',',','{','"','f','n','"',':',
+'"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n','"',
+':','"','r','e','g','i','o','n','P','a','r','t','i','t','i','o','n','"','}',',','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','a','b','b','a','S','u','f','f','i','x','"','}',',','"','-','-','o','p',
+'-','s','3','"',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','o','u','t','p','o','s','t','I','d','"','}',',','f',
+'a','l','s','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t',
+'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','h','a',
+'r','d','w','a','r','e','T','y','p','e','"','}',',','"','e','"',']','}',']',',','"','t','y','p','e',
+'"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','r','e','g','i','o',
+'n','P','r','e','f','i','x','"','}',',','"','b','e','t','a','"',']','}',']',',','"','t','y','p','e',
+'"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v',
+'"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',']',',','"',
+'e','r','r','o','r','"',':','"','E','x','p','e','c','t','e','d',' ','a',' ','e','n','d','p','o','i',
+'n','t',' ','t','o',' ','b','e',' ','s','p','e','c','i','f','i','e','d',' ','b','u','t',' ','n','o',
+' ','e','n','d','p','o','i','n','t',' ','w','a','s',' ','f','o','u','n','d','"',',','"','t','y','p',
+'e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',
+':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"',
+'u','r','l','"','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':',
+'"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','e','c','2','.','{','u','r',
+'l','#','a','u','t','h','o','r','i','t','y','}','"',',','"','p','r','o','p','e','r','t','i','e','s',
+'"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',
+':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':',
+'"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':',
+'"','s','3','-','o','u','t','p','o','s','t','s','"',',','"','d','i','s','a','b','l','e','D','o','u',
+'b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a',
+'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n',
+'t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/',
+'{','B','u','c','k','e','t','}','.','e','c','2','.','s','3','-','o','u','t','p','o','s','t','s','.',
+'{','R','e','g','i','o','n','}','.','{','r','e','g','i','o','n','P','a','r','t','i','t','i','o','n',
+'#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',
+':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':',
+'"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"',
+'{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','-','o','u','t','p','o','s','t','s','"',',','"','d','i','s','a','b','l','e','D','o','u','b',
+'l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d',
+'e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t',
+'"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','h','a','r','d','w','a','r','e','T','y','p','e','"','}',',','"','o','"',
+']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s',
+'t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','r','e','g','i','o','n','P','r','e','f','i','x','"','}',',','"','b','e','t','a','"',
+']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','n',
+'o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t',
+'"','}',']','}',']','}',']',',','"','e','r','r','o','r','"',':','"','E','x','p','e','c','t','e','d',
+' ','a',' ','e','n','d','p','o','i','n','t',' ','t','o',' ','b','e',' ','s','p','e','c','i','f','i',
+'e','d',' ','b','u','t',' ','n','o',' ','e','n','d','p','o','i','n','t',' ','w','a','s',' ','f','o',
+'u','n','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"',
+'}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"',
+'a','s','s','i','g','n','"',':','"','u','r','l','"','}',']',',','"','e','n','d','p','o','i','n','t',
+'"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t',
+'}','.','o','p','-','{','o','u','t','p','o','s','t','I','d','}','.','{','u','r','l','#','a','u','t',
+'h','o','r','i','t','y','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a',
+'u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g',
+'v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g',
+'i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','-','o',
+'u','t','p','o','s','t','s','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i',
+'n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k',
+'e','t','}','.','o','p','-','{','o','u','t','p','o','s','t','I','d','}','.','s','3','-','o','u','t',
+'p','o','s','t','s','.','{','R','e','g','i','o','n','}','.','{','r','e','g','i','o','n','P','a','r',
+'t','i','t','i','o','n','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e',
+'r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"',
+'n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g',
+'i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N',
+'a','m','e','"',':','"','s','3','-','o','u','t','p','o','s','t','s','"',',','"','d','i','s','a','b',
+'l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',
+',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n',
+'d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','e','r','r','o','r','"',':','"','U','n','r','e','c','o','g','n','i','z','e','d',' ',
+'h','a','r','d','w','a','r','e',' ','t','y','p','e',':',' ','\\','"','E','x','p','e','c','t','e','d',
+' ','h','a','r','d','w','a','r','e',' ','t','y','p','e',' ','o',' ','o','r',' ','e',' ','b','u','t',
+' ','g','o','t',' ','{','h','a','r','d','w','a','r','e','T','y','p','e','}','\\','"','"',',','"','t',
+'y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i',
+'d',' ','A','R','N',':',' ','T','h','e',' ','o','u','t','p','o','s','t',' ','I','d',' ','m','u','s',
+'t',' ','o','n','l','y',' ','c','o','n','t','a','i','n',' ','a','-','z',',',' ','A','-','Z',',',' ',
+'0','-','9',' ','a','n','d',' ','`','-','`','.','"',',','"','t','y','p','e','"',':','"','e','r','r',
+'o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f',
+'n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','B','u','c','k','e','t','"','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e',
+'e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',
+':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S',
+'e','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','p','a','r','s','e','U',
+'R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o',
+'i','n','t','"','}',']','}',']','}',']','}',']',',','"','e','r','r','o','r','"',':','"','C','u','s',
+'t','o','m',' ','e','n','d','p','o','i','n','t',' ','`','{','E','n','d','p','o','i','n','t','}','`',
+' ','w','a','s',' ','n','o','t',' ','a',' ','v','a','l','i','d',' ','U','R','I','"',',','"','t','y',
+'p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','F','o',
+'r','c','e','P','a','t','h','S','t','y','l','e','"','}',']','}',',','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','F','o','r','c','e','P','a','t','h','S','t','y','l','e','"','}',',','t','r','u',
+'e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e',
+'"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','s','e','A',
+'r','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k','e',
+'t','"','}',']','}',']',',','"','e','r','r','o','r','"',':','"','P','a','t','h','-','s','t','y','l',
+'e',' ','a','d','d','r','e','s','s','i','n','g',' ','c','a','n','n','o','t',' ','b','e',' ','u','s',
+'e','d',' ','w','i','t','h',' ','A','R','N',' ','b','u','c','k','e','t','s','"',',','"','t','y','p',
+'e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','u','r','i','E','n','c','o','d','e','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','B','u','c','k','e','t','"','}',']',',','"','a','s','s',
+'i','g','n','"',':','"','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','"',
+'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',
+',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']',',','"','e','r','r','o',
+'r','"',':','"','C','a','n','n','o','t',' ','s','e','t',' ','d','u','a','l','-','s','t','a','c','k',
+' ','i','n',' ','c','o','m','b','i','n','a','t','i','o','n',' ','w','i','t','h',' ','a',' ','c','u',
+'s','t','o','m',' ','e','n','d','p','o','i','n','t','.','"',',','"','t','y','p','e','"',':','"','e',
+'r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"',
+'t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p','a',
+'r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','p','a','r','t','i',
+'t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e',
+'e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',
+']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"',
+'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l',
+'S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',
+']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g',
+'i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n',
+'d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s',
+'3','-','f','i','p','s','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s','t','-',
+'1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f',
+'f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i',
+'g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',',
+'"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b',
+'l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',
+',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n',
+'d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"',
+'}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g',
+'v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u',
+'e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',',
+'"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t',
+'"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s',
+'.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r',
+'t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{',
+'u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o',
+'p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[',
+'{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R',
+'e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i',
+'n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b',
+'l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d',
+'e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t',
+'"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o',
+'b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y',
+'p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"',
+'u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','d','u','a',
+'l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o',
+'n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e',
+'n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e',
+'"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o',
+'d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{',
+'}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':',
+'"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E',
+'n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',
+'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E',
+'n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o',
+'i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f',
+'i','p','s','.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p',
+'a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}',
+'/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p',
+'r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',
+':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n',
+'g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n',
+'i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u',
+'b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a',
+'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n',
+'t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l',
+'s','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"',
+'f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n',
+'"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',
+',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#',
+'s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}',
+'{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_',
+'e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t',
+'i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a',
+'m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o',
+'n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a',
+'m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"',
+'p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r',
+'l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"',
+'}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i',
+'o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d',
+'p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m',
+'e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#',
+'n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e','n','c','o','d',
+'e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':',
+'{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"',
+'s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u',
+'s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n',
+'g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',',
+'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e',
+'U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p',
+'o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u',
+'e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-',
+'g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']',
+'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i',
+'n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':',
+'/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','n','o','r',
+'m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e','n','c','o','d','e','d','_',
+'b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a',
+'u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g',
+'v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g',
+'i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u',
+'a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"',
+'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R',
+'L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']',
+'}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l',
+'o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s',
+'e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',
+']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l',
+'#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y',
+'}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i',
+'_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r',
+'t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n',
+'a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i',
+'o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a',
+'m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',
+':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b',
+'a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':',
+'"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','u','s','-','e','a','s','t','-',
+'1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f',
+'f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i',
+'g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',',
+'"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b',
+'l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',
+',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n',
+'d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"',
+'}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r',
+'u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',
+',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n',
+'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p',
+'s','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s',
+'u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d',
+'e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':',
+'{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"',
+'s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u',
+'s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n',
+'g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',',
+'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S',
+'e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o',
+'i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s',
+'e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g',
+'i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o',
+'i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e',
+'e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t',
+'t','p','s',':','/','/','s','3','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','p',
+'a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}',
+'/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p',
+'r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',
+':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n',
+'g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n',
+'i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u',
+'b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a',
+'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n',
+'t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f',
+'a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']',
+'}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l',
+'o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s',
+'e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',
+']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p',
+'s',':','/','/','s','3','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','p','a','r',
+'t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{',
+'u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o',
+'p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[',
+'{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R',
+'e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n',
+'g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l',
+'e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e',
+'r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"',
+'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']',
+'}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g',
+'l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r',
+'l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','d','u','a','l','s','t','a','c','k','.',
+'u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l',
+'t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d',
+'_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"',
+'a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i',
+'g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-',
+'e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3',
+'"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',
+':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t',
+'y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u',
+'a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n',
+'o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t',
+'"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I',
+'P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n',
+'g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',',
+'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':',
+'/','/','s','3','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s','t','-','1','.',
+'{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i',
+'x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',',
+'"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e',
+'s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n',
+'i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s',
+'i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e',
+'D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"',
+'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p',
+'o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',',
+'t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g',
+'l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',
+']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n',
+'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','d','u','a',
+'l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o',
+'n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e',
+'n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e',
+'"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o',
+'d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{',
+'}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':',
+'"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E',
+'n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r',
+'i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',
+']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l',
+'E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p',
+'o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.',
+'d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i',
+'t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r',
+'i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e',
+'r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"',
+'n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g',
+'i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N',
+'a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E',
+'n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s',
+'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',
+',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':',
+'"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u',
+'r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e',
+'g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h',
+'e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r',
+'l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e','n','c',
+'o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s',
+'"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',
+':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':',
+'"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',
+':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d',
+'i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}',
+'}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f',
+'n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r',
+'s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f',
+'a','l','s','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n',
+'"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o',
+'i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',
+':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','n','o',
+'r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e','n','c','o','d','e','d',
+'_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"',
+'a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i',
+'g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-',
+'e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3',
+'"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',
+':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t',
+'y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u',
+'a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"',
+'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R',
+'L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g',
+'l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',
+']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r',
+'i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','R','e','g','i','o','n','"','}',',','"','u','s','-','e','a','s','t','-','1','"',']','}',']',
+',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#',
+'s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}',
+'{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_',
+'e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t',
+'i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a',
+'m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o',
+'n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m',
+'e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c',
+'o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':',
+'{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',
+':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{',
+'u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','n','o','r','m','a','l',
+'i','z','e','d','P','a','t','h','}','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c',
+'k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h',
+'S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',
+',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n',
+'}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i',
+'s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e',
+'}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':',
+'"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S',
+'t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','i','s','S',
+'e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o',
+'i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"',
+'}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b',
+'a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G',
+'l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',',
+'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s',
+'c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{',
+'u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e',
+'n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e',
+'"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o',
+'d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{',
+'}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a',
+'l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"',
+'h','t','t','p','s',':','/','/','s','3','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u',
+'l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e',
+'d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{',
+'"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s',
+'i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s',
+'-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s',
+'3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g',
+'"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"',
+'t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D',
+'u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','s','t','r',
+'i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',
+']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p',
+'s',':','/','/','s','3','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d',
+'n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u',
+'c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t',
+'h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4',
+'"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s',
+'t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"',
+'d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r',
+'u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e',
+'"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S',
+'t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',
+']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"',
+'}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"',
+'}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"',
+'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','u','s','-','e','a',
+'s','t','-','1','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l',
+'"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','p','a','r','t','i','t','i','o','n','R',
+'e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c',
+'o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s',
+'"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',
+':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':',
+'"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':',
+'"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i',
+'n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',
+',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"',
+'u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','R','e','g','i','o','n','}',
+'.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f',
+'i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',
+',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m',
+'e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g',
+'n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s',
+'i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e',
+'D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"',
+'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p',
+'o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"',
+'}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a',
+'l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w',
+'s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l',
+'s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"',
+'h','t','t','p','s',':','/','/','s','3','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t',
+'i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u',
+'r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r',
+'r','o','r','"',':','"','P','a','t','h','-','s','t','y','l','e',' ','a','d','d','r','e','s','s','i',
+'n','g',' ','c','a','n','n','o','t',' ','b','e',' ','u','s','e','d',' ','w','i','t','h',' ','S','3',
+' ','A','c','c','e','l','e','r','a','t','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o',
+'r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',',
+'"','e','r','r','o','r','"',':','"','A',' ','v','a','l','i','d',' ','p','a','r','t','i','t','i','o',
+'n',' ','c','o','u','l','d',' ','n','o','t',' ','b','e',' ','d','e','t','e','r','m','i','n','e','d',
+'"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',']','}',']','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w',
+'s','.','i','s','V','i','r','t','u','a','l','H','o','s','t','a','b','l','e','S','3','B','u','c','k',
+'e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k','e',
+'t','"','}',',','f','a','l','s','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e',
+'"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"',
+'a','s','s','i','g','n','"',':','"','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"',
+'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','V','a','l','i','d','H','o','s','t','L',
+'a','b','e','l','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g',
+'i','o','n','"','}',',','f','a','l','s','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r',
+'e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"',
+'}',',','"','n','a','m','e','"',']','}',',','"','a','w','s','-','c','n','"',']','}',']',',','"','e',
+'r','r','o','r','"',':','"','P','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',
+' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':','"','e','r',
+'r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t',
+'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A',
+'c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',',
+'"','e','r','r','o','r','"',':','"','A','c','c','e','l','e','r','a','t','e',' ','c','a','n','n','o',
+'t',' ','b','e',' ','u','s','e','d',' ','w','i','t','h',' ','F','I','P','S','"',',','"','t','y','p',
+'e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',',',
+'{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','p','a','r','t','i','t','i','o','n','R','e','s','u','l',
+'t','"','}',',','"','n','a','m','e','"',']','}',',','"','a','w','s','-','c','n','"',']','}',']',',',
+'"','e','r','r','o','r','"',':','"','S','3',' ','A','c','c','e','l','e','r','a','t','e',' ','c','a',
+'n','n','o','t',' ','b','e',' ','u','s','e','d',' ','i','n',' ','t','h','i','s',' ','r','e','g','i',
+'o','n','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',
+',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+'{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',
+']','}',']',',','"','e','r','r','o','r','"',':','"','H','o','s','t',' ','o','v','e','r','r','i','d',
+'e',' ','c','a','n','n','o','t',' ','b','e',' ','c','o','m','b','i','n','e','d',' ','w','i','t','h',
+' ','D','u','a','l','s','t','a','c','k',',',' ','F','I','P','S',',',' ','o','r',' ','S','3',' ','A',
+'c','c','e','l','e','r','a','t','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"',
+'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',
+':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r',
+'u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','H','o','s','t',' ','o','v','e','r','r',
+'i','d','e',' ','c','a','n','n','o','t',' ','b','e',' ','c','o','m','b','i','n','e','d',' ','w','i',
+'t','h',' ','D','u','a','l','s','t','a','c','k',',',' ','F','I','P','S',',',' ','o','r',' ','S','3',
+' ','A','c','c','e','l','e','r','a','t','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o',
+'r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p',
+'e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',
+'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e',
+'"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','H','o','s','t',' ',
+'o','v','e','r','r','i','d','e',' ','c','a','n','n','o','t',' ','b','e',' ','c','o','m','b','i','n',
+'e','d',' ','w','i','t','h',' ','D','u','a','l','s','t','a','c','k',',',' ','F','I','P','S',',',' ',
+'o','r',' ','S','3',' ','A','c','c','e','l','e','r','a','t','e','"',',','"','t','y','p','e','"',':',
+'"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',
+',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u',
+'e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a',
+'t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',
+']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"',
+'a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',
+':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t','}',
+'.','s','3','-','f','i','p','s','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s',
+'t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S',
+'u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u',
+'t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v',
+'4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a',
+'s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l',
+'S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s',
+'e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a',
+'l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"',
+'h','t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','f','i','p','s','.',
+'d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t',
+'i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"',
+'p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s',
+'"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i',
+'n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i',
+'g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D',
+'o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h',
+'e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o',
+'i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P',
+'S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A',
+'c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S',
+'e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o',
+'i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',
+',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',
+',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r',
+'u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"',
+'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/',
+'/','{','B','u','c','k','e','t','}','.','s','3','-','f','i','p','s','.','d','u','a','l','s','t','a',
+'c','k','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s',
+'u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e',
+'"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o',
+'d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{',
+'}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u',
+'e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a',
+'t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g',
+'l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']',
+'}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t',
+'p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','f','i','p','s','.','d','u','a',
+'l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o',
+'n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']',
+'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',',
+'t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l',
+'e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"',
+'}',']','}',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"',
+'}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i',
+'n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k',
+'e','t','}','.','s','3','-','f','i','p','s','.','u','s','-','e','a','s','t','-','1','.','{','p','a',
+'r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',
+',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m',
+'e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g',
+'n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"',
+'s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l',
+'e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',',
+'"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d',
+'p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',
+',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n',
+'g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',',
+'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':',
+'/','/','{','B','u','c','k','e','t','}','.','s','3','-','f','i','p','s','.','u','s','-','e','a','s',
+'t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S',
+'u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u',
+'t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v',
+'4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a',
+'s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l',
+'S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l',
+'s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[',
+'{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',
+':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r',
+'i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',
+']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l',
+'E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',
+':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l',
+'"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','f','i',
+'p','s','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s',
+'u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e',
+'"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o',
+'d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{',
+'}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r',
+'u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r',
+'a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',
+',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',
+'}',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-',
+'g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',
+']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t',
+'t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','f','i','p','s','.','{','R',
+'e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d',
+'n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{',
+'"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s',
+'i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R',
+'e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3',
+'"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',
+':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t',
+'y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u',
+'a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n',
+'"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o',
+'b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',
+':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','a','c','c',
+'e','l','e','r','a','t','e','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s','t',
+'-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u',
+'f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t',
+'h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4',
+'"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s',
+'t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"',
+'d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r',
+'u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e',
+'"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S',
+'t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h',
+'t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','a','c','c','e','l','e',
+'r','a','t','e','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s','t','-','1','.',
+'{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i',
+'x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c',
+'h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"',
+'s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1',
+'"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s',
+'a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',
+']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"',
+'e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c',
+'k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',',',
+'{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',
+':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g',
+'i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o',
+'i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e',
+'e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t',
+'t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','a','c','c','e','l','e','r',
+'a','t','e','.','d','u','a','l','s','t','a','c','k','.','{','p','a','r','t','i','t','i','o','n','R',
+'e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r',
+'t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n',
+'a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i',
+'o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a',
+'m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f',
+'a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l',
+'e','r','a','t','e','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',
+']','}',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[',
+'{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s',
+'-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s',
+'e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h',
+'t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','a','c','c','e','l','e',
+'r','a','t','e','.','d','u','a','l','s','t','a','c','k','.','{','p','a','r','t','i','t','i','o','n',
+'R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e',
+'r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"',
+'n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g',
+'i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N',
+'a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E',
+'n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s',
+'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a',
+'l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e',
+'r','a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',
+']','}',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',
+',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n',
+'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e',
+'t','}','.','s','3','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s','t','-','1',
+'.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f',
+'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S',
+'c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',',
+'"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-',
+'1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i',
+'s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e',
+'}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':',
+'"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a',
+'c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']',
+'}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','s',
+'t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',
+']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t',
+'t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','.','d','u','a','l','s','t','a',
+'c','k','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e',
+'s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t',
+'i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a',
+'m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o',
+'n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a',
+'m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l',
+'s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r',
+'a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',
+',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',
+'}',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-',
+'g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']',
+'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i',
+'n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k',
+'e','t','}','.','s','3','.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}',
+'.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f',
+'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S',
+'c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',',
+'"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}',
+'"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s',
+'a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',
+']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"',
+'e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t',
+'a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"',
+'n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n',
+'g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n',
+'d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i',
+'n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k',
+'e','t','}','.','s','3','.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}',
+'.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f',
+'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S',
+'c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',',
+'"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}',
+'"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s',
+'a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',
+']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"',
+'e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c',
+'k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']',
+'}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',
+':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"',
+'u','r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','u','r','l','"','}',',','"',
+'i','s','I','p','"',']','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r',
+'i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',
+']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l',
+'#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y',
+'}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','B','u','c',
+'k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h',
+'S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',
+',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t',
+'-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d',
+'i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u',
+'e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',
+':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t',
+'a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s',
+'e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f',
+'n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',
+':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t',
+'t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','u','r','l','"','}',
+',','"','i','s','I','p','"',']','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{',
+'u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','B','u','c','k','e','t','}','.','{','u',
+'r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',',
+'"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e',
+'s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n',
+'i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s',
+'i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e',
+'D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"',
+'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p',
+'o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',',
+'f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F',
+'I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a',
+'r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E',
+'n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"',
+'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','u','r','l','"','}',',','"','i','s','I','p',
+'"',']','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e',
+'g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h',
+'e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r',
+'l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','B','u','c','k','e','t','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i',
+'g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',',
+'"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b',
+'l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',
+',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n',
+'d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"',
+'}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s',
+'e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"',
+'p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r',
+'l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','u','r','l','"','}',',','"','i','s',
+'I','p','"',']','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',
+',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#',
+'s','c','h','e','m','e','}',':','/','/','{','B','u','c','k','e','t','}','.','{','u','r','l','#','a',
+'u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o',
+'p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[',
+'{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R',
+'e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i',
+'n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b',
+'l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d',
+'e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t',
+'"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s',
+'e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"',
+'}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c',
+'c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E',
+'n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U',
+'R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o',
+'i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','u','r','l','"','}',',','"','i','s','I','p','"',']','}',',',
+'t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a',
+'w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r',
+'u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e',
+'s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','u','s','-','e','a','s','t','-','1',
+'"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{',
+'u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r',
+'i','t','y','}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{',
+'B','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a',
+'u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g',
+'v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g',
+'i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':',
+'"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h',
+'o','r','i','t','y','}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h',
+'}','{','B','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{',
+'"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s',
+'i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R',
+'e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3',
+'"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',
+':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t',
+'y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"',
+'}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',
+']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a',
+'s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':',
+'"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','u','r','l','"','}',',','"','i','s','I','p','"',']','}',',','f','a','l','s','e',']','}',',','{',
+'"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a',
+'l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l',
+'o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t',
+'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e',
+'g','i','o','n','"','}',',','"','u','s','-','e','a','s','t','-','1','"',']','}',']',',','"','e','n',
+'d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e',
+'m','e','}',':','/','/','{','B','u','c','k','e','t','}','.','{','u','r','l','#','a','u','t','h','o',
+'r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p','e','r','t',
+'i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a',
+'m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o',
+'n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m',
+'e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c',
+'o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':',
+'{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',
+':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{',
+'B','u','c','k','e','t','}','.','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u',
+'r','l','#','p','a','t','h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"',
+'a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i',
+'g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e',
+'g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',
+',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':',
+'t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y',
+'p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D',
+'u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',
+',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',
+'}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s',
+'s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'u','r','l','"','}',',','"','i','s','I','p','"',']','}',',','t','r','u','e',']','}',',','{','"','f',
+'n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s',
+'t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',
+']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b',
+'a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n',
+'d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e',
+'m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l',
+'#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','B','u','c','k','e','t','}','"',
+',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m',
+'e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g',
+'n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s',
+'i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e',
+'D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"',
+'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p',
+'o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',',
+'f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F',
+'I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a',
+'r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E',
+'n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"',
+'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','u','r','l','"','}',',','"','i','s','I','p',
+'"',']','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n',
+'"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t',
+'"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"',
+'u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','B','u','c',
+'k','e','t','}','.','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#',
+'p','a','t','h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t',
+'h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4',
+'"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o',
+'n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d',
+'i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u',
+'e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',
+':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t',
+'a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h',
+'t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','a','c','c','e','l','e',
+'r','a','t','e','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s',
+'S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a',
+'u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g',
+'v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e',
+'a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',
+',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':',
+'t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y',
+'p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a',
+'l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n',
+'"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o',
+'b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',
+':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','-','a','c','c',
+'e','l','e','r','a','t','e','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#',
+'d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':',
+'{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"',
+'s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u',
+'s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n',
+'g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',',
+'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"',
+'}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g',
+'v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{',
+'"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a',
+'l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l',
+'o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t',
+'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e',
+'g','i','o','n','"','}',',','"','u','s','-','e','a','s','t','-','1','"',']','}',']',',','"','e','n',
+'d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{',
+'B','u','c','k','e','t','}','.','s','3','-','a','c','c','e','l','e','r','a','t','e','.','{','p','a',
+'r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',
+',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m',
+'e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g',
+'n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s',
+'i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e',
+'D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"',
+'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p',
+'o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"',
+'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/',
+'/','{','B','u','c','k','e','t','}','.','s','3','-','a','c','c','e','l','e','r','a','t','e','.','{',
+'p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x',
+'}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h',
+'e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s',
+'i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',',
+'"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b',
+'l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',
+',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n',
+'d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c',
+'k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',
+',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n',
+'"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','n','o',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e',
+'g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p',
+'o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i','n','t',
+'"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t',
+'}','.','s','3','-','a','c','c','e','l','e','r','a','t','e','.','{','p','a','r','t','i','t','i','o',
+'n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']',
+'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',',
+'f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e',
+'l','e','r','a','t','e','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n',
+'o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t',
+'"','}',']','}',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n',
+'"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o',
+'i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c',
+'k','e','t','}','.','s','3','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#',
+'d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':',
+'{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"',
+'s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u',
+'s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n',
+'g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',',
+'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"',
+'}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',',
+'{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s',
+'-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"',
+'u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3',
+'.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f',
+'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S',
+'c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',',
+'"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-',
+'1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i',
+'s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e',
+'}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':',
+'"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a',
+'c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l','s','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"',
+'n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n',
+'g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n',
+'d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"',
+'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',
+',','"','u','s','-','e','a','s','t','-','1','"',']','}',']',',','"','e','n','d','p','o','i','n','t',
+'"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t',
+'}','.','s','3','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s',
+'S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a',
+'u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g',
+'v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g',
+'i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':',
+'"','h','t','t','p','s',':','/','/','{','B','u','c','k','e','t','}','.','s','3','.','{','R','e','g',
+'i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s',
+'S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a',
+'u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g',
+'v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g',
+'i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u',
+'a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',',
+'f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v',
+'"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o',
+'b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/',
+'{','B','u','c','k','e','t','}','.','s','3','.','{','R','e','g','i','o','n','}','.','{','p','a','r',
+'t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',',
+'"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e',
+'s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n',
+'i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i',
+'g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D',
+'o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h',
+'e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o',
+'i','n','t','"','}',']','}',']','}',']','}',']','}',']','}',']','}',']','}',']','}',',','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n',
+'v','a','l','i','d',' ','r','e','g','i','o','n',':',' ','r','e','g','i','o','n',' ','w','a','s',' ',
+'n','o','t',' ','a',' ','v','a','l','i','d',' ','D','N','S',' ','n','a','m','e','.','"',',','"','t',
+'y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','A',' ','v','a','l','i',
+'d',' ','p','a','r','t','i','t','i','o','n',' ','c','o','u','l','d',' ','n','o','t',' ','b','e',' ',
+'d','e','t','e','r','m','i','n','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r',
+'"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',
+':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e',
+'U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p',
+'o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{',
+'"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','u','r','l','"','}',',','"','s','c','h','e','m','e','"',']',
+'}',',','"','h','t','t','p','"',']','}',',','{','"','f','n','"',':','"','a','w','s','.','i','s','V',
+'i','r','t','u','a','l','H','o','s','t','a','b','l','e','S','3','B','u','c','k','e','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k','e','t','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P',
+'S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f',
+'a','l','s','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g',
+'n','"',':','"','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t',
+'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e',
+'"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[','{','"','f','n','"',':','"','i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',
+',','f','a','l','s','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"',
+'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',',
+'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s',
+'c','h','e','m','e','}',':','/','/','{','B','u','c','k','e','t','}','.','{','u','r','l','#','a','u',
+'t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o',
+'r','"',':','"','I','n','v','a','l','i','d',' ','r','e','g','i','o','n',':',' ','r','e','g','i','o',
+'n',' ','w','a','s',' ','n','o','t',' ','a',' ','v','a','l','i','d',' ','D','N','S',' ','n','a','m',
+'e','.','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"',
+'A',' ','v','a','l','i','d',' ','p','a','r','t','i','t','i','o','n',' ','c','o','u','l','d',' ','n',
+'o','t',' ','b','e',' ','d','e','t','e','r','m','i','n','e','d','"',',','"','t','y','p','e','"',':',
+'"','e','r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','s','e','A','r','n','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k','e','t','"','}',']',',','"','a',
+'s','s','i','g','n','"',':','"','b','u','c','k','e','t','A','r','n','"','}',']',',','"','t','y','p',
+'e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n',
+'"','}',',','"','r','e','s','o','u','r','c','e','I','d','[','0',']','"',']',',','"','a','s','s','i',
+'g','n','"',':','"','a','r','n','T','y','p','e','"','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','a','r','n',
+'T','y','p','e','"','}',',','"','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r',
+'e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','s','e','r','v','i','c','e','"',
+']','}',',','"','s','3','-','o','b','j','e','c','t','-','l','a','m','b','d','a','"',']','}',']',',',
+'"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n',
+'g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'a','r','n','T','y','p','e','"','}',',','"','a','c','c','e','s','s','p','o','i','n','t','"',']','}',
+']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"',
+'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"',
+'r','e','s','o','u','r','c','e','I','d','[','1',']','"',']',',','"','a','s','s','i','g','n','"',':',
+'"','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','"','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','"','}',',','"','"',']','}',']','}',
+']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"',
+'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l',
+'S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"',
+'S','3',' ','O','b','j','e','c','t',' ','L','a','m','b','d','a',' ','d','o','e','s',' ','n','o','t',
+' ','s','u','p','p','o','r','t',' ','D','u','a','l','-','s','t','a','c','k','"',',','"','t','y','p',
+'e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',']',
+',','"','e','r','r','o','r','"',':','"','S','3',' ','O','b','j','e','c','t',' ','L','a','m','b','d',
+'a',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','S','3',' ','A','c','c',
+'e','l','e','r','a','t','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"',
+'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[',
+'{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r',
+'e','g','i','o','n','"',']','}',',','"','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"',
+'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l',
+'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',
+':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'D','i','s','a','b','l','e','A','c','c','e','s','s','P','o','i','n','t','s','"','}',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','D','i','s','a','b','l','e','A','c','c','e','s','s',
+'P','o','i','n','t','s','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':',
+'"','A','c','c','e','s','s',' ','p','o','i','n','t','s',' ','a','r','e',' ','n','o','t',' ','s','u',
+'p','p','o','r','t','e','d',' ','f','o','r',' ','t','h','i','s',' ','o','p','e','r','a','t','i','o',
+'n','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',',
+'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':',
+'"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e',
+'t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u',
+'c','k','e','t','A','r','n','"','}',',','"','r','e','s','o','u','r','c','e','I','d','[','2',']','"',
+']','}',']','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t',
+'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','A','r','n','R','e','g',
+'i','o','n','"','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','A',
+'r','n','R','e','g','i','o','n','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'b','u','c','k','e','t','A','r','n','"','}',',','"','r','e','g','i','o','n','"',']','}',',','"','{',
+'R','e','g','i','o','n','}','"',']','}',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n',
+'v','a','l','i','d',' ','c','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','r','e','g','i',
+'o','n',' ','f','r','o','m',' ','A','R','N',' ','`','{','b','u','c','k','e','t','A','r','n','#','r',
+'e','g','i','o','n','}','`',' ','d','o','e','s',' ','n','o','t',' ','m','a','t','c','h',' ','c','l',
+'i','e','n','t',' ','r','e','g','i','o','n',' ','`','{','R','e','g','i','o','n','}','`',' ','a','n',
+'d',' ','U','s','e','A','r','n','R','e','g','i','o','n',' ','i','s',' ','`','f','a','l','s','e','`',
+'"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"',
+'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"',
+'f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v',
+'"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r','e',
+'g','i','o','n','"',']','}',']',',','"','a','s','s','i','g','n','"',':','"','b','u','c','k','e','t',
+'P','a','r','t','i','t','i','o','n','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e',
+'"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w',
+'s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','p',
+'a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','b','u','c','k','e','t','P','a','r','t','i','t','i','o','n','"','}',',',
+'"','n','a','m','e','"',']','}',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','p','a','r','t','i','t','i','o','n',
+'R','e','s','u','l','t','"','}',',','"','n','a','m','e','"',']','}',']','}',']',',','"','t','y','p',
+'e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',',
+'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"',
+'a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',
+',','"','r','e','g','i','o','n','"',']','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e',
+'"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"',
+'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','a','c','c',
+'o','u','n','t','I','d','"',']','}',',','"','"',']','}',']',',','"','e','r','r','o','r','"',':','"',
+'I','n','v','a','l','i','d',' ','A','R','N',':',' ','M','i','s','s','i','n','g',' ','a','c','c','o',
+'u','n','t',' ','i','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t',
+'r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[','{','"','f','n','"',':','"','i','s','V','a','l','i','d','H','o','s','t','L','a','b',
+'e','l','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t',
+'r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t',
+'A','r','n','"','}',',','"','a','c','c','o','u','n','t','I','d','"',']','}',',','f','a','l','s','e',
+']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',
+':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','V','a','l','i','d','H','o','s','t',
+'L','a','b','e','l','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','a','c',
+'c','e','s','s','P','o','i','n','t','N','a','m','e','"','}',',','f','a','l','s','e',']','}',']',',',
+'"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r',
+'e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',
+',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t',
+'r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t',
+'P','a','r','t','i','t','i','o','n','"','}',',','"','n','a','m','e','"',']','}',',','"','a','w','s',
+'-','c','n','"',']','}',']',',','"','e','r','r','o','r','"',':','"','P','a','r','t','i','t','i','o',
+'n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',',
+'"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s',
+'e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d',
+'p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',']',
+',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#',
+'s','c','h','e','m','e','}',':','/','/','{','a','c','c','e','s','s','P','o','i','n','t','N','a','m',
+'e','}','-','{','b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I','d','}','.',
+'{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i',
+'g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','b','u','c','k','e','t','A','r','n','#',
+'r','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s',
+'3','-','o','b','j','e','c','t','-','l','a','m','b','d','a','"',',','"','d','i','s','a','b','l','e',
+'D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"',
+'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p',
+'o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']',
+'}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t',
+'p','s',':','/','/','{','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','}','-','{','b',
+'u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I','d','}','.','s','3','-','o','b',
+'j','e','c','t','-','l','a','m','b','d','a','-','f','i','p','s','.','{','b','u','c','k','e','t','A',
+'r','n','#','r','e','g','i','o','n','}','.','{','b','u','c','k','e','t','P','a','r','t','i','t','i',
+'o','n','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e',
+'s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e',
+'"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',
+':','"','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n','}','"',',','"','s','i',
+'g','n','i','n','g','N','a','m','e','"',':','"','s','3','-','o','b','j','e','c','t','-','l','a','m',
+'b','d','a','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i',
+'n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',
+',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"',
+'u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','a','c','c','e','s','s','P','o','i','n',
+'t','N','a','m','e','}','-','{','b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t',
+'I','d','}','.','s','3','-','o','b','j','e','c','t','-','l','a','m','b','d','a','.','{','b','u','c',
+'k','e','t','A','r','n','#','r','e','g','i','o','n','}','.','{','b','u','c','k','e','t','P','a','r',
+'t','i','t','i','o','n','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e',
+'r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"',
+'n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g',
+'i','o','n','"',':','"','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n','}','"',
+',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','-','o','b','j','e','c','t',
+'-','l','a','m','b','d','a','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',
+']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r',
+'r','o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','T','h','e',' ','a','c',
+'c','e','s','s',' ','p','o','i','n','t',' ','n','a','m','e',' ','m','a','y',' ','o','n','l','y',' ',
+'c','o','n','t','a','i','n',' ','a','-','z',',',' ','A','-','Z',',',' ','0','-','9',' ','a','n','d',
+' ','`','-','`','.',' ','F','o','u','n','d',':',' ','`','{','a','c','c','e','s','s','P','o','i','n',
+'t','N','a','m','e','}','`','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',
+'}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r',
+'o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','T','h','e',' ','a','c','c',
+'o','u','n','t',' ','i','d',' ','m','a','y',' ','o','n','l','y',' ','c','o','n','t','a','i','n',' ',
+'a','-','z',',',' ','A','-','Z',',',' ','0','-','9',' ','a','n','d',' ','`','-','`','.',' ','F','o',
+'u','n','d',':',' ','`','{','b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I',
+'d','}','`','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',']',
+'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r',
+'"',':','"','I','n','v','a','l','i','d',' ','r','e','g','i','o','n',' ','i','n',' ','A','R','N',':',
+' ','`','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n','}','`',' ','(','i','n',
+'v','a','l','i','d',' ','D','N','S',' ','n','a','m','e',')','"',',','"','t','y','p','e','"',':','"',
+'e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','e','r','r','o','r','"',':','"','C','l','i','e','n','t',' ','w','a','s',' ','c',
+'o','n','f','i','g','u','r','e','d',' ','f','o','r',' ','p','a','r','t','i','t','i','o','n',' ','`',
+'{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','n','a','m','e','}','`',' ','b',
+'u','t',' ','A','R','N',' ','(','`','{','B','u','c','k','e','t','}','`',')',' ','h','a','s',' ','`',
+'{','b','u','c','k','e','t','P','a','r','t','i','t','i','o','n','#','n','a','m','e','}','`','"',',',
+'"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','A',' ','v','a',
+'l','i','d',' ','p','a','r','t','i','t','i','o','n',' ','c','o','u','l','d',' ','n','o','t',' ','b',
+'e',' ','d','e','t','e','r','m','i','n','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r',
+'o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',
+',','"','e','r','r','o','r','"',':','"','C','o','u','l','d',' ','n','o','t',' ','l','o','a','d',' ',
+'p','a','r','t','i','t','i','o','n',' ','f','o','r',' ','A','R','N',' ','r','e','g','i','o','n',' ',
+'`','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n','}','`','"',',','"','t','y',
+'p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',']','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l',
+'i','d',' ','A','R','N',':',' ','T','h','e',' ','A','R','N',' ','m','a','y',' ','o','n','l','y',' ',
+'c','o','n','t','a','i','n',' ','a',' ','s','i','n','g','l','e',' ','r','e','s','o','u','r','c','e',
+' ','c','o','m','p','o','n','e','n','t',' ','a','f','t','e','r',' ','`','a','c','c','e','s','s','p',
+'o','i','n','t','`','.','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',
+']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r',
+'r','o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','b','u','c','k','e','t',
+' ','A','R','N',' ','i','s',' ','m','i','s','s','i','n','g',' ','a',' ','r','e','g','i','o','n','"',
+',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',']','}',']','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':',
+'"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','E','x','p','e','c','t','e','d',' ','a',' ',
+'r','e','s','o','u','r','c','e',' ','o','f',' ','t','h','e',' ','f','o','r','m','a','t',' ','`','a',
+'c','c','e','s','s','p','o','i','n','t',':','<','a','c','c','e','s','s','p','o','i','n','t',' ','n',
+'a','m','e','>','`',' ','b','u','t',' ','n','o',' ','n','a','m','e',' ','w','a','s',' ','p','r','o',
+'v','i','d','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']',
+'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r',
+'"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','O','b','j','e','c','t',' ','L','a',
+'m','b','d','a',' ','A','R','N','s',' ','o','n','l','y',' ','s','u','p','p','o','r','t',' ','`','a',
+'c','c','e','s','s','p','o','i','n','t','`',' ','a','r','n',' ','t','y','p','e','s',',',' ','b','u',
+'t',' ','f','o','u','n','d',':',' ','`','{','a','r','n','T','y','p','e','}','`','"',',','"','t','y',
+'p','e','"',':','"','e','r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','a','r','n','T','y','p','e','"',
+'}',',','"','a','c','c','e','s','s','p','o','i','n','t','"',']','}',']',',','"','t','y','p','e','"',
+':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',
+',','"','r','e','s','o','u','r','c','e','I','d','[','1',']','"',']',',','"','a','s','s','i','g','n',
+'"',':','"','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','"','}',',','{','"','f','n',
+'"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t',
+'r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','"','}',',','"','"',']','}',
+']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',
+':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',',
+'"','r','e','g','i','o','n','"',']','}',',','"','"',']','}',']','}',']',',','"','t','y','p','e','"',
+':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','a','r','n','T','y','p',
+'e','"','}',',','"','a','c','c','e','s','s','p','o','i','n','t','"',']','}',']',',','"','t','y','p',
+'e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g',
+'v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"',
+'}',',','"','r','e','g','i','o','n','"',']','}',',','"','"',']','}',']','}',']',',','"','t','y','p',
+'e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',',
+'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','D','i','s','a','b','l','e','A','c','c','e','s','s','P','o','i','n','t','s','"','}',
+']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','D','i','s','a','b','l','e','A','c',
+'c','e','s','s','P','o','i','n','t','s','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r',
+'o','r','"',':','"','A','c','c','e','s','s',' ','p','o','i','n','t','s',' ','a','r','e',' ','n','o',
+'t',' ','s','u','p','p','o','r','t','e','d',' ','f','o','r',' ','t','h','i','s',' ','o','p','e','r',
+'a','t','i','o','n','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r',
+'e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',
+':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r','e','s','o','u','r','c','e','I','d',
+'[','2',']','"',']','}',']','}',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',
+',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','S',
+'e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','A','r',
+'n','R','e','g','i','o','n','"','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','A','r','n','R','e','g','i','o','n','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r','e','g','i','o','n','"',']',
+'}',',','"','{','R','e','g','i','o','n','}','"',']','}',']','}',']',',','"','e','r','r','o','r','"',
+':','"','I','n','v','a','l','i','d',' ','c','o','n','f','i','g','u','r','a','t','i','o','n',':',' ',
+'r','e','g','i','o','n',' ','f','r','o','m',' ','A','R','N',' ','`','{','b','u','c','k','e','t','A',
+'r','n','#','r','e','g','i','o','n','}','`',' ','d','o','e','s',' ','n','o','t',' ','m','a','t','c',
+'h',' ','c','l','i','e','n','t',' ','r','e','g','i','o','n',' ','`','{','R','e','g','i','o','n','}',
+'`',' ','a','n','d',' ','U','s','e','A','r','n','R','e','g','i','o','n',' ','i','s',' ','`','f','a',
+'l','s','e','`','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e',
+'e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"',
+'a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',
+',','"','r','e','g','i','o','n','"',']','}',']',',','"','a','s','s','i','g','n','"',':','"','b','u',
+'c','k','e','t','P','a','r','t','i','t','i','o','n','"','}',']',',','"','t','y','p','e','"',':','"',
+'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l',
+'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',
+':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n',
+'"',':','"','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t','y',
+'p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',
+',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+'{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','P','a','r','t','i','t','i','o',
+'n','"','}',',','"','n','a','m','e','"',']','}',',','"','{','p','a','r','t','i','t','i','o','n','R',
+'e','s','u','l','t','#','n','a','m','e','}','"',']','}',']',',','"','t','y','p','e','"',':','"','t',
+'r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e',
+'s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r','e','g',
+'i','o','n','"',']','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r',
+'e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','s','e','r','v','i','c','e','"',
+']','}',',','"','s','3','"',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',',
+'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',
+',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','V','a',
+'l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','a','c','c','o','u','n','t','I',
+'d','"',']','}',',','f','a','l','s','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e',
+'e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i',
+'s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','"','}',
+',','f','a','l','s','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"',
+'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',',
+'"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',']',',','"','e','r',
+'r','o','r','"',':','"','A','c','c','e','s','s',' ','P','o','i','n','t','s',' ','d','o',' ','n','o',
+'t',' ','s','u','p','p','o','r','t',' ','S','3',' ','A','c','c','e','l','e','r','a','t','e','"',',',
+'"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',
+',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','P','a','r','t','i','t','i',
+'o','n','"','}',',','"','n','a','m','e','"',']','}',',','"','a','w','s','-','c','n','"',']','}',']',
+',','"','e','r','r','o','r','"',':','"','P','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ',
+'n','o','t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':',
+'"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',
+',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']',',','"','e','r','r','o','r','"',
+':','"','D','u','a','l','S','t','a','c','k',' ','c','a','n','n','o','t',' ','b','e',' ','c','o','m',
+'b','i','n','e','d',' ','w','i','t','h',' ','a',' ','H','o','s','t',' ','o','v','e','r','r','i','d',
+'e',' ','(','P','r','i','v','a','t','e','L','i','n','k',')','"',',','"','t','y','p','e','"',':','"',
+'e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',',
+'"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',
+']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t',
+'t','p','s',':','/','/','{','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','}','-','{',
+'b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I','d','}','.','s','3','-','a',
+'c','c','e','s','s','p','o','i','n','t','-','f','i','p','s','.','d','u','a','l','s','t','a','c','k',
+'.','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n','}','.','{','b','u','c','k',
+'e','t','P','a','r','t','i','t','i','o','n','#','d','n','s','S','u','f','f','i','x','}','"',',','"',
+'p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s',
+'"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i',
+'n','g','R','e','g','i','o','n','"',':','"','{','b','u','c','k','e','t','A','r','n','#','r','e','g',
+'i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s',
+'e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n',
+'d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{',
+'a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','}','-','{','b','u','c','k','e','t','A',
+'r','n','#','a','c','c','o','u','n','t','I','d','}','.','s','3','-','a','c','c','e','s','s','p','o',
+'i','n','t','-','f','i','p','s','.','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o',
+'n','}','.','{','b','u','c','k','e','t','P','a','r','t','i','t','i','o','n','#','d','n','s','S','u',
+'f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t',
+'h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4',
+'"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','b','u','c','k','e',
+'t','A','r','n','#','r','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m',
+'e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c',
+'o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':',
+'{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u',
+'e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h',
+'t','t','p','s',':','/','/','{','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','}','-',
+'{','b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I','d','}','.','s','3','-',
+'a','c','c','e','s','s','p','o','i','n','t','.','d','u','a','l','s','t','a','c','k','.','{','b','u',
+'c','k','e','t','A','r','n','#','r','e','g','i','o','n','}','.','{','b','u','c','k','e','t','P','a',
+'r','t','i','t','i','o','n','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n','}',
+'"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s',
+'a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',
+']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"',
+'e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f',
+'a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u',
+'a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"',
+'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R',
+'L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h',
+'e','m','e','}',':','/','/','{','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','}','-',
+'{','b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I','d','}','.','{','u','r',
+'l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"',
+'p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s',
+'"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i',
+'n','g','R','e','g','i','o','n','"',':','"','{','b','u','c','k','e','t','A','r','n','#','r','e','g',
+'i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/',
+'{','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','}','-','{','b','u','c','k','e','t',
+'A','r','n','#','a','c','c','o','u','n','t','I','d','}','.','s','3','-','a','c','c','e','s','s','p',
+'o','i','n','t','.','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n','}','.','{',
+'b','u','c','k','e','t','P','a','r','t','i','t','i','o','n','#','d','n','s','S','u','f','f','i','x',
+'}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h',
+'e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s',
+'i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','b','u','c','k','e','t','A','r','n',
+'#','r','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n',
+'g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',',
+'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',']','}',']','}',']',
+'}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r',
+'o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','T','h','e',' ','a','c','c',
+'e','s','s',' ','p','o','i','n','t',' ','n','a','m','e',' ','m','a','y',' ','o','n','l','y',' ','c',
+'o','n','t','a','i','n',' ','a','-','z',',',' ','A','-','Z',',',' ','0','-','9',' ','a','n','d',' ',
+'`','-','`','.',' ','F','o','u','n','d',':',' ','`','{','a','c','c','e','s','s','P','o','i','n','t',
+'N','a','m','e','}','`','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',
+']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o',
+'r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','T','h','e',' ','a','c','c','o',
+'u','n','t',' ','i','d',' ','m','a','y',' ','o','n','l','y',' ','c','o','n','t','a','i','n',' ','a',
+'-','z',',',' ','A','-','Z',',',' ','0','-','9',' ','a','n','d',' ','`','-','`','.',' ','F','o','u',
+'n','d',':',' ','`','{','b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I','d',
+'}','`','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"',
+'I','n','v','a','l','i','d',' ','A','R','N',':',' ','T','h','e',' ','A','R','N',' ','w','a','s',' ',
+'n','o','t',' ','f','o','r',' ','t','h','e',' ','S','3',' ','s','e','r','v','i','c','e',',',' ','f',
+'o','u','n','d',':',' ','{','b','u','c','k','e','t','A','r','n','#','s','e','r','v','i','c','e','}',
+'"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n',
+'v','a','l','i','d',' ','r','e','g','i','o','n',' ','i','n',' ','A','R','N',':',' ','`','{','b','u',
+'c','k','e','t','A','r','n','#','r','e','g','i','o','n','}','`',' ','(','i','n','v','a','l','i','d',
+' ','D','N','S',' ','n','a','m','e',')','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r',
+'"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"',
+'e','r','r','o','r','"',':','"','C','l','i','e','n','t',' ','w','a','s',' ','c','o','n','f','i','g',
+'u','r','e','d',' ','f','o','r',' ','p','a','r','t','i','t','i','o','n',' ','`','{','p','a','r','t',
+'i','t','i','o','n','R','e','s','u','l','t','#','n','a','m','e','}','`',' ','b','u','t',' ','A','R',
+'N',' ','(','`','{','B','u','c','k','e','t','}','`',')',' ','h','a','s',' ','`','{','b','u','c','k',
+'e','t','P','a','r','t','i','t','i','o','n','#','n','a','m','e','}','`','"',',','"','t','y','p','e',
+'"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','A',' ','v','a','l','i','d',' ','p',
+'a','r','t','i','t','i','o','n',' ','c','o','u','l','d',' ','n','o','t',' ','b','e',' ','d','e','t',
+'e','r','m','i','n','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',
+'}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r',
+'o','r','"',':','"','C','o','u','l','d',' ','n','o','t',' ','l','o','a','d',' ','p','a','r','t','i',
+'t','i','o','n',' ','f','o','r',' ','A','R','N',' ','r','e','g','i','o','n',' ','`','{','b','u','c',
+'k','e','t','A','r','n','#','r','e','g','i','o','n','}','`','"',',','"','t','y','p','e','"',':','"',
+'e','r','r','o','r','"','}',']','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R',
+'N',':',' ','T','h','e',' ','A','R','N',' ','m','a','y',' ','o','n','l','y',' ','c','o','n','t','a',
+'i','n',' ','a',' ','s','i','n','g','l','e',' ','r','e','s','o','u','r','c','e',' ','c','o','m','p',
+'o','n','e','n','t',' ','a','f','t','e','r',' ','`','a','c','c','e','s','s','p','o','i','n','t','`',
+'.','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',']','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':',
+'"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','b','u','c','k','e','t',' ','A','R','N',' ',
+'i','s',' ','m','i','s','s','i','n','g',' ','a',' ','r','e','g','i','o','n','"',',','"','t','y','p',
+'e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','a','c','c','e','s','s','P','o','i','n','t','N','a',
+'m','e','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e',
+'"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',
+']',',','"','e','r','r','o','r','"',':','"','S','3',' ','M','R','A','P',' ','d','o','e','s',' ','n',
+'o','t',' ','s','u','p','p','o','r','t',' ','d','u','a','l','-','s','t','a','c','k','"',',','"','t',
+'y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e',
+'s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',',
+'"','e','r','r','o','r','"',':','"','S','3',' ','M','R','A','P',' ','d','o','e','s',' ','n','o','t',
+' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p','e','"',':','"','e','r',
+'r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t',
+'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','A',
+'c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o',
+'r','"',':','"','S','3',' ','M','R','A','P',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p',
+'o','r','t',' ','S','3',' ','A','c','c','e','l','e','r','a','t','e','"',',','"','t','y','p','e','"',
+':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','D','i','s','a','b','l','e','M','u','l','t','i','R','e','g','i','o','n','A','c','c','e',
+'s','s','P','o','i','n','t','s','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r',
+'"',':','"','I','n','v','a','l','i','d',' ','c','o','n','f','i','g','u','r','a','t','i','o','n',':',
+' ','M','u','l','t','i','-','R','e','g','i','o','n',' ','A','c','c','e','s','s',' ','P','o','i','n',
+'t',' ','A','R','N','s',' ','a','r','e',' ','d','i','s','a','b','l','e','d','.','"',',','"','t','y',
+'p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n','"',':',
+'"','m','r','a','p','P','a','r','t','i','t','i','o','n','"','}',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','m','r','a','p','P','a','r','t','i','t','i','o','n','"','}',',','"','n',
+'a','m','e','"',']','}',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',
+',','"','p','a','r','t','i','t','i','o','n','"',']','}',']','}',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',
+':','"','h','t','t','p','s',':','/','/','{','a','c','c','e','s','s','P','o','i','n','t','N','a','m',
+'e','}','.','a','c','c','e','s','s','p','o','i','n','t','.','s','3','-','g','l','o','b','a','l','.',
+'{','m','r','a','p','P','a','r','t','i','t','i','o','n','#','d','n','s','S','u','f','f','i','x','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','a','"',',','"','s',
+'i','g','n','i','n','g','R','e','g','i','o','n','S','e','t','"',':','[','"','*','"',']',',','"','s',
+'i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e',
+'D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"',
+'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p',
+'o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',
+',','"','e','r','r','o','r','"',':','"','C','l','i','e','n','t',' ','w','a','s',' ','c','o','n','f',
+'i','g','u','r','e','d',' ','f','o','r',' ','p','a','r','t','i','t','i','o','n',' ','`','{','m','r',
+'a','p','P','a','r','t','i','t','i','o','n','#','n','a','m','e','}','`',' ','b','u','t',' ','b','u',
+'c','k','e','t',' ','r','e','f','e','r','r','e','d',' ','t','o',' ','p','a','r','t','i','t','i','o',
+'n',' ','`','{','b','u','c','k','e','t','A','r','n','#','p','a','r','t','i','t','i','o','n','}','`',
+'"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','{','R',
+'e','g','i','o','n','}',' ','w','a','s',' ','n','o','t',' ','a',' ','v','a','l','i','d',' ','r','e',
+'g','i','o','n','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',
+']','}',']','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',
+',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','A','c','c','e','s','s',' ',
+'P','o','i','n','t',' ','N','a','m','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r',
+'"','}',']','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',
+',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','E','x',
+'p','e','c','t','e','d',' ','a',' ','r','e','s','o','u','r','c','e',' ','o','f',' ','t','h','e',' ',
+'f','o','r','m','a','t',' ','`','a','c','c','e','s','s','p','o','i','n','t',':','<','a','c','c','e',
+'s','s','p','o','i','n','t',' ','n','a','m','e','>','`',' ','b','u','t',' ','n','o',' ','n','a','m',
+'e',' ','w','a','s',' ','p','r','o','v','i','d','e','d','"',',','"','t','y','p','e','"',':','"','e',
+'r','r','o','r','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','s','e',
+'r','v','i','c','e','"',']','}',',','"','s','3','-','o','u','t','p','o','s','t','s','"',']','}',']',
+',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',',
+'"','e','r','r','o','r','"',':','"','S','3',' ','O','u','t','p','o','s','t','s',' ','d','o','e','s',
+' ','n','o','t',' ','s','u','p','p','o','r','t',' ','D','u','a','l','-','s','t','a','c','k','"',',',
+'"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',
+']',',','"','e','r','r','o','r','"',':','"','S','3',' ','O','u','t','p','o','s','t','s',' ','d','o',
+'e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',',','"','t','y','p',
+'e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',
+':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',']',
+',','"','e','r','r','o','r','"',':','"','S','3',' ','O','u','t','p','o','s','t','s',' ','d','o','e',
+'s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','S','3',' ','A','c','c','e','l','e','r','a',
+'t','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',
+',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+'{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r','e','s','o','u','r','c','e',
+'I','d','[','4',']','"',']','}',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a',
+'l','i','d',' ','A','r','n',':',' ','O','u','t','p','o','s','t',' ','A','c','c','e','s','s',' ','P',
+'o','i','n','t',' ','A','R','N',' ','c','o','n','t','a','i','n','s',' ','s','u','b',' ','r','e','s',
+'o','u','r','c','e','s','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t',
+'r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r',
+'e','s','o','u','r','c','e','I','d','[','1',']','"',']',',','"','a','s','s','i','g','n','"',':','"',
+'o','u','t','p','o','s','t','I','d','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e',
+'"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s',
+'V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','o','u','t','p','o','s','t','I','d','"','}',',','f','a','l','s','e',']',
+'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','A','r','n','R','e','g','i','o','n','"','}',
+']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','A','r','n','R','e','g',
+'i','o','n','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',
+',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t',
+'t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e',
+'t','A','r','n','"','}',',','"','r','e','g','i','o','n','"',']','}',',','"','{','R','e','g','i','o',
+'n','}','"',']','}',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',
+' ','c','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','r','e','g','i','o','n',' ','f','r',
+'o','m',' ','A','R','N',' ','`','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n',
+'}','`',' ','d','o','e','s',' ','n','o','t',' ','m','a','t','c','h',' ','c','l','i','e','n','t',' ',
+'r','e','g','i','o','n',' ','`','{','R','e','g','i','o','n','}','`',' ','a','n','d',' ','U','s','e',
+'A','r','n','R','e','g','i','o','n',' ','i','s',' ','`','f','a','l','s','e','`','"',',','"','t','y',
+'p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r','e','g','i','o','n','"',
+']','}',']',',','"','a','s','s','i','g','n','"',':','"','b','u','c','k','e','t','P','a','r','t','i',
+'t','i','o','n','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t',
+'y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p','a','r',
+'t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R',
+'e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','p','a','r','t','i','t',
+'i','o','n','R','e','s','u','l','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e',
+'"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s','t',
+'r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',
+':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','b','u','c','k','e','t','P','a','r','t','i','t','i','o','n','"','}',',','"','n','a','m','e',
+'"',']','}',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','p','a','r','t','i','t','i','o','n','R','e','s','u','l',
+'t','"','}',',','"','n','a','m','e','"',']','}',']','}',']',',','"','t','y','p','e','"',':','"','t',
+'r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e',
+'s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r','e','g',
+'i','o','n','"',']','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r',
+'e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','a','c','c','o',
+'u','n','t','I','d','"',']','}',',','f','a','l','s','e',']','}',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','b','u','c','k','e','t','A','r','n','"','}',',','"','r','e','s','o','u','r','c','e','I',
+'d','[','2',']','"',']',',','"','a','s','s','i','g','n','"',':','"','o','u','t','p','o','s','t','T',
+'y','p','e','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l',
+'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y',
+'p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','b','u','c','k','e','t','A','r',
+'n','"','}',',','"','r','e','s','o','u','r','c','e','I','d','[','3',']','"',']',',','"','a','s','s',
+'i','g','n','"',':','"','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','"','}',']',',',
+'"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r',
+'e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','o','u','t','p','o','s','t','T','y','p',
+'e','"','}',',','"','a','c','c','e','s','s','p','o','i','n','t','"',']','}',']',',','"','t','y','p',
+'e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',',
+'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p',
+'a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l',
+'"','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t',
+'t','p','s',':','/','/','{','a','c','c','e','s','s','P','o','i','n','t','N','a','m','e','}','-','{',
+'b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I','d','}','.','{','o','u','t',
+'p','o','s','t','I','d','}','.','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','"',',',
+'"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e',
+'s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n',
+'i','n','g','R','e','g','i','o','n','"',':','"','{','b','u','c','k','e','t','A','r','n','#','r','e',
+'g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','-',
+'o','u','t','p','o','s','t','s','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E',
+'n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s',
+'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n',
+'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','{','a','c','c','e','s',
+'s','P','o','i','n','t','N','a','m','e','}','-','{','b','u','c','k','e','t','A','r','n','#','a','c',
+'c','o','u','n','t','I','d','}','.','{','o','u','t','p','o','s','t','I','d','}','.','s','3','-','o',
+'u','t','p','o','s','t','s','.','{','b','u','c','k','e','t','A','r','n','#','r','e','g','i','o','n',
+'}','.','{','b','u','c','k','e','t','P','a','r','t','i','t','i','o','n','#','d','n','s','S','u','f',
+'f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h',
+'S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',
+',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','b','u','c','k','e','t',
+'A','r','n','#','r','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e',
+'"',':','"','s','3','-','o','u','t','p','o','s','t','s','"',',','"','d','i','s','a','b','l','e','D',
+'o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h',
+'e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o',
+'i','n','t','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+']',',','"','e','r','r','o','r','"',':','"','E','x','p','e','c','t','e','d',' ','a','n',' ','o','u',
+'t','p','o','s','t',' ','t','y','p','e',' ','`','a','c','c','e','s','s','p','o','i','n','t','`',',',
+' ','f','o','u','n','d',' ','{','o','u','t','p','o','s','t','T','y','p','e','}','"',',','"','t','y',
+'p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',
+' ','A','R','N',':',' ','e','x','p','e','c','t','e','d',' ','a','n',' ','a','c','c','e','s','s',' ',
+'p','o','i','n','t',' ','n','a','m','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r',
+'"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"',
+'e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','E','x','p','e',
+'c','t','e','d',' ','a',' ','4','-','c','o','m','p','o','n','e','n','t',' ','r','e','s','o','u','r',
+'c','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"',
+'I','n','v','a','l','i','d',' ','A','R','N',':',' ','T','h','e',' ','a','c','c','o','u','n','t',' ',
+'i','d',' ','m','a','y',' ','o','n','l','y',' ','c','o','n','t','a','i','n',' ','a','-','z',',',' ',
+'A','-','Z',',',' ','0','-','9',' ','a','n','d',' ','`','-','`','.',' ','F','o','u','n','d',':',' ',
+'`','{','b','u','c','k','e','t','A','r','n','#','a','c','c','o','u','n','t','I','d','}','`','"',',',
+'"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a',
+'l','i','d',' ','r','e','g','i','o','n',' ','i','n',' ','A','R','N',':',' ','`','{','b','u','c','k',
+'e','t','A','r','n','#','r','e','g','i','o','n','}','`',' ','(','i','n','v','a','l','i','d',' ','D',
+'N','S',' ','n','a','m','e',')','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',
+']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r',
+'r','o','r','"',':','"','C','l','i','e','n','t',' ','w','a','s',' ','c','o','n','f','i','g','u','r',
+'e','d',' ','f','o','r',' ','p','a','r','t','i','t','i','o','n',' ','`','{','p','a','r','t','i','t',
+'i','o','n','R','e','s','u','l','t','#','n','a','m','e','}','`',' ','b','u','t',' ','A','R','N',' ',
+'(','`','{','B','u','c','k','e','t','}','`',')',' ','h','a','s',' ','`','{','b','u','c','k','e','t',
+'P','a','r','t','i','t','i','o','n','#','n','a','m','e','}','`','"',',','"','t','y','p','e','"',':',
+'"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','e','r','r','o','r','"',':','"','A',' ','v','a','l','i','d',' ','p','a','r',
+'t','i','t','i','o','n',' ','c','o','u','l','d',' ','n','o','t',' ','b','e',' ','d','e','t','e','r',
+'m','i','n','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']',
+'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r',
+'"',':','"','C','o','u','l','d',' ','n','o','t',' ','l','o','a','d',' ','p','a','r','t','i','t','i',
+'o','n',' ','f','o','r',' ','A','R','N',' ','r','e','g','i','o','n',' ','{','b','u','c','k','e','t',
+'A','r','n','#','r','e','g','i','o','n','}','"',',','"','t','y','p','e','"',':','"','e','r','r','o',
+'r','"','}',']','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','T',
+'h','e',' ','o','u','t','p','o','s','t',' ','I','d',' ','m','a','y',' ','o','n','l','y',' ','c','o',
+'n','t','a','i','n',' ','a','-','z',',',' ','A','-','Z',',',' ','0','-','9',' ','a','n','d',' ','`',
+'-','`','.',' ','F','o','u','n','d',':',' ','`','{','o','u','t','p','o','s','t','I','d','}','`','"',
+',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v',
+'a','l','i','d',' ','A','R','N',':',' ','T','h','e',' ','O','u','t','p','o','s','t',' ','I','d',' ',
+'w','a','s',' ','n','o','t',' ','s','e','t','"',',','"','t','y','p','e','"',':','"','e','r','r','o',
+'r','"','}',']','}',']','}',']','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R',
+'N',':',' ','U','n','r','e','c','o','g','n','i','z','e','d',' ','f','o','r','m','a','t',':',' ','{',
+'B','u','c','k','e','t','}',' ','(','t','y','p','e',':',' ','{','a','r','n','T','y','p','e','}',')',
+'"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n',
+'v','a','l','i','d',' ','A','R','N',':',' ','N','o',' ','A','R','N',' ','t','y','p','e',' ','s','p',
+'e','c','i','f','i','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',
+'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','s',
+'u','b','s','t','r','i','n','g','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','B','u','c','k','e','t','"','}',',','0',',','4',',','f','a','l','s','e',']',',','"','a','s','s',
+'i','g','n','"',':','"','a','r','n','P','r','e','f','i','x','"','}',',','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','a','r','n','P','r','e','f','i','x','"','}',',','"','a','r','n',':','"',']','}',
+',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n',
+'"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'a','w','s','.','p','a','r','s','e','A','r','n','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','B','u','c','k','e','t','"','}',']','}',']','}',']','}',']',',','"','e','r','r',
+'o','r','"',':','"','I','n','v','a','l','i','d',' ','A','R','N',':',' ','`','{','B','u','c','k','e',
+'t','}','`',' ','w','a','s',' ','n','o','t',' ','a',' ','v','a','l','i','d',' ','A','R','N','"',',',
+'"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[','{','"','f','n','"',':','"','u','r','i','E','n','c','o','d','e','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k','e','t','"','}',']',',',
+'"','a','s','s','i','g','n','"',':','"','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c',
+'k','e','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l',
+'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r',
+'u','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']',',','"',
+'e','r','r','o','r','"',':','"','C','a','n','n','o','t',' ','s','e','t',' ','d','u','a','l','-','s',
+'t','a','c','k',' ','i','n',' ','c','o','m','b','i','n','a','t','i','o','n',' ','w','i','t','h',' ',
+'a',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t','.','"',',','"','t','y','p','e',
+'"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w',
+'s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','p',
+'a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','f','a','l',
+'s','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e',
+'s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p',
+'e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',
+',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',
+':','/','/','s','3','-','f','i','p','s','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e',
+'a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n',
+'s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c',
+'k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h',
+'S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',
+',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t',
+'-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d',
+'i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u',
+'e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',
+':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t',
+'a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',
+']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',
+',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o',
+'n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p',
+'o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-',
+'f','i','p','s','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s','t','-','1','.',
+'{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i',
+'x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',',
+'"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e',
+'s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n',
+'i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s',
+'i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e',
+'D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"',
+'h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p',
+'o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',',
+'t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f',
+'n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']',
+'}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l',
+'o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s',
+'e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',
+',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t',
+'"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s',
+'.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t',
+'i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u',
+'r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o',
+'b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/',
+'s','3','-','f','i','p','s','.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n',
+'}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f',
+'f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i',
+'g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"',
+'s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l',
+'e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',',
+'"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d',
+'p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',
+',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',
+'}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s',
+'s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{',
+'u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r',
+'i','t','y','}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{',
+'u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o',
+'p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[',
+'{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R',
+'e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i',
+'n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b',
+'l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d',
+'e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t',
+'"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s',
+'e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f',
+'n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',
+':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F',
+'I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n',
+'g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',',
+'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s',
+'c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{',
+'u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e',
+'n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m',
+'e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c',
+'o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':',
+'{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{',
+'"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p',
+'a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l',
+'"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',
+',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v',
+'"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"',
+'a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t',
+'r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l',
+'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n',
+'d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e',
+'m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l',
+'#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e','n','c','o',
+'d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',
+':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':',
+'"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"',
+'{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n',
+'g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',',
+'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f',
+'n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r',
+'s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w',
+'s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l',
+'s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"',
+'{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o',
+'r','i','t','y','}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}',
+'{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r',
+'o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':',
+'[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g',
+'R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i',
+'n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b',
+'l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d',
+'e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t',
+'"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s',
+'e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-',
+'g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u',
+'r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','u','s','-','e',
+'a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n',
+'s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c',
+'k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h',
+'S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',
+',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t',
+'-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d',
+'i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u',
+'e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',
+':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t',
+'a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',
+',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',
+'}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"',
+'}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i',
+'o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d',
+'p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3',
+'-','f','i','p','s','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i','o',
+'n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e',
+'n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m',
+'e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c',
+'o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':',
+'{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{',
+'"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':',
+'"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E',
+'n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',
+'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E',
+'n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',
+':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','{','R','e','g','i','o','n',
+'}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f',
+'f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i',
+'g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"',
+'s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l',
+'e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',',
+'"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d',
+'p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k',
+'"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w',
+'s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l',
+'s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"',
+'h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.',
+'{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i',
+'x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',',
+'"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e',
+'s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n',
+'i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i',
+'g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D',
+'o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h',
+'e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o',
+'i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']',
+'}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a',
+'w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':',
+'{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','d','u','a','l','s','t',
+'a','c','k','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R',
+'e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c',
+'o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s',
+'"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',
+':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':',
+'"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',
+':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d',
+'i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}',
+'}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n',
+'"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s',
+'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p',
+'o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','s',
+'t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',
+']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t',
+'t','p','s',':','/','/','s','3','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e','a','s',
+'t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S',
+'u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e',
+'t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c',
+'h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"',
+'s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1',
+'"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s',
+'a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',
+']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"',
+'e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c',
+'k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f',
+'a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a',
+'w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r',
+'u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e',
+'s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d',
+'p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3',
+'.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t',
+'i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u',
+'r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',
+']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{',
+'"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a',
+'l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l',
+'o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"',
+'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/',
+'/','s','3','.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p',
+'a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}',
+'/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p',
+'r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',
+':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n',
+'g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n',
+'i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u',
+'b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a',
+'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n',
+'t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l',
+'s','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"',
+'f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n',
+'"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','s','t','r',
+'i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',
+']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l',
+'#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y',
+'}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i',
+'_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r',
+'t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n',
+'a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i',
+'o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N',
+'a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E',
+'n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s',
+'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',
+',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':',
+'"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u',
+'r','l','"','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e',
+'g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h',
+'e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r',
+'l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e','n','c',
+'o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s',
+'"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',
+':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':',
+'"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',
+':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d',
+'i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}',
+'}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o',
+'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f',
+'n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r',
+'s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f',
+'a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',
+':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a',
+'w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r',
+'u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e',
+'s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','u','s','-','e','a','s','t','-','1',
+'"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{',
+'u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r',
+'i','t','y','}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{',
+'u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o',
+'p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[',
+'{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R',
+'e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n',
+'g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l',
+'e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e',
+'r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"',
+'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o',
+'i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',
+':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','n','o',
+'r','m','a','l','i','z','e','d','P','a','t','h','}','{','u','r','i','_','e','n','c','o','d','e','d',
+'_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"',
+'a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i',
+'g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e',
+'g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',
+',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':',
+'t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y',
+'p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D',
+'u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E',
+'n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U',
+'R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o',
+'i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s',
+'e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-',
+'g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',
+']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u',
+'r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i',
+'t','y','}','{','u','r','l','#','n','o','r','m','a','l','i','z','e','d','P','a','t','h','}','{','u',
+'r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']',
+'}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f',
+'n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g',
+'l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r',
+'l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','p','a','r','t','i','t','i','o','n',
+'R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n',
+'c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e',
+'s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e',
+'"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',
+':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e',
+'"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o',
+'d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{',
+'}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a',
+'n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a',
+'l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"',
+'h','t','t','p','s',':','/','/','s','3','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u',
+'l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e',
+'d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{',
+'"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s',
+'i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s',
+'-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s',
+'3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g',
+'"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"',
+'t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D',
+'u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g',
+'i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o',
+'i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e',
+'e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','u',
+'s','-','e','a','s','t','-','1','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{',
+'"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','p','a','r','t','i','t',
+'i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','/','{','u','r','i',
+'_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"','p','r','o','p','e','r',
+'t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n',
+'a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i',
+'o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a',
+'m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t',
+'"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','R','e','g',
+'i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s',
+'S','u','f','f','i','x','}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k',
+'e','t','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S',
+'c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',',
+'"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}',
+'"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s',
+'a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',
+']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"',
+'e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t',
+'a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',
+',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',
+'}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"',
+'}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',
+',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',
+',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r',
+'l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','R','e','g','i','o','n','}','.','{',
+'p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x',
+'}','/','{','u','r','i','_','e','n','c','o','d','e','d','_','b','u','c','k','e','t','}','"',',','"',
+'p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s',
+'"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i',
+'n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g',
+'n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o',
+'u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e',
+'a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i',
+'n','t','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',
+',','"','e','r','r','o','r','"',':','"','P','a','t','h','-','s','t','y','l','e',' ','a','d','d','r',
+'e','s','s','i','n','g',' ','c','a','n','n','o','t',' ','b','e',' ','u','s','e','d',' ','w','i','t',
+'h',' ','S','3',' ','A','c','c','e','l','e','r','a','t','e','"',',','"','t','y','p','e','"',':','"',
+'e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[',']',',','"','e','r','r','o','r','"',':','"','A',' ','v','a','l','i','d',' ','p','a','r','t',
+'i','t','i','o','n',' ','c','o','u','l','d',' ','n','o','t',' ','b','e',' ','d','e','t','e','r','m',
+'i','n','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',
+']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',
+':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'U','s','e','O','b','j','e','c','t','L','a','m','b','d','a','E','n','d','p','o','i','n','t','"','}',
+']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','O','b','j','e','c','t',
+'L','a','m','b','d','a','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',',
+'"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s','.','p',
+'a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','p','a','r','t',
+'i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r',
+'e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s',
+'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','t','r','u','e',']','}',']',
+',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t',
+'r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S',
+'t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','S',
+'3',' ','O','b','j','e','c','t',' ','L','a','m','b','d','a',' ','d','o','e','s',' ','n','o','t',' ',
+'s','u','p','p','o','r','t',' ','D','u','a','l','-','s','t','a','c','k','"',',','"','t','y','p','e',
+'"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','A','c','c','e','l','e','r','a','t','e','"','}',',','t','r','u','e',']','}',']',',',
+'"','e','r','r','o','r','"',':','"','S','3',' ','O','b','j','e','c','t',' ','L','a','m','b','d','a',
+' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','S','3',' ','A','c','c','e',
+'l','e','r','a','t','e','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t',
+'r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n',
+'s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"',
+'}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t','A','t',
+'t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','p','a','r','t','i',
+'t','i','o','n','R','e','s','u','l','t','"','}',',','"','n','a','m','e','"',']','}',',','"','a','w',
+'s','-','c','n','"',']','}',']',',','"','e','r','r','o','r','"',':','"','P','a','r','t','i','t','i',
+'o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','F','I','P','S','"',
+',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r',
+'u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f',
+'n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r',
+'s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',
+']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l',
+'#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y',
+'}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',
+':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':',
+'"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"',
+'{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','-','o','b','j','e','c','t','-','l','a','m','b','d','a','"',',','"','d','i','s','a','b','l',
+'e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',',
+'"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d',
+'p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',
+']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t',
+'t','p','s',':','/','/','s','3','-','o','b','j','e','c','t','-','l','a','m','b','d','a','-','f','i',
+'p','s','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s',
+'u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e',
+'"',':','"','s','3','-','o','b','j','e','c','t','-','l','a','m','b','d','a','"',',','"','d','i','s',
+'a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',
+']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"',
+'e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t',
+'p','s',':','/','/','s','3','-','o','b','j','e','c','t','-','l','a','m','b','d','a','.','{','R','e',
+'g','i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n',
+'s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"',
+'a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i',
+'g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e',
+'g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','-',
+'o','b','j','e','c','t','-','l','a','m','b','d','a','"',',','"','d','i','s','a','b','l','e','D','o',
+'u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e',
+'a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i',
+'n','t','"','}',']','}',']','}',']','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l','i','d',' ','r',
+'e','g','i','o','n',':',' ','r','e','g','i','o','n',' ','w','a','s',' ','n','o','t',' ','a',' ','v',
+'a','l','i','d',' ','D','N','S',' ','n','a','m','e','.','"',',','"','t','y','p','e','"',':','"','e',
+'r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':',
+'[',']',',','"','e','r','r','o','r','"',':','"','A',' ','v','a','l','i','d',' ','p','a','r','t','i',
+'t','i','o','n',' ','c','o','u','l','d',' ','n','o','t',' ','b','e',' ','d','e','t','e','r','m','i',
+'n','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','n','o','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','B','u','c','k','e','t','"','}',']','}',']','}',
+']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','a','w','s',
+'.','p','a','r','t','i','t','i','o','n','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','R','e','g','i','o','n','"','}',']',',','"','a','s','s','i','g','n','"',':','"','p','a',
+'r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',']',',','"','t','y','p','e','"',':','"',
+'t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l',
+'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',
+':','"','i','s','V','a','l','i','d','H','o','s','t','L','a','b','e','l','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','t','r','u','e',']',
+'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':',
+'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P',
+'S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','g','e','t',
+'A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','p','a','r',
+'t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','n','a','m','e','"',']','}',',','"',
+'a','w','s','-','c','n','"',']','}',']',',','"','e','r','r','o','r','"',':','"','P','a','r','t','i',
+'t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','F','I','P',
+'S','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',',
+'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u',
+'e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S',
+'t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',
+']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{',
+'u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r',
+'i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m',
+'e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c',
+'o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':',
+'{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',
+']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n',
+'"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':',
+'"','u','r','l','"','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n',
+'"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o',
+'i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',
+':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a',
+'t','h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S',
+'c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',',
+'"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-',
+'1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i',
+'s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e',
+'}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':',
+'"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',',
+'t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u',
+'a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','i',
+'s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d',
+'p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n',
+'t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n',
+'"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t',
+'r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']',
+'}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a',
+'l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e',
+'"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r',
+'l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a',
+'u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o',
+'p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[',
+'{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R',
+'e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n',
+'g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l',
+'e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e',
+'r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"',
+'}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"',
+'}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',
+'}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s',
+'s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','n','o','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o',
+'n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n',
+'t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{',
+'"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r',
+'l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"',
+'p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s',
+'"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i',
+'n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g',
+'n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o',
+'u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e',
+'a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i',
+'n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k',
+'"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',',
+'{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s',
+'-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"',
+'u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','d','u','a',
+'l','s','t','a','c','k','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i',
+'o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o',
+'p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[',
+'{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R',
+'e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i',
+'n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b',
+'l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d',
+'e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t',
+'"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"',
+'b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',
+',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v',
+'"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g',
+'l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r',
+'l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','d','u','a','l','s',
+'t','a','c','k','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n',
+'R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e',
+'r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"',
+'n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g',
+'i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n',
+'"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t',
+'r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']',
+'}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a',
+'l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e',
+'"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r',
+'l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','d','u','a','l','s',
+'t','a','c','k','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R',
+'e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r',
+'t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n',
+'a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i',
+'o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a',
+'m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o',
+'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t',
+'r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':',
+'[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n',
+'"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t',
+'r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']',
+'}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a',
+'l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d',
+'p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3',
+'-','f','i','p','s','.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}','.',
+'{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i',
+'x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c',
+'h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"',
+'s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',
+',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a',
+'b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']',
+'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e',
+'n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r',
+'u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l',
+'S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','i','s',
+'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p',
+'o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t',
+'"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b',
+'a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':',
+'"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h',
+'o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p','e','r',
+'t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n',
+'a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i',
+'o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N',
+'a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E',
+'n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s',
+'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a',
+'l','s','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{',
+'"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g',
+'n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g',
+'i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n',
+'d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e',
+'m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l',
+'#','p','a','t','h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u',
+'t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v',
+'4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a',
+'s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E',
+'q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s',
+'e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n',
+'"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s',
+'e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d',
+'p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',',
+'{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b',
+'a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G',
+'l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"',
+'t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c',
+'o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':',
+'{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u',
+'r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',',
+'"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e',
+'s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n',
+'i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i',
+'g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D',
+'o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h',
+'e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o',
+'i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',
+']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t',
+'a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',
+']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"',
+'n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n',
+'g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',
+',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a',
+'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n',
+'d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i',
+'n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':',
+'/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t',
+'h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c',
+'h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"',
+'s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',
+',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a',
+'b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']',
+'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e',
+'n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r',
+'u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l',
+'S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"',
+'}',']','}',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"',
+'}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i',
+'n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','-','f','i',
+'p','s','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e',
+'s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t',
+'i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a',
+'m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o',
+'n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a',
+'m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n',
+'c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',
+':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{',
+'"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l',
+'s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[',
+'{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b',
+'a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':',
+'"','h','t','t','p','s',':','/','/','s','3','-','f','i','p','s','.','u','s','-','e','a','s','t','-',
+'1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f',
+'f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h',
+'S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',
+',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t',
+'-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d',
+'i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u',
+'e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',
+':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',
+',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D',
+'u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g',
+'v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',',
+'"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',',
+'t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"','r','u',
+'l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/',
+'s','3','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i',
+'o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o',
+'p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[',
+'{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R',
+'e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n',
+'g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l',
+'e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e',
+'r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"',
+'}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',',','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"',
+'}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',',
+'{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b',
+'a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G',
+'l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',',
+'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':',
+'/','/','s','3','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','p','a','r','t','i',
+'t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p',
+'r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',
+':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n',
+'g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n',
+'i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u',
+'b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a',
+'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n',
+'t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k',
+'"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',
+']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a',
+'s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',
+',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#',
+'s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}',
+'{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':',
+'{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"',
+'s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u',
+'s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"',
+'s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n',
+'g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',',
+'"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d',
+'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',',
+'{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"',
+'p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r',
+'l','"','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',',
+'"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t',
+'"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/',
+'{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i',
+'g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',',
+'"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b',
+'l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',
+',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n',
+'d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l',
+'s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l',
+'S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','i','s','S',
+'e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o',
+'i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"',
+'}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i',
+'n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',
+'}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E',
+'n','d','p','o','i','n','t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':',
+'"','t','r','e','e','"',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',
+':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t',
+'h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p','e',
+'r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"',
+'n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g',
+'i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N',
+'a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E',
+'n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s',
+'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',
+'}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',
+',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',
+',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s',
+'i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n',
+'"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t',
+'"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"',
+'u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l',
+'#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p',
+'r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',
+':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n',
+'g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n',
+'i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u',
+'b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a',
+'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n',
+'t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r',
+'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k',
+'"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r',
+'g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',',
+'{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s',
+'-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"',
+'u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','d','u','a','l','s','t','a','c',
+'k','.','u','s','-','e','a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s',
+'u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i',
+'e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m',
+'e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n',
+'"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m',
+'e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c',
+'o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':',
+'{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"',
+'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u',
+'e',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{',
+'"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e',
+'f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':',
+'"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"',
+'r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a',
+'l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"',
+'h','t','t','p','s',':','/','/','s','3','.','d','u','a','l','s','t','a','c','k','.','u','s','-','e',
+'a','s','t','-','1','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n',
+'s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"',
+'a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i',
+'g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-',
+'e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3',
+'"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',
+':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t',
+'y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t',
+'i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I',
+'P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e',
+'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n',
+'d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',',
+'"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a',
+'l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o',
+'n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n',
+'t','"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',
+',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',
+']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p',
+'s',':','/','/','s','3','.','d','u','a','l','s','t','a','c','k','.','{','R','e','g','i','o','n','}',
+'.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f',
+'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S',
+'c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',',
+'"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}',
+'"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s',
+'a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',
+']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"',
+'e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s',
+'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',
+',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e',
+'D','u','a','l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',',','{','"','f','n','"',':',
+'"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i','s','S','e',
+'t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i',
+'n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g',
+'v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',',
+'"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':','"','b',
+'o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"','}',',',
+'f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l',
+'"',':','"','h','t','t','p','s',':','/','/','s','3','.','d','u','a','l','s','t','a','c','k','.','{',
+'R','e','g','i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#',
+'d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':',
+'{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"',
+'s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{',
+'R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s',
+'3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g',
+'"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"',
+'t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F',
+'I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"',
+'p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':',
+'"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r',
+'l','"','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',',
+'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',',
+'"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t',
+'"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/',
+'{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}',
+'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e',
+'m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i',
+'g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',',
+'"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b',
+'l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',
+',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n',
+'d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l',
+'s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l',
+'S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','i','s',
+'S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p',
+'o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',
+',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t',
+'"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',
+':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b',
+'a','l','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':',
+'"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h',
+'o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p','e','r',
+'t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n',
+'a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i',
+'o','n','"',':','"','u','s','-','e','a','s','t','-','1','"',',','"','s','i','g','n','i','n','g','N',
+'a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E',
+'n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s',
+'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o',
+'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f',
+'"',':','"','U','s','e','F','I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n',
+'"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':',
+'[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f',
+'a','l','s','e',']','}',',','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a','r','g',
+'v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']','}',',',
+'{','"','f','n','"',':','"','p','a','r','s','e','U','R','L','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','E','n','d','p','o','i','n','t','"','}',']',',','"','a','s','s','i',
+'g','n','"',':','"','u','r','l','"','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"','a',
+'r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"',
+'}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',':',
+'"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{',
+'"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t','"',
+'}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',','"',
+'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"',
+'f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',
+':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','u','s','-','e','a',
+'s','t','-','1','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l',
+'"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':','/','/','{','u','r','l','#','a','u',
+'t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t','h','}','"',',','"','p','r','o','p',
+'e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{',
+'"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e',
+'g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g',
+'N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e',
+'E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r',
+'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',
+',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i',
+'n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h','e','m','e','}',':',
+'/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r','l','#','p','a','t',
+'h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u','t','h','S','c',
+'h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v','4','"',',','"',
+'s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',
+',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"','d','i','s','a',
+'b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r','u','e','}',']',
+'}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e',
+'n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',
+':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"',
+'a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',',
+'f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D',
+'u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':',
+'"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E',
+'n','d','p','o','i','n','t','"','}',']','}',',','{','"','f','n','"',':','"','p','a','r','s','e','U',
+'R','L','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d','p','o',
+'i','n','t','"','}',']',',','"','a','s','s','i','g','n','"',':','"','u','r','l','"','}',',','{','"',
+'f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"',
+'s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r',
+'e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l',
+'"',']','}',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o',
+'b','a','l','E','n','d','p','o','i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e',
+'n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','{','u','r','l','#','s','c','h',
+'e','m','e','}',':','/','/','{','u','r','l','#','a','u','t','h','o','r','i','t','y','}','{','u','r',
+'l','#','p','a','t','h','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a',
+'u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g',
+'v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g',
+'i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f',
+'n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i',
+'s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d',
+'p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R',
+'e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"',
+'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/',
+'/','s','3','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S',
+'u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u',
+'t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v',
+'4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a',
+'s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f',
+'n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i',
+'s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d',
+'p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','s','t','r','i','n','g',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R',
+'e','g','i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']',',','"',
+'e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/',
+'/','s','3','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S',
+'u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u',
+'t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v',
+'4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','u','s','-','e','a',
+'s','t','-','1','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',',
+'"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t',
+'r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p',
+'e','"',':','"','e','n','d','p','o','i','n','t','"','}',',','{','"','c','o','n','d','i','t','i','o',
+'n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s',
+'"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S',
+'"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n',
+'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U',
+'s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',','{','"','f',
+'n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','i',
+'s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n','d',
+'p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','n','o','t','"',',','"',
+'a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l',
+'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n',
+'"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"','f','n','"',
+':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[',
+'{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o','i','n','t',
+'"','}',',','t','r','u','e',']','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"',',',
+'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{',
+'"','f','n','"',':','"','s','t','r','i','n','g','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',',','"','u','s','-','e',
+'a','s','t','-','1','"',']','}',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r',
+'l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','p','a','r','t','i','t','i','o','n',
+'R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e',
+'r','t','i','e','s','"',':','{','"','a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"',
+'n','a','m','e','"',':','"','s','i','g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g',
+'i','o','n','"',':','"','{','R','e','g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N',
+'a','m','e','"',':','"','s','3','"',',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E',
+'n','c','o','d','i','n','g','"',':','t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s',
+'"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',',',
+'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i','n',
+'t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','R','e',
+'g','i','o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n',
+'s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"',
+'a','u','t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i',
+'g','v','4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e',
+'g','i','o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',
+',','"','d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':',
+'t','r','u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y',
+'p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',',','{','"','c','o','n','d','i',
+'t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u',
+'a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F',
+'I','P','S','"','}',',','f','a','l','s','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l',
+'e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',
+':','"','U','s','e','D','u','a','l','S','t','a','c','k','"','}',',','f','a','l','s','e',']','}',',',
+'{','"','f','n','"',':','"','n','o','t','"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',
+':','"','i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"',
+'E','n','d','p','o','i','n','t','"','}',']','}',']','}',',','{','"','f','n','"',':','"','n','o','t',
+'"',',','"','a','r','g','v','"',':','[','{','"','f','n','"',':','"','s','t','r','i','n','g','E','q',
+'u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g',
+'i','o','n','"','}',',','"','a','w','s','-','g','l','o','b','a','l','"',']','}',']','}',',','{','"',
+'f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v',
+'"',':','[','{','"','r','e','f','"',':','"','U','s','e','G','l','o','b','a','l','E','n','d','p','o',
+'i','n','t','"','}',',','f','a','l','s','e',']','}',']',',','"','e','n','d','p','o','i','n','t','"',
+':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','s','3','.','{','R','e','g','i',
+'o','n','}','.','{','p','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S',
+'u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','"','a','u',
+'t','h','S','c','h','e','m','e','s','"',':','[','{','"','n','a','m','e','"',':','"','s','i','g','v',
+'4','"',',','"','s','i','g','n','i','n','g','R','e','g','i','o','n','"',':','"','{','R','e','g','i',
+'o','n','}','"',',','"','s','i','g','n','i','n','g','N','a','m','e','"',':','"','s','3','"',',','"',
+'d','i','s','a','b','l','e','D','o','u','b','l','e','E','n','c','o','d','i','n','g','"',':','t','r',
+'u','e','}',']','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e',
+'"',':','"','e','n','d','p','o','i','n','t','"','}',']','}',']','}',']','}',',','{','"','c','o','n',
+'d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a',
+'l','i','d',' ','r','e','g','i','o','n',':',' ','r','e','g','i','o','n',' ','w','a','s',' ','n','o',
+'t',' ','a',' ','v','a','l','i','d',' ','D','N','S',' ','n','a','m','e','.','"',',','"','t','y','p',
+'e','"',':','"','e','r','r','o','r','"','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i',
+'o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','A',' ','v','a','l','i','d',' ',
+'p','a','r','t','i','t','i','o','n',' ','c','o','u','l','d',' ','n','o','t',' ','b','e',' ','d','e',
+'t','e','r','m','i','n','e','d','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',
+']','}',']','}',']','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"',
+'e','r','r','o','r','"',':','"','A',' ','r','e','g','i','o','n',' ','m','u','s','t',' ','b','e',' ',
+'s','e','t',' ','w','h','e','n',' ','s','e','n','d','i','n','g',' ','r','e','q','u','e','s','t','s',
+' ','t','o',' ','S','3','.','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',
+'}',']','}','\0'
+}};
+
+const char* S3EndpointRules::GetRulesBlob()
+{
+ return RulesBlob.data();
+}
+
+} // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Request.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Request.cpp
new file mode 100644
index 0000000000..1b93c81846
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Request.cpp
@@ -0,0 +1,14 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+
+#include <aws/s3/S3Request.h>
+
+namespace Aws
+{
+namespace S3
+{
+} // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadRequest.cpp
index 4d8645caab..299825faff 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadRequest.cpp
@@ -79,3 +79,13 @@ Aws::Http::HeaderValueCollection AbortMultipartUploadRequest::GetRequestSpecific
return headers;
}
+
+AbortMultipartUploadRequest::EndpointParameters AbortMultipartUploadRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Bucket.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Bucket.cpp
index 1ad9b5f310..cf66979ae2 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Bucket.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Bucket.cpp
@@ -48,7 +48,7 @@ Bucket& Bucket::operator =(const XmlNode& xmlNode)
XmlNode creationDateNode = resultNode.FirstChild("CreationDate");
if(!creationDateNode.IsNull())
{
- m_creationDate = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(creationDateNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_creationDate = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(creationDateNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_creationDateHasBeenSet = true;
}
}
@@ -68,7 +68,7 @@ void Bucket::AddToNode(XmlNode& parentNode) const
if(m_creationDateHasBeenSet)
{
XmlNode creationDateNode = parentNode.CreateChildElement("CreationDate");
- creationDateNode.SetText(m_creationDate.ToGmtString(DateFormat::ISO_8601));
+ creationDateNode.SetText(m_creationDate.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLocationConstraint.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLocationConstraint.cpp
index 1bcdd2b471..4b83e3bad1 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLocationConstraint.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLocationConstraint.cpp
@@ -28,6 +28,7 @@ namespace Aws
static const int ap_south_1_HASH = HashingUtils::HashString("ap-south-1");
static const int ap_southeast_1_HASH = HashingUtils::HashString("ap-southeast-1");
static const int ap_southeast_2_HASH = HashingUtils::HashString("ap-southeast-2");
+ static const int ap_southeast_3_HASH = HashingUtils::HashString("ap-southeast-3");
static const int ca_central_1_HASH = HashingUtils::HashString("ca-central-1");
static const int cn_north_1_HASH = HashingUtils::HashString("cn-north-1");
static const int cn_northwest_1_HASH = HashingUtils::HashString("cn-northwest-1");
@@ -45,6 +46,7 @@ namespace Aws
static const int us_gov_west_1_HASH = HashingUtils::HashString("us-gov-west-1");
static const int us_west_1_HASH = HashingUtils::HashString("us-west-1");
static const int us_west_2_HASH = HashingUtils::HashString("us-west-2");
+ static const int us_iso_west_1_HASH = HashingUtils::HashString("us-iso-west-1");
static const int us_east_1_HASH = HashingUtils::HashString("us-east-1");
@@ -83,6 +85,10 @@ namespace Aws
{
return BucketLocationConstraint::ap_southeast_2;
}
+ else if (hashCode == ap_southeast_3_HASH)
+ {
+ return BucketLocationConstraint::ap_southeast_3;
+ }
else if (hashCode == ca_central_1_HASH)
{
return BucketLocationConstraint::ca_central_1;
@@ -151,6 +157,10 @@ namespace Aws
{
return BucketLocationConstraint::us_west_2;
}
+ else if (hashCode == us_iso_west_1_HASH)
+ {
+ return BucketLocationConstraint::us_iso_west_1;
+ }
else if (hashCode == us_east_1_HASH)
{
return BucketLocationConstraint::us_east_1;
@@ -185,6 +195,8 @@ namespace Aws
return "ap-southeast-1";
case BucketLocationConstraint::ap_southeast_2:
return "ap-southeast-2";
+ case BucketLocationConstraint::ap_southeast_3:
+ return "ap-southeast-3";
case BucketLocationConstraint::ca_central_1:
return "ca-central-1";
case BucketLocationConstraint::cn_north_1:
@@ -219,6 +231,8 @@ namespace Aws
return "us-west-1";
case BucketLocationConstraint::us_west_2:
return "us-west-2";
+ case BucketLocationConstraint::us_iso_west_1:
+ return "us-iso-west-1";
case BucketLocationConstraint::us_east_1:
return "us-east-1";
default:
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Checksum.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Checksum.cpp
new file mode 100644
index 0000000000..bd4e0f4dc4
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Checksum.cpp
@@ -0,0 +1,106 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/Checksum.h>
+#include <aws/core/utils/xml/XmlSerializer.h>
+#include <aws/core/utils/StringUtils.h>
+#include <aws/core/utils/memory/stl/AWSStringStream.h>
+
+#include <utility>
+
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils;
+
+namespace Aws
+{
+namespace S3
+{
+namespace Model
+{
+
+Checksum::Checksum() :
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
+{
+}
+
+Checksum::Checksum(const XmlNode& xmlNode) :
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
+{
+ *this = xmlNode;
+}
+
+Checksum& Checksum::operator =(const XmlNode& xmlNode)
+{
+ XmlNode resultNode = xmlNode;
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode checksumCRC32Node = resultNode.FirstChild("ChecksumCRC32");
+ if(!checksumCRC32Node.IsNull())
+ {
+ m_checksumCRC32 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32Node.GetText());
+ m_checksumCRC32HasBeenSet = true;
+ }
+ XmlNode checksumCRC32CNode = resultNode.FirstChild("ChecksumCRC32C");
+ if(!checksumCRC32CNode.IsNull())
+ {
+ m_checksumCRC32C = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32CNode.GetText());
+ m_checksumCRC32CHasBeenSet = true;
+ }
+ XmlNode checksumSHA1Node = resultNode.FirstChild("ChecksumSHA1");
+ if(!checksumSHA1Node.IsNull())
+ {
+ m_checksumSHA1 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA1Node.GetText());
+ m_checksumSHA1HasBeenSet = true;
+ }
+ XmlNode checksumSHA256Node = resultNode.FirstChild("ChecksumSHA256");
+ if(!checksumSHA256Node.IsNull())
+ {
+ m_checksumSHA256 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA256Node.GetText());
+ m_checksumSHA256HasBeenSet = true;
+ }
+ }
+
+ return *this;
+}
+
+void Checksum::AddToNode(XmlNode& parentNode) const
+{
+ Aws::StringStream ss;
+ if(m_checksumCRC32HasBeenSet)
+ {
+ XmlNode checksumCRC32Node = parentNode.CreateChildElement("ChecksumCRC32");
+ checksumCRC32Node.SetText(m_checksumCRC32);
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ XmlNode checksumCRC32CNode = parentNode.CreateChildElement("ChecksumCRC32C");
+ checksumCRC32CNode.SetText(m_checksumCRC32C);
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ XmlNode checksumSHA1Node = parentNode.CreateChildElement("ChecksumSHA1");
+ checksumSHA1Node.SetText(m_checksumSHA1);
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ XmlNode checksumSHA256Node = parentNode.CreateChildElement("ChecksumSHA256");
+ checksumSHA256Node.SetText(m_checksumSHA256);
+ }
+
+}
+
+} // namespace Model
+} // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ChecksumAlgorithm.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ChecksumAlgorithm.cpp
new file mode 100644
index 0000000000..674e726dd7
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ChecksumAlgorithm.cpp
@@ -0,0 +1,84 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/ChecksumAlgorithm.h>
+#include <aws/core/utils/HashingUtils.h>
+#include <aws/core/Globals.h>
+#include <aws/core/utils/EnumParseOverflowContainer.h>
+
+using namespace Aws::Utils;
+
+
+namespace Aws
+{
+ namespace S3
+ {
+ namespace Model
+ {
+ namespace ChecksumAlgorithmMapper
+ {
+
+ static const int CRC32_HASH = HashingUtils::HashString("CRC32");
+ static const int CRC32C_HASH = HashingUtils::HashString("CRC32C");
+ static const int SHA1_HASH = HashingUtils::HashString("SHA1");
+ static const int SHA256_HASH = HashingUtils::HashString("SHA256");
+
+
+ ChecksumAlgorithm GetChecksumAlgorithmForName(const Aws::String& name)
+ {
+ int hashCode = HashingUtils::HashString(name.c_str());
+ if (hashCode == CRC32_HASH)
+ {
+ return ChecksumAlgorithm::CRC32;
+ }
+ else if (hashCode == CRC32C_HASH)
+ {
+ return ChecksumAlgorithm::CRC32C;
+ }
+ else if (hashCode == SHA1_HASH)
+ {
+ return ChecksumAlgorithm::SHA1;
+ }
+ else if (hashCode == SHA256_HASH)
+ {
+ return ChecksumAlgorithm::SHA256;
+ }
+ EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
+ if(overflowContainer)
+ {
+ overflowContainer->StoreOverflow(hashCode, name);
+ return static_cast<ChecksumAlgorithm>(hashCode);
+ }
+
+ return ChecksumAlgorithm::NOT_SET;
+ }
+
+ Aws::String GetNameForChecksumAlgorithm(ChecksumAlgorithm enumValue)
+ {
+ switch(enumValue)
+ {
+ case ChecksumAlgorithm::CRC32:
+ return "CRC32";
+ case ChecksumAlgorithm::CRC32C:
+ return "CRC32C";
+ case ChecksumAlgorithm::SHA1:
+ return "SHA1";
+ case ChecksumAlgorithm::SHA256:
+ return "SHA256";
+ default:
+ EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
+ if(overflowContainer)
+ {
+ return overflowContainer->RetrieveOverflow(static_cast<int>(enumValue));
+ }
+
+ return {};
+ }
+ }
+
+ } // namespace ChecksumAlgorithmMapper
+ } // namespace Model
+ } // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ChecksumMode.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ChecksumMode.cpp
new file mode 100644
index 0000000000..d3085bfb8a
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ChecksumMode.cpp
@@ -0,0 +1,63 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/ChecksumMode.h>
+#include <aws/core/utils/HashingUtils.h>
+#include <aws/core/Globals.h>
+#include <aws/core/utils/EnumParseOverflowContainer.h>
+
+using namespace Aws::Utils;
+
+
+namespace Aws
+{
+ namespace S3
+ {
+ namespace Model
+ {
+ namespace ChecksumModeMapper
+ {
+
+ static const int ENABLED_HASH = HashingUtils::HashString("ENABLED");
+
+
+ ChecksumMode GetChecksumModeForName(const Aws::String& name)
+ {
+ int hashCode = HashingUtils::HashString(name.c_str());
+ if (hashCode == ENABLED_HASH)
+ {
+ return ChecksumMode::ENABLED;
+ }
+ EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
+ if(overflowContainer)
+ {
+ overflowContainer->StoreOverflow(hashCode, name);
+ return static_cast<ChecksumMode>(hashCode);
+ }
+
+ return ChecksumMode::NOT_SET;
+ }
+
+ Aws::String GetNameForChecksumMode(ChecksumMode enumValue)
+ {
+ switch(enumValue)
+ {
+ case ChecksumMode::ENABLED:
+ return "ENABLED";
+ default:
+ EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
+ if(overflowContainer)
+ {
+ return overflowContainer->RetrieveOverflow(static_cast<int>(enumValue));
+ }
+
+ return {};
+ }
+ }
+
+ } // namespace ChecksumModeMapper
+ } // namespace Model
+ } // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadRequest.cpp
index 8c058ba507..03a8a23f96 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadRequest.cpp
@@ -21,13 +21,42 @@ CompleteMultipartUploadRequest::CompleteMultipartUploadRequest() :
m_keyHasBeenSet(false),
m_multipartUploadHasBeenSet(false),
m_uploadIdHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false),
m_requestPayer(RequestPayer::NOT_SET),
m_requestPayerHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
+ m_sSECustomerAlgorithmHasBeenSet(false),
+ m_sSECustomerKeyHasBeenSet(false),
+ m_sSECustomerKeyMD5HasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
+bool CompleteMultipartUploadRequest::HasEmbeddedError(Aws::IOStream &body,
+ const Aws::Http::HeaderValueCollection &header) const
+{
+ // Header is unused
+ (void) header;
+
+ auto readPointer = body.tellg();
+ XmlDocument doc = XmlDocument::CreateFromXmlStream(body);
+
+ if (!doc.WasParseSuccessful()) {
+ body.seekg(readPointer);
+ return false;
+ }
+
+ if (doc.GetRootElement().GetName() == "Error") {
+ body.seekg(readPointer);
+ return true;
+ }
+ body.seekg(readPointer);
+ return false;
+}
+
Aws::String CompleteMultipartUploadRequest::SerializePayload() const
{
XmlDocument payloadDoc = XmlDocument::CreateWithRootNode("CompleteMultipartUpload");
@@ -77,6 +106,34 @@ Aws::Http::HeaderValueCollection CompleteMultipartUploadRequest::GetRequestSpeci
{
Aws::Http::HeaderValueCollection headers;
Aws::StringStream ss;
+ if(m_checksumCRC32HasBeenSet)
+ {
+ ss << m_checksumCRC32;
+ headers.emplace("x-amz-checksum-crc32", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ ss << m_checksumCRC32C;
+ headers.emplace("x-amz-checksum-crc32c", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ ss << m_checksumSHA1;
+ headers.emplace("x-amz-checksum-sha1", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ ss << m_checksumSHA256;
+ headers.emplace("x-amz-checksum-sha256", ss.str());
+ ss.str("");
+ }
+
if(m_requestPayerHasBeenSet)
{
headers.emplace("x-amz-request-payer", RequestPayerMapper::GetNameForRequestPayer(m_requestPayer));
@@ -89,5 +146,36 @@ Aws::Http::HeaderValueCollection CompleteMultipartUploadRequest::GetRequestSpeci
ss.str("");
}
+ if(m_sSECustomerAlgorithmHasBeenSet)
+ {
+ ss << m_sSECustomerAlgorithm;
+ headers.emplace("x-amz-server-side-encryption-customer-algorithm", ss.str());
+ ss.str("");
+ }
+
+ if(m_sSECustomerKeyHasBeenSet)
+ {
+ ss << m_sSECustomerKey;
+ headers.emplace("x-amz-server-side-encryption-customer-key", ss.str());
+ ss.str("");
+ }
+
+ if(m_sSECustomerKeyMD5HasBeenSet)
+ {
+ ss << m_sSECustomerKeyMD5;
+ headers.emplace("x-amz-server-side-encryption-customer-key-md5", ss.str());
+ ss.str("");
+ }
+
return headers;
}
+
+CompleteMultipartUploadRequest::EndpointParameters CompleteMultipartUploadRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadResult.cpp
index da3f191993..ad87777a2c 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadResult.cpp
@@ -58,6 +58,26 @@ CompleteMultipartUploadResult& CompleteMultipartUploadResult::operator =(const A
{
m_eTag = Aws::Utils::Xml::DecodeEscapedXmlText(eTagNode.GetText());
}
+ XmlNode checksumCRC32Node = resultNode.FirstChild("ChecksumCRC32");
+ if(!checksumCRC32Node.IsNull())
+ {
+ m_checksumCRC32 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32Node.GetText());
+ }
+ XmlNode checksumCRC32CNode = resultNode.FirstChild("ChecksumCRC32C");
+ if(!checksumCRC32CNode.IsNull())
+ {
+ m_checksumCRC32C = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32CNode.GetText());
+ }
+ XmlNode checksumSHA1Node = resultNode.FirstChild("ChecksumSHA1");
+ if(!checksumSHA1Node.IsNull())
+ {
+ m_checksumSHA1 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA1Node.GetText());
+ }
+ XmlNode checksumSHA256Node = resultNode.FirstChild("ChecksumSHA256");
+ if(!checksumSHA256Node.IsNull())
+ {
+ m_checksumSHA256 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA256Node.GetText());
+ }
}
const auto& headers = result.GetHeaderValueCollection();
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedPart.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedPart.cpp
index 8fb63ee1f3..a6bce6a9f4 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedPart.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedPart.cpp
@@ -22,6 +22,10 @@ namespace Model
CompletedPart::CompletedPart() :
m_eTagHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false),
m_partNumber(0),
m_partNumberHasBeenSet(false)
{
@@ -29,6 +33,10 @@ CompletedPart::CompletedPart() :
CompletedPart::CompletedPart(const XmlNode& xmlNode) :
m_eTagHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false),
m_partNumber(0),
m_partNumberHasBeenSet(false)
{
@@ -47,6 +55,30 @@ CompletedPart& CompletedPart::operator =(const XmlNode& xmlNode)
m_eTag = Aws::Utils::Xml::DecodeEscapedXmlText(eTagNode.GetText());
m_eTagHasBeenSet = true;
}
+ XmlNode checksumCRC32Node = resultNode.FirstChild("ChecksumCRC32");
+ if(!checksumCRC32Node.IsNull())
+ {
+ m_checksumCRC32 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32Node.GetText());
+ m_checksumCRC32HasBeenSet = true;
+ }
+ XmlNode checksumCRC32CNode = resultNode.FirstChild("ChecksumCRC32C");
+ if(!checksumCRC32CNode.IsNull())
+ {
+ m_checksumCRC32C = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32CNode.GetText());
+ m_checksumCRC32CHasBeenSet = true;
+ }
+ XmlNode checksumSHA1Node = resultNode.FirstChild("ChecksumSHA1");
+ if(!checksumSHA1Node.IsNull())
+ {
+ m_checksumSHA1 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA1Node.GetText());
+ m_checksumSHA1HasBeenSet = true;
+ }
+ XmlNode checksumSHA256Node = resultNode.FirstChild("ChecksumSHA256");
+ if(!checksumSHA256Node.IsNull())
+ {
+ m_checksumSHA256 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA256Node.GetText());
+ m_checksumSHA256HasBeenSet = true;
+ }
XmlNode partNumberNode = resultNode.FirstChild("PartNumber");
if(!partNumberNode.IsNull())
{
@@ -67,6 +99,30 @@ void CompletedPart::AddToNode(XmlNode& parentNode) const
eTagNode.SetText(m_eTag);
}
+ if(m_checksumCRC32HasBeenSet)
+ {
+ XmlNode checksumCRC32Node = parentNode.CreateChildElement("ChecksumCRC32");
+ checksumCRC32Node.SetText(m_checksumCRC32);
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ XmlNode checksumCRC32CNode = parentNode.CreateChildElement("ChecksumCRC32C");
+ checksumCRC32CNode.SetText(m_checksumCRC32C);
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ XmlNode checksumSHA1Node = parentNode.CreateChildElement("ChecksumSHA1");
+ checksumSHA1Node.SetText(m_checksumSHA1);
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ XmlNode checksumSHA256Node = parentNode.CreateChildElement("ChecksumSHA256");
+ checksumSHA256Node.SetText(m_checksumSHA256);
+ }
+
if(m_partNumberHasBeenSet)
{
XmlNode partNumberNode = parentNode.CreateChildElement("PartNumber");
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectRequest.cpp
index 94493cfdcf..e4e1b52819 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectRequest.cpp
@@ -21,6 +21,8 @@ CopyObjectRequest::CopyObjectRequest() :
m_aCLHasBeenSet(false),
m_bucketHasBeenSet(false),
m_cacheControlHasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_contentDispositionHasBeenSet(false),
m_contentEncodingHasBeenSet(false),
m_contentLanguageHasBeenSet(false),
@@ -70,6 +72,28 @@ CopyObjectRequest::CopyObjectRequest() :
{
}
+bool CopyObjectRequest::HasEmbeddedError(Aws::IOStream &body,
+ const Aws::Http::HeaderValueCollection &header) const
+{
+ // Header is unused
+ (void) header;
+
+ auto readPointer = body.tellg();
+ XmlDocument doc = XmlDocument::CreateFromXmlStream(body);
+
+ if (!doc.WasParseSuccessful()) {
+ body.seekg(readPointer);
+ return false;
+ }
+
+ if (doc.GetRootElement().GetName() == "Error") {
+ body.seekg(readPointer);
+ return true;
+ }
+ body.seekg(readPointer);
+ return false;
+}
+
Aws::String CopyObjectRequest::SerializePayload() const
{
return {};
@@ -113,6 +137,11 @@ Aws::Http::HeaderValueCollection CopyObjectRequest::GetRequestSpecificHeaders()
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_contentDispositionHasBeenSet)
{
ss << m_contentDisposition;
@@ -157,7 +186,7 @@ Aws::Http::HeaderValueCollection CopyObjectRequest::GetRequestSpecificHeaders()
if(m_copySourceIfModifiedSinceHasBeenSet)
{
- headers.emplace("x-amz-copy-source-if-modified-since", m_copySourceIfModifiedSince.ToGmtString(DateFormat::RFC822));
+ headers.emplace("x-amz-copy-source-if-modified-since", m_copySourceIfModifiedSince.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_copySourceIfNoneMatchHasBeenSet)
@@ -169,12 +198,12 @@ Aws::Http::HeaderValueCollection CopyObjectRequest::GetRequestSpecificHeaders()
if(m_copySourceIfUnmodifiedSinceHasBeenSet)
{
- headers.emplace("x-amz-copy-source-if-unmodified-since", m_copySourceIfUnmodifiedSince.ToGmtString(DateFormat::RFC822));
+ headers.emplace("x-amz-copy-source-if-unmodified-since", m_copySourceIfUnmodifiedSince.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_expiresHasBeenSet)
{
- headers.emplace("expires", m_expires.ToGmtString(DateFormat::RFC822));
+ headers.emplace("expires", m_expires.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_grantFullControlHasBeenSet)
@@ -324,7 +353,7 @@ Aws::Http::HeaderValueCollection CopyObjectRequest::GetRequestSpecificHeaders()
if(m_objectLockRetainUntilDateHasBeenSet)
{
- headers.emplace("x-amz-object-lock-retain-until-date", m_objectLockRetainUntilDate.ToGmtString(DateFormat::ISO_8601));
+ headers.emplace("x-amz-object-lock-retain-until-date", m_objectLockRetainUntilDate.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_objectLockLegalHoldStatusHasBeenSet)
@@ -348,3 +377,13 @@ Aws::Http::HeaderValueCollection CopyObjectRequest::GetRequestSpecificHeaders()
return headers;
}
+
+CopyObjectRequest::EndpointParameters CopyObjectRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResultDetails.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResultDetails.cpp
index 6e03159046..313d2cde14 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResultDetails.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResultDetails.cpp
@@ -22,13 +22,21 @@ namespace Model
CopyObjectResultDetails::CopyObjectResultDetails() :
m_eTagHasBeenSet(false),
- m_lastModifiedHasBeenSet(false)
+ m_lastModifiedHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
{
}
CopyObjectResultDetails::CopyObjectResultDetails(const XmlNode& xmlNode) :
m_eTagHasBeenSet(false),
- m_lastModifiedHasBeenSet(false)
+ m_lastModifiedHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
{
*this = xmlNode;
}
@@ -48,9 +56,33 @@ CopyObjectResultDetails& CopyObjectResultDetails::operator =(const XmlNode& xmlN
XmlNode lastModifiedNode = resultNode.FirstChild("LastModified");
if(!lastModifiedNode.IsNull())
{
- m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_lastModifiedHasBeenSet = true;
}
+ XmlNode checksumCRC32Node = resultNode.FirstChild("ChecksumCRC32");
+ if(!checksumCRC32Node.IsNull())
+ {
+ m_checksumCRC32 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32Node.GetText());
+ m_checksumCRC32HasBeenSet = true;
+ }
+ XmlNode checksumCRC32CNode = resultNode.FirstChild("ChecksumCRC32C");
+ if(!checksumCRC32CNode.IsNull())
+ {
+ m_checksumCRC32C = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32CNode.GetText());
+ m_checksumCRC32CHasBeenSet = true;
+ }
+ XmlNode checksumSHA1Node = resultNode.FirstChild("ChecksumSHA1");
+ if(!checksumSHA1Node.IsNull())
+ {
+ m_checksumSHA1 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA1Node.GetText());
+ m_checksumSHA1HasBeenSet = true;
+ }
+ XmlNode checksumSHA256Node = resultNode.FirstChild("ChecksumSHA256");
+ if(!checksumSHA256Node.IsNull())
+ {
+ m_checksumSHA256 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA256Node.GetText());
+ m_checksumSHA256HasBeenSet = true;
+ }
}
return *this;
@@ -68,7 +100,31 @@ void CopyObjectResultDetails::AddToNode(XmlNode& parentNode) const
if(m_lastModifiedHasBeenSet)
{
XmlNode lastModifiedNode = parentNode.CreateChildElement("LastModified");
- lastModifiedNode.SetText(m_lastModified.ToGmtString(DateFormat::ISO_8601));
+ lastModifiedNode.SetText(m_lastModified.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
+ }
+
+ if(m_checksumCRC32HasBeenSet)
+ {
+ XmlNode checksumCRC32Node = parentNode.CreateChildElement("ChecksumCRC32");
+ checksumCRC32Node.SetText(m_checksumCRC32);
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ XmlNode checksumCRC32CNode = parentNode.CreateChildElement("ChecksumCRC32C");
+ checksumCRC32CNode.SetText(m_checksumCRC32C);
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ XmlNode checksumSHA1Node = parentNode.CreateChildElement("ChecksumSHA1");
+ checksumSHA1Node.SetText(m_checksumSHA1);
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ XmlNode checksumSHA256Node = parentNode.CreateChildElement("ChecksumSHA256");
+ checksumSHA256Node.SetText(m_checksumSHA256);
}
}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyPartResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyPartResult.cpp
index f8f5c9809c..6c8f942caf 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyPartResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyPartResult.cpp
@@ -22,13 +22,21 @@ namespace Model
CopyPartResult::CopyPartResult() :
m_eTagHasBeenSet(false),
- m_lastModifiedHasBeenSet(false)
+ m_lastModifiedHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
{
}
CopyPartResult::CopyPartResult(const XmlNode& xmlNode) :
m_eTagHasBeenSet(false),
- m_lastModifiedHasBeenSet(false)
+ m_lastModifiedHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
{
*this = xmlNode;
}
@@ -48,9 +56,33 @@ CopyPartResult& CopyPartResult::operator =(const XmlNode& xmlNode)
XmlNode lastModifiedNode = resultNode.FirstChild("LastModified");
if(!lastModifiedNode.IsNull())
{
- m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_lastModifiedHasBeenSet = true;
}
+ XmlNode checksumCRC32Node = resultNode.FirstChild("ChecksumCRC32");
+ if(!checksumCRC32Node.IsNull())
+ {
+ m_checksumCRC32 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32Node.GetText());
+ m_checksumCRC32HasBeenSet = true;
+ }
+ XmlNode checksumCRC32CNode = resultNode.FirstChild("ChecksumCRC32C");
+ if(!checksumCRC32CNode.IsNull())
+ {
+ m_checksumCRC32C = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32CNode.GetText());
+ m_checksumCRC32CHasBeenSet = true;
+ }
+ XmlNode checksumSHA1Node = resultNode.FirstChild("ChecksumSHA1");
+ if(!checksumSHA1Node.IsNull())
+ {
+ m_checksumSHA1 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA1Node.GetText());
+ m_checksumSHA1HasBeenSet = true;
+ }
+ XmlNode checksumSHA256Node = resultNode.FirstChild("ChecksumSHA256");
+ if(!checksumSHA256Node.IsNull())
+ {
+ m_checksumSHA256 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA256Node.GetText());
+ m_checksumSHA256HasBeenSet = true;
+ }
}
return *this;
@@ -68,7 +100,31 @@ void CopyPartResult::AddToNode(XmlNode& parentNode) const
if(m_lastModifiedHasBeenSet)
{
XmlNode lastModifiedNode = parentNode.CreateChildElement("LastModified");
- lastModifiedNode.SetText(m_lastModified.ToGmtString(DateFormat::ISO_8601));
+ lastModifiedNode.SetText(m_lastModified.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
+ }
+
+ if(m_checksumCRC32HasBeenSet)
+ {
+ XmlNode checksumCRC32Node = parentNode.CreateChildElement("ChecksumCRC32");
+ checksumCRC32Node.SetText(m_checksumCRC32);
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ XmlNode checksumCRC32CNode = parentNode.CreateChildElement("ChecksumCRC32C");
+ checksumCRC32CNode.SetText(m_checksumCRC32C);
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ XmlNode checksumSHA1Node = parentNode.CreateChildElement("ChecksumSHA1");
+ checksumSHA1Node.SetText(m_checksumSHA1);
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ XmlNode checksumSHA256Node = parentNode.CreateChildElement("ChecksumSHA256");
+ checksumSHA256Node.SetText(m_checksumSHA256);
}
}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketRequest.cpp
index 0bc3641a33..5e8ade4bdf 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketRequest.cpp
@@ -28,6 +28,8 @@ CreateBucketRequest::CreateBucketRequest() :
m_grantWriteACPHasBeenSet(false),
m_objectLockEnabledForBucket(false),
m_objectLockEnabledForBucketHasBeenSet(false),
+ m_objectOwnership(ObjectOwnership::NOT_SET),
+ m_objectOwnershipHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
@@ -121,5 +123,22 @@ Aws::Http::HeaderValueCollection CreateBucketRequest::GetRequestSpecificHeaders(
ss.str("");
}
+ if(m_objectOwnershipHasBeenSet)
+ {
+ headers.emplace("x-amz-object-ownership", ObjectOwnershipMapper::GetNameForObjectOwnership(m_objectOwnership));
+ }
+
return headers;
}
+
+CreateBucketRequest::EndpointParameters CreateBucketRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Static context parameters
+ parameters.emplace_back(Aws::String("DisableAccessPoints"), true, Aws::Endpoint::EndpointParameter::ParameterOrigin::STATIC_CONTEXT);
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadRequest.cpp
index 73a88bf2dc..2db712e113 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadRequest.cpp
@@ -53,6 +53,8 @@ CreateMultipartUploadRequest::CreateMultipartUploadRequest() :
m_objectLockLegalHoldStatus(ObjectLockLegalHoldStatus::NOT_SET),
m_objectLockLegalHoldStatusHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
@@ -130,7 +132,7 @@ Aws::Http::HeaderValueCollection CreateMultipartUploadRequest::GetRequestSpecifi
if(m_expiresHasBeenSet)
{
- headers.emplace("expires", m_expires.ToGmtString(DateFormat::RFC822));
+ headers.emplace("expires", m_expires.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_grantFullControlHasBeenSet)
@@ -249,7 +251,7 @@ Aws::Http::HeaderValueCollection CreateMultipartUploadRequest::GetRequestSpecifi
if(m_objectLockRetainUntilDateHasBeenSet)
{
- headers.emplace("x-amz-object-lock-retain-until-date", m_objectLockRetainUntilDate.ToGmtString(DateFormat::ISO_8601));
+ headers.emplace("x-amz-object-lock-retain-until-date", m_objectLockRetainUntilDate.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_objectLockLegalHoldStatusHasBeenSet)
@@ -264,5 +266,20 @@ Aws::Http::HeaderValueCollection CreateMultipartUploadRequest::GetRequestSpecifi
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
return headers;
}
+
+CreateMultipartUploadRequest::EndpointParameters CreateMultipartUploadRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadResult.cpp
index 4a2772c9ef..d77d44d362 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadResult.cpp
@@ -19,14 +19,16 @@ using namespace Aws;
CreateMultipartUploadResult::CreateMultipartUploadResult() :
m_serverSideEncryption(ServerSideEncryption::NOT_SET),
m_bucketKeyEnabled(false),
- m_requestCharged(RequestCharged::NOT_SET)
+ m_requestCharged(RequestCharged::NOT_SET),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET)
{
}
CreateMultipartUploadResult::CreateMultipartUploadResult(const Aws::AmazonWebServiceResult<XmlDocument>& result) :
m_serverSideEncryption(ServerSideEncryption::NOT_SET),
m_bucketKeyEnabled(false),
- m_requestCharged(RequestCharged::NOT_SET)
+ m_requestCharged(RequestCharged::NOT_SET),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET)
{
*this = result;
}
@@ -59,7 +61,7 @@ CreateMultipartUploadResult& CreateMultipartUploadResult::operator =(const Aws::
const auto& abortDateIter = headers.find("x-amz-abort-date");
if(abortDateIter != headers.end())
{
- m_abortDate = DateTime(abortDateIter->second, DateFormat::RFC822);
+ m_abortDate = DateTime(abortDateIter->second, Aws::Utils::DateFormat::RFC822);
}
const auto& abortRuleIdIter = headers.find("x-amz-abort-rule-id");
@@ -110,5 +112,11 @@ CreateMultipartUploadResult& CreateMultipartUploadResult::operator =(const Aws::
m_requestCharged = RequestChargedMapper::GetRequestChargedForName(requestChargedIter->second);
}
+ const auto& checksumAlgorithmIter = headers.find("x-amz-checksum-algorithm");
+ if(checksumAlgorithmIter != headers.end())
+ {
+ m_checksumAlgorithm = ChecksumAlgorithmMapper::GetChecksumAlgorithmForName(checksumAlgorithmIter->second);
+ }
+
return *this;
}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketAnalyticsConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketAnalyticsConfigurationRequest.cpp
index bcd1e8f320..721721bf25 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketAnalyticsConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketAnalyticsConfigurationRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection DeleteBucketAnalyticsConfigurationRequest::GetR
return headers;
}
+
+DeleteBucketAnalyticsConfigurationRequest::EndpointParameters DeleteBucketAnalyticsConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketCorsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketCorsRequest.cpp
index b52d99571a..9eb64d50c1 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketCorsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketCorsRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketCorsRequest::GetRequestSpecificHead
return headers;
}
+
+DeleteBucketCorsRequest::EndpointParameters DeleteBucketCorsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketEncryptionRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketEncryptionRequest.cpp
index 3e01a0b9dc..cbd8f93536 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketEncryptionRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketEncryptionRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketEncryptionRequest::GetRequestSpecif
return headers;
}
+
+DeleteBucketEncryptionRequest::EndpointParameters DeleteBucketEncryptionRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketIntelligentTieringConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketIntelligentTieringConfigurationRequest.cpp
index b48d573ee6..52855aeaa7 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketIntelligentTieringConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketIntelligentTieringConfigurationRequest.cpp
@@ -57,3 +57,13 @@ void DeleteBucketIntelligentTieringConfigurationRequest::AddQueryStringParameter
}
}
+
+DeleteBucketIntelligentTieringConfigurationRequest::EndpointParameters DeleteBucketIntelligentTieringConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketInventoryConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketInventoryConfigurationRequest.cpp
index 7bc2d179d6..2f421dac17 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketInventoryConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketInventoryConfigurationRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection DeleteBucketInventoryConfigurationRequest::GetR
return headers;
}
+
+DeleteBucketInventoryConfigurationRequest::EndpointParameters DeleteBucketInventoryConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketLifecycleRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketLifecycleRequest.cpp
index 54311cff3e..b8afa094ff 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketLifecycleRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketLifecycleRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketLifecycleRequest::GetRequestSpecifi
return headers;
}
+
+DeleteBucketLifecycleRequest::EndpointParameters DeleteBucketLifecycleRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketMetricsConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketMetricsConfigurationRequest.cpp
index 631dee94a7..29f50338ab 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketMetricsConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketMetricsConfigurationRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection DeleteBucketMetricsConfigurationRequest::GetReq
return headers;
}
+
+DeleteBucketMetricsConfigurationRequest::EndpointParameters DeleteBucketMetricsConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketOwnershipControlsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketOwnershipControlsRequest.cpp
index 5b18b12424..4ed933cda9 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketOwnershipControlsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketOwnershipControlsRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketOwnershipControlsRequest::GetReques
return headers;
}
+
+DeleteBucketOwnershipControlsRequest::EndpointParameters DeleteBucketOwnershipControlsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketPolicyRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketPolicyRequest.cpp
index 33bb2cef34..b9bda713ca 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketPolicyRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketPolicyRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketPolicyRequest::GetRequestSpecificHe
return headers;
}
+
+DeleteBucketPolicyRequest::EndpointParameters DeleteBucketPolicyRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketReplicationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketReplicationRequest.cpp
index af6092ee6c..0bcdf577cf 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketReplicationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketReplicationRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketReplicationRequest::GetRequestSpeci
return headers;
}
+
+DeleteBucketReplicationRequest::EndpointParameters DeleteBucketReplicationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketRequest.cpp
index 3cfa02d882..fe34195378 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketRequest::GetRequestSpecificHeaders(
return headers;
}
+
+DeleteBucketRequest::EndpointParameters DeleteBucketRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketTaggingRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketTaggingRequest.cpp
index 7d61b959f5..5df949880a 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketTaggingRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketTaggingRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketTaggingRequest::GetRequestSpecificH
return headers;
}
+
+DeleteBucketTaggingRequest::EndpointParameters DeleteBucketTaggingRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketWebsiteRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketWebsiteRequest.cpp
index 59bc58a8d7..2a7b23cfb6 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketWebsiteRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketWebsiteRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeleteBucketWebsiteRequest::GetRequestSpecificH
return headers;
}
+
+DeleteBucketWebsiteRequest::EndpointParameters DeleteBucketWebsiteRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerEntry.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerEntry.cpp
index 05766bb960..25ea77fa9b 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerEntry.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerEntry.cpp
@@ -74,7 +74,7 @@ DeleteMarkerEntry& DeleteMarkerEntry::operator =(const XmlNode& xmlNode)
XmlNode lastModifiedNode = resultNode.FirstChild("LastModified");
if(!lastModifiedNode.IsNull())
{
- m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_lastModifiedHasBeenSet = true;
}
}
@@ -114,7 +114,7 @@ void DeleteMarkerEntry::AddToNode(XmlNode& parentNode) const
if(m_lastModifiedHasBeenSet)
{
XmlNode lastModifiedNode = parentNode.CreateChildElement("LastModified");
- lastModifiedNode.SetText(m_lastModified.ToGmtString(DateFormat::ISO_8601));
+ lastModifiedNode.SetText(m_lastModified.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectRequest.cpp
index 6bd83e7cbe..6a27dbf097 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectRequest.cpp
@@ -96,3 +96,13 @@ Aws::Http::HeaderValueCollection DeleteObjectRequest::GetRequestSpecificHeaders(
return headers;
}
+
+DeleteObjectRequest::EndpointParameters DeleteObjectRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingRequest.cpp
index 580a7fa70b..5d19b31c49 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingRequest.cpp
@@ -72,3 +72,13 @@ Aws::Http::HeaderValueCollection DeleteObjectTaggingRequest::GetRequestSpecificH
return headers;
}
+
+DeleteObjectTaggingRequest::EndpointParameters DeleteObjectTaggingRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsRequest.cpp
index 3f7759ca0a..1b1841fe8b 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsRequest.cpp
@@ -25,6 +25,8 @@ DeleteObjectsRequest::DeleteObjectsRequest() :
m_bypassGovernanceRetention(false),
m_bypassGovernanceRetentionHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
@@ -97,5 +99,33 @@ Aws::Http::HeaderValueCollection DeleteObjectsRequest::GetRequestSpecificHeaders
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
return headers;
}
+
+DeleteObjectsRequest::EndpointParameters DeleteObjectsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String DeleteObjectsRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletePublicAccessBlockRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletePublicAccessBlockRequest.cpp
index 750457f594..0f087377a7 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletePublicAccessBlockRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletePublicAccessBlockRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection DeletePublicAccessBlockRequest::GetRequestSpeci
return headers;
}
+
+DeletePublicAccessBlockRequest::EndpointParameters DeletePublicAccessBlockRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Event.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Event.cpp
index c6e779ab06..e6aa390f59 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Event.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Event.cpp
@@ -37,6 +37,16 @@ namespace Aws
static const int s3_Replication_OperationNotTracked_HASH = HashingUtils::HashString("s3:Replication:OperationNotTracked");
static const int s3_Replication_OperationMissedThreshold_HASH = HashingUtils::HashString("s3:Replication:OperationMissedThreshold");
static const int s3_Replication_OperationReplicatedAfterThreshold_HASH = HashingUtils::HashString("s3:Replication:OperationReplicatedAfterThreshold");
+ static const int s3_ObjectRestore_Delete_HASH = HashingUtils::HashString("s3:ObjectRestore:Delete");
+ static const int s3_LifecycleTransition_HASH = HashingUtils::HashString("s3:LifecycleTransition");
+ static const int s3_IntelligentTiering_HASH = HashingUtils::HashString("s3:IntelligentTiering");
+ static const int s3_ObjectAcl_Put_HASH = HashingUtils::HashString("s3:ObjectAcl:Put");
+ static const int s3_LifecycleExpiration_HASH = HashingUtils::HashString("s3:LifecycleExpiration:*");
+ static const int s3_LifecycleExpiration_Delete_HASH = HashingUtils::HashString("s3:LifecycleExpiration:Delete");
+ static const int s3_LifecycleExpiration_DeleteMarkerCreated_HASH = HashingUtils::HashString("s3:LifecycleExpiration:DeleteMarkerCreated");
+ static const int s3_ObjectTagging_HASH = HashingUtils::HashString("s3:ObjectTagging:*");
+ static const int s3_ObjectTagging_Put_HASH = HashingUtils::HashString("s3:ObjectTagging:Put");
+ static const int s3_ObjectTagging_Delete_HASH = HashingUtils::HashString("s3:ObjectTagging:Delete");
Event GetEventForName(const Aws::String& name)
@@ -110,6 +120,46 @@ namespace Aws
{
return Event::s3_Replication_OperationReplicatedAfterThreshold;
}
+ else if (hashCode == s3_ObjectRestore_Delete_HASH)
+ {
+ return Event::s3_ObjectRestore_Delete;
+ }
+ else if (hashCode == s3_LifecycleTransition_HASH)
+ {
+ return Event::s3_LifecycleTransition;
+ }
+ else if (hashCode == s3_IntelligentTiering_HASH)
+ {
+ return Event::s3_IntelligentTiering;
+ }
+ else if (hashCode == s3_ObjectAcl_Put_HASH)
+ {
+ return Event::s3_ObjectAcl_Put;
+ }
+ else if (hashCode == s3_LifecycleExpiration_HASH)
+ {
+ return Event::s3_LifecycleExpiration;
+ }
+ else if (hashCode == s3_LifecycleExpiration_Delete_HASH)
+ {
+ return Event::s3_LifecycleExpiration_Delete;
+ }
+ else if (hashCode == s3_LifecycleExpiration_DeleteMarkerCreated_HASH)
+ {
+ return Event::s3_LifecycleExpiration_DeleteMarkerCreated;
+ }
+ else if (hashCode == s3_ObjectTagging_HASH)
+ {
+ return Event::s3_ObjectTagging;
+ }
+ else if (hashCode == s3_ObjectTagging_Put_HASH)
+ {
+ return Event::s3_ObjectTagging_Put;
+ }
+ else if (hashCode == s3_ObjectTagging_Delete_HASH)
+ {
+ return Event::s3_ObjectTagging_Delete;
+ }
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
{
@@ -158,6 +208,26 @@ namespace Aws
return "s3:Replication:OperationMissedThreshold";
case Event::s3_Replication_OperationReplicatedAfterThreshold:
return "s3:Replication:OperationReplicatedAfterThreshold";
+ case Event::s3_ObjectRestore_Delete:
+ return "s3:ObjectRestore:Delete";
+ case Event::s3_LifecycleTransition:
+ return "s3:LifecycleTransition";
+ case Event::s3_IntelligentTiering:
+ return "s3:IntelligentTiering";
+ case Event::s3_ObjectAcl_Put:
+ return "s3:ObjectAcl:Put";
+ case Event::s3_LifecycleExpiration:
+ return "s3:LifecycleExpiration:*";
+ case Event::s3_LifecycleExpiration_Delete:
+ return "s3:LifecycleExpiration:Delete";
+ case Event::s3_LifecycleExpiration_DeleteMarkerCreated:
+ return "s3:LifecycleExpiration:DeleteMarkerCreated";
+ case Event::s3_ObjectTagging:
+ return "s3:ObjectTagging:*";
+ case Event::s3_ObjectTagging_Put:
+ return "s3:ObjectTagging:Put";
+ case Event::s3_ObjectTagging_Delete:
+ return "s3:ObjectTagging:Delete";
default:
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/EventBridgeConfiguration.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/EventBridgeConfiguration.cpp
new file mode 100644
index 0000000000..ebf1ca13d9
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/EventBridgeConfiguration.cpp
@@ -0,0 +1,51 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/EventBridgeConfiguration.h>
+#include <aws/core/utils/xml/XmlSerializer.h>
+#include <aws/core/utils/StringUtils.h>
+#include <aws/core/utils/memory/stl/AWSStringStream.h>
+
+#include <utility>
+
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils;
+
+namespace Aws
+{
+namespace S3
+{
+namespace Model
+{
+
+EventBridgeConfiguration::EventBridgeConfiguration()
+{
+}
+
+EventBridgeConfiguration::EventBridgeConfiguration(const XmlNode& xmlNode)
+{
+ *this = xmlNode;
+}
+
+EventBridgeConfiguration& EventBridgeConfiguration::operator =(const XmlNode& xmlNode)
+{
+ XmlNode resultNode = xmlNode;
+
+ if(!resultNode.IsNull())
+ {
+ }
+
+ return *this;
+}
+
+void EventBridgeConfiguration::AddToNode(XmlNode& parentNode) const
+{
+ Aws::StringStream ss;
+ AWS_UNREFERENCED_PARAM(parentNode);
+}
+
+} // namespace Model
+} // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationRequest.cpp
index 3bc67a43cc..f144bc0c22 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketAccelerateConfigurationRequest::GetReq
return headers;
}
+
+GetBucketAccelerateConfigurationRequest::EndpointParameters GetBucketAccelerateConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclRequest.cpp
index df77a9e7f6..962a4eb555 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketAclRequest::GetRequestSpecificHeaders(
return headers;
}
+
+GetBucketAclRequest::EndpointParameters GetBucketAclRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationRequest.cpp
index 5e3d792e2c..8dde64a2b2 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection GetBucketAnalyticsConfigurationRequest::GetRequ
return headers;
}
+
+GetBucketAnalyticsConfigurationRequest::EndpointParameters GetBucketAnalyticsConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsRequest.cpp
index 92cc762080..2f3e70a8eb 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketCorsRequest::GetRequestSpecificHeaders
return headers;
}
+
+GetBucketCorsRequest::EndpointParameters GetBucketCorsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionRequest.cpp
index ad69f94035..1d679807c7 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketEncryptionRequest::GetRequestSpecificH
return headers;
}
+
+GetBucketEncryptionRequest::EndpointParameters GetBucketEncryptionRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationRequest.cpp
index ac5e664e69..1aeb94e440 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationRequest.cpp
@@ -57,3 +57,13 @@ void GetBucketIntelligentTieringConfigurationRequest::AddQueryStringParameters(U
}
}
+
+GetBucketIntelligentTieringConfigurationRequest::EndpointParameters GetBucketIntelligentTieringConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationRequest.cpp
index f3ec3acdc5..cf462b3fa9 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection GetBucketInventoryConfigurationRequest::GetRequ
return headers;
}
+
+GetBucketInventoryConfigurationRequest::EndpointParameters GetBucketInventoryConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationRequest.cpp
index 5abc090ac4..019d5457a9 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketLifecycleConfigurationRequest::GetRequ
return headers;
}
+
+GetBucketLifecycleConfigurationRequest::EndpointParameters GetBucketLifecycleConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationRequest.cpp
index 68e7f366f6..6958be9895 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketLocationRequest::GetRequestSpecificHea
return headers;
}
+
+GetBucketLocationRequest::EndpointParameters GetBucketLocationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationResult.cpp
index 24fc4e62b0..f748617711 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationResult.cpp
@@ -36,6 +36,5 @@ GetBucketLocationResult& GetBucketLocationResult::operator =(const AmazonWebServ
m_locationConstraint = BucketLocationConstraintMapper::GetBucketLocationConstraintForName(StringUtils::Trim(resultNode.GetText().c_str()).c_str());
}
- return *this;
+ return *this;
}
-
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingRequest.cpp
index ee141ec35c..38a1cbd48b 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketLoggingRequest::GetRequestSpecificHead
return headers;
}
+
+GetBucketLoggingRequest::EndpointParameters GetBucketLoggingRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationRequest.cpp
index c384ad6f1e..11f5eacbb6 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection GetBucketMetricsConfigurationRequest::GetReques
return headers;
}
+
+GetBucketMetricsConfigurationRequest::EndpointParameters GetBucketMetricsConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationRequest.cpp
index 6e892ead3b..dd672659eb 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketNotificationConfigurationRequest::GetR
return headers;
}
+
+GetBucketNotificationConfigurationRequest::EndpointParameters GetBucketNotificationConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationResult.cpp
index de68f4316a..9e7ff9481f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationResult.cpp
@@ -64,6 +64,11 @@ GetBucketNotificationConfigurationResult& GetBucketNotificationConfigurationResu
}
}
+ XmlNode eventBridgeConfigurationNode = resultNode.FirstChild("EventBridgeConfiguration");
+ if(!eventBridgeConfigurationNode.IsNull())
+ {
+ m_eventBridgeConfiguration = eventBridgeConfigurationNode;
+ }
}
return *this;
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsRequest.cpp
index efaa529d2e..b3f153a9b5 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketOwnershipControlsRequest::GetRequestSp
return headers;
}
+
+GetBucketOwnershipControlsRequest::EndpointParameters GetBucketOwnershipControlsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyRequest.cpp
index e41b1fe0c5..e6571c8a6f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketPolicyRequest::GetRequestSpecificHeade
return headers;
}
+
+GetBucketPolicyRequest::EndpointParameters GetBucketPolicyRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusRequest.cpp
index 3c487f9634..c3af674bbd 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketPolicyStatusRequest::GetRequestSpecifi
return headers;
}
+
+GetBucketPolicyStatusRequest::EndpointParameters GetBucketPolicyStatusRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationRequest.cpp
index 3dcadfa2be..7ef6b8a1b2 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketReplicationRequest::GetRequestSpecific
return headers;
}
+
+GetBucketReplicationRequest::EndpointParameters GetBucketReplicationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentRequest.cpp
index 7f3e734b70..e369ccaab7 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketRequestPaymentRequest::GetRequestSpeci
return headers;
}
+
+GetBucketRequestPaymentRequest::EndpointParameters GetBucketRequestPaymentRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingRequest.cpp
index 72373deaf1..f3e5ea4b74 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketTaggingRequest::GetRequestSpecificHead
return headers;
}
+
+GetBucketTaggingRequest::EndpointParameters GetBucketTaggingRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningRequest.cpp
index 7583f79117..830ab5425d 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketVersioningRequest::GetRequestSpecificH
return headers;
}
+
+GetBucketVersioningRequest::EndpointParameters GetBucketVersioningRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteRequest.cpp
index 067a281fa9..73510697c2 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetBucketWebsiteRequest::GetRequestSpecificHead
return headers;
}
+
+GetBucketWebsiteRequest::EndpointParameters GetBucketWebsiteRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclRequest.cpp
index 9019eea1c7..f0ee229d60 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclRequest.cpp
@@ -79,3 +79,13 @@ Aws::Http::HeaderValueCollection GetObjectAclRequest::GetRequestSpecificHeaders(
return headers;
}
+
+GetObjectAclRequest::EndpointParameters GetObjectAclRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesParts.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesParts.cpp
new file mode 100644
index 0000000000..14b9a8ac28
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesParts.cpp
@@ -0,0 +1,163 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/GetObjectAttributesParts.h>
+#include <aws/core/utils/xml/XmlSerializer.h>
+#include <aws/core/utils/StringUtils.h>
+#include <aws/core/utils/memory/stl/AWSStringStream.h>
+
+#include <utility>
+
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils;
+
+namespace Aws
+{
+namespace S3
+{
+namespace Model
+{
+
+GetObjectAttributesParts::GetObjectAttributesParts() :
+ m_totalPartsCount(0),
+ m_totalPartsCountHasBeenSet(false),
+ m_partNumberMarker(0),
+ m_partNumberMarkerHasBeenSet(false),
+ m_nextPartNumberMarker(0),
+ m_nextPartNumberMarkerHasBeenSet(false),
+ m_maxParts(0),
+ m_maxPartsHasBeenSet(false),
+ m_isTruncated(false),
+ m_isTruncatedHasBeenSet(false),
+ m_partsHasBeenSet(false)
+{
+}
+
+GetObjectAttributesParts::GetObjectAttributesParts(const XmlNode& xmlNode) :
+ m_totalPartsCount(0),
+ m_totalPartsCountHasBeenSet(false),
+ m_partNumberMarker(0),
+ m_partNumberMarkerHasBeenSet(false),
+ m_nextPartNumberMarker(0),
+ m_nextPartNumberMarkerHasBeenSet(false),
+ m_maxParts(0),
+ m_maxPartsHasBeenSet(false),
+ m_isTruncated(false),
+ m_isTruncatedHasBeenSet(false),
+ m_partsHasBeenSet(false)
+{
+ *this = xmlNode;
+}
+
+GetObjectAttributesParts& GetObjectAttributesParts::operator =(const XmlNode& xmlNode)
+{
+ XmlNode resultNode = xmlNode;
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode totalPartsCountNode = resultNode.FirstChild("PartsCount");
+ if(!totalPartsCountNode.IsNull())
+ {
+ m_totalPartsCount = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(totalPartsCountNode.GetText()).c_str()).c_str());
+ m_totalPartsCountHasBeenSet = true;
+ }
+ XmlNode partNumberMarkerNode = resultNode.FirstChild("PartNumberMarker");
+ if(!partNumberMarkerNode.IsNull())
+ {
+ m_partNumberMarker = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(partNumberMarkerNode.GetText()).c_str()).c_str());
+ m_partNumberMarkerHasBeenSet = true;
+ }
+ XmlNode nextPartNumberMarkerNode = resultNode.FirstChild("NextPartNumberMarker");
+ if(!nextPartNumberMarkerNode.IsNull())
+ {
+ m_nextPartNumberMarker = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(nextPartNumberMarkerNode.GetText()).c_str()).c_str());
+ m_nextPartNumberMarkerHasBeenSet = true;
+ }
+ XmlNode maxPartsNode = resultNode.FirstChild("MaxParts");
+ if(!maxPartsNode.IsNull())
+ {
+ m_maxParts = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(maxPartsNode.GetText()).c_str()).c_str());
+ m_maxPartsHasBeenSet = true;
+ }
+ XmlNode isTruncatedNode = resultNode.FirstChild("IsTruncated");
+ if(!isTruncatedNode.IsNull())
+ {
+ m_isTruncated = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(isTruncatedNode.GetText()).c_str()).c_str());
+ m_isTruncatedHasBeenSet = true;
+ }
+ XmlNode partsNode = resultNode.FirstChild("Part");
+ if(!partsNode.IsNull())
+ {
+ XmlNode partMember = partsNode;
+ while(!partMember.IsNull())
+ {
+ m_parts.push_back(partMember);
+ partMember = partMember.NextNode("Part");
+ }
+
+ m_partsHasBeenSet = true;
+ }
+ }
+
+ return *this;
+}
+
+void GetObjectAttributesParts::AddToNode(XmlNode& parentNode) const
+{
+ Aws::StringStream ss;
+ if(m_totalPartsCountHasBeenSet)
+ {
+ XmlNode totalPartsCountNode = parentNode.CreateChildElement("PartsCount");
+ ss << m_totalPartsCount;
+ totalPartsCountNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_partNumberMarkerHasBeenSet)
+ {
+ XmlNode partNumberMarkerNode = parentNode.CreateChildElement("PartNumberMarker");
+ ss << m_partNumberMarker;
+ partNumberMarkerNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_nextPartNumberMarkerHasBeenSet)
+ {
+ XmlNode nextPartNumberMarkerNode = parentNode.CreateChildElement("NextPartNumberMarker");
+ ss << m_nextPartNumberMarker;
+ nextPartNumberMarkerNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_maxPartsHasBeenSet)
+ {
+ XmlNode maxPartsNode = parentNode.CreateChildElement("MaxParts");
+ ss << m_maxParts;
+ maxPartsNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_isTruncatedHasBeenSet)
+ {
+ XmlNode isTruncatedNode = parentNode.CreateChildElement("IsTruncated");
+ ss << std::boolalpha << m_isTruncated;
+ isTruncatedNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_partsHasBeenSet)
+ {
+ for(const auto& item : m_parts)
+ {
+ XmlNode partsNode = parentNode.CreateChildElement("Part");
+ item.AddToNode(partsNode);
+ }
+ }
+
+}
+
+} // namespace Model
+} // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesRequest.cpp
new file mode 100644
index 0000000000..87e567b7d5
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesRequest.cpp
@@ -0,0 +1,144 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/GetObjectAttributesRequest.h>
+#include <aws/core/utils/xml/XmlSerializer.h>
+#include <aws/core/utils/memory/stl/AWSStringStream.h>
+#include <aws/core/http/URI.h>
+#include <aws/core/utils/memory/stl/AWSStringStream.h>
+
+#include <utility>
+
+using namespace Aws::S3::Model;
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils;
+using namespace Aws::Http;
+
+GetObjectAttributesRequest::GetObjectAttributesRequest() :
+ m_bucketHasBeenSet(false),
+ m_keyHasBeenSet(false),
+ m_versionIdHasBeenSet(false),
+ m_maxParts(0),
+ m_maxPartsHasBeenSet(false),
+ m_partNumberMarker(0),
+ m_partNumberMarkerHasBeenSet(false),
+ m_sSECustomerAlgorithmHasBeenSet(false),
+ m_sSECustomerKeyHasBeenSet(false),
+ m_sSECustomerKeyMD5HasBeenSet(false),
+ m_requestPayer(RequestPayer::NOT_SET),
+ m_requestPayerHasBeenSet(false),
+ m_expectedBucketOwnerHasBeenSet(false),
+ m_objectAttributesHasBeenSet(false),
+ m_customizedAccessLogTagHasBeenSet(false)
+{
+}
+
+Aws::String GetObjectAttributesRequest::SerializePayload() const
+{
+ return {};
+}
+
+void GetObjectAttributesRequest::AddQueryStringParameters(URI& uri) const
+{
+ Aws::StringStream ss;
+ if(m_versionIdHasBeenSet)
+ {
+ ss << m_versionId;
+ uri.AddQueryStringParameter("versionId", ss.str());
+ ss.str("");
+ }
+
+ if(!m_customizedAccessLogTag.empty())
+ {
+ // only accept customized LogTag which starts with "x-"
+ Aws::Map<Aws::String, Aws::String> collectedLogTags;
+ for(const auto& entry: m_customizedAccessLogTag)
+ {
+ if (!entry.first.empty() && !entry.second.empty() && entry.first.substr(0, 2) == "x-")
+ {
+ collectedLogTags.emplace(entry.first, entry.second);
+ }
+ }
+
+ if (!collectedLogTags.empty())
+ {
+ uri.AddQueryStringParameter(collectedLogTags);
+ }
+ }
+}
+
+Aws::Http::HeaderValueCollection GetObjectAttributesRequest::GetRequestSpecificHeaders() const
+{
+ Aws::Http::HeaderValueCollection headers;
+ Aws::StringStream ss;
+ if(m_maxPartsHasBeenSet)
+ {
+ ss << m_maxParts;
+ headers.emplace("x-amz-max-parts", ss.str());
+ ss.str("");
+ }
+
+ if(m_partNumberMarkerHasBeenSet)
+ {
+ ss << m_partNumberMarker;
+ headers.emplace("x-amz-part-number-marker", ss.str());
+ ss.str("");
+ }
+
+ if(m_sSECustomerAlgorithmHasBeenSet)
+ {
+ ss << m_sSECustomerAlgorithm;
+ headers.emplace("x-amz-server-side-encryption-customer-algorithm", ss.str());
+ ss.str("");
+ }
+
+ if(m_sSECustomerKeyHasBeenSet)
+ {
+ ss << m_sSECustomerKey;
+ headers.emplace("x-amz-server-side-encryption-customer-key", ss.str());
+ ss.str("");
+ }
+
+ if(m_sSECustomerKeyMD5HasBeenSet)
+ {
+ ss << m_sSECustomerKeyMD5;
+ headers.emplace("x-amz-server-side-encryption-customer-key-md5", ss.str());
+ ss.str("");
+ }
+
+ if(m_requestPayerHasBeenSet)
+ {
+ headers.emplace("x-amz-request-payer", RequestPayerMapper::GetNameForRequestPayer(m_requestPayer));
+ }
+
+ if(m_expectedBucketOwnerHasBeenSet)
+ {
+ ss << m_expectedBucketOwner;
+ headers.emplace("x-amz-expected-bucket-owner", ss.str());
+ ss.str("");
+ }
+
+ if(m_objectAttributesHasBeenSet)
+ {
+ for(const auto& item : m_objectAttributes)
+ {
+ ss << ObjectAttributesMapper::GetNameForObjectAttributes(item);
+ headers.emplace("x-amz-object-attributes", ss.str());
+ ss.str("");
+ }
+ }
+
+ return headers;
+}
+
+GetObjectAttributesRequest::EndpointParameters GetObjectAttributesRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesResult.cpp
new file mode 100644
index 0000000000..2cb06ee5fe
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAttributesResult.cpp
@@ -0,0 +1,96 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/GetObjectAttributesResult.h>
+#include <aws/core/utils/xml/XmlSerializer.h>
+#include <aws/core/AmazonWebServiceResult.h>
+#include <aws/core/utils/StringUtils.h>
+#include <aws/core/utils/memory/stl/AWSStringStream.h>
+
+#include <utility>
+
+using namespace Aws::S3::Model;
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils;
+using namespace Aws;
+
+GetObjectAttributesResult::GetObjectAttributesResult() :
+ m_deleteMarker(false),
+ m_requestCharged(RequestCharged::NOT_SET),
+ m_storageClass(StorageClass::NOT_SET),
+ m_objectSize(0)
+{
+}
+
+GetObjectAttributesResult::GetObjectAttributesResult(const Aws::AmazonWebServiceResult<XmlDocument>& result) :
+ m_deleteMarker(false),
+ m_requestCharged(RequestCharged::NOT_SET),
+ m_storageClass(StorageClass::NOT_SET),
+ m_objectSize(0)
+{
+ *this = result;
+}
+
+GetObjectAttributesResult& GetObjectAttributesResult::operator =(const Aws::AmazonWebServiceResult<XmlDocument>& result)
+{
+ const XmlDocument& xmlDocument = result.GetPayload();
+ XmlNode resultNode = xmlDocument.GetRootElement();
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode eTagNode = resultNode.FirstChild("ETag");
+ if(!eTagNode.IsNull())
+ {
+ m_eTag = Aws::Utils::Xml::DecodeEscapedXmlText(eTagNode.GetText());
+ }
+ XmlNode checksumNode = resultNode.FirstChild("Checksum");
+ if(!checksumNode.IsNull())
+ {
+ m_checksum = checksumNode;
+ }
+ XmlNode objectPartsNode = resultNode.FirstChild("ObjectParts");
+ if(!objectPartsNode.IsNull())
+ {
+ m_objectParts = objectPartsNode;
+ }
+ XmlNode storageClassNode = resultNode.FirstChild("StorageClass");
+ if(!storageClassNode.IsNull())
+ {
+ m_storageClass = StorageClassMapper::GetStorageClassForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(storageClassNode.GetText()).c_str()).c_str());
+ }
+ XmlNode objectSizeNode = resultNode.FirstChild("ObjectSize");
+ if(!objectSizeNode.IsNull())
+ {
+ m_objectSize = StringUtils::ConvertToInt64(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(objectSizeNode.GetText()).c_str()).c_str());
+ }
+ }
+
+ const auto& headers = result.GetHeaderValueCollection();
+ const auto& deleteMarkerIter = headers.find("x-amz-delete-marker");
+ if(deleteMarkerIter != headers.end())
+ {
+ m_deleteMarker = StringUtils::ConvertToBool(deleteMarkerIter->second.c_str());
+ }
+
+ const auto& lastModifiedIter = headers.find("last-modified");
+ if(lastModifiedIter != headers.end())
+ {
+ m_lastModified = DateTime(lastModifiedIter->second, Aws::Utils::DateFormat::RFC822);
+ }
+
+ const auto& versionIdIter = headers.find("x-amz-version-id");
+ if(versionIdIter != headers.end())
+ {
+ m_versionId = versionIdIter->second;
+ }
+
+ const auto& requestChargedIter = headers.find("x-amz-request-charged");
+ if(requestChargedIter != headers.end())
+ {
+ m_requestCharged = RequestChargedMapper::GetRequestChargedForName(requestChargedIter->second);
+ }
+
+ return *this;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldRequest.cpp
index 6a3ba662dc..f6b41c0e8f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldRequest.cpp
@@ -79,3 +79,13 @@ Aws::Http::HeaderValueCollection GetObjectLegalHoldRequest::GetRequestSpecificHe
return headers;
}
+
+GetObjectLegalHoldRequest::EndpointParameters GetObjectLegalHoldRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationRequest.cpp
index d1cf37a030..59ebdb725e 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetObjectLockConfigurationRequest::GetRequestSp
return headers;
}
+
+GetObjectLockConfigurationRequest::EndpointParameters GetObjectLockConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRequest.cpp
index a1939e2471..94dcf96673 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRequest.cpp
@@ -39,6 +39,8 @@ GetObjectRequest::GetObjectRequest() :
m_partNumber(0),
m_partNumberHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
+ m_checksumMode(ChecksumMode::NOT_SET),
+ m_checksumModeHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
@@ -88,7 +90,7 @@ void GetObjectRequest::AddQueryStringParameters(URI& uri) const
if(m_responseExpiresHasBeenSet)
{
- ss << m_responseExpires.ToGmtString(DateFormat::RFC822);
+ ss << m_responseExpires.ToGmtString(Aws::Utils::DateFormat::RFC822);
uri.AddQueryStringParameter("response-expires", ss.str());
ss.str("");
}
@@ -139,7 +141,7 @@ Aws::Http::HeaderValueCollection GetObjectRequest::GetRequestSpecificHeaders() c
if(m_ifModifiedSinceHasBeenSet)
{
- headers.emplace("if-modified-since", m_ifModifiedSince.ToGmtString(DateFormat::RFC822));
+ headers.emplace("if-modified-since", m_ifModifiedSince.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_ifNoneMatchHasBeenSet)
@@ -151,7 +153,7 @@ Aws::Http::HeaderValueCollection GetObjectRequest::GetRequestSpecificHeaders() c
if(m_ifUnmodifiedSinceHasBeenSet)
{
- headers.emplace("if-unmodified-since", m_ifUnmodifiedSince.ToGmtString(DateFormat::RFC822));
+ headers.emplace("if-unmodified-since", m_ifUnmodifiedSince.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_rangeHasBeenSet)
@@ -194,5 +196,35 @@ Aws::Http::HeaderValueCollection GetObjectRequest::GetRequestSpecificHeaders() c
ss.str("");
}
+ if(m_checksumModeHasBeenSet)
+ {
+ headers.emplace("x-amz-checksum-mode", ChecksumModeMapper::GetNameForChecksumMode(m_checksumMode));
+ }
+
return headers;
}
+
+GetObjectRequest::EndpointParameters GetObjectRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+bool GetObjectRequest::ShouldValidateResponseChecksum() const
+{
+ return m_checksumMode == ChecksumMode::ENABLED;
+}
+
+Aws::Vector<Aws::String> GetObjectRequest::GetResponseChecksumAlgorithmNames() const
+{
+ Aws::Vector<Aws::String> responseChecksumAlgorithmNames;
+ responseChecksumAlgorithmNames.push_back("CRC32");
+ responseChecksumAlgorithmNames.push_back("CRC32C");
+ responseChecksumAlgorithmNames.push_back("SHA256");
+ responseChecksumAlgorithmNames.push_back("SHA1");
+ return responseChecksumAlgorithmNames;
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectResult.cpp
index f0959a570a..50be648cd6 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectResult.cpp
@@ -41,6 +41,10 @@ GetObjectResult::GetObjectResult(GetObjectResult&& toMove) :
m_lastModified(std::move(toMove.m_lastModified)),
m_contentLength(toMove.m_contentLength),
m_eTag(std::move(toMove.m_eTag)),
+ m_checksumCRC32(std::move(toMove.m_checksumCRC32)),
+ m_checksumCRC32C(std::move(toMove.m_checksumCRC32C)),
+ m_checksumSHA1(std::move(toMove.m_checksumSHA1)),
+ m_checksumSHA256(std::move(toMove.m_checksumSHA256)),
m_missingMeta(toMove.m_missingMeta),
m_versionId(std::move(toMove.m_versionId)),
m_cacheControl(std::move(toMove.m_cacheControl)),
@@ -85,6 +89,10 @@ GetObjectResult& GetObjectResult::operator=(GetObjectResult&& toMove)
m_lastModified = std::move(toMove.m_lastModified);
m_contentLength = toMove.m_contentLength;
m_eTag = std::move(toMove.m_eTag);
+ m_checksumCRC32 = std::move(toMove.m_checksumCRC32);
+ m_checksumCRC32C = std::move(toMove.m_checksumCRC32C);
+ m_checksumSHA1 = std::move(toMove.m_checksumSHA1);
+ m_checksumSHA256 = std::move(toMove.m_checksumSHA256);
m_missingMeta = toMove.m_missingMeta;
m_versionId = std::move(toMove.m_versionId);
m_cacheControl = std::move(toMove.m_cacheControl);
@@ -164,7 +172,7 @@ GetObjectResult& GetObjectResult::operator =(Aws::AmazonWebServiceResult<Respons
const auto& lastModifiedIter = headers.find("last-modified");
if(lastModifiedIter != headers.end())
{
- m_lastModified = DateTime(lastModifiedIter->second, DateFormat::RFC822);
+ m_lastModified = DateTime(lastModifiedIter->second, Aws::Utils::DateFormat::RFC822);
}
const auto& contentLengthIter = headers.find("content-length");
@@ -179,6 +187,30 @@ GetObjectResult& GetObjectResult::operator =(Aws::AmazonWebServiceResult<Respons
m_eTag = eTagIter->second;
}
+ const auto& checksumCRC32Iter = headers.find("x-amz-checksum-crc32");
+ if(checksumCRC32Iter != headers.end())
+ {
+ m_checksumCRC32 = checksumCRC32Iter->second;
+ }
+
+ const auto& checksumCRC32CIter = headers.find("x-amz-checksum-crc32c");
+ if(checksumCRC32CIter != headers.end())
+ {
+ m_checksumCRC32C = checksumCRC32CIter->second;
+ }
+
+ const auto& checksumSHA1Iter = headers.find("x-amz-checksum-sha1");
+ if(checksumSHA1Iter != headers.end())
+ {
+ m_checksumSHA1 = checksumSHA1Iter->second;
+ }
+
+ const auto& checksumSHA256Iter = headers.find("x-amz-checksum-sha256");
+ if(checksumSHA256Iter != headers.end())
+ {
+ m_checksumSHA256 = checksumSHA256Iter->second;
+ }
+
const auto& missingMetaIter = headers.find("x-amz-missing-meta");
if(missingMetaIter != headers.end())
{
@@ -230,7 +262,7 @@ GetObjectResult& GetObjectResult::operator =(Aws::AmazonWebServiceResult<Respons
const auto& expiresIter = headers.find("expires");
if(expiresIter != headers.end())
{
- m_expires = DateTime(expiresIter->second, DateFormat::RFC822);
+ m_expires = DateTime(expiresIter->second, Aws::Utils::DateFormat::RFC822);
}
const auto& websiteRedirectLocationIter = headers.find("x-amz-website-redirect-location");
@@ -319,7 +351,7 @@ GetObjectResult& GetObjectResult::operator =(Aws::AmazonWebServiceResult<Respons
const auto& objectLockRetainUntilDateIter = headers.find("x-amz-object-lock-retain-until-date");
if(objectLockRetainUntilDateIter != headers.end())
{
- m_objectLockRetainUntilDate = DateTime(objectLockRetainUntilDateIter->second, DateFormat::ISO_8601);
+ m_objectLockRetainUntilDate = DateTime(objectLockRetainUntilDateIter->second, Aws::Utils::DateFormat::ISO_8601);
}
const auto& objectLockLegalHoldStatusIter = headers.find("x-amz-object-lock-legal-hold");
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionRequest.cpp
index d1917da723..a825b3ba4c 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionRequest.cpp
@@ -79,3 +79,13 @@ Aws::Http::HeaderValueCollection GetObjectRetentionRequest::GetRequestSpecificHe
return headers;
}
+
+GetObjectRetentionRequest::EndpointParameters GetObjectRetentionRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingRequest.cpp
index fb9a5d55e4..d2f2fa1127 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingRequest.cpp
@@ -79,3 +79,13 @@ Aws::Http::HeaderValueCollection GetObjectTaggingRequest::GetRequestSpecificHead
return headers;
}
+
+GetObjectTaggingRequest::EndpointParameters GetObjectTaggingRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentRequest.cpp
index 05aae88aa2..f0975e6b60 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection GetObjectTorrentRequest::GetRequestSpecificHead
return headers;
}
+
+GetObjectTorrentRequest::EndpointParameters GetObjectTorrentRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockRequest.cpp
index 6616e19c0b..137a2d2a36 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection GetPublicAccessBlockRequest::GetRequestSpecific
return headers;
}
+
+GetPublicAccessBlockRequest::EndpointParameters GetPublicAccessBlockRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadBucketRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadBucketRequest.cpp
index b503f37b81..9cc24f6e14 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadBucketRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadBucketRequest.cpp
@@ -63,3 +63,13 @@ Aws::Http::HeaderValueCollection HeadBucketRequest::GetRequestSpecificHeaders()
return headers;
}
+
+HeadBucketRequest::EndpointParameters HeadBucketRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectRequest.cpp
index 7bf7b7239e..e40ec1f7cf 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectRequest.cpp
@@ -33,6 +33,8 @@ HeadObjectRequest::HeadObjectRequest() :
m_partNumber(0),
m_partNumberHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
+ m_checksumMode(ChecksumMode::NOT_SET),
+ m_checksumModeHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
@@ -91,7 +93,7 @@ Aws::Http::HeaderValueCollection HeadObjectRequest::GetRequestSpecificHeaders()
if(m_ifModifiedSinceHasBeenSet)
{
- headers.emplace("if-modified-since", m_ifModifiedSince.ToGmtString(DateFormat::RFC822));
+ headers.emplace("if-modified-since", m_ifModifiedSince.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_ifNoneMatchHasBeenSet)
@@ -103,7 +105,7 @@ Aws::Http::HeaderValueCollection HeadObjectRequest::GetRequestSpecificHeaders()
if(m_ifUnmodifiedSinceHasBeenSet)
{
- headers.emplace("if-unmodified-since", m_ifUnmodifiedSince.ToGmtString(DateFormat::RFC822));
+ headers.emplace("if-unmodified-since", m_ifUnmodifiedSince.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_rangeHasBeenSet)
@@ -146,5 +148,20 @@ Aws::Http::HeaderValueCollection HeadObjectRequest::GetRequestSpecificHeaders()
ss.str("");
}
+ if(m_checksumModeHasBeenSet)
+ {
+ headers.emplace("x-amz-checksum-mode", ChecksumModeMapper::GetNameForChecksumMode(m_checksumMode));
+ }
+
return headers;
}
+
+HeadObjectRequest::EndpointParameters HeadObjectRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectResult.cpp
index f498d56aab..f68958d355 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectResult.cpp
@@ -92,7 +92,7 @@ HeadObjectResult& HeadObjectResult::operator =(const Aws::AmazonWebServiceResult
const auto& lastModifiedIter = headers.find("last-modified");
if(lastModifiedIter != headers.end())
{
- m_lastModified = DateTime(lastModifiedIter->second, DateFormat::RFC822);
+ m_lastModified = DateTime(lastModifiedIter->second, Aws::Utils::DateFormat::RFC822);
}
const auto& contentLengthIter = headers.find("content-length");
@@ -101,6 +101,30 @@ HeadObjectResult& HeadObjectResult::operator =(const Aws::AmazonWebServiceResult
m_contentLength = StringUtils::ConvertToInt64(contentLengthIter->second.c_str());
}
+ const auto& checksumCRC32Iter = headers.find("x-amz-checksum-crc32");
+ if(checksumCRC32Iter != headers.end())
+ {
+ m_checksumCRC32 = checksumCRC32Iter->second;
+ }
+
+ const auto& checksumCRC32CIter = headers.find("x-amz-checksum-crc32c");
+ if(checksumCRC32CIter != headers.end())
+ {
+ m_checksumCRC32C = checksumCRC32CIter->second;
+ }
+
+ const auto& checksumSHA1Iter = headers.find("x-amz-checksum-sha1");
+ if(checksumSHA1Iter != headers.end())
+ {
+ m_checksumSHA1 = checksumSHA1Iter->second;
+ }
+
+ const auto& checksumSHA256Iter = headers.find("x-amz-checksum-sha256");
+ if(checksumSHA256Iter != headers.end())
+ {
+ m_checksumSHA256 = checksumSHA256Iter->second;
+ }
+
const auto& eTagIter = headers.find("etag");
if(eTagIter != headers.end())
{
@@ -152,7 +176,7 @@ HeadObjectResult& HeadObjectResult::operator =(const Aws::AmazonWebServiceResult
const auto& expiresIter = headers.find("expires");
if(expiresIter != headers.end())
{
- m_expires = DateTime(expiresIter->second, DateFormat::RFC822);
+ m_expires = DateTime(expiresIter->second, Aws::Utils::DateFormat::RFC822);
}
const auto& websiteRedirectLocationIter = headers.find("x-amz-website-redirect-location");
@@ -235,7 +259,7 @@ HeadObjectResult& HeadObjectResult::operator =(const Aws::AmazonWebServiceResult
const auto& objectLockRetainUntilDateIter = headers.find("x-amz-object-lock-retain-until-date");
if(objectLockRetainUntilDateIter != headers.end())
{
- m_objectLockRetainUntilDate = DateTime(objectLockRetainUntilDateIter->second, DateFormat::ISO_8601);
+ m_objectLockRetainUntilDate = DateTime(objectLockRetainUntilDateIter->second, Aws::Utils::DateFormat::ISO_8601);
}
const auto& objectLockLegalHoldStatusIter = headers.find("x-amz-object-lock-legal-hold");
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryOptionalField.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryOptionalField.cpp
index 00ae5fda49..a9b64dd1f1 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryOptionalField.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryOptionalField.cpp
@@ -31,6 +31,8 @@ namespace Aws
static const int ObjectLockMode_HASH = HashingUtils::HashString("ObjectLockMode");
static const int ObjectLockLegalHoldStatus_HASH = HashingUtils::HashString("ObjectLockLegalHoldStatus");
static const int IntelligentTieringAccessTier_HASH = HashingUtils::HashString("IntelligentTieringAccessTier");
+ static const int BucketKeyStatus_HASH = HashingUtils::HashString("BucketKeyStatus");
+ static const int ChecksumAlgorithm_HASH = HashingUtils::HashString("ChecksumAlgorithm");
InventoryOptionalField GetInventoryOptionalFieldForName(const Aws::String& name)
@@ -80,6 +82,14 @@ namespace Aws
{
return InventoryOptionalField::IntelligentTieringAccessTier;
}
+ else if (hashCode == BucketKeyStatus_HASH)
+ {
+ return InventoryOptionalField::BucketKeyStatus;
+ }
+ else if (hashCode == ChecksumAlgorithm_HASH)
+ {
+ return InventoryOptionalField::ChecksumAlgorithm;
+ }
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
{
@@ -116,6 +126,10 @@ namespace Aws
return "ObjectLockLegalHoldStatus";
case InventoryOptionalField::IntelligentTieringAccessTier:
return "IntelligentTieringAccessTier";
+ case InventoryOptionalField::BucketKeyStatus:
+ return "BucketKeyStatus";
+ case InventoryOptionalField::ChecksumAlgorithm:
+ return "ChecksumAlgorithm";
default:
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleExpiration.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleExpiration.cpp
index be347d18f0..9d579d1c5c 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleExpiration.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleExpiration.cpp
@@ -48,7 +48,7 @@ LifecycleExpiration& LifecycleExpiration::operator =(const XmlNode& xmlNode)
XmlNode dateNode = resultNode.FirstChild("Date");
if(!dateNode.IsNull())
{
- m_date = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(dateNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_date = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(dateNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_dateHasBeenSet = true;
}
XmlNode daysNode = resultNode.FirstChild("Days");
@@ -74,7 +74,7 @@ void LifecycleExpiration::AddToNode(XmlNode& parentNode) const
if(m_dateHasBeenSet)
{
XmlNode dateNode = parentNode.CreateChildElement("Date");
- dateNode.SetText(m_date.ToGmtString(DateFormat::ISO_8601));
+ dateNode.SetText(m_date.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_daysHasBeenSet)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleAndOperator.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleAndOperator.cpp
index 833c1d99ea..b3358b10c3 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleAndOperator.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleAndOperator.cpp
@@ -22,13 +22,21 @@ namespace Model
LifecycleRuleAndOperator::LifecycleRuleAndOperator() :
m_prefixHasBeenSet(false),
- m_tagsHasBeenSet(false)
+ m_tagsHasBeenSet(false),
+ m_objectSizeGreaterThan(0),
+ m_objectSizeGreaterThanHasBeenSet(false),
+ m_objectSizeLessThan(0),
+ m_objectSizeLessThanHasBeenSet(false)
{
}
LifecycleRuleAndOperator::LifecycleRuleAndOperator(const XmlNode& xmlNode) :
m_prefixHasBeenSet(false),
- m_tagsHasBeenSet(false)
+ m_tagsHasBeenSet(false),
+ m_objectSizeGreaterThan(0),
+ m_objectSizeGreaterThanHasBeenSet(false),
+ m_objectSizeLessThan(0),
+ m_objectSizeLessThanHasBeenSet(false)
{
*this = xmlNode;
}
@@ -57,6 +65,18 @@ LifecycleRuleAndOperator& LifecycleRuleAndOperator::operator =(const XmlNode& xm
m_tagsHasBeenSet = true;
}
+ XmlNode objectSizeGreaterThanNode = resultNode.FirstChild("ObjectSizeGreaterThan");
+ if(!objectSizeGreaterThanNode.IsNull())
+ {
+ m_objectSizeGreaterThan = StringUtils::ConvertToInt64(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(objectSizeGreaterThanNode.GetText()).c_str()).c_str());
+ m_objectSizeGreaterThanHasBeenSet = true;
+ }
+ XmlNode objectSizeLessThanNode = resultNode.FirstChild("ObjectSizeLessThan");
+ if(!objectSizeLessThanNode.IsNull())
+ {
+ m_objectSizeLessThan = StringUtils::ConvertToInt64(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(objectSizeLessThanNode.GetText()).c_str()).c_str());
+ m_objectSizeLessThanHasBeenSet = true;
+ }
}
return *this;
@@ -81,6 +101,22 @@ void LifecycleRuleAndOperator::AddToNode(XmlNode& parentNode) const
}
}
+ if(m_objectSizeGreaterThanHasBeenSet)
+ {
+ XmlNode objectSizeGreaterThanNode = parentNode.CreateChildElement("ObjectSizeGreaterThan");
+ ss << m_objectSizeGreaterThan;
+ objectSizeGreaterThanNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_objectSizeLessThanHasBeenSet)
+ {
+ XmlNode objectSizeLessThanNode = parentNode.CreateChildElement("ObjectSizeLessThan");
+ ss << m_objectSizeLessThan;
+ objectSizeLessThanNode.SetText(ss.str());
+ ss.str("");
+ }
+
}
} // namespace Model
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleFilter.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleFilter.cpp
index 0f56fb9044..ee9aedeed5 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleFilter.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleFilter.cpp
@@ -23,6 +23,10 @@ namespace Model
LifecycleRuleFilter::LifecycleRuleFilter() :
m_prefixHasBeenSet(false),
m_tagHasBeenSet(false),
+ m_objectSizeGreaterThan(0),
+ m_objectSizeGreaterThanHasBeenSet(false),
+ m_objectSizeLessThan(0),
+ m_objectSizeLessThanHasBeenSet(false),
m_andHasBeenSet(false)
{
}
@@ -30,6 +34,10 @@ LifecycleRuleFilter::LifecycleRuleFilter() :
LifecycleRuleFilter::LifecycleRuleFilter(const XmlNode& xmlNode) :
m_prefixHasBeenSet(false),
m_tagHasBeenSet(false),
+ m_objectSizeGreaterThan(0),
+ m_objectSizeGreaterThanHasBeenSet(false),
+ m_objectSizeLessThan(0),
+ m_objectSizeLessThanHasBeenSet(false),
m_andHasBeenSet(false)
{
*this = xmlNode;
@@ -53,6 +61,18 @@ LifecycleRuleFilter& LifecycleRuleFilter::operator =(const XmlNode& xmlNode)
m_tag = tagNode;
m_tagHasBeenSet = true;
}
+ XmlNode objectSizeGreaterThanNode = resultNode.FirstChild("ObjectSizeGreaterThan");
+ if(!objectSizeGreaterThanNode.IsNull())
+ {
+ m_objectSizeGreaterThan = StringUtils::ConvertToInt64(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(objectSizeGreaterThanNode.GetText()).c_str()).c_str());
+ m_objectSizeGreaterThanHasBeenSet = true;
+ }
+ XmlNode objectSizeLessThanNode = resultNode.FirstChild("ObjectSizeLessThan");
+ if(!objectSizeLessThanNode.IsNull())
+ {
+ m_objectSizeLessThan = StringUtils::ConvertToInt64(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(objectSizeLessThanNode.GetText()).c_str()).c_str());
+ m_objectSizeLessThanHasBeenSet = true;
+ }
XmlNode andNode = resultNode.FirstChild("And");
if(!andNode.IsNull())
{
@@ -79,6 +99,22 @@ void LifecycleRuleFilter::AddToNode(XmlNode& parentNode) const
m_tag.AddToNode(tagNode);
}
+ if(m_objectSizeGreaterThanHasBeenSet)
+ {
+ XmlNode objectSizeGreaterThanNode = parentNode.CreateChildElement("ObjectSizeGreaterThan");
+ ss << m_objectSizeGreaterThan;
+ objectSizeGreaterThanNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_objectSizeLessThanHasBeenSet)
+ {
+ XmlNode objectSizeLessThanNode = parentNode.CreateChildElement("ObjectSizeLessThan");
+ ss << m_objectSizeLessThan;
+ objectSizeLessThanNode.SetText(ss.str());
+ ss.str("");
+ }
+
if(m_andHasBeenSet)
{
XmlNode andNode = parentNode.CreateChildElement("And");
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsRequest.cpp
index 5b114920e1..3c79cd9684 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection ListBucketAnalyticsConfigurationsRequest::GetRe
return headers;
}
+
+ListBucketAnalyticsConfigurationsRequest::EndpointParameters ListBucketAnalyticsConfigurationsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsRequest.cpp
index 8e83bdec35..80991f96d3 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsRequest.cpp
@@ -57,3 +57,13 @@ void ListBucketIntelligentTieringConfigurationsRequest::AddQueryStringParameters
}
}
+
+ListBucketIntelligentTieringConfigurationsRequest::EndpointParameters ListBucketIntelligentTieringConfigurationsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsRequest.cpp
index fbd8f9ff83..4487984600 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection ListBucketInventoryConfigurationsRequest::GetRe
return headers;
}
+
+ListBucketInventoryConfigurationsRequest::EndpointParameters ListBucketInventoryConfigurationsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsRequest.cpp
index 3978ec46f8..db5bd39a59 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsRequest.cpp
@@ -71,3 +71,13 @@ Aws::Http::HeaderValueCollection ListBucketMetricsConfigurationsRequest::GetRequ
return headers;
}
+
+ListBucketMetricsConfigurationsRequest::EndpointParameters ListBucketMetricsConfigurationsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsRequest.cpp
index 9723e16a9d..528104a503 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsRequest.cpp
@@ -113,3 +113,13 @@ Aws::Http::HeaderValueCollection ListMultipartUploadsRequest::GetRequestSpecific
return headers;
}
+
+ListMultipartUploadsRequest::EndpointParameters ListMultipartUploadsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsRequest.cpp
index 2336f09ef8..471cb4a33d 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsRequest.cpp
@@ -113,3 +113,13 @@ Aws::Http::HeaderValueCollection ListObjectVersionsRequest::GetRequestSpecificHe
return headers;
}
+
+ListObjectVersionsRequest::EndpointParameters ListObjectVersionsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsRequest.cpp
index 33abec092f..a32047ac5f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsRequest.cpp
@@ -112,3 +112,13 @@ Aws::Http::HeaderValueCollection ListObjectsRequest::GetRequestSpecificHeaders()
return headers;
}
+
+ListObjectsRequest::EndpointParameters ListObjectsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Request.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Request.cpp
index 2feb9b83c1..68a4ddc2df 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Request.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Request.cpp
@@ -129,3 +129,13 @@ Aws::Http::HeaderValueCollection ListObjectsV2Request::GetRequestSpecificHeaders
return headers;
}
+
+ListObjectsV2Request::EndpointParameters ListObjectsV2Request::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsRequest.cpp
index 59ff12e4d1..2ddc183789 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsRequest.cpp
@@ -27,6 +27,9 @@ ListPartsRequest::ListPartsRequest() :
m_requestPayer(RequestPayer::NOT_SET),
m_requestPayerHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
+ m_sSECustomerAlgorithmHasBeenSet(false),
+ m_sSECustomerKeyHasBeenSet(false),
+ m_sSECustomerKeyMD5HasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
@@ -95,5 +98,36 @@ Aws::Http::HeaderValueCollection ListPartsRequest::GetRequestSpecificHeaders() c
ss.str("");
}
+ if(m_sSECustomerAlgorithmHasBeenSet)
+ {
+ ss << m_sSECustomerAlgorithm;
+ headers.emplace("x-amz-server-side-encryption-customer-algorithm", ss.str());
+ ss.str("");
+ }
+
+ if(m_sSECustomerKeyHasBeenSet)
+ {
+ ss << m_sSECustomerKey;
+ headers.emplace("x-amz-server-side-encryption-customer-key", ss.str());
+ ss.str("");
+ }
+
+ if(m_sSECustomerKeyMD5HasBeenSet)
+ {
+ ss << m_sSECustomerKeyMD5;
+ headers.emplace("x-amz-server-side-encryption-customer-key-md5", ss.str());
+ ss.str("");
+ }
+
return headers;
}
+
+ListPartsRequest::EndpointParameters ListPartsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsResult.cpp
index f4638f2a06..d61990cf1b 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsResult.cpp
@@ -22,7 +22,8 @@ ListPartsResult::ListPartsResult() :
m_maxParts(0),
m_isTruncated(false),
m_storageClass(StorageClass::NOT_SET),
- m_requestCharged(RequestCharged::NOT_SET)
+ m_requestCharged(RequestCharged::NOT_SET),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET)
{
}
@@ -32,7 +33,8 @@ ListPartsResult::ListPartsResult(const Aws::AmazonWebServiceResult<XmlDocument>&
m_maxParts(0),
m_isTruncated(false),
m_storageClass(StorageClass::NOT_SET),
- m_requestCharged(RequestCharged::NOT_SET)
+ m_requestCharged(RequestCharged::NOT_SET),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET)
{
*this = result;
}
@@ -105,13 +107,18 @@ ListPartsResult& ListPartsResult::operator =(const Aws::AmazonWebServiceResult<X
{
m_storageClass = StorageClassMapper::GetStorageClassForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(storageClassNode.GetText()).c_str()).c_str());
}
+ XmlNode checksumAlgorithmNode = resultNode.FirstChild("ChecksumAlgorithm");
+ if(!checksumAlgorithmNode.IsNull())
+ {
+ m_checksumAlgorithm = ChecksumAlgorithmMapper::GetChecksumAlgorithmForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(checksumAlgorithmNode.GetText()).c_str()).c_str());
+ }
}
const auto& headers = result.GetHeaderValueCollection();
const auto& abortDateIter = headers.find("x-amz-abort-date");
if(abortDateIter != headers.end())
{
- m_abortDate = DateTime(abortDateIter->second, DateFormat::RFC822);
+ m_abortDate = DateTime(abortDateIter->second, Aws::Utils::DateFormat::RFC822);
}
const auto& abortRuleIdIter = headers.find("x-amz-abort-rule-id");
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsAndOperator.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsAndOperator.cpp
index 74951cd0eb..711740443b 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsAndOperator.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsAndOperator.cpp
@@ -22,13 +22,15 @@ namespace Model
MetricsAndOperator::MetricsAndOperator() :
m_prefixHasBeenSet(false),
- m_tagsHasBeenSet(false)
+ m_tagsHasBeenSet(false),
+ m_accessPointArnHasBeenSet(false)
{
}
MetricsAndOperator::MetricsAndOperator(const XmlNode& xmlNode) :
m_prefixHasBeenSet(false),
- m_tagsHasBeenSet(false)
+ m_tagsHasBeenSet(false),
+ m_accessPointArnHasBeenSet(false)
{
*this = xmlNode;
}
@@ -57,6 +59,12 @@ MetricsAndOperator& MetricsAndOperator::operator =(const XmlNode& xmlNode)
m_tagsHasBeenSet = true;
}
+ XmlNode accessPointArnNode = resultNode.FirstChild("AccessPointArn");
+ if(!accessPointArnNode.IsNull())
+ {
+ m_accessPointArn = Aws::Utils::Xml::DecodeEscapedXmlText(accessPointArnNode.GetText());
+ m_accessPointArnHasBeenSet = true;
+ }
}
return *this;
@@ -81,6 +89,12 @@ void MetricsAndOperator::AddToNode(XmlNode& parentNode) const
}
}
+ if(m_accessPointArnHasBeenSet)
+ {
+ XmlNode accessPointArnNode = parentNode.CreateChildElement("AccessPointArn");
+ accessPointArnNode.SetText(m_accessPointArn);
+ }
+
}
} // namespace Model
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsFilter.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsFilter.cpp
index fa7ade5849..90cda86e09 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsFilter.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsFilter.cpp
@@ -23,6 +23,7 @@ namespace Model
MetricsFilter::MetricsFilter() :
m_prefixHasBeenSet(false),
m_tagHasBeenSet(false),
+ m_accessPointArnHasBeenSet(false),
m_andHasBeenSet(false)
{
}
@@ -30,6 +31,7 @@ MetricsFilter::MetricsFilter() :
MetricsFilter::MetricsFilter(const XmlNode& xmlNode) :
m_prefixHasBeenSet(false),
m_tagHasBeenSet(false),
+ m_accessPointArnHasBeenSet(false),
m_andHasBeenSet(false)
{
*this = xmlNode;
@@ -53,6 +55,12 @@ MetricsFilter& MetricsFilter::operator =(const XmlNode& xmlNode)
m_tag = tagNode;
m_tagHasBeenSet = true;
}
+ XmlNode accessPointArnNode = resultNode.FirstChild("AccessPointArn");
+ if(!accessPointArnNode.IsNull())
+ {
+ m_accessPointArn = Aws::Utils::Xml::DecodeEscapedXmlText(accessPointArnNode.GetText());
+ m_accessPointArnHasBeenSet = true;
+ }
XmlNode andNode = resultNode.FirstChild("And");
if(!andNode.IsNull())
{
@@ -79,6 +87,12 @@ void MetricsFilter::AddToNode(XmlNode& parentNode) const
m_tag.AddToNode(tagNode);
}
+ if(m_accessPointArnHasBeenSet)
+ {
+ XmlNode accessPointArnNode = parentNode.CreateChildElement("AccessPointArn");
+ accessPointArnNode.SetText(m_accessPointArn);
+ }
+
if(m_andHasBeenSet)
{
XmlNode andNode = parentNode.CreateChildElement("And");
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MultipartUpload.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MultipartUpload.cpp
index 6d92ea2cb6..c64926a272 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MultipartUpload.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MultipartUpload.cpp
@@ -27,7 +27,9 @@ MultipartUpload::MultipartUpload() :
m_storageClass(StorageClass::NOT_SET),
m_storageClassHasBeenSet(false),
m_ownerHasBeenSet(false),
- m_initiatorHasBeenSet(false)
+ m_initiatorHasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false)
{
}
@@ -38,7 +40,9 @@ MultipartUpload::MultipartUpload(const XmlNode& xmlNode) :
m_storageClass(StorageClass::NOT_SET),
m_storageClassHasBeenSet(false),
m_ownerHasBeenSet(false),
- m_initiatorHasBeenSet(false)
+ m_initiatorHasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false)
{
*this = xmlNode;
}
@@ -64,7 +68,7 @@ MultipartUpload& MultipartUpload::operator =(const XmlNode& xmlNode)
XmlNode initiatedNode = resultNode.FirstChild("Initiated");
if(!initiatedNode.IsNull())
{
- m_initiated = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(initiatedNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_initiated = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(initiatedNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_initiatedHasBeenSet = true;
}
XmlNode storageClassNode = resultNode.FirstChild("StorageClass");
@@ -85,6 +89,12 @@ MultipartUpload& MultipartUpload::operator =(const XmlNode& xmlNode)
m_initiator = initiatorNode;
m_initiatorHasBeenSet = true;
}
+ XmlNode checksumAlgorithmNode = resultNode.FirstChild("ChecksumAlgorithm");
+ if(!checksumAlgorithmNode.IsNull())
+ {
+ m_checksumAlgorithm = ChecksumAlgorithmMapper::GetChecksumAlgorithmForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(checksumAlgorithmNode.GetText()).c_str()).c_str());
+ m_checksumAlgorithmHasBeenSet = true;
+ }
}
return *this;
@@ -108,7 +118,7 @@ void MultipartUpload::AddToNode(XmlNode& parentNode) const
if(m_initiatedHasBeenSet)
{
XmlNode initiatedNode = parentNode.CreateChildElement("Initiated");
- initiatedNode.SetText(m_initiated.ToGmtString(DateFormat::ISO_8601));
+ initiatedNode.SetText(m_initiated.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_storageClassHasBeenSet)
@@ -129,6 +139,12 @@ void MultipartUpload::AddToNode(XmlNode& parentNode) const
m_initiator.AddToNode(initiatorNode);
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ XmlNode checksumAlgorithmNode = parentNode.CreateChildElement("ChecksumAlgorithm");
+ checksumAlgorithmNode.SetText(ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
}
} // namespace Model
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionExpiration.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionExpiration.cpp
index ab6db39f61..a3282e5fc9 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionExpiration.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionExpiration.cpp
@@ -22,13 +22,17 @@ namespace Model
NoncurrentVersionExpiration::NoncurrentVersionExpiration() :
m_noncurrentDays(0),
- m_noncurrentDaysHasBeenSet(false)
+ m_noncurrentDaysHasBeenSet(false),
+ m_newerNoncurrentVersions(0),
+ m_newerNoncurrentVersionsHasBeenSet(false)
{
}
NoncurrentVersionExpiration::NoncurrentVersionExpiration(const XmlNode& xmlNode) :
m_noncurrentDays(0),
- m_noncurrentDaysHasBeenSet(false)
+ m_noncurrentDaysHasBeenSet(false),
+ m_newerNoncurrentVersions(0),
+ m_newerNoncurrentVersionsHasBeenSet(false)
{
*this = xmlNode;
}
@@ -45,6 +49,12 @@ NoncurrentVersionExpiration& NoncurrentVersionExpiration::operator =(const XmlNo
m_noncurrentDays = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(noncurrentDaysNode.GetText()).c_str()).c_str());
m_noncurrentDaysHasBeenSet = true;
}
+ XmlNode newerNoncurrentVersionsNode = resultNode.FirstChild("NewerNoncurrentVersions");
+ if(!newerNoncurrentVersionsNode.IsNull())
+ {
+ m_newerNoncurrentVersions = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(newerNoncurrentVersionsNode.GetText()).c_str()).c_str());
+ m_newerNoncurrentVersionsHasBeenSet = true;
+ }
}
return *this;
@@ -61,6 +71,14 @@ void NoncurrentVersionExpiration::AddToNode(XmlNode& parentNode) const
ss.str("");
}
+ if(m_newerNoncurrentVersionsHasBeenSet)
+ {
+ XmlNode newerNoncurrentVersionsNode = parentNode.CreateChildElement("NewerNoncurrentVersions");
+ ss << m_newerNoncurrentVersions;
+ newerNoncurrentVersionsNode.SetText(ss.str());
+ ss.str("");
+ }
+
}
} // namespace Model
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionTransition.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionTransition.cpp
index e7027d679b..71d5880890 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionTransition.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionTransition.cpp
@@ -24,7 +24,9 @@ NoncurrentVersionTransition::NoncurrentVersionTransition() :
m_noncurrentDays(0),
m_noncurrentDaysHasBeenSet(false),
m_storageClass(TransitionStorageClass::NOT_SET),
- m_storageClassHasBeenSet(false)
+ m_storageClassHasBeenSet(false),
+ m_newerNoncurrentVersions(0),
+ m_newerNoncurrentVersionsHasBeenSet(false)
{
}
@@ -32,7 +34,9 @@ NoncurrentVersionTransition::NoncurrentVersionTransition(const XmlNode& xmlNode)
m_noncurrentDays(0),
m_noncurrentDaysHasBeenSet(false),
m_storageClass(TransitionStorageClass::NOT_SET),
- m_storageClassHasBeenSet(false)
+ m_storageClassHasBeenSet(false),
+ m_newerNoncurrentVersions(0),
+ m_newerNoncurrentVersionsHasBeenSet(false)
{
*this = xmlNode;
}
@@ -55,6 +59,12 @@ NoncurrentVersionTransition& NoncurrentVersionTransition::operator =(const XmlNo
m_storageClass = TransitionStorageClassMapper::GetTransitionStorageClassForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(storageClassNode.GetText()).c_str()).c_str());
m_storageClassHasBeenSet = true;
}
+ XmlNode newerNoncurrentVersionsNode = resultNode.FirstChild("NewerNoncurrentVersions");
+ if(!newerNoncurrentVersionsNode.IsNull())
+ {
+ m_newerNoncurrentVersions = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(newerNoncurrentVersionsNode.GetText()).c_str()).c_str());
+ m_newerNoncurrentVersionsHasBeenSet = true;
+ }
}
return *this;
@@ -77,6 +87,14 @@ void NoncurrentVersionTransition::AddToNode(XmlNode& parentNode) const
storageClassNode.SetText(TransitionStorageClassMapper::GetNameForTransitionStorageClass(m_storageClass));
}
+ if(m_newerNoncurrentVersionsHasBeenSet)
+ {
+ XmlNode newerNoncurrentVersionsNode = parentNode.CreateChildElement("NewerNoncurrentVersions");
+ ss << m_newerNoncurrentVersions;
+ newerNoncurrentVersionsNode.SetText(ss.str());
+ ss.str("");
+ }
+
}
} // namespace Model
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfiguration.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfiguration.cpp
index bb62ecb84d..b3b79d4a5f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfiguration.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfiguration.cpp
@@ -23,14 +23,16 @@ namespace Model
NotificationConfiguration::NotificationConfiguration() :
m_topicConfigurationsHasBeenSet(false),
m_queueConfigurationsHasBeenSet(false),
- m_lambdaFunctionConfigurationsHasBeenSet(false)
+ m_lambdaFunctionConfigurationsHasBeenSet(false),
+ m_eventBridgeConfigurationHasBeenSet(false)
{
}
NotificationConfiguration::NotificationConfiguration(const XmlNode& xmlNode) :
m_topicConfigurationsHasBeenSet(false),
m_queueConfigurationsHasBeenSet(false),
- m_lambdaFunctionConfigurationsHasBeenSet(false)
+ m_lambdaFunctionConfigurationsHasBeenSet(false),
+ m_eventBridgeConfigurationHasBeenSet(false)
{
*this = xmlNode;
}
@@ -77,6 +79,12 @@ NotificationConfiguration& NotificationConfiguration::operator =(const XmlNode&
m_lambdaFunctionConfigurationsHasBeenSet = true;
}
+ XmlNode eventBridgeConfigurationNode = resultNode.FirstChild("EventBridgeConfiguration");
+ if(!eventBridgeConfigurationNode.IsNull())
+ {
+ m_eventBridgeConfiguration = eventBridgeConfigurationNode;
+ m_eventBridgeConfigurationHasBeenSet = true;
+ }
}
return *this;
@@ -112,6 +120,12 @@ void NotificationConfiguration::AddToNode(XmlNode& parentNode) const
}
}
+ if(m_eventBridgeConfigurationHasBeenSet)
+ {
+ XmlNode eventBridgeConfigurationNode = parentNode.CreateChildElement("EventBridgeConfiguration");
+ m_eventBridgeConfiguration.AddToNode(eventBridgeConfigurationNode);
+ }
+
}
} // namespace Model
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Object.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Object.cpp
index d7d963fc21..41f985e168 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Object.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Object.cpp
@@ -24,6 +24,7 @@ Object::Object() :
m_keyHasBeenSet(false),
m_lastModifiedHasBeenSet(false),
m_eTagHasBeenSet(false),
+ m_checksumAlgorithmHasBeenSet(false),
m_size(0),
m_sizeHasBeenSet(false),
m_storageClass(ObjectStorageClass::NOT_SET),
@@ -36,6 +37,7 @@ Object::Object(const XmlNode& xmlNode) :
m_keyHasBeenSet(false),
m_lastModifiedHasBeenSet(false),
m_eTagHasBeenSet(false),
+ m_checksumAlgorithmHasBeenSet(false),
m_size(0),
m_sizeHasBeenSet(false),
m_storageClass(ObjectStorageClass::NOT_SET),
@@ -60,7 +62,7 @@ Object& Object::operator =(const XmlNode& xmlNode)
XmlNode lastModifiedNode = resultNode.FirstChild("LastModified");
if(!lastModifiedNode.IsNull())
{
- m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_lastModifiedHasBeenSet = true;
}
XmlNode eTagNode = resultNode.FirstChild("ETag");
@@ -69,6 +71,18 @@ Object& Object::operator =(const XmlNode& xmlNode)
m_eTag = Aws::Utils::Xml::DecodeEscapedXmlText(eTagNode.GetText());
m_eTagHasBeenSet = true;
}
+ XmlNode checksumAlgorithmNode = resultNode.FirstChild("ChecksumAlgorithm");
+ if(!checksumAlgorithmNode.IsNull())
+ {
+ XmlNode checksumAlgorithmMember = checksumAlgorithmNode;
+ while(!checksumAlgorithmMember.IsNull())
+ {
+ m_checksumAlgorithm.push_back(ChecksumAlgorithmMapper::GetChecksumAlgorithmForName(StringUtils::Trim(checksumAlgorithmMember.GetText().c_str())));
+ checksumAlgorithmMember = checksumAlgorithmMember.NextNode("ChecksumAlgorithm");
+ }
+
+ m_checksumAlgorithmHasBeenSet = true;
+ }
XmlNode sizeNode = resultNode.FirstChild("Size");
if(!sizeNode.IsNull())
{
@@ -104,7 +118,7 @@ void Object::AddToNode(XmlNode& parentNode) const
if(m_lastModifiedHasBeenSet)
{
XmlNode lastModifiedNode = parentNode.CreateChildElement("LastModified");
- lastModifiedNode.SetText(m_lastModified.ToGmtString(DateFormat::ISO_8601));
+ lastModifiedNode.SetText(m_lastModified.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_eTagHasBeenSet)
@@ -113,6 +127,16 @@ void Object::AddToNode(XmlNode& parentNode) const
eTagNode.SetText(m_eTag);
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ XmlNode checksumAlgorithmParentNode = parentNode.CreateChildElement("ChecksumAlgorithm");
+ for(const auto& item : m_checksumAlgorithm)
+ {
+ XmlNode checksumAlgorithmNode = checksumAlgorithmParentNode.CreateChildElement("ChecksumAlgorithm");
+ checksumAlgorithmNode.SetText(ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(item));
+ }
+ }
+
if(m_sizeHasBeenSet)
{
XmlNode sizeNode = parentNode.CreateChildElement("Size");
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectAttributes.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectAttributes.cpp
new file mode 100644
index 0000000000..c4159dcde2
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectAttributes.cpp
@@ -0,0 +1,91 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/ObjectAttributes.h>
+#include <aws/core/utils/HashingUtils.h>
+#include <aws/core/Globals.h>
+#include <aws/core/utils/EnumParseOverflowContainer.h>
+
+using namespace Aws::Utils;
+
+
+namespace Aws
+{
+ namespace S3
+ {
+ namespace Model
+ {
+ namespace ObjectAttributesMapper
+ {
+
+ static const int ETag_HASH = HashingUtils::HashString("ETag");
+ static const int Checksum_HASH = HashingUtils::HashString("Checksum");
+ static const int ObjectParts_HASH = HashingUtils::HashString("ObjectParts");
+ static const int StorageClass_HASH = HashingUtils::HashString("StorageClass");
+ static const int ObjectSize_HASH = HashingUtils::HashString("ObjectSize");
+
+
+ ObjectAttributes GetObjectAttributesForName(const Aws::String& name)
+ {
+ int hashCode = HashingUtils::HashString(name.c_str());
+ if (hashCode == ETag_HASH)
+ {
+ return ObjectAttributes::ETag;
+ }
+ else if (hashCode == Checksum_HASH)
+ {
+ return ObjectAttributes::Checksum;
+ }
+ else if (hashCode == ObjectParts_HASH)
+ {
+ return ObjectAttributes::ObjectParts;
+ }
+ else if (hashCode == StorageClass_HASH)
+ {
+ return ObjectAttributes::StorageClass;
+ }
+ else if (hashCode == ObjectSize_HASH)
+ {
+ return ObjectAttributes::ObjectSize;
+ }
+ EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
+ if(overflowContainer)
+ {
+ overflowContainer->StoreOverflow(hashCode, name);
+ return static_cast<ObjectAttributes>(hashCode);
+ }
+
+ return ObjectAttributes::NOT_SET;
+ }
+
+ Aws::String GetNameForObjectAttributes(ObjectAttributes enumValue)
+ {
+ switch(enumValue)
+ {
+ case ObjectAttributes::ETag:
+ return "ETag";
+ case ObjectAttributes::Checksum:
+ return "Checksum";
+ case ObjectAttributes::ObjectParts:
+ return "ObjectParts";
+ case ObjectAttributes::StorageClass:
+ return "StorageClass";
+ case ObjectAttributes::ObjectSize:
+ return "ObjectSize";
+ default:
+ EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
+ if(overflowContainer)
+ {
+ return overflowContainer->RetrieveOverflow(static_cast<int>(enumValue));
+ }
+
+ return {};
+ }
+ }
+
+ } // namespace ObjectAttributesMapper
+ } // namespace Model
+ } // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetention.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetention.cpp
index 3ba5d5590e..f9b3d70c7f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetention.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetention.cpp
@@ -50,7 +50,7 @@ ObjectLockRetention& ObjectLockRetention::operator =(const XmlNode& xmlNode)
XmlNode retainUntilDateNode = resultNode.FirstChild("RetainUntilDate");
if(!retainUntilDateNode.IsNull())
{
- m_retainUntilDate = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(retainUntilDateNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_retainUntilDate = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(retainUntilDateNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_retainUntilDateHasBeenSet = true;
}
}
@@ -70,7 +70,7 @@ void ObjectLockRetention::AddToNode(XmlNode& parentNode) const
if(m_retainUntilDateHasBeenSet)
{
XmlNode retainUntilDateNode = parentNode.CreateChildElement("RetainUntilDate");
- retainUntilDateNode.SetText(m_retainUntilDate.ToGmtString(DateFormat::ISO_8601));
+ retainUntilDateNode.SetText(m_retainUntilDate.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectOwnership.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectOwnership.cpp
index 4e2a106c8e..7fba54e6c8 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectOwnership.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectOwnership.cpp
@@ -22,6 +22,7 @@ namespace Aws
static const int BucketOwnerPreferred_HASH = HashingUtils::HashString("BucketOwnerPreferred");
static const int ObjectWriter_HASH = HashingUtils::HashString("ObjectWriter");
+ static const int BucketOwnerEnforced_HASH = HashingUtils::HashString("BucketOwnerEnforced");
ObjectOwnership GetObjectOwnershipForName(const Aws::String& name)
@@ -35,6 +36,10 @@ namespace Aws
{
return ObjectOwnership::ObjectWriter;
}
+ else if (hashCode == BucketOwnerEnforced_HASH)
+ {
+ return ObjectOwnership::BucketOwnerEnforced;
+ }
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
{
@@ -53,6 +58,8 @@ namespace Aws
return "BucketOwnerPreferred";
case ObjectOwnership::ObjectWriter:
return "ObjectWriter";
+ case ObjectOwnership::BucketOwnerEnforced:
+ return "BucketOwnerEnforced";
default:
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectPart.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectPart.cpp
new file mode 100644
index 0000000000..fdbd9eebc0
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectPart.cpp
@@ -0,0 +1,142 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#include <aws/s3/model/ObjectPart.h>
+#include <aws/core/utils/xml/XmlSerializer.h>
+#include <aws/core/utils/StringUtils.h>
+#include <aws/core/utils/memory/stl/AWSStringStream.h>
+
+#include <utility>
+
+using namespace Aws::Utils::Xml;
+using namespace Aws::Utils;
+
+namespace Aws
+{
+namespace S3
+{
+namespace Model
+{
+
+ObjectPart::ObjectPart() :
+ m_partNumber(0),
+ m_partNumberHasBeenSet(false),
+ m_size(0),
+ m_sizeHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
+{
+}
+
+ObjectPart::ObjectPart(const XmlNode& xmlNode) :
+ m_partNumber(0),
+ m_partNumberHasBeenSet(false),
+ m_size(0),
+ m_sizeHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
+{
+ *this = xmlNode;
+}
+
+ObjectPart& ObjectPart::operator =(const XmlNode& xmlNode)
+{
+ XmlNode resultNode = xmlNode;
+
+ if(!resultNode.IsNull())
+ {
+ XmlNode partNumberNode = resultNode.FirstChild("PartNumber");
+ if(!partNumberNode.IsNull())
+ {
+ m_partNumber = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(partNumberNode.GetText()).c_str()).c_str());
+ m_partNumberHasBeenSet = true;
+ }
+ XmlNode sizeNode = resultNode.FirstChild("Size");
+ if(!sizeNode.IsNull())
+ {
+ m_size = StringUtils::ConvertToInt64(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(sizeNode.GetText()).c_str()).c_str());
+ m_sizeHasBeenSet = true;
+ }
+ XmlNode checksumCRC32Node = resultNode.FirstChild("ChecksumCRC32");
+ if(!checksumCRC32Node.IsNull())
+ {
+ m_checksumCRC32 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32Node.GetText());
+ m_checksumCRC32HasBeenSet = true;
+ }
+ XmlNode checksumCRC32CNode = resultNode.FirstChild("ChecksumCRC32C");
+ if(!checksumCRC32CNode.IsNull())
+ {
+ m_checksumCRC32C = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32CNode.GetText());
+ m_checksumCRC32CHasBeenSet = true;
+ }
+ XmlNode checksumSHA1Node = resultNode.FirstChild("ChecksumSHA1");
+ if(!checksumSHA1Node.IsNull())
+ {
+ m_checksumSHA1 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA1Node.GetText());
+ m_checksumSHA1HasBeenSet = true;
+ }
+ XmlNode checksumSHA256Node = resultNode.FirstChild("ChecksumSHA256");
+ if(!checksumSHA256Node.IsNull())
+ {
+ m_checksumSHA256 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA256Node.GetText());
+ m_checksumSHA256HasBeenSet = true;
+ }
+ }
+
+ return *this;
+}
+
+void ObjectPart::AddToNode(XmlNode& parentNode) const
+{
+ Aws::StringStream ss;
+ if(m_partNumberHasBeenSet)
+ {
+ XmlNode partNumberNode = parentNode.CreateChildElement("PartNumber");
+ ss << m_partNumber;
+ partNumberNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_sizeHasBeenSet)
+ {
+ XmlNode sizeNode = parentNode.CreateChildElement("Size");
+ ss << m_size;
+ sizeNode.SetText(ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumCRC32HasBeenSet)
+ {
+ XmlNode checksumCRC32Node = parentNode.CreateChildElement("ChecksumCRC32");
+ checksumCRC32Node.SetText(m_checksumCRC32);
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ XmlNode checksumCRC32CNode = parentNode.CreateChildElement("ChecksumCRC32C");
+ checksumCRC32CNode.SetText(m_checksumCRC32C);
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ XmlNode checksumSHA1Node = parentNode.CreateChildElement("ChecksumSHA1");
+ checksumSHA1Node.SetText(m_checksumSHA1);
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ XmlNode checksumSHA256Node = parentNode.CreateChildElement("ChecksumSHA256");
+ checksumSHA256Node.SetText(m_checksumSHA256);
+ }
+
+}
+
+} // namespace Model
+} // namespace S3
+} // namespace Aws
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectStorageClass.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectStorageClass.cpp
index 572041c798..fd0e06fbc4 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectStorageClass.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectStorageClass.cpp
@@ -28,6 +28,7 @@ namespace Aws
static const int INTELLIGENT_TIERING_HASH = HashingUtils::HashString("INTELLIGENT_TIERING");
static const int DEEP_ARCHIVE_HASH = HashingUtils::HashString("DEEP_ARCHIVE");
static const int OUTPOSTS_HASH = HashingUtils::HashString("OUTPOSTS");
+ static const int GLACIER_IR_HASH = HashingUtils::HashString("GLACIER_IR");
ObjectStorageClass GetObjectStorageClassForName(const Aws::String& name)
@@ -65,6 +66,10 @@ namespace Aws
{
return ObjectStorageClass::OUTPOSTS;
}
+ else if (hashCode == GLACIER_IR_HASH)
+ {
+ return ObjectStorageClass::GLACIER_IR;
+ }
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
{
@@ -95,6 +100,8 @@ namespace Aws
return "DEEP_ARCHIVE";
case ObjectStorageClass::OUTPOSTS:
return "OUTPOSTS";
+ case ObjectStorageClass::GLACIER_IR:
+ return "GLACIER_IR";
default:
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersion.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersion.cpp
index c7b720f252..11a8542a02 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersion.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersion.cpp
@@ -22,6 +22,7 @@ namespace Model
ObjectVersion::ObjectVersion() :
m_eTagHasBeenSet(false),
+ m_checksumAlgorithmHasBeenSet(false),
m_size(0),
m_sizeHasBeenSet(false),
m_storageClass(ObjectVersionStorageClass::NOT_SET),
@@ -37,6 +38,7 @@ ObjectVersion::ObjectVersion() :
ObjectVersion::ObjectVersion(const XmlNode& xmlNode) :
m_eTagHasBeenSet(false),
+ m_checksumAlgorithmHasBeenSet(false),
m_size(0),
m_sizeHasBeenSet(false),
m_storageClass(ObjectVersionStorageClass::NOT_SET),
@@ -63,6 +65,18 @@ ObjectVersion& ObjectVersion::operator =(const XmlNode& xmlNode)
m_eTag = Aws::Utils::Xml::DecodeEscapedXmlText(eTagNode.GetText());
m_eTagHasBeenSet = true;
}
+ XmlNode checksumAlgorithmNode = resultNode.FirstChild("ChecksumAlgorithm");
+ if(!checksumAlgorithmNode.IsNull())
+ {
+ XmlNode checksumAlgorithmMember = checksumAlgorithmNode;
+ while(!checksumAlgorithmMember.IsNull())
+ {
+ m_checksumAlgorithm.push_back(ChecksumAlgorithmMapper::GetChecksumAlgorithmForName(StringUtils::Trim(checksumAlgorithmMember.GetText().c_str())));
+ checksumAlgorithmMember = checksumAlgorithmMember.NextNode("ChecksumAlgorithm");
+ }
+
+ m_checksumAlgorithmHasBeenSet = true;
+ }
XmlNode sizeNode = resultNode.FirstChild("Size");
if(!sizeNode.IsNull())
{
@@ -96,7 +110,7 @@ ObjectVersion& ObjectVersion::operator =(const XmlNode& xmlNode)
XmlNode lastModifiedNode = resultNode.FirstChild("LastModified");
if(!lastModifiedNode.IsNull())
{
- m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_lastModifiedHasBeenSet = true;
}
XmlNode ownerNode = resultNode.FirstChild("Owner");
@@ -119,6 +133,16 @@ void ObjectVersion::AddToNode(XmlNode& parentNode) const
eTagNode.SetText(m_eTag);
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ XmlNode checksumAlgorithmParentNode = parentNode.CreateChildElement("ChecksumAlgorithm");
+ for(const auto& item : m_checksumAlgorithm)
+ {
+ XmlNode checksumAlgorithmNode = checksumAlgorithmParentNode.CreateChildElement("ChecksumAlgorithm");
+ checksumAlgorithmNode.SetText(ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(item));
+ }
+ }
+
if(m_sizeHasBeenSet)
{
XmlNode sizeNode = parentNode.CreateChildElement("Size");
@@ -156,7 +180,7 @@ void ObjectVersion::AddToNode(XmlNode& parentNode) const
if(m_lastModifiedHasBeenSet)
{
XmlNode lastModifiedNode = parentNode.CreateChildElement("LastModified");
- lastModifiedNode.SetText(m_lastModified.ToGmtString(DateFormat::ISO_8601));
+ lastModifiedNode.SetText(m_lastModified.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_ownerHasBeenSet)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Part.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Part.cpp
index a243f72d10..d0cd0f01cf 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Part.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Part.cpp
@@ -26,7 +26,11 @@ Part::Part() :
m_lastModifiedHasBeenSet(false),
m_eTagHasBeenSet(false),
m_size(0),
- m_sizeHasBeenSet(false)
+ m_sizeHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
{
}
@@ -36,7 +40,11 @@ Part::Part(const XmlNode& xmlNode) :
m_lastModifiedHasBeenSet(false),
m_eTagHasBeenSet(false),
m_size(0),
- m_sizeHasBeenSet(false)
+ m_sizeHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false)
{
*this = xmlNode;
}
@@ -56,7 +64,7 @@ Part& Part::operator =(const XmlNode& xmlNode)
XmlNode lastModifiedNode = resultNode.FirstChild("LastModified");
if(!lastModifiedNode.IsNull())
{
- m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_lastModified = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(lastModifiedNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_lastModifiedHasBeenSet = true;
}
XmlNode eTagNode = resultNode.FirstChild("ETag");
@@ -71,6 +79,30 @@ Part& Part::operator =(const XmlNode& xmlNode)
m_size = StringUtils::ConvertToInt64(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(sizeNode.GetText()).c_str()).c_str());
m_sizeHasBeenSet = true;
}
+ XmlNode checksumCRC32Node = resultNode.FirstChild("ChecksumCRC32");
+ if(!checksumCRC32Node.IsNull())
+ {
+ m_checksumCRC32 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32Node.GetText());
+ m_checksumCRC32HasBeenSet = true;
+ }
+ XmlNode checksumCRC32CNode = resultNode.FirstChild("ChecksumCRC32C");
+ if(!checksumCRC32CNode.IsNull())
+ {
+ m_checksumCRC32C = Aws::Utils::Xml::DecodeEscapedXmlText(checksumCRC32CNode.GetText());
+ m_checksumCRC32CHasBeenSet = true;
+ }
+ XmlNode checksumSHA1Node = resultNode.FirstChild("ChecksumSHA1");
+ if(!checksumSHA1Node.IsNull())
+ {
+ m_checksumSHA1 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA1Node.GetText());
+ m_checksumSHA1HasBeenSet = true;
+ }
+ XmlNode checksumSHA256Node = resultNode.FirstChild("ChecksumSHA256");
+ if(!checksumSHA256Node.IsNull())
+ {
+ m_checksumSHA256 = Aws::Utils::Xml::DecodeEscapedXmlText(checksumSHA256Node.GetText());
+ m_checksumSHA256HasBeenSet = true;
+ }
}
return *this;
@@ -90,7 +122,7 @@ void Part::AddToNode(XmlNode& parentNode) const
if(m_lastModifiedHasBeenSet)
{
XmlNode lastModifiedNode = parentNode.CreateChildElement("LastModified");
- lastModifiedNode.SetText(m_lastModified.ToGmtString(DateFormat::ISO_8601));
+ lastModifiedNode.SetText(m_lastModified.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_eTagHasBeenSet)
@@ -107,6 +139,30 @@ void Part::AddToNode(XmlNode& parentNode) const
ss.str("");
}
+ if(m_checksumCRC32HasBeenSet)
+ {
+ XmlNode checksumCRC32Node = parentNode.CreateChildElement("ChecksumCRC32");
+ checksumCRC32Node.SetText(m_checksumCRC32);
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ XmlNode checksumCRC32CNode = parentNode.CreateChildElement("ChecksumCRC32C");
+ checksumCRC32CNode.SetText(m_checksumCRC32C);
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ XmlNode checksumSHA1Node = parentNode.CreateChildElement("ChecksumSHA1");
+ checksumSHA1Node.SetText(m_checksumSHA1);
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ XmlNode checksumSHA256Node = parentNode.CreateChildElement("ChecksumSHA256");
+ checksumSHA256Node.SetText(m_checksumSHA256);
+ }
+
}
} // namespace Model
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAccelerateConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAccelerateConfigurationRequest.cpp
index 15da0c32a1..c58ed72a04 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAccelerateConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAccelerateConfigurationRequest.cpp
@@ -20,6 +20,8 @@ PutBucketAccelerateConfigurationRequest::PutBucketAccelerateConfigurationRequest
m_bucketHasBeenSet(false),
m_accelerateConfigurationHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
@@ -73,5 +75,33 @@ Aws::Http::HeaderValueCollection PutBucketAccelerateConfigurationRequest::GetReq
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
return headers;
}
+
+PutBucketAccelerateConfigurationRequest::EndpointParameters PutBucketAccelerateConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketAccelerateConfigurationRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAclRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAclRequest.cpp
index 5a3efcac19..a7273a85a4 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAclRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAclRequest.cpp
@@ -22,6 +22,8 @@ PutBucketAclRequest::PutBucketAclRequest() :
m_accessControlPolicyHasBeenSet(false),
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_grantFullControlHasBeenSet(false),
m_grantReadHasBeenSet(false),
m_grantReadACPHasBeenSet(false),
@@ -86,6 +88,11 @@ Aws::Http::HeaderValueCollection PutBucketAclRequest::GetRequestSpecificHeaders(
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_grantFullControlHasBeenSet)
{
ss << m_grantFullControl;
@@ -130,3 +137,26 @@ Aws::Http::HeaderValueCollection PutBucketAclRequest::GetRequestSpecificHeaders(
return headers;
}
+
+PutBucketAclRequest::EndpointParameters PutBucketAclRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketAclRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAnalyticsConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAnalyticsConfigurationRequest.cpp
index 73f9111f63..29d6e03e59 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAnalyticsConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAnalyticsConfigurationRequest.cpp
@@ -83,3 +83,13 @@ Aws::Http::HeaderValueCollection PutBucketAnalyticsConfigurationRequest::GetRequ
return headers;
}
+
+PutBucketAnalyticsConfigurationRequest::EndpointParameters PutBucketAnalyticsConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketCorsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketCorsRequest.cpp
index 6f90824e2c..4e8ee9730f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketCorsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketCorsRequest.cpp
@@ -20,6 +20,8 @@ PutBucketCorsRequest::PutBucketCorsRequest() :
m_bucketHasBeenSet(false),
m_cORSConfigurationHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
@@ -74,6 +76,11 @@ Aws::Http::HeaderValueCollection PutBucketCorsRequest::GetRequestSpecificHeaders
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -83,3 +90,26 @@ Aws::Http::HeaderValueCollection PutBucketCorsRequest::GetRequestSpecificHeaders
return headers;
}
+
+PutBucketCorsRequest::EndpointParameters PutBucketCorsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketCorsRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketEncryptionRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketEncryptionRequest.cpp
index 26b60f385e..7a9e14da68 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketEncryptionRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketEncryptionRequest.cpp
@@ -19,6 +19,8 @@ using namespace Aws::Http;
PutBucketEncryptionRequest::PutBucketEncryptionRequest() :
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_serverSideEncryptionConfigurationHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
@@ -74,6 +76,11 @@ Aws::Http::HeaderValueCollection PutBucketEncryptionRequest::GetRequestSpecificH
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -83,3 +90,26 @@ Aws::Http::HeaderValueCollection PutBucketEncryptionRequest::GetRequestSpecificH
return headers;
}
+
+PutBucketEncryptionRequest::EndpointParameters PutBucketEncryptionRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketEncryptionRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketIntelligentTieringConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketIntelligentTieringConfigurationRequest.cpp
index 24bc947b71..17c63d7456 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketIntelligentTieringConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketIntelligentTieringConfigurationRequest.cpp
@@ -69,3 +69,13 @@ void PutBucketIntelligentTieringConfigurationRequest::AddQueryStringParameters(U
}
}
+
+PutBucketIntelligentTieringConfigurationRequest::EndpointParameters PutBucketIntelligentTieringConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketInventoryConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketInventoryConfigurationRequest.cpp
index 31f0365528..5ec6f7d24f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketInventoryConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketInventoryConfigurationRequest.cpp
@@ -83,3 +83,13 @@ Aws::Http::HeaderValueCollection PutBucketInventoryConfigurationRequest::GetRequ
return headers;
}
+
+PutBucketInventoryConfigurationRequest::EndpointParameters PutBucketInventoryConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLifecycleConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLifecycleConfigurationRequest.cpp
index 2d8b5471f2..a197ebe9fb 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLifecycleConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLifecycleConfigurationRequest.cpp
@@ -18,6 +18,8 @@ using namespace Aws::Http;
PutBucketLifecycleConfigurationRequest::PutBucketLifecycleConfigurationRequest() :
m_bucketHasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_lifecycleConfigurationHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
@@ -66,6 +68,11 @@ Aws::Http::HeaderValueCollection PutBucketLifecycleConfigurationRequest::GetRequ
{
Aws::Http::HeaderValueCollection headers;
Aws::StringStream ss;
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -75,3 +82,26 @@ Aws::Http::HeaderValueCollection PutBucketLifecycleConfigurationRequest::GetRequ
return headers;
}
+
+PutBucketLifecycleConfigurationRequest::EndpointParameters PutBucketLifecycleConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketLifecycleConfigurationRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLoggingRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLoggingRequest.cpp
index 1057a8f122..34ca2d83ca 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLoggingRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLoggingRequest.cpp
@@ -20,6 +20,8 @@ PutBucketLoggingRequest::PutBucketLoggingRequest() :
m_bucketHasBeenSet(false),
m_bucketLoggingStatusHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
@@ -74,6 +76,11 @@ Aws::Http::HeaderValueCollection PutBucketLoggingRequest::GetRequestSpecificHead
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -83,3 +90,26 @@ Aws::Http::HeaderValueCollection PutBucketLoggingRequest::GetRequestSpecificHead
return headers;
}
+
+PutBucketLoggingRequest::EndpointParameters PutBucketLoggingRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketLoggingRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketMetricsConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketMetricsConfigurationRequest.cpp
index 48e5714b3a..0f8ac13170 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketMetricsConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketMetricsConfigurationRequest.cpp
@@ -83,3 +83,13 @@ Aws::Http::HeaderValueCollection PutBucketMetricsConfigurationRequest::GetReques
return headers;
}
+
+PutBucketMetricsConfigurationRequest::EndpointParameters PutBucketMetricsConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketNotificationConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketNotificationConfigurationRequest.cpp
index 52f921af4f..0a2e9ba847 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketNotificationConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketNotificationConfigurationRequest.cpp
@@ -20,6 +20,8 @@ PutBucketNotificationConfigurationRequest::PutBucketNotificationConfigurationReq
m_bucketHasBeenSet(false),
m_notificationConfigurationHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
+ m_skipDestinationValidation(false),
+ m_skipDestinationValidationHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
}
@@ -69,5 +71,22 @@ Aws::Http::HeaderValueCollection PutBucketNotificationConfigurationRequest::GetR
ss.str("");
}
+ if(m_skipDestinationValidationHasBeenSet)
+ {
+ ss << std::boolalpha << m_skipDestinationValidation;
+ headers.emplace("x-amz-skip-destination-validation", ss.str());
+ ss.str("");
+ }
+
return headers;
}
+
+PutBucketNotificationConfigurationRequest::EndpointParameters PutBucketNotificationConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketOwnershipControlsRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketOwnershipControlsRequest.cpp
index 5a6119e233..46dde75d47 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketOwnershipControlsRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketOwnershipControlsRequest.cpp
@@ -83,3 +83,13 @@ Aws::Http::HeaderValueCollection PutBucketOwnershipControlsRequest::GetRequestSp
return headers;
}
+
+PutBucketOwnershipControlsRequest::EndpointParameters PutBucketOwnershipControlsRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketPolicyRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketPolicyRequest.cpp
index d7fc444c2d..92f16a6381 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketPolicyRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketPolicyRequest.cpp
@@ -19,6 +19,8 @@ using namespace Aws;
PutBucketPolicyRequest::PutBucketPolicyRequest() :
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_confirmRemoveSelfBucketAccess(false),
m_confirmRemoveSelfBucketAccessHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
@@ -60,6 +62,11 @@ Aws::Http::HeaderValueCollection PutBucketPolicyRequest::GetRequestSpecificHeade
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_confirmRemoveSelfBucketAccessHasBeenSet)
{
ss << std::boolalpha << m_confirmRemoveSelfBucketAccess;
@@ -77,3 +84,26 @@ Aws::Http::HeaderValueCollection PutBucketPolicyRequest::GetRequestSpecificHeade
return headers;
}
+
+PutBucketPolicyRequest::EndpointParameters PutBucketPolicyRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketPolicyRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketReplicationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketReplicationRequest.cpp
index 44244a8560..50b1abbebd 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketReplicationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketReplicationRequest.cpp
@@ -19,6 +19,8 @@ using namespace Aws::Http;
PutBucketReplicationRequest::PutBucketReplicationRequest() :
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_replicationConfigurationHasBeenSet(false),
m_tokenHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
@@ -75,6 +77,11 @@ Aws::Http::HeaderValueCollection PutBucketReplicationRequest::GetRequestSpecific
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_tokenHasBeenSet)
{
ss << m_token;
@@ -91,3 +98,26 @@ Aws::Http::HeaderValueCollection PutBucketReplicationRequest::GetRequestSpecific
return headers;
}
+
+PutBucketReplicationRequest::EndpointParameters PutBucketReplicationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketReplicationRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketRequestPaymentRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketRequestPaymentRequest.cpp
index f6be9cc855..643f26b8f1 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketRequestPaymentRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketRequestPaymentRequest.cpp
@@ -19,6 +19,8 @@ using namespace Aws::Http;
PutBucketRequestPaymentRequest::PutBucketRequestPaymentRequest() :
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_requestPaymentConfigurationHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
@@ -74,6 +76,11 @@ Aws::Http::HeaderValueCollection PutBucketRequestPaymentRequest::GetRequestSpeci
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -83,3 +90,26 @@ Aws::Http::HeaderValueCollection PutBucketRequestPaymentRequest::GetRequestSpeci
return headers;
}
+
+PutBucketRequestPaymentRequest::EndpointParameters PutBucketRequestPaymentRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketRequestPaymentRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketTaggingRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketTaggingRequest.cpp
index 748ede6e75..fa0861e2cd 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketTaggingRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketTaggingRequest.cpp
@@ -19,6 +19,8 @@ using namespace Aws::Http;
PutBucketTaggingRequest::PutBucketTaggingRequest() :
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_taggingHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
@@ -74,6 +76,11 @@ Aws::Http::HeaderValueCollection PutBucketTaggingRequest::GetRequestSpecificHead
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -83,3 +90,26 @@ Aws::Http::HeaderValueCollection PutBucketTaggingRequest::GetRequestSpecificHead
return headers;
}
+
+PutBucketTaggingRequest::EndpointParameters PutBucketTaggingRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketTaggingRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketVersioningRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketVersioningRequest.cpp
index 5e72efb1e1..6dbcd39433 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketVersioningRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketVersioningRequest.cpp
@@ -19,6 +19,8 @@ using namespace Aws::Http;
PutBucketVersioningRequest::PutBucketVersioningRequest() :
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_mFAHasBeenSet(false),
m_versioningConfigurationHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
@@ -75,6 +77,11 @@ Aws::Http::HeaderValueCollection PutBucketVersioningRequest::GetRequestSpecificH
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_mFAHasBeenSet)
{
ss << m_mFA;
@@ -91,3 +98,26 @@ Aws::Http::HeaderValueCollection PutBucketVersioningRequest::GetRequestSpecificH
return headers;
}
+
+PutBucketVersioningRequest::EndpointParameters PutBucketVersioningRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketVersioningRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketWebsiteRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketWebsiteRequest.cpp
index d20032e466..adea6161f5 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketWebsiteRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketWebsiteRequest.cpp
@@ -19,6 +19,8 @@ using namespace Aws::Http;
PutBucketWebsiteRequest::PutBucketWebsiteRequest() :
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_websiteConfigurationHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
@@ -74,6 +76,11 @@ Aws::Http::HeaderValueCollection PutBucketWebsiteRequest::GetRequestSpecificHead
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -83,3 +90,26 @@ Aws::Http::HeaderValueCollection PutBucketWebsiteRequest::GetRequestSpecificHead
return headers;
}
+
+PutBucketWebsiteRequest::EndpointParameters PutBucketWebsiteRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutBucketWebsiteRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclRequest.cpp
index 5dbd1a3fa6..fb859d91e4 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclRequest.cpp
@@ -22,6 +22,8 @@ PutObjectAclRequest::PutObjectAclRequest() :
m_accessControlPolicyHasBeenSet(false),
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_grantFullControlHasBeenSet(false),
m_grantReadHasBeenSet(false),
m_grantReadACPHasBeenSet(false),
@@ -97,6 +99,11 @@ Aws::Http::HeaderValueCollection PutObjectAclRequest::GetRequestSpecificHeaders(
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_grantFullControlHasBeenSet)
{
ss << m_grantFullControl;
@@ -146,3 +153,26 @@ Aws::Http::HeaderValueCollection PutObjectAclRequest::GetRequestSpecificHeaders(
return headers;
}
+
+PutObjectAclRequest::EndpointParameters PutObjectAclRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutObjectAclRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldRequest.cpp
index 8c07b952d7..4ecc41790e 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldRequest.cpp
@@ -24,6 +24,8 @@ PutObjectLegalHoldRequest::PutObjectLegalHoldRequest() :
m_requestPayerHasBeenSet(false),
m_versionIdHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
@@ -90,6 +92,11 @@ Aws::Http::HeaderValueCollection PutObjectLegalHoldRequest::GetRequestSpecificHe
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -99,3 +106,26 @@ Aws::Http::HeaderValueCollection PutObjectLegalHoldRequest::GetRequestSpecificHe
return headers;
}
+
+PutObjectLegalHoldRequest::EndpointParameters PutObjectLegalHoldRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutObjectLegalHoldRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationRequest.cpp
index 347b9e668d..b0e89445dc 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationRequest.cpp
@@ -23,6 +23,8 @@ PutObjectLockConfigurationRequest::PutObjectLockConfigurationRequest() :
m_requestPayerHasBeenSet(false),
m_tokenHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
@@ -89,6 +91,11 @@ Aws::Http::HeaderValueCollection PutObjectLockConfigurationRequest::GetRequestSp
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -98,3 +105,26 @@ Aws::Http::HeaderValueCollection PutObjectLockConfigurationRequest::GetRequestSp
return headers;
}
+
+PutObjectLockConfigurationRequest::EndpointParameters PutObjectLockConfigurationRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutObjectLockConfigurationRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRequest.cpp
index 18cdc3866f..1c2aa6e34f 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRequest.cpp
@@ -28,6 +28,12 @@ PutObjectRequest::PutObjectRequest() :
m_contentLength(0),
m_contentLengthHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false),
m_expiresHasBeenSet(false),
m_grantFullControlHasBeenSet(false),
m_grantReadHasBeenSet(false),
@@ -134,9 +140,42 @@ Aws::Http::HeaderValueCollection PutObjectRequest::GetRequestSpecificHeaders() c
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
+ if(m_checksumCRC32HasBeenSet)
+ {
+ ss << m_checksumCRC32;
+ headers.emplace("x-amz-checksum-crc32", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ ss << m_checksumCRC32C;
+ headers.emplace("x-amz-checksum-crc32c", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ ss << m_checksumSHA1;
+ headers.emplace("x-amz-checksum-sha1", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ ss << m_checksumSHA256;
+ headers.emplace("x-amz-checksum-sha256", ss.str());
+ ss.str("");
+ }
+
if(m_expiresHasBeenSet)
{
- headers.emplace("expires", m_expires.ToGmtString(DateFormat::RFC822));
+ headers.emplace("expires", m_expires.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_grantFullControlHasBeenSet)
@@ -255,7 +294,7 @@ Aws::Http::HeaderValueCollection PutObjectRequest::GetRequestSpecificHeaders() c
if(m_objectLockRetainUntilDateHasBeenSet)
{
- headers.emplace("x-amz-object-lock-retain-until-date", m_objectLockRetainUntilDate.ToGmtString(DateFormat::ISO_8601));
+ headers.emplace("x-amz-object-lock-retain-until-date", m_objectLockRetainUntilDate.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_objectLockLegalHoldStatusHasBeenSet)
@@ -273,3 +312,26 @@ Aws::Http::HeaderValueCollection PutObjectRequest::GetRequestSpecificHeaders() c
return headers;
}
+
+PutObjectRequest::EndpointParameters PutObjectRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutObjectRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectResult.cpp
index 0dfcb17280..21a34122e5 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectResult.cpp
@@ -53,6 +53,30 @@ PutObjectResult& PutObjectResult::operator =(const Aws::AmazonWebServiceResult<X
m_eTag = eTagIter->second;
}
+ const auto& checksumCRC32Iter = headers.find("x-amz-checksum-crc32");
+ if(checksumCRC32Iter != headers.end())
+ {
+ m_checksumCRC32 = checksumCRC32Iter->second;
+ }
+
+ const auto& checksumCRC32CIter = headers.find("x-amz-checksum-crc32c");
+ if(checksumCRC32CIter != headers.end())
+ {
+ m_checksumCRC32C = checksumCRC32CIter->second;
+ }
+
+ const auto& checksumSHA1Iter = headers.find("x-amz-checksum-sha1");
+ if(checksumSHA1Iter != headers.end())
+ {
+ m_checksumSHA1 = checksumSHA1Iter->second;
+ }
+
+ const auto& checksumSHA256Iter = headers.find("x-amz-checksum-sha256");
+ if(checksumSHA256Iter != headers.end())
+ {
+ m_checksumSHA256 = checksumSHA256Iter->second;
+ }
+
const auto& serverSideEncryptionIter = headers.find("x-amz-server-side-encryption");
if(serverSideEncryptionIter != headers.end())
{
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionRequest.cpp
index 779ac68bd3..47e0cd7039 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionRequest.cpp
@@ -26,6 +26,8 @@ PutObjectRetentionRequest::PutObjectRetentionRequest() :
m_bypassGovernanceRetention(false),
m_bypassGovernanceRetentionHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
@@ -99,6 +101,11 @@ Aws::Http::HeaderValueCollection PutObjectRetentionRequest::GetRequestSpecificHe
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -108,3 +115,26 @@ Aws::Http::HeaderValueCollection PutObjectRetentionRequest::GetRequestSpecificHe
return headers;
}
+
+PutObjectRetentionRequest::EndpointParameters PutObjectRetentionRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutObjectRetentionRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingRequest.cpp
index 612eb0eb8e..a2da55ab0e 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingRequest.cpp
@@ -21,6 +21,8 @@ PutObjectTaggingRequest::PutObjectTaggingRequest() :
m_keyHasBeenSet(false),
m_versionIdHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_taggingHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_requestPayer(RequestPayer::NOT_SET),
@@ -85,6 +87,11 @@ Aws::Http::HeaderValueCollection PutObjectTaggingRequest::GetRequestSpecificHead
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -99,3 +106,26 @@ Aws::Http::HeaderValueCollection PutObjectTaggingRequest::GetRequestSpecificHead
return headers;
}
+
+PutObjectTaggingRequest::EndpointParameters PutObjectTaggingRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutObjectTaggingRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutPublicAccessBlockRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutPublicAccessBlockRequest.cpp
index f06ab1ed3a..f8479fbe44 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutPublicAccessBlockRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutPublicAccessBlockRequest.cpp
@@ -19,6 +19,8 @@ using namespace Aws::Http;
PutPublicAccessBlockRequest::PutPublicAccessBlockRequest() :
m_bucketHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_publicAccessBlockConfigurationHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
@@ -74,6 +76,11 @@ Aws::Http::HeaderValueCollection PutPublicAccessBlockRequest::GetRequestSpecific
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -83,3 +90,26 @@ Aws::Http::HeaderValueCollection PutPublicAccessBlockRequest::GetRequestSpecific
return headers;
}
+
+PutPublicAccessBlockRequest::EndpointParameters PutPublicAccessBlockRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String PutPublicAccessBlockRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectRequest.cpp
index a755fc7828..85f5f73706 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectRequest.cpp
@@ -23,6 +23,8 @@ RestoreObjectRequest::RestoreObjectRequest() :
m_restoreRequestHasBeenSet(false),
m_requestPayer(RequestPayer::NOT_SET),
m_requestPayerHasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false)
{
@@ -82,6 +84,11 @@ Aws::Http::HeaderValueCollection RestoreObjectRequest::GetRequestSpecificHeaders
headers.emplace("x-amz-request-payer", RequestPayerMapper::GetNameForRequestPayer(m_requestPayer));
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
if(m_expectedBucketOwnerHasBeenSet)
{
ss << m_expectedBucketOwner;
@@ -91,3 +98,26 @@ Aws::Http::HeaderValueCollection RestoreObjectRequest::GetRequestSpecificHeaders
return headers;
}
+
+RestoreObjectRequest::EndpointParameters RestoreObjectRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String RestoreObjectRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentRequest.cpp
index f3443311dd..20f0007fd9 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentRequest.cpp
@@ -31,7 +31,7 @@ SelectObjectContentRequest::SelectObjectContentRequest() :
m_scanRangeHasBeenSet(false),
m_expectedBucketOwnerHasBeenSet(false),
m_customizedAccessLogTagHasBeenSet(false),
- m_decoder(Aws::Utils::Event::EventStreamDecoder(&m_handler))
+ m_handler(), m_decoder(Aws::Utils::Event::EventStreamDecoder(&m_handler))
{
}
@@ -138,3 +138,13 @@ Aws::Http::HeaderValueCollection SelectObjectContentRequest::GetRequestSpecificH
return headers;
}
+
+SelectObjectContentRequest::EndpointParameters SelectObjectContentRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClass.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClass.cpp
index 0ab7edd5de..886777a137 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClass.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClass.cpp
@@ -28,6 +28,7 @@ namespace Aws
static const int GLACIER_HASH = HashingUtils::HashString("GLACIER");
static const int DEEP_ARCHIVE_HASH = HashingUtils::HashString("DEEP_ARCHIVE");
static const int OUTPOSTS_HASH = HashingUtils::HashString("OUTPOSTS");
+ static const int GLACIER_IR_HASH = HashingUtils::HashString("GLACIER_IR");
StorageClass GetStorageClassForName(const Aws::String& name)
@@ -65,6 +66,10 @@ namespace Aws
{
return StorageClass::OUTPOSTS;
}
+ else if (hashCode == GLACIER_IR_HASH)
+ {
+ return StorageClass::GLACIER_IR;
+ }
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
{
@@ -95,6 +100,8 @@ namespace Aws
return "DEEP_ARCHIVE";
case StorageClass::OUTPOSTS:
return "OUTPOSTS";
+ case StorageClass::GLACIER_IR:
+ return "GLACIER_IR";
default:
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Transition.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Transition.cpp
index 8dcefe5df2..e837cd964e 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Transition.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Transition.cpp
@@ -48,7 +48,7 @@ Transition& Transition::operator =(const XmlNode& xmlNode)
XmlNode dateNode = resultNode.FirstChild("Date");
if(!dateNode.IsNull())
{
- m_date = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(dateNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
+ m_date = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(dateNode.GetText()).c_str()).c_str(), Aws::Utils::DateFormat::ISO_8601);
m_dateHasBeenSet = true;
}
XmlNode daysNode = resultNode.FirstChild("Days");
@@ -74,7 +74,7 @@ void Transition::AddToNode(XmlNode& parentNode) const
if(m_dateHasBeenSet)
{
XmlNode dateNode = parentNode.CreateChildElement("Date");
- dateNode.SetText(m_date.ToGmtString(DateFormat::ISO_8601));
+ dateNode.SetText(m_date.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_daysHasBeenSet)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TransitionStorageClass.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TransitionStorageClass.cpp
index 2149177071..59cc36b0b7 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TransitionStorageClass.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TransitionStorageClass.cpp
@@ -25,6 +25,7 @@ namespace Aws
static const int ONEZONE_IA_HASH = HashingUtils::HashString("ONEZONE_IA");
static const int INTELLIGENT_TIERING_HASH = HashingUtils::HashString("INTELLIGENT_TIERING");
static const int DEEP_ARCHIVE_HASH = HashingUtils::HashString("DEEP_ARCHIVE");
+ static const int GLACIER_IR_HASH = HashingUtils::HashString("GLACIER_IR");
TransitionStorageClass GetTransitionStorageClassForName(const Aws::String& name)
@@ -50,6 +51,10 @@ namespace Aws
{
return TransitionStorageClass::DEEP_ARCHIVE;
}
+ else if (hashCode == GLACIER_IR_HASH)
+ {
+ return TransitionStorageClass::GLACIER_IR;
+ }
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
{
@@ -74,6 +79,8 @@ namespace Aws
return "INTELLIGENT_TIERING";
case TransitionStorageClass::DEEP_ARCHIVE:
return "DEEP_ARCHIVE";
+ case TransitionStorageClass::GLACIER_IR:
+ return "GLACIER_IR";
default:
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyRequest.cpp
index 364af9b8fc..f45d88ac80 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyRequest.cpp
@@ -42,6 +42,28 @@ UploadPartCopyRequest::UploadPartCopyRequest() :
{
}
+bool UploadPartCopyRequest::HasEmbeddedError(Aws::IOStream &body,
+ const Aws::Http::HeaderValueCollection &header) const
+{
+ // Header is unused
+ (void) header;
+
+ auto readPointer = body.tellg();
+ XmlDocument doc = XmlDocument::CreateFromXmlStream(body);
+
+ if (!doc.WasParseSuccessful()) {
+ body.seekg(readPointer);
+ return false;
+ }
+
+ if (doc.GetRootElement().GetName() == "Error") {
+ body.seekg(readPointer);
+ return true;
+ }
+ body.seekg(readPointer);
+ return false;
+}
+
Aws::String UploadPartCopyRequest::SerializePayload() const
{
return {};
@@ -103,7 +125,7 @@ Aws::Http::HeaderValueCollection UploadPartCopyRequest::GetRequestSpecificHeader
if(m_copySourceIfModifiedSinceHasBeenSet)
{
- headers.emplace("x-amz-copy-source-if-modified-since", m_copySourceIfModifiedSince.ToGmtString(DateFormat::RFC822));
+ headers.emplace("x-amz-copy-source-if-modified-since", m_copySourceIfModifiedSince.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_copySourceIfNoneMatchHasBeenSet)
@@ -115,7 +137,7 @@ Aws::Http::HeaderValueCollection UploadPartCopyRequest::GetRequestSpecificHeader
if(m_copySourceIfUnmodifiedSinceHasBeenSet)
{
- headers.emplace("x-amz-copy-source-if-unmodified-since", m_copySourceIfUnmodifiedSince.ToGmtString(DateFormat::RFC822));
+ headers.emplace("x-amz-copy-source-if-unmodified-since", m_copySourceIfUnmodifiedSince.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_copySourceRangeHasBeenSet)
@@ -188,3 +210,13 @@ Aws::Http::HeaderValueCollection UploadPartCopyRequest::GetRequestSpecificHeader
return headers;
}
+
+UploadPartCopyRequest::EndpointParameters UploadPartCopyRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartRequest.cpp
index ee4a67ee07..59edcc90e0 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartRequest.cpp
@@ -22,6 +22,12 @@ UploadPartRequest::UploadPartRequest() :
m_contentLength(0),
m_contentLengthHasBeenSet(false),
m_contentMD5HasBeenSet(false),
+ m_checksumAlgorithm(ChecksumAlgorithm::NOT_SET),
+ m_checksumAlgorithmHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false),
m_keyHasBeenSet(false),
m_partNumber(0),
m_partNumberHasBeenSet(false),
@@ -91,6 +97,39 @@ Aws::Http::HeaderValueCollection UploadPartRequest::GetRequestSpecificHeaders()
ss.str("");
}
+ if(m_checksumAlgorithmHasBeenSet)
+ {
+ headers.emplace("x-amz-sdk-checksum-algorithm", ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm));
+ }
+
+ if(m_checksumCRC32HasBeenSet)
+ {
+ ss << m_checksumCRC32;
+ headers.emplace("x-amz-checksum-crc32", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ ss << m_checksumCRC32C;
+ headers.emplace("x-amz-checksum-crc32c", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ ss << m_checksumSHA1;
+ headers.emplace("x-amz-checksum-sha1", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ ss << m_checksumSHA256;
+ headers.emplace("x-amz-checksum-sha256", ss.str());
+ ss.str("");
+ }
+
if(m_sSECustomerAlgorithmHasBeenSet)
{
ss << m_sSECustomerAlgorithm;
@@ -127,3 +166,26 @@ Aws::Http::HeaderValueCollection UploadPartRequest::GetRequestSpecificHeaders()
return headers;
}
+
+UploadPartRequest::EndpointParameters UploadPartRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Operation context parameters
+ if (BucketHasBeenSet()) {
+ parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT);
+ }
+ return parameters;
+}
+
+Aws::String UploadPartRequest::GetChecksumAlgorithmName() const
+{
+ if (m_checksumAlgorithm == ChecksumAlgorithm::NOT_SET)
+ {
+ return "md5";
+ }
+ else
+ {
+ return ChecksumAlgorithmMapper::GetNameForChecksumAlgorithm(m_checksumAlgorithm);
+ }
+}
+
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartResult.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartResult.cpp
index 13ad60a463..fa24c00520 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartResult.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartResult.cpp
@@ -53,6 +53,30 @@ UploadPartResult& UploadPartResult::operator =(const Aws::AmazonWebServiceResult
m_eTag = eTagIter->second;
}
+ const auto& checksumCRC32Iter = headers.find("x-amz-checksum-crc32");
+ if(checksumCRC32Iter != headers.end())
+ {
+ m_checksumCRC32 = checksumCRC32Iter->second;
+ }
+
+ const auto& checksumCRC32CIter = headers.find("x-amz-checksum-crc32c");
+ if(checksumCRC32CIter != headers.end())
+ {
+ m_checksumCRC32C = checksumCRC32CIter->second;
+ }
+
+ const auto& checksumSHA1Iter = headers.find("x-amz-checksum-sha1");
+ if(checksumSHA1Iter != headers.end())
+ {
+ m_checksumSHA1 = checksumSHA1Iter->second;
+ }
+
+ const auto& checksumSHA256Iter = headers.find("x-amz-checksum-sha256");
+ if(checksumSHA256Iter != headers.end())
+ {
+ m_checksumSHA256 = checksumSHA256Iter->second;
+ }
+
const auto& sSECustomerAlgorithmIter = headers.find("x-amz-server-side-encryption-customer-algorithm");
if(sSECustomerAlgorithmIter != headers.end())
{
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WriteGetObjectResponseRequest.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WriteGetObjectResponseRequest.cpp
index 49893d5823..fd1a33573c 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WriteGetObjectResponseRequest.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WriteGetObjectResponseRequest.cpp
@@ -32,6 +32,10 @@ WriteGetObjectResponseRequest::WriteGetObjectResponseRequest() :
m_contentLength(0),
m_contentLengthHasBeenSet(false),
m_contentRangeHasBeenSet(false),
+ m_checksumCRC32HasBeenSet(false),
+ m_checksumCRC32CHasBeenSet(false),
+ m_checksumSHA1HasBeenSet(false),
+ m_checksumSHA256HasBeenSet(false),
m_deleteMarker(false),
m_deleteMarkerHasBeenSet(false),
m_eTagHasBeenSet(false),
@@ -180,6 +184,34 @@ Aws::Http::HeaderValueCollection WriteGetObjectResponseRequest::GetRequestSpecif
ss.str("");
}
+ if(m_checksumCRC32HasBeenSet)
+ {
+ ss << m_checksumCRC32;
+ headers.emplace("x-amz-fwd-header-x-amz-checksum-crc32", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumCRC32CHasBeenSet)
+ {
+ ss << m_checksumCRC32C;
+ headers.emplace("x-amz-fwd-header-x-amz-checksum-crc32c", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumSHA1HasBeenSet)
+ {
+ ss << m_checksumSHA1;
+ headers.emplace("x-amz-fwd-header-x-amz-checksum-sha1", ss.str());
+ ss.str("");
+ }
+
+ if(m_checksumSHA256HasBeenSet)
+ {
+ ss << m_checksumSHA256;
+ headers.emplace("x-amz-fwd-header-x-amz-checksum-sha256", ss.str());
+ ss.str("");
+ }
+
if(m_deleteMarkerHasBeenSet)
{
ss << std::boolalpha << m_deleteMarker;
@@ -196,7 +228,7 @@ Aws::Http::HeaderValueCollection WriteGetObjectResponseRequest::GetRequestSpecif
if(m_expiresHasBeenSet)
{
- headers.emplace("x-amz-fwd-header-expires", m_expires.ToGmtString(DateFormat::RFC822));
+ headers.emplace("x-amz-fwd-header-expires", m_expires.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_expirationHasBeenSet)
@@ -208,7 +240,7 @@ Aws::Http::HeaderValueCollection WriteGetObjectResponseRequest::GetRequestSpecif
if(m_lastModifiedHasBeenSet)
{
- headers.emplace("x-amz-fwd-header-last-modified", m_lastModified.ToGmtString(DateFormat::RFC822));
+ headers.emplace("x-amz-fwd-header-last-modified", m_lastModified.ToGmtString(Aws::Utils::DateFormat::RFC822));
}
if(m_missingMetaHasBeenSet)
@@ -240,7 +272,7 @@ Aws::Http::HeaderValueCollection WriteGetObjectResponseRequest::GetRequestSpecif
if(m_objectLockRetainUntilDateHasBeenSet)
{
- headers.emplace("x-amz-fwd-header-x-amz-object-lock-retain-until-date", m_objectLockRetainUntilDate.ToGmtString(DateFormat::ISO_8601));
+ headers.emplace("x-amz-fwd-header-x-amz-object-lock-retain-until-date", m_objectLockRetainUntilDate.ToGmtString(Aws::Utils::DateFormat::ISO_8601));
}
if(m_partsCountHasBeenSet)
@@ -322,3 +354,11 @@ Aws::Http::HeaderValueCollection WriteGetObjectResponseRequest::GetRequestSpecif
return headers;
}
+
+WriteGetObjectResponseRequest::EndpointParameters WriteGetObjectResponseRequest::GetEndpointContextParams() const
+{
+ EndpointParameters parameters;
+ // Static context parameters
+ parameters.emplace_back(Aws::String("UseObjectLambdaEndpoint"), true, Aws::Endpoint::EndpointParameter::ParameterOrigin::STATIC_CONTEXT);
+ return parameters;
+}