8#include <aws/core/Core_EXPORTS.h>
9#include <aws/core/Region.h>
10#include <aws/core/http/HttpTypes.h>
11#include <aws/core/http/Scheme.h>
12#include <aws/core/http/Version.h>
13#include <aws/core/utils/Array.h>
14#include <aws/core/utils/StringUtils.h>
15#include <aws/core/utils/memory/stl/AWSString.h>
16#include <aws/crt/Optional.h>
17#include <smithy/tracing/TelemetryProvider.h>
32 class RateLimiterInterface;
159 explicit ClientConfiguration(
bool useSmartDefaults,
const char* defaultMode =
"legacy",
bool shouldDisableIMDS =
false);
186 bool useDualStack =
false;
191 bool useFIPS =
false;
196 unsigned maxConnections = 25;
202 long httpRequestTimeoutMs = 0;
210 long requestTimeoutMs = 0;
214 long connectTimeoutMs = 1000;
219 bool enableTcpKeepAlive =
true;
225 unsigned long tcpKeepAliveIntervalMs = 30000;
230 unsigned long lowSpeedLimit = 1;
235 std::shared_ptr<RetryStrategy> retryStrategy =
nullptr;
244 bool allowSystemProxy =
false;
256 unsigned proxyPort = 0;
298 std::shared_ptr<Aws::Utils::Threading::Executor> executor =
nullptr;
303 bool verifySSL =
true;
334 std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> writeRateLimiter =
nullptr;
339 std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> readRateLimiter =
nullptr;
363 bool disableExpectHeader =
false;
368 bool enableClockSkewAdjustment =
true;
377 bool enableHostPrefixInjection =
true;
396 bool enableHttpClientTrace =
false;
413 bool disableIMDS =
false;
428 bool disableImdsV1 =
false;
471 const std::function<
Aws::String(
const char*)>& envValueMapping = Utils::StringUtils::ToLower);
488 bool useAnonymousAuth =
false;
536 long metadataServiceNumAttempts = 1;
541 long metadataServiceTimeout = 1;
557 : roleArn(role), sessionName(session), tokenFilePath(tokenFile) {};
574 std::chrono::milliseconds retrieveCredentialsFutureTimeout = std::chrono::seconds(10);
579 std::chrono::milliseconds credentialCacheCacheTTL = std::chrono::minutes(50);
580 } stsCredentialsProviderConfig;
596 std::chrono::milliseconds retrieveCredentialsFutureTimeout = std::chrono::seconds(10);
597 } loginCredentialProviderConfig;
598 } credentialProviderConfig;
AWS_CORE_API Aws::String FilterUserAgentToken(char const *const token)
RequestChecksumCalculation
ResponseChecksumValidation
AWS_CORE_API Aws::String ComputeUserAgentString(ClientConfiguration const *const pConfig=nullptr)
AWS_CORE_API std::shared_ptr< RetryStrategy > InitRetryStrategy(Aws::String retryMode="")
TransferLibPerformanceMode
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
STSCredentialsCredentialProviderConfiguration(const Aws::String &role, const Aws::String &session, const String &tokenFile)
STSCredentialsCredentialProviderConfiguration()=default
Aws::String tokenFilePath
std::shared_ptr< RetryStrategy > imdsRetryStrategy
std::function< std::shared_ptr< Utils::Threading::Executor >()> executorCreateFn
std::function< std::shared_ptr< Utils::RateLimits::RateLimiterInterface >()> readRateLimiterCreateFn
std::function< std::shared_ptr< smithy::components::tracing::TelemetryProvider >()> telemetryProviderCreateFn
std::function< std::shared_ptr< Utils::RateLimits::RateLimiterInterface >()> writeRateLimiterCreateFn
static ProviderFactories defaultFactories
std::function< std::shared_ptr< RetryStrategy >()> retryStrategyCreateFn
Aws::Crt::Optional< bool > enableEndpointDiscovery
Aws::String proxySSLCertType
ClientConfiguration(const char *profileName, bool shouldDisableIMDS=false)
Aws::Http::Scheme proxyScheme
static Aws::String LoadConfigFromEnvOrProfileCaseSensitive(const Aws::String &envKey, const Aws::String &profile, const Aws::String &profileProperty, const Aws::Vector< Aws::String > &allowedValues, const Aws::String &defaultValue, const std::function< Aws::String(const char *)> &envValueMapping=Utils::StringUtils::ToLower)
static Aws::String LoadConfigFromEnvOrProfile(const Aws::String &envKey, const Aws::String &profile, const Aws::String &profileProperty, const Aws::Vector< Aws::String > &allowedValues, const Aws::String &defaultValue)
Aws::Http::TransferLibType httpLibOverride
Aws::String proxySSLCertPath
Aws::Vector< Aws::String > authPreferences
Aws::Client::RequestCompressionConfig requestCompressionConfig
Aws::String proxySSLKeyPassword
ClientConfiguration(const ClientConfigurationInitValues &configuration)
Aws::String endpointOverride
FollowRedirectsPolicy followRedirects
Aws::String proxyPassword
virtual ~ClientConfiguration()=default
Aws::String proxySSLKeyPath
ClientConfiguration(bool useSmartDefaults, const char *defaultMode="legacy", bool shouldDisableIMDS=false)
Aws::String proxySSLKeyType
Aws::String proxyUserName
Aws::Utils::Array< Aws::String > nonProxyHosts
std::shared_ptr< smithy::components::tracing::TelemetryProvider > telemetryProvider
UseRequestCompression useRequestCompression
size_t requestMinCompressionSizeBytes