diff options
author | dakovalkov <dakovalkov@yandex-team.com> | 2023-12-03 13:33:55 +0300 |
---|---|---|
committer | dakovalkov <dakovalkov@yandex-team.com> | 2023-12-03 14:04:39 +0300 |
commit | 2a718325637e5302334b6d0a6430f63168f8dbb3 (patch) | |
tree | 64be81080b7df9ec1d86d053a0c394ae53fcf1fe /contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/S3EndpointProvider.h | |
parent | e0d94a470142d95c3007e9c5d80380994940664a (diff) | |
download | ydb-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/include/aws/s3/S3EndpointProvider.h')
-rw-r--r-- | contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/S3EndpointProvider.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/S3EndpointProvider.h b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/S3EndpointProvider.h new file mode 100644 index 0000000000..d62a5c0582 --- /dev/null +++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/S3EndpointProvider.h @@ -0,0 +1,114 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include <aws/s3/S3_EXPORTS.h> +#include <aws/s3/S3ClientConfiguration.h> +#include <aws/core/endpoint/DefaultEndpointProvider.h> +#include <aws/core/endpoint/EndpointParameter.h> +#include <aws/core/utils/memory/stl/AWSString.h> +#include <aws/core/utils/memory/stl/AWSVector.h> + +#include <aws/s3/S3EndpointRules.h> + + +namespace Aws +{ +namespace S3 +{ +namespace Endpoint +{ +using S3ClientConfiguration = Aws::S3::S3ClientConfiguration; +using EndpointParameters = Aws::Endpoint::EndpointParameters; +using Aws::Endpoint::EndpointProviderBase; +using Aws::Endpoint::DefaultEndpointProvider; + +class AWS_S3_API S3ClientContextParameters : public Aws::Endpoint::ClientContextParameters +{ +public: + virtual ~S3ClientContextParameters(){}; + + /** + * Forces this client to use path-style addressing for buckets. + */ + void SetForcePathStyle(bool value); + const ClientContextParameters::EndpointParameter& GetForcePathStyle() const; + + /** + * Disables this client's usage of Multi-Region Access Points. + */ + void SetDisableMultiRegionAccessPoints(bool value); + const ClientContextParameters::EndpointParameter& GetDisableMultiRegionAccessPoints() const; + + /** + * Enables this client to use an ARN's region when constructing an endpoint instead of the client's configured region. + */ + void SetUseArnRegion(bool value); + const ClientContextParameters::EndpointParameter& GetUseArnRegion() const; + + /** + * Enables this client to use S3 Transfer Acceleration endpoints. + */ + void SetAccelerate(bool value); + const ClientContextParameters::EndpointParameter& GetAccelerate() const; +}; + +class AWS_S3_API S3BuiltInParameters : public Aws::Endpoint::BuiltInParameters +{ +public: + virtual ~S3BuiltInParameters(){}; + using Aws::Endpoint::BuiltInParameters::SetFromClientConfiguration; + virtual void SetFromClientConfiguration(const S3ClientConfiguration& config); +}; + +/** + * The type for the S3 Client Endpoint Provider. + * Inherit from this Base class / "Interface" should you want to provide a custom endpoint provider. + * The SDK must use service-specific type for each service per specification. + */ +using S3EndpointProviderBase = + EndpointProviderBase<S3ClientConfiguration, S3BuiltInParameters, S3ClientContextParameters>; + +using S3DefaultEpProviderBase = + DefaultEndpointProvider<S3ClientConfiguration, S3BuiltInParameters, S3ClientContextParameters>; + +} // namespace Endpoint +} // namespace S3 + +namespace Endpoint +{ +/** + * Export endpoint provider symbols from DLL + */ +template class AWS_S3_API + Aws::Endpoint::EndpointProviderBase<S3::Endpoint::S3ClientConfiguration, S3::Endpoint::S3BuiltInParameters, S3::Endpoint::S3ClientContextParameters>; + +template class AWS_S3_API + Aws::Endpoint::DefaultEndpointProvider<S3::Endpoint::S3ClientConfiguration, S3::Endpoint::S3BuiltInParameters, S3::Endpoint::S3ClientContextParameters>; +} // namespace Endpoint + +namespace S3 +{ +namespace Endpoint +{ +/** + * Default endpoint provider used for this service + */ +class AWS_S3_API S3EndpointProvider : public S3DefaultEpProviderBase +{ +public: + using S3ResolveEndpointOutcome = Aws::Endpoint::ResolveEndpointOutcome; + + S3EndpointProvider() + : S3DefaultEpProviderBase(Aws::S3::S3EndpointRules::GetRulesBlob(), Aws::S3::S3EndpointRules::RulesBlobSize) + {} + + ~S3EndpointProvider() + { + } +}; +} // namespace Endpoint +} // namespace S3 +} // namespace Aws |