7#if !defined(AWS_CLIENT_H)
10#include <aws/core/Core_EXPORTS.h>
11#include <aws/core/client/CoreErrors.h>
12#include <aws/core/client/AWSUrlPresigner.h>
13#include <aws/core/http/HttpTypes.h>
14#include <aws/core/utils/memory/stl/AWSString.h>
15#include <aws/core/AmazonWebServiceResult.h>
16#include <aws/core/utils/crypto/Hash.h>
17#include <aws/core/auth/AWSAuthSignerProvider.h>
18#include <aws/core/endpoint/AWSEndpoint.h>
19#include <smithy/client/features/UserAgentInterceptor.h>
20#include <smithy/interceptor/Interceptor.h>
28 template<
typename R,
typename E>
46 class HttpClientFactory;
65 template<
typename ERROR_TYPE>
67 class AWSErrorMarshaller;
69 struct ClientConfiguration;
87 const std::shared_ptr<Aws::Client::AWSAuthSigner>& signer,
88 const std::shared_ptr<AWSErrorMarshaller>& errorMarshaller);
96 const std::shared_ptr<Aws::Auth::AWSAuthSignerProvider>& signerProvider,
97 const std::shared_ptr<AWSErrorMarshaller>& errorMarshaller);
152 uint64_t expirationInSeconds = 0,
154 const char* signerRegionOverride =
nullptr,
155 const char* signerServiceNameOverride =
nullptr,
156 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {});
160 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {})
const;
164 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {})
const;
168 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {})
const;
172 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {})
const;
174 const std::shared_ptr<Aws::Http::HttpClient>&
GetHttpClient()
const {
return m_httpClient; }
204 const char* signerName,
205 const char* signerRegionOverride =
nullptr,
206 const char* signerServiceNameOverride =
nullptr)
const;
217 const char* signerName,
218 const char* requestName =
"",
219 const char* signerRegionOverride =
nullptr,
220 const char* signerServiceNameOverride =
nullptr)
const;
228 const char* signerName,
229 const char* signerRegionOverride =
nullptr,
230 const char* signerServiceNameOverride =
nullptr)
const;
240 const char* signerName,
241 const char* requestName =
"",
242 const char* signerRegionOverride =
nullptr,
243 const char* signerServiceNameOverride =
nullptr)
const;
253 const char* signerRegionOverride =
nullptr,
254 const char* signerServiceNameOverride =
nullptr)
const;
266 const char* requestName =
"",
267 const char* signerRegionOverride =
nullptr,
268 const char* signerServiceNameOverride =
nullptr)
const;
274 const char* signerRegionOverride =
nullptr,
275 const char* signerServiceNameOverride =
nullptr)
const;
286 const std::shared_ptr<Aws::Http::HttpRequest>& httpRequest)
const;
293 const std::shared_ptr<Aws::IOStream>& body,
294 bool isChunked)
const;
301 return m_errorMarshaller;
312 return m_signerProvider->GetCredentialsProvider();
329 std::shared_ptr<Aws::Http::HttpResponse>
MakeHttpRequest(std::shared_ptr<Aws::Http::HttpRequest>& request)
const;
349 void AddHeadersToRequest(
const std::shared_ptr<Aws::Http::HttpRequest>& httpRequest,
const Http::HeaderValueCollection& headerValues)
const;
350 void AddContentBodyToRequest(
const std::shared_ptr<Aws::Http::HttpRequest>& httpRequest,
const std::shared_ptr<Aws::IOStream>& body,
351 bool needsContentMd5 =
false,
bool isChunked =
false)
const;
352 void AppendHeaderValueToRequest(
const std::shared_ptr<Http::HttpRequest> &request,
String header,
String value)
const;
354 std::shared_ptr<Aws::Http::HttpClient> m_httpClient;
355 std::shared_ptr<AWSErrorMarshaller> m_errorMarshaller;
356 std::shared_ptr<RetryStrategy> m_retryStrategy;
357 std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> m_writeRateLimiter;
358 std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> m_readRateLimiter;
359 std::shared_ptr<Aws::Utils::Crypto::Hash> m_hash;
360 long m_requestTimeoutMs;
361 bool m_enableClockSkewAdjustment;
364 std::shared_ptr<smithy::client::UserAgentInterceptor> m_userAgentInterceptor;
372#if !defined(AWS_JSON_CLIENT_H) && !defined(AWS_XML_CLIENT_H) && !defined(AWS_CBOR_CLIENT_H)
374#include <aws/core/client/AWSJsonClient.h>
375#include <aws/core/client/AWSRpcV2CborClient.h>
376#include <aws/core/client/AWSXmlClient.h>
const std::shared_ptr< AWSErrorMarshaller > & GetErrorMarshaller() const
AWSClient(const Aws::Client::ClientConfiguration &configuration, const std::shared_ptr< Aws::Auth::AWSAuthSignerProvider > &signerProvider, const std::shared_ptr< AWSErrorMarshaller > &errorMarshaller)
static CoreErrors GuessBodylessErrorType(Aws::Http::HttpResponseCode responseCode)
virtual void BuildHttpRequest(const Aws::AmazonWebServiceRequest &request, const std::shared_ptr< Aws::Http::HttpRequest > &httpRequest) const
Aws::String GeneratePresignedUrl(const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={}) const
static bool DoesResponseGenerateError(const std::shared_ptr< Aws::Http::HttpResponse > &response)
void DisableRequestProcessing()
std::shared_ptr< Aws::Auth::AWSAuthSignerProvider > m_signerProvider
virtual void SetServiceClientName(const Aws::String &name)
virtual void AddContentLengthToRequest(const std::shared_ptr< Aws::Http::HttpRequest > &httpRequest, const std::shared_ptr< Aws::IOStream > &body, bool isChunked) const
void EnableRequestProcessing()
Aws::String GeneratePresignedUrl(const Aws::AmazonWebServiceRequest &request, const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, const char *serviceName, const Aws::Http::QueryStringParameterCollection &extraParams=Aws::Http::QueryStringParameterCollection(), long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={}) const
HttpResponseOutcome AttemptOneRequest(const std::shared_ptr< Http::HttpRequest > &httpRequest, const char *signerName, const char *requestName="", const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
Aws::String GeneratePresignedUrl(const Aws::AmazonWebServiceRequest &request, const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const Aws::Http::QueryStringParameterCollection &extraParams=Aws::Http::QueryStringParameterCollection(), long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={}) const
const std::shared_ptr< Aws::Http::HttpClient > & GetHttpClient() const
void AppendToUserAgent(const Aws::String &valueToAppend)
std::shared_ptr< Aws::Http::HttpRequest > BuildAndSignHttpRequest(const Aws::Http::URI &uri, const Aws::AmazonWebServiceRequest &request, Http::HttpMethod method, const char *signerName) const
Aws::String GeneratePresignedUrl(const Aws::Http::URI &uri, Aws::Http::HttpMethod method, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={})
Aws::Client::AWSAuthSigner * GetSignerByName(const char *name) const
Aws::String GeneratePresignedUrl(const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, const Aws::Http::HeaderValueCollection &customizedHeaders, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={})
virtual AWSError< CoreErrors > BuildAWSError(const std::shared_ptr< Aws::Http::HttpResponse > &response) const =0
std::shared_ptr< Aws::Http::HttpResponse > MakeHttpRequest(std::shared_ptr< Aws::Http::HttpRequest > &request) const
StreamOutcome MakeRequestWithUnparsedResponse(const Aws::AmazonWebServiceRequest &request, const Aws::Endpoint::AWSEndpoint &endpoint, Http::HttpMethod method=Http::HttpMethod::HTTP_POST, const char *signerName=Aws::Auth::SIGV4_SIGNER, const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
HttpResponseOutcome AttemptExhaustively(const Aws::Http::URI &uri, const Aws::AmazonWebServiceRequest &request, Http::HttpMethod httpMethod, const char *signerName, const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
std::shared_ptr< smithy::components::tracing::TelemetryProvider > m_telemetryProvider
virtual const char * GetServiceClientName() const
AWSClient(const Aws::Client::ClientConfiguration &configuration, const std::shared_ptr< Aws::Client::AWSAuthSigner > &signer, const std::shared_ptr< AWSErrorMarshaller > &errorMarshaller)
HttpResponseOutcome AttemptOneRequest(const std::shared_ptr< Http::HttpRequest > &httpRequest, const Aws::AmazonWebServiceRequest &request, const char *signerName, const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
Aws::String GeneratePresignedUrl(const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, const char *serviceName, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={}) const
Aws::String GeneratePresignedUrl(const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, const char *serviceName, const char *signerName, const Aws::Http::HeaderValueCollection &customizedHeaders, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={})
Aws::String GeneratePresignedUrl(const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const Aws::Http::HeaderValueCollection &customizedHeaders, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={})
StreamOutcome MakeRequestWithUnparsedResponse(const Aws::Http::URI &uri, Http::HttpMethod method=Http::HttpMethod::HTTP_POST, const char *signerName=Aws::Auth::SIGV4_SIGNER, const char *requestName="", const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
StreamOutcome MakeRequestWithUnparsedResponse(const Aws::Http::URI &uri, const Aws::AmazonWebServiceRequest &request, Http::HttpMethod method=Http::HttpMethod::HTTP_POST, const char *signerName=Aws::Auth::SIGV4_SIGNER, const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
Aws::String GeneratePresignedUrl(const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, const char *serviceName, const char *signerName, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={}) const
Aws::String GeneratePresignedUrl(const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, const char *serviceName, const Aws::Http::HeaderValueCollection &customizedHeaders, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={})
Aws::String GeneratePresignedUrl(const Aws::AmazonWebServiceRequest &request, const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, const char *serviceName, const char *signerName, const Aws::Http::QueryStringParameterCollection &extraParams=Aws::Http::QueryStringParameterCollection(), long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={}) const
HttpResponseOutcome AttemptExhaustively(const Aws::Http::URI &uri, Http::HttpMethod httpMethod, const char *signerName, const char *requestName="", const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
std::shared_ptr< Auth::AWSCredentialsProvider > GetCredentialsProvider() const
static void AppendRecursionDetectionHeader(std::shared_ptr< Aws::Http::HttpRequest > ioRequest)
Aws::String GeneratePresignedUrl(const Aws::AmazonWebServiceRequest &request, const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const char *region, const Aws::Http::QueryStringParameterCollection &extraParams=Aws::Http::QueryStringParameterCollection(), long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={}) const
Aws::String GeneratePresignedUrl(const Aws::Endpoint::AWSEndpoint &endpoint, Aws::Http::HttpMethod method=Http::HttpMethod::HTTP_POST, const Aws::Http::HeaderValueCollection &customizedHeaders={}, uint64_t expirationInSeconds=0, const char *signerName=Aws::Auth::SIGV4_SIGNER, const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={})
AWS_CORE_API const char SIGV4_SIGNER[]
AWS_CORE_API const char NULL_SIGNER[]
Utils::Outcome< std::shared_ptr< Aws::Http::HttpResponse >, AWSError< CoreErrors > > HttpResponseOutcome
AWS_CORE_API Aws::String GetAuthorizationHeader(const Aws::Http::HttpRequest &httpRequest)
Utils::Outcome< AmazonWebServiceResult< Utils::Stream::ResponseStream >, AWSError< CoreErrors > > StreamOutcome
Aws::MultiMap< Aws::String, Aws::String > QueryStringParameterCollection
Aws::Map< Aws::String, Aws::String > HeaderValueCollection
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector