AWS SDK for C++

AWS SDK for C++ Version 1.11.606

Loading...
Searching...
No Matches
AwsLegacyClient.h
1
5#pragma once
6
7#include <aws/core/AmazonWebServiceRequest.h>
8#include <aws/core/endpoint/AWSEndpoint.h>
9
10namespace smithy {
11namespace client
12{
13 /*
14 This Class exists only to provide a way to access the legacy client APIs
15 */
16 template<const char* ServiceNameT,
17 typename ResponseT,
18 typename DerivedT>
20 {
21 protected:
22 ResponseT MakeRequest(const Aws::Http::URI& uri,
23 const Aws::AmazonWebServiceRequest& request,
25 const char* signerName = Aws::Auth::SIGV4_SIGNER,
26 const char* signerRegionOverride = nullptr,
27 const char* signerServiceNameOverride = nullptr) const
28 {
29 AWS_UNREFERENCED_PARAM(uri);
30 AWS_UNREFERENCED_PARAM(signerName);
31 AWS_UNREFERENCED_PARAM(signerRegionOverride);
32 AWS_UNREFERENCED_PARAM(signerServiceNameOverride);
33 AWS_LOGSTREAM_WARN(ServiceNameT, "Using Deprecated API. Please use appropriate client constructor");
34 auto endpointCallback = [](const Aws::Endpoint::AWSEndpoint& ) {
35 };
36 return static_cast<const DerivedT*>(this)->MakeRequestDeserialize(&request,
37 ServiceNameT,
38 method,
39 std::move(endpointCallback));
40 }
41
42 ResponseT MakeRequest(const Aws::Http::URI& uri,
44 const char* signerName = Aws::Auth::SIGV4_SIGNER,
45 const char* requestName = "",
46 const char* signerRegionOverride = nullptr,
47 const char* signerServiceNameOverride = nullptr) const
48 {
49 AWS_UNREFERENCED_PARAM(uri);
50 AWS_UNREFERENCED_PARAM(signerName);
51 AWS_UNREFERENCED_PARAM(signerRegionOverride);
52 AWS_UNREFERENCED_PARAM(signerServiceNameOverride);
53 AWS_LOGSTREAM_WARN(ServiceNameT, "Using Deprecated API. Please use appropriate client constructor");
54 auto endpointCallback = [](const Aws::Endpoint::AWSEndpoint& ) {
55 };
56 return static_cast<const DerivedT*>(this)->MakeRequestDeserialize(nullptr,
57 requestName,
58 method,
59 std::move(endpointCallback));
60 }
61
62 ResponseT MakeRequest(const Aws::AmazonWebServiceRequest& request,
63 const Aws::Endpoint::AWSEndpoint& endpoint,
65 const char* signerName = Aws::Auth::SIGV4_SIGNER,
66 const char* signerRegionOverride = nullptr,
67 const char* signerServiceNameOverride = nullptr) const
68 {
69 AWS_UNREFERENCED_PARAM(endpoint);
70 AWS_UNREFERENCED_PARAM(signerName);
71 AWS_UNREFERENCED_PARAM(signerRegionOverride);
72 AWS_UNREFERENCED_PARAM(signerServiceNameOverride);
73 AWS_LOGSTREAM_WARN(ServiceNameT, "Using Deprecated API. Please use appropriate client constructor");
74 auto endpointCallback = [](const Aws::Endpoint::AWSEndpoint& ) {
75 };
76 return static_cast<const DerivedT*>(this)->MakeRequestDeserialize(&request,
77 ServiceNameT,
78 method,
79 std::move(endpointCallback));
80 }
81
82 ResponseT MakeRequest(const Aws::Endpoint::AWSEndpoint& endpoint,
83 const char* requestName = "",
85 const char* signerName = Aws::Auth::SIGV4_SIGNER,
86 const char* signerRegionOverride = nullptr,
87 const char* signerServiceNameOverride = nullptr) const
88 {
89 AWS_UNREFERENCED_PARAM(endpoint);
90 AWS_UNREFERENCED_PARAM(signerName);
91 AWS_UNREFERENCED_PARAM(signerRegionOverride);
92 AWS_UNREFERENCED_PARAM(signerServiceNameOverride);
93 AWS_LOGSTREAM_WARN(ServiceNameT, "Using Deprecated API. Please use appropriate client constructor");
94 auto endpointCallback = [](const Aws::Endpoint::AWSEndpoint& ) {
95 };
96 return static_cast<const DerivedT*>(this)->MakeRequestDeserialize(nullptr,
97 requestName,
98 method,
99 std::move(endpointCallback));
100 }
101
102 AwsLegacyClientT() = default;
103
104 Aws::String GeneratePresignedUrl(const Aws::Http::URI& uri, Aws::Http::HttpMethod method, long long expirationInSeconds = 0, const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {})
105 {
107 uri,
108 method,
109 {},
110 {},
111 expirationInSeconds,
112 {},
113 serviceSpecificParameter
114 );
115 }
116
117 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 = {})
118 {
120 uri,
121 method,
122 {},
123 {},
124 expirationInSeconds,
125 customizedHeaders,
126 serviceSpecificParameter);
127 }
128
129 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
130 {
132 uri,
133 method,
134 region ? region : Aws::String{},
135 {},
136 expirationInSeconds,
137 {},
138 serviceSpecificParameter);
139 }
140
141 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 = {})
142 {
144 uri,
145 method,
146 region ? region : Aws::String{},
147 {},
148 expirationInSeconds,
149 customizedHeaders,
150 serviceSpecificParameter);
151 }
152
153 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
154 {
156 uri,
157 method,
158 region ? region : Aws::String{},
159 serviceName ? serviceName : Aws::String{},
160 expirationInSeconds,
161 {},
162 serviceSpecificParameter);
163 }
164
165 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 = {})
166 {
168 uri,
169 method,
170 region ? region : Aws::String{},
171 serviceName ? serviceName : Aws::String{},
172 expirationInSeconds,
173 customizedHeaders,
174 serviceSpecificParameter);
175 }
176
177 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
178 {
179 AWS_UNREFERENCED_PARAM(signerName);
181 uri,
182 method,
183 region ? region : Aws::String{},
184 serviceName ? serviceName : Aws::String{},
185 expirationInSeconds,
186 {},
187 serviceSpecificParameter);
188 }
189
190 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 = {})
191 {
192 AWS_UNREFERENCED_PARAM(signerName);
194 uri,
195 method,
196 region ? region : Aws::String{},
197 serviceName ? serviceName : Aws::String{},
198 expirationInSeconds,
199 customizedHeaders,
200 serviceSpecificParameter);
201 }
202
205 const Aws::Http::HeaderValueCollection& customizedHeaders = {},
206 uint64_t expirationInSeconds = 0,
207 const char* signerName = Aws::Auth::SIGV4_SIGNER,
208 const char* signerRegionOverride = nullptr,
209 const char* signerServiceNameOverride = nullptr,
210 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {})
211 {
212 AWS_UNREFERENCED_PARAM(signerName);
214 endpoint,
215 method,
216 signerRegionOverride ? signerRegionOverride : Aws::String{},
217 signerServiceNameOverride ? signerServiceNameOverride : Aws::String{},
218 expirationInSeconds,
219 customizedHeaders,
220 serviceSpecificParameter);
221 }
222
224 const Aws::Http::QueryStringParameterCollection& extraParams = Aws::Http::QueryStringParameterCollection(), long long expirationInSeconds = 0,
225 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {})
226 {
228 request,
229 uri,
230 method,
231 Aws::String{},
232 Aws::String{},
233 extraParams,
234 expirationInSeconds,
235 serviceSpecificParameter);
236 }
237
238 Aws::String GeneratePresignedUrl(const Aws::AmazonWebServiceRequest& request, const Aws::Http::URI& uri, Aws::Http::HttpMethod method, const char* region, const char* serviceName,
239 const char* signerName, const Aws::Http::QueryStringParameterCollection& extraParams = Aws::Http::QueryStringParameterCollection(), long long expirationInSeconds = 0,
240 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {}) const
241 {
242 AWS_UNREFERENCED_PARAM(signerName);
244 request,
245 uri,
246 method,
247 region ? region : Aws::String{},
248 serviceName ? serviceName : Aws::String{},
249 extraParams,
250 expirationInSeconds,
251 serviceSpecificParameter);
252 }
253
254 Aws::String GeneratePresignedUrl(const Aws::AmazonWebServiceRequest& request, const Aws::Http::URI& uri, Aws::Http::HttpMethod method, const char* region, const char* serviceName,
255 const Aws::Http::QueryStringParameterCollection& extraParams = Aws::Http::QueryStringParameterCollection(), long long expirationInSeconds = 0,
256 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {}) const
257 {
259 request,
260 uri,
261 method,
262 region ? region : Aws::String{},
263 serviceName ? serviceName : Aws::String{},
264 extraParams,
265 expirationInSeconds,
266 serviceSpecificParameter);
267 }
268
270 const Aws::Http::QueryStringParameterCollection& extraParams = Aws::Http::QueryStringParameterCollection(), long long expirationInSeconds = 0,
271 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameter = {}) const
272 {
274 request,
275 uri,
276 method,
277 region ? region : Aws::String{},
278 Aws::String{},
279 extraParams,
280 expirationInSeconds,
281 serviceSpecificParameter);
282 }
283
284
286 const Aws::AmazonWebServiceRequest& request,
287 const Aws::Http::URI& uri,
289 const Aws::String& region,
290 const Aws::String& serviceName,
292 long long expirationInSeconds,
293 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameters) const
294 {
295 typename DerivedT::ExtractUriCallback getUriCallback = [&](Aws::Http::URI& uriCopy,Aws::String& ,
296 Aws::String& , const AuthSchemeOption&){
297 uriCopy = uri;
298 request.PutToPresignedUrl(uriCopy);
299 return true;
300 };
301
302 typename DerivedT::CreateHttpRequestCallback createHttpRequestCallback = [&extraParams,&serviceSpecificParameters](const Aws::Http::URI& uri, const Aws::Http::HttpMethod& method) -> std::shared_ptr<Aws::Http::HttpRequest> {
303 std::shared_ptr<Aws::Http::HttpRequest> httpRequest = CreateHttpRequest(uri, method, Aws::Utils::Stream::DefaultResponseStreamFactoryMethod);
304 for (auto& param : extraParams)
305 {
306 httpRequest->AddQueryStringParameter(param.first.c_str(), param.second);
307 }
308 httpRequest->SetServiceSpecificParameters(serviceSpecificParameters);
309
310 return httpRequest;
311 };
312
313 return static_cast<const DerivedT*>(this)->GeneratePresignedUrl(
314 std::move(getUriCallback),
315 std::move(createHttpRequestCallback),
316 method,
317 region,
318 serviceName,
319 expirationInSeconds);
320 }
321 private:
324 const Aws::String& region,
325 const Aws::String& serviceName,
326 long long expirationInSeconds,
327 const Aws::Http::HeaderValueCollection& customizedHeaders,
328 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameters) const
329 {
330
331 typename DerivedT::ExtractUriCallback getUriCallback = [&](Aws::Http::URI& uriCopy,Aws::String& ,Aws::String& , const AuthSchemeOption&){
332 uriCopy = uri;
333 return true;
334 };
335
336 typename DerivedT::CreateHttpRequestCallback createHttpRequestCallback = [&customizedHeaders, &serviceSpecificParameters](const Aws::Http::URI& uri, const Aws::Http::HttpMethod& method) -> std::shared_ptr<Aws::Http::HttpRequest> {
337 std::shared_ptr<Aws::Http::HttpRequest> request = CreateHttpRequest(uri, method, Aws::Utils::Stream::DefaultResponseStreamFactoryMethod);
338 if(serviceSpecificParameters)
339 {
340 request->SetServiceSpecificParameters(serviceSpecificParameters);
341 }
342 for (const auto& it: customizedHeaders)
343 {
344 request->SetHeaderValue(it.first.c_str(), it.second);
345 }
346 return request;
347 };
348
349 return static_cast<const DerivedT*>(this)->GeneratePresignedUrl(
350 std::move(getUriCallback),
351 std::move(createHttpRequestCallback),
352 method,
353 region,
354 serviceName,
355 expirationInSeconds);
356
357 }
358
359
362 const Aws::String& region,
363 const Aws::String& serviceName,
364 long long expirationInSeconds,
365 const Aws::Http::HeaderValueCollection& customizedHeaders,
366 const std::shared_ptr<Aws::Http::ServiceSpecificParameters> serviceSpecificParameters) const
367 {
368
369 typename DerivedT::ExtractUriCallback getUriCallback = [&](Aws::Http::URI& uriCopy,Aws::String& signerRegionOverride,Aws::String& signerServiceNameOverride, const AuthSchemeOption&) -> bool {
370 uriCopy = endpoint.GetURI();
371 signerRegionOverride = region;
372 signerServiceNameOverride = serviceName;
373 // signer name is needed for some identity resolvers
374 if (endpoint.GetAttributes()) {
375 if (endpoint.GetAttributes()->authScheme.GetSigningRegion()) {
376 signerRegionOverride = endpoint.GetAttributes()->authScheme.GetSigningRegion()->c_str();
377 }
378 if (endpoint.GetAttributes()->authScheme.GetSigningRegionSet()) {
379 signerRegionOverride = endpoint.GetAttributes()->authScheme.GetSigningRegionSet()->c_str();
380 }
381 if (endpoint.GetAttributes()->authScheme.GetSigningName()) {
382 signerServiceNameOverride = endpoint.GetAttributes()->authScheme.GetSigningName()->c_str();
383 }
384 }
385 return true;
386 };
387
388 typename DerivedT::CreateHttpRequestCallback createHttpRequestCallback = [&customizedHeaders, &serviceSpecificParameters](const Aws::Http::URI& uri, const Aws::Http::HttpMethod& method) -> std::shared_ptr<Aws::Http::HttpRequest> {
389 std::shared_ptr<Aws::Http::HttpRequest> request = CreateHttpRequest(uri, method, Aws::Utils::Stream::DefaultResponseStreamFactoryMethod);
390 request->SetServiceSpecificParameters(serviceSpecificParameters);
391 for (const auto& it: customizedHeaders)
392 {
393 request->SetHeaderValue(it.first.c_str(), it.second);
394 }
395 return request;
396 };
397
398 return static_cast<const DerivedT*>(this)->GeneratePresignedUrl(
399 std::move(getUriCallback),
400 std::move(createHttpRequestCallback),
401 method,
402 region,
403 serviceName,
404 expirationInSeconds);
405 }
406
407 };
408
409} // namespace client
410} // namespace smithy
virtual void PutToPresignedUrl(Aws::Http::URI &uri) const
const Aws::Http::URI & GetURI() const
const Crt::Optional< EndpointAttributes > & GetAttributes() 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={})
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
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::Http::URI &uri, Aws::Http::HttpMethod method, 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 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::Http::URI &uri, Aws::Http::HttpMethod method, 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 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::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
ResponseT MakeRequest(const Aws::Endpoint::AWSEndpoint &endpoint, const char *requestName="", Aws::Http::HttpMethod method=Aws::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 Aws::Http::HeaderValueCollection &customizedHeaders, long long expirationInSeconds=0, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameter={})
ResponseT MakeRequest(const Aws::Http::URI &uri, Aws::Http::HttpMethod method=Aws::Http::HttpMethod::HTTP_POST, const char *signerName=Aws::Auth::SIGV4_SIGNER, const char *requestName="", const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
Aws::String GeneratePresignedUrl(const Aws::Endpoint::AWSEndpoint &endpoint, Aws::Http::HttpMethod method=Aws::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::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
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
ResponseT MakeRequest(const Aws::Http::URI &uri, const Aws::AmazonWebServiceRequest &request, Aws::Http::HttpMethod method=Aws::Http::HttpMethod::HTTP_POST, const char *signerName=Aws::Auth::SIGV4_SIGNER, const char *signerRegionOverride=nullptr, const char *signerServiceNameOverride=nullptr) const
ResponseT MakeRequest(const Aws::AmazonWebServiceRequest &request, const Aws::Endpoint::AWSEndpoint &endpoint, Aws::Http::HttpMethod method=Aws::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::AmazonWebServiceRequest &request, const Aws::Http::URI &uri, Aws::Http::HttpMethod method, const Aws::String &region, const Aws::String &serviceName, const Aws::Http::QueryStringParameterCollection &extraParams, long long expirationInSeconds, const std::shared_ptr< Aws::Http::ServiceSpecificParameters > serviceSpecificParameters) 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_CORE_API const char SIGV4_SIGNER[]
Definition AWSClient.h:57
Aws::MultiMap< Aws::String, Aws::String > QueryStringParameterCollection
Definition URI.h:32
AWS_CORE_API std::shared_ptr< HttpRequest > CreateHttpRequest(const Aws::String &uri, HttpMethod method, const Aws::IOStreamFactory &streamFactory)
Aws::Map< Aws::String, Aws::String > HeaderValueCollection
Definition HttpTypes.h:56
AWS_CORE_API Aws::IOStream * DefaultResponseStreamFactoryMethod()
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition AWSString.h:97