123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /**
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
- * SPDX-License-Identifier: Apache-2.0.
- */
- #include <aws/core/client/GenericClientConfiguration.h>
- #include <aws/core/platform/Environment.h>
- #include <aws/core/utils/memory/AWSMemory.h>
- #include <aws/core/utils/threading/Executor.h>
- namespace Aws
- {
- namespace Client
- {
- template struct AWS_CORE_API GenericClientConfiguration<false>;
- bool IsEndpointDiscoveryEnabled(const Aws::String& endpointOverride, const Aws::String &profileName)
- {
- bool enabled = true; // default value for AWS Services with enabled discovery trait
- if (!endpointOverride.empty())
- {
- enabled = false;
- }
- else
- {
- static const char* AWS_ENABLE_ENDPOINT_DISCOVERY_ENV_KEY = "AWS_ENABLE_ENDPOINT_DISCOVERY";
- static const char* AWS_ENABLE_ENDPOINT_DISCOVERY_PROFILE_KEY = "AWS_ENABLE_ENDPOINT_DISCOVERY";
- static const char* AWS_ENABLE_ENDPOINT_ENABLED = "true";
- static const char* AWS_ENABLE_ENDPOINT_DISABLED = "false";
- Aws::String enableEndpointDiscovery = ClientConfiguration::LoadConfigFromEnvOrProfile(AWS_ENABLE_ENDPOINT_DISCOVERY_ENV_KEY,
- profileName,
- AWS_ENABLE_ENDPOINT_DISCOVERY_PROFILE_KEY,
- {AWS_ENABLE_ENDPOINT_ENABLED, AWS_ENABLE_ENDPOINT_DISABLED},
- AWS_ENABLE_ENDPOINT_ENABLED);
- if (AWS_ENABLE_ENDPOINT_DISABLED == enableEndpointDiscovery)
- {
- // enabled by default unless explicitly disabled in ENV, profile config file, or programmatically later
- enabled = false;
- }
- }
- return enabled;
- }
- GenericClientConfiguration<true>::GenericClientConfiguration()
- : ClientConfiguration(),
- enableHostPrefixInjection(ClientConfiguration::enableHostPrefixInjection),
- enableEndpointDiscovery(ClientConfiguration::enableEndpointDiscovery)
- {
- enableEndpointDiscovery = IsEndpointDiscoveryEnabled(this->endpointOverride, this->profileName);
- enableHostPrefixInjection = false; // disabled by default in the SDK
- }
- GenericClientConfiguration<true>::GenericClientConfiguration(const char* inputProfileName, bool shouldDisableIMDS)
- : ClientConfiguration(inputProfileName, shouldDisableIMDS),
- enableHostPrefixInjection(ClientConfiguration::enableHostPrefixInjection),
- enableEndpointDiscovery(ClientConfiguration::enableEndpointDiscovery)
- {
- enableEndpointDiscovery = IsEndpointDiscoveryEnabled(this->endpointOverride, this->profileName);
- enableHostPrefixInjection = false; // disabled by default in the SDK
- }
- GenericClientConfiguration<true>::GenericClientConfiguration(bool useSmartDefaults, const char* inputDefaultMode, bool shouldDisableIMDS)
- : ClientConfiguration(useSmartDefaults, inputDefaultMode, shouldDisableIMDS),
- enableHostPrefixInjection(ClientConfiguration::enableHostPrefixInjection),
- enableEndpointDiscovery(ClientConfiguration::enableEndpointDiscovery)
- {
- enableEndpointDiscovery = IsEndpointDiscoveryEnabled(this->endpointOverride, this->profileName);
- enableHostPrefixInjection = false; // disabled by default in the SDK
- }
- GenericClientConfiguration<true>::GenericClientConfiguration(const ClientConfiguration& config)
- : ClientConfiguration(config),
- enableHostPrefixInjection(ClientConfiguration::enableHostPrefixInjection),
- enableEndpointDiscovery(ClientConfiguration::enableEndpointDiscovery)
- {
- enableEndpointDiscovery = IsEndpointDiscoveryEnabled(this->endpointOverride, this->profileName);
- enableHostPrefixInjection = false; // disabled by default in the SDK
- }
- GenericClientConfiguration<true>::GenericClientConfiguration(const GenericClientConfiguration<true>& other)
- : ClientConfiguration(static_cast<ClientConfiguration>(other)),
- enableHostPrefixInjection(ClientConfiguration::enableHostPrefixInjection),
- enableEndpointDiscovery(ClientConfiguration::enableEndpointDiscovery)
- {
- if (other.enableEndpointDiscovery) {
- enableEndpointDiscovery = other.enableEndpointDiscovery.value();
- }
- enableHostPrefixInjection = other.enableHostPrefixInjection;
- }
- GenericClientConfiguration<true>& GenericClientConfiguration<true>::operator=(const GenericClientConfiguration<true>& other)
- {
- if (this != &other) {
- *static_cast<ClientConfiguration*>(this) = static_cast<ClientConfiguration>(other);
- }
- return *this;
- }
- } // namespace Client
- } // namespace Aws
|