/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once /* Generic header includes */ #include #include #include #include #include #include #include #include #include /* End of generic header includes */ /* Service model headers required in S3Client header */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* End of service model headers required in S3Client header */ namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace S3 { using S3EndpointProviderBase = Aws::S3::Endpoint::S3EndpointProviderBase; using S3EndpointProvider = Aws::S3::Endpoint::S3EndpointProvider; namespace Model { /* Service model forward declarations required in S3Client header */ class AbortMultipartUploadRequest; class CompleteMultipartUploadRequest; class CopyObjectRequest; class CreateBucketRequest; class CreateMultipartUploadRequest; class DeleteBucketRequest; class DeleteBucketAnalyticsConfigurationRequest; class DeleteBucketCorsRequest; class DeleteBucketEncryptionRequest; class DeleteBucketIntelligentTieringConfigurationRequest; class DeleteBucketInventoryConfigurationRequest; class DeleteBucketLifecycleRequest; class DeleteBucketMetricsConfigurationRequest; class DeleteBucketOwnershipControlsRequest; class DeleteBucketPolicyRequest; class DeleteBucketReplicationRequest; class DeleteBucketTaggingRequest; class DeleteBucketWebsiteRequest; class DeleteObjectRequest; class DeleteObjectTaggingRequest; class DeleteObjectsRequest; class DeletePublicAccessBlockRequest; class GetBucketAccelerateConfigurationRequest; class GetBucketAclRequest; class GetBucketAnalyticsConfigurationRequest; class GetBucketCorsRequest; class GetBucketEncryptionRequest; class GetBucketIntelligentTieringConfigurationRequest; class GetBucketInventoryConfigurationRequest; class GetBucketLifecycleConfigurationRequest; class GetBucketLocationRequest; class GetBucketLoggingRequest; class GetBucketMetricsConfigurationRequest; class GetBucketNotificationConfigurationRequest; class GetBucketOwnershipControlsRequest; class GetBucketPolicyRequest; class GetBucketPolicyStatusRequest; class GetBucketReplicationRequest; class GetBucketRequestPaymentRequest; class GetBucketTaggingRequest; class GetBucketVersioningRequest; class GetBucketWebsiteRequest; class GetObjectRequest; class GetObjectAclRequest; class GetObjectAttributesRequest; class GetObjectLegalHoldRequest; class GetObjectLockConfigurationRequest; class GetObjectRetentionRequest; class GetObjectTaggingRequest; class GetObjectTorrentRequest; class GetPublicAccessBlockRequest; class HeadBucketRequest; class HeadObjectRequest; class ListBucketAnalyticsConfigurationsRequest; class ListBucketIntelligentTieringConfigurationsRequest; class ListBucketInventoryConfigurationsRequest; class ListBucketMetricsConfigurationsRequest; class ListMultipartUploadsRequest; class ListObjectVersionsRequest; class ListObjectsRequest; class ListObjectsV2Request; class ListPartsRequest; class PutBucketAccelerateConfigurationRequest; class PutBucketAclRequest; class PutBucketAnalyticsConfigurationRequest; class PutBucketCorsRequest; class PutBucketEncryptionRequest; class PutBucketIntelligentTieringConfigurationRequest; class PutBucketInventoryConfigurationRequest; class PutBucketLifecycleConfigurationRequest; class PutBucketLoggingRequest; class PutBucketMetricsConfigurationRequest; class PutBucketNotificationConfigurationRequest; class PutBucketOwnershipControlsRequest; class PutBucketPolicyRequest; class PutBucketReplicationRequest; class PutBucketRequestPaymentRequest; class PutBucketTaggingRequest; class PutBucketVersioningRequest; class PutBucketWebsiteRequest; class PutObjectRequest; class PutObjectAclRequest; class PutObjectLegalHoldRequest; class PutObjectLockConfigurationRequest; class PutObjectRetentionRequest; class PutObjectTaggingRequest; class PutPublicAccessBlockRequest; class RestoreObjectRequest; class SelectObjectContentRequest; class UploadPartRequest; class UploadPartCopyRequest; class WriteGetObjectResponseRequest; /* End of service model forward declarations required in S3Client header */ /* Service model Outcome class definitions */ typedef Aws::Utils::Outcome AbortMultipartUploadOutcome; typedef Aws::Utils::Outcome CompleteMultipartUploadOutcome; typedef Aws::Utils::Outcome CopyObjectOutcome; typedef Aws::Utils::Outcome CreateBucketOutcome; typedef Aws::Utils::Outcome CreateMultipartUploadOutcome; typedef Aws::Utils::Outcome DeleteBucketOutcome; typedef Aws::Utils::Outcome DeleteBucketAnalyticsConfigurationOutcome; typedef Aws::Utils::Outcome DeleteBucketCorsOutcome; typedef Aws::Utils::Outcome DeleteBucketEncryptionOutcome; typedef Aws::Utils::Outcome DeleteBucketIntelligentTieringConfigurationOutcome; typedef Aws::Utils::Outcome DeleteBucketInventoryConfigurationOutcome; typedef Aws::Utils::Outcome DeleteBucketLifecycleOutcome; typedef Aws::Utils::Outcome DeleteBucketMetricsConfigurationOutcome; typedef Aws::Utils::Outcome DeleteBucketOwnershipControlsOutcome; typedef Aws::Utils::Outcome DeleteBucketPolicyOutcome; typedef Aws::Utils::Outcome DeleteBucketReplicationOutcome; typedef Aws::Utils::Outcome DeleteBucketTaggingOutcome; typedef Aws::Utils::Outcome DeleteBucketWebsiteOutcome; typedef Aws::Utils::Outcome DeleteObjectOutcome; typedef Aws::Utils::Outcome DeleteObjectTaggingOutcome; typedef Aws::Utils::Outcome DeleteObjectsOutcome; typedef Aws::Utils::Outcome DeletePublicAccessBlockOutcome; typedef Aws::Utils::Outcome GetBucketAccelerateConfigurationOutcome; typedef Aws::Utils::Outcome GetBucketAclOutcome; typedef Aws::Utils::Outcome GetBucketAnalyticsConfigurationOutcome; typedef Aws::Utils::Outcome GetBucketCorsOutcome; typedef Aws::Utils::Outcome GetBucketEncryptionOutcome; typedef Aws::Utils::Outcome GetBucketIntelligentTieringConfigurationOutcome; typedef Aws::Utils::Outcome GetBucketInventoryConfigurationOutcome; typedef Aws::Utils::Outcome GetBucketLifecycleConfigurationOutcome; typedef Aws::Utils::Outcome GetBucketLocationOutcome; typedef Aws::Utils::Outcome GetBucketLoggingOutcome; typedef Aws::Utils::Outcome GetBucketMetricsConfigurationOutcome; typedef Aws::Utils::Outcome GetBucketNotificationConfigurationOutcome; typedef Aws::Utils::Outcome GetBucketOwnershipControlsOutcome; typedef Aws::Utils::Outcome GetBucketPolicyOutcome; typedef Aws::Utils::Outcome GetBucketPolicyStatusOutcome; typedef Aws::Utils::Outcome GetBucketReplicationOutcome; typedef Aws::Utils::Outcome GetBucketRequestPaymentOutcome; typedef Aws::Utils::Outcome GetBucketTaggingOutcome; typedef Aws::Utils::Outcome GetBucketVersioningOutcome; typedef Aws::Utils::Outcome GetBucketWebsiteOutcome; typedef Aws::Utils::Outcome GetObjectOutcome; typedef Aws::Utils::Outcome GetObjectAclOutcome; typedef Aws::Utils::Outcome GetObjectAttributesOutcome; typedef Aws::Utils::Outcome GetObjectLegalHoldOutcome; typedef Aws::Utils::Outcome GetObjectLockConfigurationOutcome; typedef Aws::Utils::Outcome GetObjectRetentionOutcome; typedef Aws::Utils::Outcome GetObjectTaggingOutcome; typedef Aws::Utils::Outcome GetObjectTorrentOutcome; typedef Aws::Utils::Outcome GetPublicAccessBlockOutcome; typedef Aws::Utils::Outcome HeadBucketOutcome; typedef Aws::Utils::Outcome HeadObjectOutcome; typedef Aws::Utils::Outcome ListBucketAnalyticsConfigurationsOutcome; typedef Aws::Utils::Outcome ListBucketIntelligentTieringConfigurationsOutcome; typedef Aws::Utils::Outcome ListBucketInventoryConfigurationsOutcome; typedef Aws::Utils::Outcome ListBucketMetricsConfigurationsOutcome; typedef Aws::Utils::Outcome ListBucketsOutcome; typedef Aws::Utils::Outcome ListMultipartUploadsOutcome; typedef Aws::Utils::Outcome ListObjectVersionsOutcome; typedef Aws::Utils::Outcome ListObjectsOutcome; typedef Aws::Utils::Outcome ListObjectsV2Outcome; typedef Aws::Utils::Outcome ListPartsOutcome; typedef Aws::Utils::Outcome PutBucketAccelerateConfigurationOutcome; typedef Aws::Utils::Outcome PutBucketAclOutcome; typedef Aws::Utils::Outcome PutBucketAnalyticsConfigurationOutcome; typedef Aws::Utils::Outcome PutBucketCorsOutcome; typedef Aws::Utils::Outcome PutBucketEncryptionOutcome; typedef Aws::Utils::Outcome PutBucketIntelligentTieringConfigurationOutcome; typedef Aws::Utils::Outcome PutBucketInventoryConfigurationOutcome; typedef Aws::Utils::Outcome PutBucketLifecycleConfigurationOutcome; typedef Aws::Utils::Outcome PutBucketLoggingOutcome; typedef Aws::Utils::Outcome PutBucketMetricsConfigurationOutcome; typedef Aws::Utils::Outcome PutBucketNotificationConfigurationOutcome; typedef Aws::Utils::Outcome PutBucketOwnershipControlsOutcome; typedef Aws::Utils::Outcome PutBucketPolicyOutcome; typedef Aws::Utils::Outcome PutBucketReplicationOutcome; typedef Aws::Utils::Outcome PutBucketRequestPaymentOutcome; typedef Aws::Utils::Outcome PutBucketTaggingOutcome; typedef Aws::Utils::Outcome PutBucketVersioningOutcome; typedef Aws::Utils::Outcome PutBucketWebsiteOutcome; typedef Aws::Utils::Outcome PutObjectOutcome; typedef Aws::Utils::Outcome PutObjectAclOutcome; typedef Aws::Utils::Outcome PutObjectLegalHoldOutcome; typedef Aws::Utils::Outcome PutObjectLockConfigurationOutcome; typedef Aws::Utils::Outcome PutObjectRetentionOutcome; typedef Aws::Utils::Outcome PutObjectTaggingOutcome; typedef Aws::Utils::Outcome PutPublicAccessBlockOutcome; typedef Aws::Utils::Outcome RestoreObjectOutcome; typedef Aws::Utils::Outcome SelectObjectContentOutcome; typedef Aws::Utils::Outcome UploadPartOutcome; typedef Aws::Utils::Outcome UploadPartCopyOutcome; typedef Aws::Utils::Outcome WriteGetObjectResponseOutcome; /* End of service model Outcome class definitions */ /* Service model Outcome callable definitions */ typedef std::future AbortMultipartUploadOutcomeCallable; typedef std::future CompleteMultipartUploadOutcomeCallable; typedef std::future CopyObjectOutcomeCallable; typedef std::future CreateBucketOutcomeCallable; typedef std::future CreateMultipartUploadOutcomeCallable; typedef std::future DeleteBucketOutcomeCallable; typedef std::future DeleteBucketAnalyticsConfigurationOutcomeCallable; typedef std::future DeleteBucketCorsOutcomeCallable; typedef std::future DeleteBucketEncryptionOutcomeCallable; typedef std::future DeleteBucketIntelligentTieringConfigurationOutcomeCallable; typedef std::future DeleteBucketInventoryConfigurationOutcomeCallable; typedef std::future DeleteBucketLifecycleOutcomeCallable; typedef std::future DeleteBucketMetricsConfigurationOutcomeCallable; typedef std::future DeleteBucketOwnershipControlsOutcomeCallable; typedef std::future DeleteBucketPolicyOutcomeCallable; typedef std::future DeleteBucketReplicationOutcomeCallable; typedef std::future DeleteBucketTaggingOutcomeCallable; typedef std::future DeleteBucketWebsiteOutcomeCallable; typedef std::future DeleteObjectOutcomeCallable; typedef std::future DeleteObjectTaggingOutcomeCallable; typedef std::future DeleteObjectsOutcomeCallable; typedef std::future DeletePublicAccessBlockOutcomeCallable; typedef std::future GetBucketAccelerateConfigurationOutcomeCallable; typedef std::future GetBucketAclOutcomeCallable; typedef std::future GetBucketAnalyticsConfigurationOutcomeCallable; typedef std::future GetBucketCorsOutcomeCallable; typedef std::future GetBucketEncryptionOutcomeCallable; typedef std::future GetBucketIntelligentTieringConfigurationOutcomeCallable; typedef std::future GetBucketInventoryConfigurationOutcomeCallable; typedef std::future GetBucketLifecycleConfigurationOutcomeCallable; typedef std::future GetBucketLocationOutcomeCallable; typedef std::future GetBucketLoggingOutcomeCallable; typedef std::future GetBucketMetricsConfigurationOutcomeCallable; typedef std::future GetBucketNotificationConfigurationOutcomeCallable; typedef std::future GetBucketOwnershipControlsOutcomeCallable; typedef std::future GetBucketPolicyOutcomeCallable; typedef std::future GetBucketPolicyStatusOutcomeCallable; typedef std::future GetBucketReplicationOutcomeCallable; typedef std::future GetBucketRequestPaymentOutcomeCallable; typedef std::future GetBucketTaggingOutcomeCallable; typedef std::future GetBucketVersioningOutcomeCallable; typedef std::future GetBucketWebsiteOutcomeCallable; typedef std::future GetObjectOutcomeCallable; typedef std::future GetObjectAclOutcomeCallable; typedef std::future GetObjectAttributesOutcomeCallable; typedef std::future GetObjectLegalHoldOutcomeCallable; typedef std::future GetObjectLockConfigurationOutcomeCallable; typedef std::future GetObjectRetentionOutcomeCallable; typedef std::future GetObjectTaggingOutcomeCallable; typedef std::future GetObjectTorrentOutcomeCallable; typedef std::future GetPublicAccessBlockOutcomeCallable; typedef std::future HeadBucketOutcomeCallable; typedef std::future HeadObjectOutcomeCallable; typedef std::future ListBucketAnalyticsConfigurationsOutcomeCallable; typedef std::future ListBucketIntelligentTieringConfigurationsOutcomeCallable; typedef std::future ListBucketInventoryConfigurationsOutcomeCallable; typedef std::future ListBucketMetricsConfigurationsOutcomeCallable; typedef std::future ListBucketsOutcomeCallable; typedef std::future ListMultipartUploadsOutcomeCallable; typedef std::future ListObjectVersionsOutcomeCallable; typedef std::future ListObjectsOutcomeCallable; typedef std::future ListObjectsV2OutcomeCallable; typedef std::future ListPartsOutcomeCallable; typedef std::future PutBucketAccelerateConfigurationOutcomeCallable; typedef std::future PutBucketAclOutcomeCallable; typedef std::future PutBucketAnalyticsConfigurationOutcomeCallable; typedef std::future PutBucketCorsOutcomeCallable; typedef std::future PutBucketEncryptionOutcomeCallable; typedef std::future PutBucketIntelligentTieringConfigurationOutcomeCallable; typedef std::future PutBucketInventoryConfigurationOutcomeCallable; typedef std::future PutBucketLifecycleConfigurationOutcomeCallable; typedef std::future PutBucketLoggingOutcomeCallable; typedef std::future PutBucketMetricsConfigurationOutcomeCallable; typedef std::future PutBucketNotificationConfigurationOutcomeCallable; typedef std::future PutBucketOwnershipControlsOutcomeCallable; typedef std::future PutBucketPolicyOutcomeCallable; typedef std::future PutBucketReplicationOutcomeCallable; typedef std::future PutBucketRequestPaymentOutcomeCallable; typedef std::future PutBucketTaggingOutcomeCallable; typedef std::future PutBucketVersioningOutcomeCallable; typedef std::future PutBucketWebsiteOutcomeCallable; typedef std::future PutObjectOutcomeCallable; typedef std::future PutObjectAclOutcomeCallable; typedef std::future PutObjectLegalHoldOutcomeCallable; typedef std::future PutObjectLockConfigurationOutcomeCallable; typedef std::future PutObjectRetentionOutcomeCallable; typedef std::future PutObjectTaggingOutcomeCallable; typedef std::future PutPublicAccessBlockOutcomeCallable; typedef std::future RestoreObjectOutcomeCallable; typedef std::future SelectObjectContentOutcomeCallable; typedef std::future UploadPartOutcomeCallable; typedef std::future UploadPartCopyOutcomeCallable; typedef std::future WriteGetObjectResponseOutcomeCallable; /* End of service model Outcome callable definitions */ } // namespace Model class S3Client; /* Service model async handlers definitions */ typedef std::function&) > AbortMultipartUploadResponseReceivedHandler; typedef std::function&) > CompleteMultipartUploadResponseReceivedHandler; typedef std::function&) > CopyObjectResponseReceivedHandler; typedef std::function&) > CreateBucketResponseReceivedHandler; typedef std::function&) > CreateMultipartUploadResponseReceivedHandler; typedef std::function&) > DeleteBucketResponseReceivedHandler; typedef std::function&) > DeleteBucketAnalyticsConfigurationResponseReceivedHandler; typedef std::function&) > DeleteBucketCorsResponseReceivedHandler; typedef std::function&) > DeleteBucketEncryptionResponseReceivedHandler; typedef std::function&) > DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler; typedef std::function&) > DeleteBucketInventoryConfigurationResponseReceivedHandler; typedef std::function&) > DeleteBucketLifecycleResponseReceivedHandler; typedef std::function&) > DeleteBucketMetricsConfigurationResponseReceivedHandler; typedef std::function&) > DeleteBucketOwnershipControlsResponseReceivedHandler; typedef std::function&) > DeleteBucketPolicyResponseReceivedHandler; typedef std::function&) > DeleteBucketReplicationResponseReceivedHandler; typedef std::function&) > DeleteBucketTaggingResponseReceivedHandler; typedef std::function&) > DeleteBucketWebsiteResponseReceivedHandler; typedef std::function&) > DeleteObjectResponseReceivedHandler; typedef std::function&) > DeleteObjectTaggingResponseReceivedHandler; typedef std::function&) > DeleteObjectsResponseReceivedHandler; typedef std::function&) > DeletePublicAccessBlockResponseReceivedHandler; typedef std::function&) > GetBucketAccelerateConfigurationResponseReceivedHandler; typedef std::function&) > GetBucketAclResponseReceivedHandler; typedef std::function&) > GetBucketAnalyticsConfigurationResponseReceivedHandler; typedef std::function&) > GetBucketCorsResponseReceivedHandler; typedef std::function&) > GetBucketEncryptionResponseReceivedHandler; typedef std::function&) > GetBucketIntelligentTieringConfigurationResponseReceivedHandler; typedef std::function&) > GetBucketInventoryConfigurationResponseReceivedHandler; typedef std::function&) > GetBucketLifecycleConfigurationResponseReceivedHandler; typedef std::function&) > GetBucketLocationResponseReceivedHandler; typedef std::function&) > GetBucketLoggingResponseReceivedHandler; typedef std::function&) > GetBucketMetricsConfigurationResponseReceivedHandler; typedef std::function&) > GetBucketNotificationConfigurationResponseReceivedHandler; typedef std::function&) > GetBucketOwnershipControlsResponseReceivedHandler; typedef std::function&) > GetBucketPolicyResponseReceivedHandler; typedef std::function&) > GetBucketPolicyStatusResponseReceivedHandler; typedef std::function&) > GetBucketReplicationResponseReceivedHandler; typedef std::function&) > GetBucketRequestPaymentResponseReceivedHandler; typedef std::function&) > GetBucketTaggingResponseReceivedHandler; typedef std::function&) > GetBucketVersioningResponseReceivedHandler; typedef std::function&) > GetBucketWebsiteResponseReceivedHandler; typedef std::function&) > GetObjectResponseReceivedHandler; typedef std::function&) > GetObjectAclResponseReceivedHandler; typedef std::function&) > GetObjectAttributesResponseReceivedHandler; typedef std::function&) > GetObjectLegalHoldResponseReceivedHandler; typedef std::function&) > GetObjectLockConfigurationResponseReceivedHandler; typedef std::function&) > GetObjectRetentionResponseReceivedHandler; typedef std::function&) > GetObjectTaggingResponseReceivedHandler; typedef std::function&) > GetObjectTorrentResponseReceivedHandler; typedef std::function&) > GetPublicAccessBlockResponseReceivedHandler; typedef std::function&) > HeadBucketResponseReceivedHandler; typedef std::function&) > HeadObjectResponseReceivedHandler; typedef std::function&) > ListBucketAnalyticsConfigurationsResponseReceivedHandler; typedef std::function&) > ListBucketIntelligentTieringConfigurationsResponseReceivedHandler; typedef std::function&) > ListBucketInventoryConfigurationsResponseReceivedHandler; typedef std::function&) > ListBucketMetricsConfigurationsResponseReceivedHandler; typedef std::function&) > ListBucketsResponseReceivedHandler; typedef std::function&) > ListMultipartUploadsResponseReceivedHandler; typedef std::function&) > ListObjectVersionsResponseReceivedHandler; typedef std::function&) > ListObjectsResponseReceivedHandler; typedef std::function&) > ListObjectsV2ResponseReceivedHandler; typedef std::function&) > ListPartsResponseReceivedHandler; typedef std::function&) > PutBucketAccelerateConfigurationResponseReceivedHandler; typedef std::function&) > PutBucketAclResponseReceivedHandler; typedef std::function&) > PutBucketAnalyticsConfigurationResponseReceivedHandler; typedef std::function&) > PutBucketCorsResponseReceivedHandler; typedef std::function&) > PutBucketEncryptionResponseReceivedHandler; typedef std::function&) > PutBucketIntelligentTieringConfigurationResponseReceivedHandler; typedef std::function&) > PutBucketInventoryConfigurationResponseReceivedHandler; typedef std::function&) > PutBucketLifecycleConfigurationResponseReceivedHandler; typedef std::function&) > PutBucketLoggingResponseReceivedHandler; typedef std::function&) > PutBucketMetricsConfigurationResponseReceivedHandler; typedef std::function&) > PutBucketNotificationConfigurationResponseReceivedHandler; typedef std::function&) > PutBucketOwnershipControlsResponseReceivedHandler; typedef std::function&) > PutBucketPolicyResponseReceivedHandler; typedef std::function&) > PutBucketReplicationResponseReceivedHandler; typedef std::function&) > PutBucketRequestPaymentResponseReceivedHandler; typedef std::function&) > PutBucketTaggingResponseReceivedHandler; typedef std::function&) > PutBucketVersioningResponseReceivedHandler; typedef std::function&) > PutBucketWebsiteResponseReceivedHandler; typedef std::function&) > PutObjectResponseReceivedHandler; typedef std::function&) > PutObjectAclResponseReceivedHandler; typedef std::function&) > PutObjectLegalHoldResponseReceivedHandler; typedef std::function&) > PutObjectLockConfigurationResponseReceivedHandler; typedef std::function&) > PutObjectRetentionResponseReceivedHandler; typedef std::function&) > PutObjectTaggingResponseReceivedHandler; typedef std::function&) > PutPublicAccessBlockResponseReceivedHandler; typedef std::function&) > RestoreObjectResponseReceivedHandler; typedef std::function&) > SelectObjectContentResponseReceivedHandler; typedef std::function&) > UploadPartResponseReceivedHandler; typedef std::function&) > UploadPartCopyResponseReceivedHandler; typedef std::function&) > WriteGetObjectResponseResponseReceivedHandler; /* End of service model async handlers definitions */ } // namespace S3 } // namespace Aws