Gems/AWSCore/Code/Source/Framework/AWSApiJobConfig.cpp (70 lines of code) (raw):

/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #include <AzFramework/AzFramework_Traits_Platform.h> #include <Framework/AWSApiJobConfig.h> #include <AWSCoreBus.h> #include <Credential/AWSCredentialBus.h> namespace AWSCore { void AwsApiJobConfig::ApplySettings() { m_jobContext = nullptr; Visit<AwsApiJobConfig>( [this](const AwsApiJobConfig& config) { CheckAndSet(config.jobContext, m_jobContext); } ); if (!m_jobContext) { AWSCoreRequestBus::BroadcastResult(m_jobContext, &AWSCoreRequests::GetDefaultJobContext); } if (!credentialsProvider) { AWSCredentialResult credentialResult; AWSCredentialRequestBus::BroadcastResult(credentialResult, &AWSCredentialRequests::GetCredentialsProvider); if (credentialResult.result) { credentialsProvider = credentialResult.result; } } m_settingsApplied = true; } Aws::Client::ClientConfiguration AwsApiJobConfig::GetClientConfiguration() const { Aws::Client::ClientConfiguration target; target.enableTcpKeepAlive = AZ_TRAIT_AZFRAMEWORK_AWS_ENABLE_TCP_KEEP_ALIVE_SUPPORTED; Visit<AwsApiJobConfig>( [&target](const AwsApiJobConfig& config) { CheckAndSet(config.userAgent, target.userAgent); CheckAndSet(config.scheme, target.scheme); CheckAndSet(config.region, target.region); CheckAndSet(config.maxConnections, target.maxConnections); CheckAndSet(config.requestTimeoutMs, target.requestTimeoutMs); CheckAndSet(config.connectTimeoutMs, target.connectTimeoutMs); CheckAndSet(config.retryStrategy, target.retryStrategy); CheckAndSet(config.endpointOverride, target.endpointOverride); CheckAndSet(config.proxyHost, target.proxyHost); CheckAndSet(config.proxyPort, target.proxyPort); CheckAndSet(config.proxyUserName, target.proxyUserName); CheckAndSet(config.proxyPassword, target.proxyPassword); CheckAndSet(config.executor, target.executor); CheckAndSet(config.verifySSL, target.verifySSL); CheckAndSet(config.writeRateLimiter, target.writeRateLimiter); CheckAndSet(config.readRateLimiter, target.readRateLimiter); CheckAndSet(config.httpLibOverride, target.httpLibOverride); CheckAndSet(config.followRedirects, target.followRedirects); CheckAndSet(config.caFile, target.caFile); } ); return target; } AZ::JobContext* AwsApiJobConfig::GetJobContext() { EnsureSettingsApplied(); return m_jobContext; } std::shared_ptr<Aws::Auth::AWSCredentialsProvider> AwsApiJobConfig::GetCredentialsProvider() const { std::shared_ptr<Aws::Auth::AWSCredentialsProvider> target; Visit<AwsApiJobConfig>([&target](const AwsApiJobConfig& config) { CheckAndSet(config.credentialsProvider, target); }); return target; } } // namespace AWSCore