1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/core/utils/Outcome.h>
7 #include <aws/core/auth/AWSAuthSigner.h>
8 #include <aws/core/client/CoreErrors.h>
9 #include <aws/core/client/RetryStrategy.h>
10 #include <aws/core/http/HttpClient.h>
11 #include <aws/core/http/HttpResponse.h>
12 #include <aws/core/http/HttpClientFactory.h>
13 #include <aws/core/auth/AWSCredentialsProviderChain.h>
14 #include <aws/core/utils/json/JsonSerializer.h>
15 #include <aws/core/utils/memory/stl/AWSStringStream.h>
16 #include <aws/core/utils/threading/Executor.h>
17 #include <aws/core/utils/DNS.h>
18 #include <aws/core/utils/logging/LogMacros.h>
19 
20 #include <aws/lakeformation/LakeFormationClient.h>
21 #include <aws/lakeformation/LakeFormationEndpoint.h>
22 #include <aws/lakeformation/LakeFormationErrorMarshaller.h>
23 #include <aws/lakeformation/model/AddLFTagsToResourceRequest.h>
24 #include <aws/lakeformation/model/BatchGrantPermissionsRequest.h>
25 #include <aws/lakeformation/model/BatchRevokePermissionsRequest.h>
26 #include <aws/lakeformation/model/CreateLFTagRequest.h>
27 #include <aws/lakeformation/model/DeleteLFTagRequest.h>
28 #include <aws/lakeformation/model/DeregisterResourceRequest.h>
29 #include <aws/lakeformation/model/DescribeResourceRequest.h>
30 #include <aws/lakeformation/model/GetDataLakeSettingsRequest.h>
31 #include <aws/lakeformation/model/GetEffectivePermissionsForPathRequest.h>
32 #include <aws/lakeformation/model/GetLFTagRequest.h>
33 #include <aws/lakeformation/model/GetResourceLFTagsRequest.h>
34 #include <aws/lakeformation/model/GrantPermissionsRequest.h>
35 #include <aws/lakeformation/model/ListLFTagsRequest.h>
36 #include <aws/lakeformation/model/ListPermissionsRequest.h>
37 #include <aws/lakeformation/model/ListResourcesRequest.h>
38 #include <aws/lakeformation/model/PutDataLakeSettingsRequest.h>
39 #include <aws/lakeformation/model/RegisterResourceRequest.h>
40 #include <aws/lakeformation/model/RemoveLFTagsFromResourceRequest.h>
41 #include <aws/lakeformation/model/RevokePermissionsRequest.h>
42 #include <aws/lakeformation/model/SearchDatabasesByLFTagsRequest.h>
43 #include <aws/lakeformation/model/SearchTablesByLFTagsRequest.h>
44 #include <aws/lakeformation/model/UpdateLFTagRequest.h>
45 #include <aws/lakeformation/model/UpdateResourceRequest.h>
46 
47 using namespace Aws;
48 using namespace Aws::Auth;
49 using namespace Aws::Client;
50 using namespace Aws::LakeFormation;
51 using namespace Aws::LakeFormation::Model;
52 using namespace Aws::Http;
53 using namespace Aws::Utils::Json;
54 
55 static const char* SERVICE_NAME = "lakeformation";
56 static const char* ALLOCATION_TAG = "LakeFormationClient";
57 
58 
LakeFormationClient(const Client::ClientConfiguration & clientConfiguration)59 LakeFormationClient::LakeFormationClient(const Client::ClientConfiguration& clientConfiguration) :
60   BASECLASS(clientConfiguration,
61     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG),
62         SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
63     Aws::MakeShared<LakeFormationErrorMarshaller>(ALLOCATION_TAG)),
64     m_executor(clientConfiguration.executor)
65 {
66   init(clientConfiguration);
67 }
68 
LakeFormationClient(const AWSCredentials & credentials,const Client::ClientConfiguration & clientConfiguration)69 LakeFormationClient::LakeFormationClient(const AWSCredentials& credentials, const Client::ClientConfiguration& clientConfiguration) :
70   BASECLASS(clientConfiguration,
71     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials),
72          SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
73     Aws::MakeShared<LakeFormationErrorMarshaller>(ALLOCATION_TAG)),
74     m_executor(clientConfiguration.executor)
75 {
76   init(clientConfiguration);
77 }
78 
LakeFormationClient(const std::shared_ptr<AWSCredentialsProvider> & credentialsProvider,const Client::ClientConfiguration & clientConfiguration)79 LakeFormationClient::LakeFormationClient(const std::shared_ptr<AWSCredentialsProvider>& credentialsProvider,
80   const Client::ClientConfiguration& clientConfiguration) :
81   BASECLASS(clientConfiguration,
82     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, credentialsProvider,
83          SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
84     Aws::MakeShared<LakeFormationErrorMarshaller>(ALLOCATION_TAG)),
85     m_executor(clientConfiguration.executor)
86 {
87   init(clientConfiguration);
88 }
89 
~LakeFormationClient()90 LakeFormationClient::~LakeFormationClient()
91 {
92 }
93 
init(const Client::ClientConfiguration & config)94 void LakeFormationClient::init(const Client::ClientConfiguration& config)
95 {
96   SetServiceClientName("LakeFormation");
97   m_configScheme = SchemeMapper::ToString(config.scheme);
98   if (config.endpointOverride.empty())
99   {
100       m_uri = m_configScheme + "://" + LakeFormationEndpoint::ForRegion(config.region, config.useDualStack);
101   }
102   else
103   {
104       OverrideEndpoint(config.endpointOverride);
105   }
106 }
107 
OverrideEndpoint(const Aws::String & endpoint)108 void LakeFormationClient::OverrideEndpoint(const Aws::String& endpoint)
109 {
110   if (endpoint.compare(0, 7, "http://") == 0 || endpoint.compare(0, 8, "https://") == 0)
111   {
112       m_uri = endpoint;
113   }
114   else
115   {
116       m_uri = m_configScheme + "://" + endpoint;
117   }
118 }
119 
AddLFTagsToResource(const AddLFTagsToResourceRequest & request) const120 AddLFTagsToResourceOutcome LakeFormationClient::AddLFTagsToResource(const AddLFTagsToResourceRequest& request) const
121 {
122   Aws::Http::URI uri = m_uri;
123   return AddLFTagsToResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
124 }
125 
AddLFTagsToResourceCallable(const AddLFTagsToResourceRequest & request) const126 AddLFTagsToResourceOutcomeCallable LakeFormationClient::AddLFTagsToResourceCallable(const AddLFTagsToResourceRequest& request) const
127 {
128   auto task = Aws::MakeShared< std::packaged_task< AddLFTagsToResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->AddLFTagsToResource(request); } );
129   auto packagedFunction = [task]() { (*task)(); };
130   m_executor->Submit(packagedFunction);
131   return task->get_future();
132 }
133 
AddLFTagsToResourceAsync(const AddLFTagsToResourceRequest & request,const AddLFTagsToResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const134 void LakeFormationClient::AddLFTagsToResourceAsync(const AddLFTagsToResourceRequest& request, const AddLFTagsToResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
135 {
136   m_executor->Submit( [this, request, handler, context](){ this->AddLFTagsToResourceAsyncHelper( request, handler, context ); } );
137 }
138 
AddLFTagsToResourceAsyncHelper(const AddLFTagsToResourceRequest & request,const AddLFTagsToResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const139 void LakeFormationClient::AddLFTagsToResourceAsyncHelper(const AddLFTagsToResourceRequest& request, const AddLFTagsToResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
140 {
141   handler(this, request, AddLFTagsToResource(request), context);
142 }
143 
BatchGrantPermissions(const BatchGrantPermissionsRequest & request) const144 BatchGrantPermissionsOutcome LakeFormationClient::BatchGrantPermissions(const BatchGrantPermissionsRequest& request) const
145 {
146   Aws::Http::URI uri = m_uri;
147   return BatchGrantPermissionsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
148 }
149 
BatchGrantPermissionsCallable(const BatchGrantPermissionsRequest & request) const150 BatchGrantPermissionsOutcomeCallable LakeFormationClient::BatchGrantPermissionsCallable(const BatchGrantPermissionsRequest& request) const
151 {
152   auto task = Aws::MakeShared< std::packaged_task< BatchGrantPermissionsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->BatchGrantPermissions(request); } );
153   auto packagedFunction = [task]() { (*task)(); };
154   m_executor->Submit(packagedFunction);
155   return task->get_future();
156 }
157 
BatchGrantPermissionsAsync(const BatchGrantPermissionsRequest & request,const BatchGrantPermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const158 void LakeFormationClient::BatchGrantPermissionsAsync(const BatchGrantPermissionsRequest& request, const BatchGrantPermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
159 {
160   m_executor->Submit( [this, request, handler, context](){ this->BatchGrantPermissionsAsyncHelper( request, handler, context ); } );
161 }
162 
BatchGrantPermissionsAsyncHelper(const BatchGrantPermissionsRequest & request,const BatchGrantPermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const163 void LakeFormationClient::BatchGrantPermissionsAsyncHelper(const BatchGrantPermissionsRequest& request, const BatchGrantPermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
164 {
165   handler(this, request, BatchGrantPermissions(request), context);
166 }
167 
BatchRevokePermissions(const BatchRevokePermissionsRequest & request) const168 BatchRevokePermissionsOutcome LakeFormationClient::BatchRevokePermissions(const BatchRevokePermissionsRequest& request) const
169 {
170   Aws::Http::URI uri = m_uri;
171   return BatchRevokePermissionsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
172 }
173 
BatchRevokePermissionsCallable(const BatchRevokePermissionsRequest & request) const174 BatchRevokePermissionsOutcomeCallable LakeFormationClient::BatchRevokePermissionsCallable(const BatchRevokePermissionsRequest& request) const
175 {
176   auto task = Aws::MakeShared< std::packaged_task< BatchRevokePermissionsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->BatchRevokePermissions(request); } );
177   auto packagedFunction = [task]() { (*task)(); };
178   m_executor->Submit(packagedFunction);
179   return task->get_future();
180 }
181 
BatchRevokePermissionsAsync(const BatchRevokePermissionsRequest & request,const BatchRevokePermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const182 void LakeFormationClient::BatchRevokePermissionsAsync(const BatchRevokePermissionsRequest& request, const BatchRevokePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
183 {
184   m_executor->Submit( [this, request, handler, context](){ this->BatchRevokePermissionsAsyncHelper( request, handler, context ); } );
185 }
186 
BatchRevokePermissionsAsyncHelper(const BatchRevokePermissionsRequest & request,const BatchRevokePermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const187 void LakeFormationClient::BatchRevokePermissionsAsyncHelper(const BatchRevokePermissionsRequest& request, const BatchRevokePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
188 {
189   handler(this, request, BatchRevokePermissions(request), context);
190 }
191 
CreateLFTag(const CreateLFTagRequest & request) const192 CreateLFTagOutcome LakeFormationClient::CreateLFTag(const CreateLFTagRequest& request) const
193 {
194   Aws::Http::URI uri = m_uri;
195   return CreateLFTagOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
196 }
197 
CreateLFTagCallable(const CreateLFTagRequest & request) const198 CreateLFTagOutcomeCallable LakeFormationClient::CreateLFTagCallable(const CreateLFTagRequest& request) const
199 {
200   auto task = Aws::MakeShared< std::packaged_task< CreateLFTagOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateLFTag(request); } );
201   auto packagedFunction = [task]() { (*task)(); };
202   m_executor->Submit(packagedFunction);
203   return task->get_future();
204 }
205 
CreateLFTagAsync(const CreateLFTagRequest & request,const CreateLFTagResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const206 void LakeFormationClient::CreateLFTagAsync(const CreateLFTagRequest& request, const CreateLFTagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
207 {
208   m_executor->Submit( [this, request, handler, context](){ this->CreateLFTagAsyncHelper( request, handler, context ); } );
209 }
210 
CreateLFTagAsyncHelper(const CreateLFTagRequest & request,const CreateLFTagResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const211 void LakeFormationClient::CreateLFTagAsyncHelper(const CreateLFTagRequest& request, const CreateLFTagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
212 {
213   handler(this, request, CreateLFTag(request), context);
214 }
215 
DeleteLFTag(const DeleteLFTagRequest & request) const216 DeleteLFTagOutcome LakeFormationClient::DeleteLFTag(const DeleteLFTagRequest& request) const
217 {
218   Aws::Http::URI uri = m_uri;
219   return DeleteLFTagOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
220 }
221 
DeleteLFTagCallable(const DeleteLFTagRequest & request) const222 DeleteLFTagOutcomeCallable LakeFormationClient::DeleteLFTagCallable(const DeleteLFTagRequest& request) const
223 {
224   auto task = Aws::MakeShared< std::packaged_task< DeleteLFTagOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteLFTag(request); } );
225   auto packagedFunction = [task]() { (*task)(); };
226   m_executor->Submit(packagedFunction);
227   return task->get_future();
228 }
229 
DeleteLFTagAsync(const DeleteLFTagRequest & request,const DeleteLFTagResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const230 void LakeFormationClient::DeleteLFTagAsync(const DeleteLFTagRequest& request, const DeleteLFTagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
231 {
232   m_executor->Submit( [this, request, handler, context](){ this->DeleteLFTagAsyncHelper( request, handler, context ); } );
233 }
234 
DeleteLFTagAsyncHelper(const DeleteLFTagRequest & request,const DeleteLFTagResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const235 void LakeFormationClient::DeleteLFTagAsyncHelper(const DeleteLFTagRequest& request, const DeleteLFTagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
236 {
237   handler(this, request, DeleteLFTag(request), context);
238 }
239 
DeregisterResource(const DeregisterResourceRequest & request) const240 DeregisterResourceOutcome LakeFormationClient::DeregisterResource(const DeregisterResourceRequest& request) const
241 {
242   Aws::Http::URI uri = m_uri;
243   return DeregisterResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
244 }
245 
DeregisterResourceCallable(const DeregisterResourceRequest & request) const246 DeregisterResourceOutcomeCallable LakeFormationClient::DeregisterResourceCallable(const DeregisterResourceRequest& request) const
247 {
248   auto task = Aws::MakeShared< std::packaged_task< DeregisterResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeregisterResource(request); } );
249   auto packagedFunction = [task]() { (*task)(); };
250   m_executor->Submit(packagedFunction);
251   return task->get_future();
252 }
253 
DeregisterResourceAsync(const DeregisterResourceRequest & request,const DeregisterResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const254 void LakeFormationClient::DeregisterResourceAsync(const DeregisterResourceRequest& request, const DeregisterResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
255 {
256   m_executor->Submit( [this, request, handler, context](){ this->DeregisterResourceAsyncHelper( request, handler, context ); } );
257 }
258 
DeregisterResourceAsyncHelper(const DeregisterResourceRequest & request,const DeregisterResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const259 void LakeFormationClient::DeregisterResourceAsyncHelper(const DeregisterResourceRequest& request, const DeregisterResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
260 {
261   handler(this, request, DeregisterResource(request), context);
262 }
263 
DescribeResource(const DescribeResourceRequest & request) const264 DescribeResourceOutcome LakeFormationClient::DescribeResource(const DescribeResourceRequest& request) const
265 {
266   Aws::Http::URI uri = m_uri;
267   return DescribeResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
268 }
269 
DescribeResourceCallable(const DescribeResourceRequest & request) const270 DescribeResourceOutcomeCallable LakeFormationClient::DescribeResourceCallable(const DescribeResourceRequest& request) const
271 {
272   auto task = Aws::MakeShared< std::packaged_task< DescribeResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeResource(request); } );
273   auto packagedFunction = [task]() { (*task)(); };
274   m_executor->Submit(packagedFunction);
275   return task->get_future();
276 }
277 
DescribeResourceAsync(const DescribeResourceRequest & request,const DescribeResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const278 void LakeFormationClient::DescribeResourceAsync(const DescribeResourceRequest& request, const DescribeResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
279 {
280   m_executor->Submit( [this, request, handler, context](){ this->DescribeResourceAsyncHelper( request, handler, context ); } );
281 }
282 
DescribeResourceAsyncHelper(const DescribeResourceRequest & request,const DescribeResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const283 void LakeFormationClient::DescribeResourceAsyncHelper(const DescribeResourceRequest& request, const DescribeResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
284 {
285   handler(this, request, DescribeResource(request), context);
286 }
287 
GetDataLakeSettings(const GetDataLakeSettingsRequest & request) const288 GetDataLakeSettingsOutcome LakeFormationClient::GetDataLakeSettings(const GetDataLakeSettingsRequest& request) const
289 {
290   Aws::Http::URI uri = m_uri;
291   return GetDataLakeSettingsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
292 }
293 
GetDataLakeSettingsCallable(const GetDataLakeSettingsRequest & request) const294 GetDataLakeSettingsOutcomeCallable LakeFormationClient::GetDataLakeSettingsCallable(const GetDataLakeSettingsRequest& request) const
295 {
296   auto task = Aws::MakeShared< std::packaged_task< GetDataLakeSettingsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetDataLakeSettings(request); } );
297   auto packagedFunction = [task]() { (*task)(); };
298   m_executor->Submit(packagedFunction);
299   return task->get_future();
300 }
301 
GetDataLakeSettingsAsync(const GetDataLakeSettingsRequest & request,const GetDataLakeSettingsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const302 void LakeFormationClient::GetDataLakeSettingsAsync(const GetDataLakeSettingsRequest& request, const GetDataLakeSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
303 {
304   m_executor->Submit( [this, request, handler, context](){ this->GetDataLakeSettingsAsyncHelper( request, handler, context ); } );
305 }
306 
GetDataLakeSettingsAsyncHelper(const GetDataLakeSettingsRequest & request,const GetDataLakeSettingsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const307 void LakeFormationClient::GetDataLakeSettingsAsyncHelper(const GetDataLakeSettingsRequest& request, const GetDataLakeSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
308 {
309   handler(this, request, GetDataLakeSettings(request), context);
310 }
311 
GetEffectivePermissionsForPath(const GetEffectivePermissionsForPathRequest & request) const312 GetEffectivePermissionsForPathOutcome LakeFormationClient::GetEffectivePermissionsForPath(const GetEffectivePermissionsForPathRequest& request) const
313 {
314   Aws::Http::URI uri = m_uri;
315   return GetEffectivePermissionsForPathOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
316 }
317 
GetEffectivePermissionsForPathCallable(const GetEffectivePermissionsForPathRequest & request) const318 GetEffectivePermissionsForPathOutcomeCallable LakeFormationClient::GetEffectivePermissionsForPathCallable(const GetEffectivePermissionsForPathRequest& request) const
319 {
320   auto task = Aws::MakeShared< std::packaged_task< GetEffectivePermissionsForPathOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetEffectivePermissionsForPath(request); } );
321   auto packagedFunction = [task]() { (*task)(); };
322   m_executor->Submit(packagedFunction);
323   return task->get_future();
324 }
325 
GetEffectivePermissionsForPathAsync(const GetEffectivePermissionsForPathRequest & request,const GetEffectivePermissionsForPathResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const326 void LakeFormationClient::GetEffectivePermissionsForPathAsync(const GetEffectivePermissionsForPathRequest& request, const GetEffectivePermissionsForPathResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
327 {
328   m_executor->Submit( [this, request, handler, context](){ this->GetEffectivePermissionsForPathAsyncHelper( request, handler, context ); } );
329 }
330 
GetEffectivePermissionsForPathAsyncHelper(const GetEffectivePermissionsForPathRequest & request,const GetEffectivePermissionsForPathResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const331 void LakeFormationClient::GetEffectivePermissionsForPathAsyncHelper(const GetEffectivePermissionsForPathRequest& request, const GetEffectivePermissionsForPathResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
332 {
333   handler(this, request, GetEffectivePermissionsForPath(request), context);
334 }
335 
GetLFTag(const GetLFTagRequest & request) const336 GetLFTagOutcome LakeFormationClient::GetLFTag(const GetLFTagRequest& request) const
337 {
338   Aws::Http::URI uri = m_uri;
339   return GetLFTagOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
340 }
341 
GetLFTagCallable(const GetLFTagRequest & request) const342 GetLFTagOutcomeCallable LakeFormationClient::GetLFTagCallable(const GetLFTagRequest& request) const
343 {
344   auto task = Aws::MakeShared< std::packaged_task< GetLFTagOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetLFTag(request); } );
345   auto packagedFunction = [task]() { (*task)(); };
346   m_executor->Submit(packagedFunction);
347   return task->get_future();
348 }
349 
GetLFTagAsync(const GetLFTagRequest & request,const GetLFTagResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const350 void LakeFormationClient::GetLFTagAsync(const GetLFTagRequest& request, const GetLFTagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
351 {
352   m_executor->Submit( [this, request, handler, context](){ this->GetLFTagAsyncHelper( request, handler, context ); } );
353 }
354 
GetLFTagAsyncHelper(const GetLFTagRequest & request,const GetLFTagResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const355 void LakeFormationClient::GetLFTagAsyncHelper(const GetLFTagRequest& request, const GetLFTagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
356 {
357   handler(this, request, GetLFTag(request), context);
358 }
359 
GetResourceLFTags(const GetResourceLFTagsRequest & request) const360 GetResourceLFTagsOutcome LakeFormationClient::GetResourceLFTags(const GetResourceLFTagsRequest& request) const
361 {
362   Aws::Http::URI uri = m_uri;
363   return GetResourceLFTagsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
364 }
365 
GetResourceLFTagsCallable(const GetResourceLFTagsRequest & request) const366 GetResourceLFTagsOutcomeCallable LakeFormationClient::GetResourceLFTagsCallable(const GetResourceLFTagsRequest& request) const
367 {
368   auto task = Aws::MakeShared< std::packaged_task< GetResourceLFTagsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetResourceLFTags(request); } );
369   auto packagedFunction = [task]() { (*task)(); };
370   m_executor->Submit(packagedFunction);
371   return task->get_future();
372 }
373 
GetResourceLFTagsAsync(const GetResourceLFTagsRequest & request,const GetResourceLFTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const374 void LakeFormationClient::GetResourceLFTagsAsync(const GetResourceLFTagsRequest& request, const GetResourceLFTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
375 {
376   m_executor->Submit( [this, request, handler, context](){ this->GetResourceLFTagsAsyncHelper( request, handler, context ); } );
377 }
378 
GetResourceLFTagsAsyncHelper(const GetResourceLFTagsRequest & request,const GetResourceLFTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const379 void LakeFormationClient::GetResourceLFTagsAsyncHelper(const GetResourceLFTagsRequest& request, const GetResourceLFTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
380 {
381   handler(this, request, GetResourceLFTags(request), context);
382 }
383 
GrantPermissions(const GrantPermissionsRequest & request) const384 GrantPermissionsOutcome LakeFormationClient::GrantPermissions(const GrantPermissionsRequest& request) const
385 {
386   Aws::Http::URI uri = m_uri;
387   return GrantPermissionsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
388 }
389 
GrantPermissionsCallable(const GrantPermissionsRequest & request) const390 GrantPermissionsOutcomeCallable LakeFormationClient::GrantPermissionsCallable(const GrantPermissionsRequest& request) const
391 {
392   auto task = Aws::MakeShared< std::packaged_task< GrantPermissionsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GrantPermissions(request); } );
393   auto packagedFunction = [task]() { (*task)(); };
394   m_executor->Submit(packagedFunction);
395   return task->get_future();
396 }
397 
GrantPermissionsAsync(const GrantPermissionsRequest & request,const GrantPermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const398 void LakeFormationClient::GrantPermissionsAsync(const GrantPermissionsRequest& request, const GrantPermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
399 {
400   m_executor->Submit( [this, request, handler, context](){ this->GrantPermissionsAsyncHelper( request, handler, context ); } );
401 }
402 
GrantPermissionsAsyncHelper(const GrantPermissionsRequest & request,const GrantPermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const403 void LakeFormationClient::GrantPermissionsAsyncHelper(const GrantPermissionsRequest& request, const GrantPermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
404 {
405   handler(this, request, GrantPermissions(request), context);
406 }
407 
ListLFTags(const ListLFTagsRequest & request) const408 ListLFTagsOutcome LakeFormationClient::ListLFTags(const ListLFTagsRequest& request) const
409 {
410   Aws::Http::URI uri = m_uri;
411   return ListLFTagsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
412 }
413 
ListLFTagsCallable(const ListLFTagsRequest & request) const414 ListLFTagsOutcomeCallable LakeFormationClient::ListLFTagsCallable(const ListLFTagsRequest& request) const
415 {
416   auto task = Aws::MakeShared< std::packaged_task< ListLFTagsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListLFTags(request); } );
417   auto packagedFunction = [task]() { (*task)(); };
418   m_executor->Submit(packagedFunction);
419   return task->get_future();
420 }
421 
ListLFTagsAsync(const ListLFTagsRequest & request,const ListLFTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const422 void LakeFormationClient::ListLFTagsAsync(const ListLFTagsRequest& request, const ListLFTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
423 {
424   m_executor->Submit( [this, request, handler, context](){ this->ListLFTagsAsyncHelper( request, handler, context ); } );
425 }
426 
ListLFTagsAsyncHelper(const ListLFTagsRequest & request,const ListLFTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const427 void LakeFormationClient::ListLFTagsAsyncHelper(const ListLFTagsRequest& request, const ListLFTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
428 {
429   handler(this, request, ListLFTags(request), context);
430 }
431 
ListPermissions(const ListPermissionsRequest & request) const432 ListPermissionsOutcome LakeFormationClient::ListPermissions(const ListPermissionsRequest& request) const
433 {
434   Aws::Http::URI uri = m_uri;
435   return ListPermissionsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
436 }
437 
ListPermissionsCallable(const ListPermissionsRequest & request) const438 ListPermissionsOutcomeCallable LakeFormationClient::ListPermissionsCallable(const ListPermissionsRequest& request) const
439 {
440   auto task = Aws::MakeShared< std::packaged_task< ListPermissionsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListPermissions(request); } );
441   auto packagedFunction = [task]() { (*task)(); };
442   m_executor->Submit(packagedFunction);
443   return task->get_future();
444 }
445 
ListPermissionsAsync(const ListPermissionsRequest & request,const ListPermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const446 void LakeFormationClient::ListPermissionsAsync(const ListPermissionsRequest& request, const ListPermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
447 {
448   m_executor->Submit( [this, request, handler, context](){ this->ListPermissionsAsyncHelper( request, handler, context ); } );
449 }
450 
ListPermissionsAsyncHelper(const ListPermissionsRequest & request,const ListPermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const451 void LakeFormationClient::ListPermissionsAsyncHelper(const ListPermissionsRequest& request, const ListPermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
452 {
453   handler(this, request, ListPermissions(request), context);
454 }
455 
ListResources(const ListResourcesRequest & request) const456 ListResourcesOutcome LakeFormationClient::ListResources(const ListResourcesRequest& request) const
457 {
458   Aws::Http::URI uri = m_uri;
459   return ListResourcesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
460 }
461 
ListResourcesCallable(const ListResourcesRequest & request) const462 ListResourcesOutcomeCallable LakeFormationClient::ListResourcesCallable(const ListResourcesRequest& request) const
463 {
464   auto task = Aws::MakeShared< std::packaged_task< ListResourcesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListResources(request); } );
465   auto packagedFunction = [task]() { (*task)(); };
466   m_executor->Submit(packagedFunction);
467   return task->get_future();
468 }
469 
ListResourcesAsync(const ListResourcesRequest & request,const ListResourcesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const470 void LakeFormationClient::ListResourcesAsync(const ListResourcesRequest& request, const ListResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
471 {
472   m_executor->Submit( [this, request, handler, context](){ this->ListResourcesAsyncHelper( request, handler, context ); } );
473 }
474 
ListResourcesAsyncHelper(const ListResourcesRequest & request,const ListResourcesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const475 void LakeFormationClient::ListResourcesAsyncHelper(const ListResourcesRequest& request, const ListResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
476 {
477   handler(this, request, ListResources(request), context);
478 }
479 
PutDataLakeSettings(const PutDataLakeSettingsRequest & request) const480 PutDataLakeSettingsOutcome LakeFormationClient::PutDataLakeSettings(const PutDataLakeSettingsRequest& request) const
481 {
482   Aws::Http::URI uri = m_uri;
483   return PutDataLakeSettingsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
484 }
485 
PutDataLakeSettingsCallable(const PutDataLakeSettingsRequest & request) const486 PutDataLakeSettingsOutcomeCallable LakeFormationClient::PutDataLakeSettingsCallable(const PutDataLakeSettingsRequest& request) const
487 {
488   auto task = Aws::MakeShared< std::packaged_task< PutDataLakeSettingsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutDataLakeSettings(request); } );
489   auto packagedFunction = [task]() { (*task)(); };
490   m_executor->Submit(packagedFunction);
491   return task->get_future();
492 }
493 
PutDataLakeSettingsAsync(const PutDataLakeSettingsRequest & request,const PutDataLakeSettingsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const494 void LakeFormationClient::PutDataLakeSettingsAsync(const PutDataLakeSettingsRequest& request, const PutDataLakeSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
495 {
496   m_executor->Submit( [this, request, handler, context](){ this->PutDataLakeSettingsAsyncHelper( request, handler, context ); } );
497 }
498 
PutDataLakeSettingsAsyncHelper(const PutDataLakeSettingsRequest & request,const PutDataLakeSettingsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const499 void LakeFormationClient::PutDataLakeSettingsAsyncHelper(const PutDataLakeSettingsRequest& request, const PutDataLakeSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
500 {
501   handler(this, request, PutDataLakeSettings(request), context);
502 }
503 
RegisterResource(const RegisterResourceRequest & request) const504 RegisterResourceOutcome LakeFormationClient::RegisterResource(const RegisterResourceRequest& request) const
505 {
506   Aws::Http::URI uri = m_uri;
507   return RegisterResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
508 }
509 
RegisterResourceCallable(const RegisterResourceRequest & request) const510 RegisterResourceOutcomeCallable LakeFormationClient::RegisterResourceCallable(const RegisterResourceRequest& request) const
511 {
512   auto task = Aws::MakeShared< std::packaged_task< RegisterResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->RegisterResource(request); } );
513   auto packagedFunction = [task]() { (*task)(); };
514   m_executor->Submit(packagedFunction);
515   return task->get_future();
516 }
517 
RegisterResourceAsync(const RegisterResourceRequest & request,const RegisterResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const518 void LakeFormationClient::RegisterResourceAsync(const RegisterResourceRequest& request, const RegisterResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
519 {
520   m_executor->Submit( [this, request, handler, context](){ this->RegisterResourceAsyncHelper( request, handler, context ); } );
521 }
522 
RegisterResourceAsyncHelper(const RegisterResourceRequest & request,const RegisterResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const523 void LakeFormationClient::RegisterResourceAsyncHelper(const RegisterResourceRequest& request, const RegisterResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
524 {
525   handler(this, request, RegisterResource(request), context);
526 }
527 
RemoveLFTagsFromResource(const RemoveLFTagsFromResourceRequest & request) const528 RemoveLFTagsFromResourceOutcome LakeFormationClient::RemoveLFTagsFromResource(const RemoveLFTagsFromResourceRequest& request) const
529 {
530   Aws::Http::URI uri = m_uri;
531   return RemoveLFTagsFromResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
532 }
533 
RemoveLFTagsFromResourceCallable(const RemoveLFTagsFromResourceRequest & request) const534 RemoveLFTagsFromResourceOutcomeCallable LakeFormationClient::RemoveLFTagsFromResourceCallable(const RemoveLFTagsFromResourceRequest& request) const
535 {
536   auto task = Aws::MakeShared< std::packaged_task< RemoveLFTagsFromResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->RemoveLFTagsFromResource(request); } );
537   auto packagedFunction = [task]() { (*task)(); };
538   m_executor->Submit(packagedFunction);
539   return task->get_future();
540 }
541 
RemoveLFTagsFromResourceAsync(const RemoveLFTagsFromResourceRequest & request,const RemoveLFTagsFromResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const542 void LakeFormationClient::RemoveLFTagsFromResourceAsync(const RemoveLFTagsFromResourceRequest& request, const RemoveLFTagsFromResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
543 {
544   m_executor->Submit( [this, request, handler, context](){ this->RemoveLFTagsFromResourceAsyncHelper( request, handler, context ); } );
545 }
546 
RemoveLFTagsFromResourceAsyncHelper(const RemoveLFTagsFromResourceRequest & request,const RemoveLFTagsFromResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const547 void LakeFormationClient::RemoveLFTagsFromResourceAsyncHelper(const RemoveLFTagsFromResourceRequest& request, const RemoveLFTagsFromResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
548 {
549   handler(this, request, RemoveLFTagsFromResource(request), context);
550 }
551 
RevokePermissions(const RevokePermissionsRequest & request) const552 RevokePermissionsOutcome LakeFormationClient::RevokePermissions(const RevokePermissionsRequest& request) const
553 {
554   Aws::Http::URI uri = m_uri;
555   return RevokePermissionsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
556 }
557 
RevokePermissionsCallable(const RevokePermissionsRequest & request) const558 RevokePermissionsOutcomeCallable LakeFormationClient::RevokePermissionsCallable(const RevokePermissionsRequest& request) const
559 {
560   auto task = Aws::MakeShared< std::packaged_task< RevokePermissionsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->RevokePermissions(request); } );
561   auto packagedFunction = [task]() { (*task)(); };
562   m_executor->Submit(packagedFunction);
563   return task->get_future();
564 }
565 
RevokePermissionsAsync(const RevokePermissionsRequest & request,const RevokePermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const566 void LakeFormationClient::RevokePermissionsAsync(const RevokePermissionsRequest& request, const RevokePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
567 {
568   m_executor->Submit( [this, request, handler, context](){ this->RevokePermissionsAsyncHelper( request, handler, context ); } );
569 }
570 
RevokePermissionsAsyncHelper(const RevokePermissionsRequest & request,const RevokePermissionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const571 void LakeFormationClient::RevokePermissionsAsyncHelper(const RevokePermissionsRequest& request, const RevokePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
572 {
573   handler(this, request, RevokePermissions(request), context);
574 }
575 
SearchDatabasesByLFTags(const SearchDatabasesByLFTagsRequest & request) const576 SearchDatabasesByLFTagsOutcome LakeFormationClient::SearchDatabasesByLFTags(const SearchDatabasesByLFTagsRequest& request) const
577 {
578   Aws::Http::URI uri = m_uri;
579   return SearchDatabasesByLFTagsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
580 }
581 
SearchDatabasesByLFTagsCallable(const SearchDatabasesByLFTagsRequest & request) const582 SearchDatabasesByLFTagsOutcomeCallable LakeFormationClient::SearchDatabasesByLFTagsCallable(const SearchDatabasesByLFTagsRequest& request) const
583 {
584   auto task = Aws::MakeShared< std::packaged_task< SearchDatabasesByLFTagsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->SearchDatabasesByLFTags(request); } );
585   auto packagedFunction = [task]() { (*task)(); };
586   m_executor->Submit(packagedFunction);
587   return task->get_future();
588 }
589 
SearchDatabasesByLFTagsAsync(const SearchDatabasesByLFTagsRequest & request,const SearchDatabasesByLFTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const590 void LakeFormationClient::SearchDatabasesByLFTagsAsync(const SearchDatabasesByLFTagsRequest& request, const SearchDatabasesByLFTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
591 {
592   m_executor->Submit( [this, request, handler, context](){ this->SearchDatabasesByLFTagsAsyncHelper( request, handler, context ); } );
593 }
594 
SearchDatabasesByLFTagsAsyncHelper(const SearchDatabasesByLFTagsRequest & request,const SearchDatabasesByLFTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const595 void LakeFormationClient::SearchDatabasesByLFTagsAsyncHelper(const SearchDatabasesByLFTagsRequest& request, const SearchDatabasesByLFTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
596 {
597   handler(this, request, SearchDatabasesByLFTags(request), context);
598 }
599 
SearchTablesByLFTags(const SearchTablesByLFTagsRequest & request) const600 SearchTablesByLFTagsOutcome LakeFormationClient::SearchTablesByLFTags(const SearchTablesByLFTagsRequest& request) const
601 {
602   Aws::Http::URI uri = m_uri;
603   return SearchTablesByLFTagsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
604 }
605 
SearchTablesByLFTagsCallable(const SearchTablesByLFTagsRequest & request) const606 SearchTablesByLFTagsOutcomeCallable LakeFormationClient::SearchTablesByLFTagsCallable(const SearchTablesByLFTagsRequest& request) const
607 {
608   auto task = Aws::MakeShared< std::packaged_task< SearchTablesByLFTagsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->SearchTablesByLFTags(request); } );
609   auto packagedFunction = [task]() { (*task)(); };
610   m_executor->Submit(packagedFunction);
611   return task->get_future();
612 }
613 
SearchTablesByLFTagsAsync(const SearchTablesByLFTagsRequest & request,const SearchTablesByLFTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const614 void LakeFormationClient::SearchTablesByLFTagsAsync(const SearchTablesByLFTagsRequest& request, const SearchTablesByLFTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
615 {
616   m_executor->Submit( [this, request, handler, context](){ this->SearchTablesByLFTagsAsyncHelper( request, handler, context ); } );
617 }
618 
SearchTablesByLFTagsAsyncHelper(const SearchTablesByLFTagsRequest & request,const SearchTablesByLFTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const619 void LakeFormationClient::SearchTablesByLFTagsAsyncHelper(const SearchTablesByLFTagsRequest& request, const SearchTablesByLFTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
620 {
621   handler(this, request, SearchTablesByLFTags(request), context);
622 }
623 
UpdateLFTag(const UpdateLFTagRequest & request) const624 UpdateLFTagOutcome LakeFormationClient::UpdateLFTag(const UpdateLFTagRequest& request) const
625 {
626   Aws::Http::URI uri = m_uri;
627   return UpdateLFTagOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
628 }
629 
UpdateLFTagCallable(const UpdateLFTagRequest & request) const630 UpdateLFTagOutcomeCallable LakeFormationClient::UpdateLFTagCallable(const UpdateLFTagRequest& request) const
631 {
632   auto task = Aws::MakeShared< std::packaged_task< UpdateLFTagOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateLFTag(request); } );
633   auto packagedFunction = [task]() { (*task)(); };
634   m_executor->Submit(packagedFunction);
635   return task->get_future();
636 }
637 
UpdateLFTagAsync(const UpdateLFTagRequest & request,const UpdateLFTagResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const638 void LakeFormationClient::UpdateLFTagAsync(const UpdateLFTagRequest& request, const UpdateLFTagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
639 {
640   m_executor->Submit( [this, request, handler, context](){ this->UpdateLFTagAsyncHelper( request, handler, context ); } );
641 }
642 
UpdateLFTagAsyncHelper(const UpdateLFTagRequest & request,const UpdateLFTagResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const643 void LakeFormationClient::UpdateLFTagAsyncHelper(const UpdateLFTagRequest& request, const UpdateLFTagResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
644 {
645   handler(this, request, UpdateLFTag(request), context);
646 }
647 
UpdateResource(const UpdateResourceRequest & request) const648 UpdateResourceOutcome LakeFormationClient::UpdateResource(const UpdateResourceRequest& request) const
649 {
650   Aws::Http::URI uri = m_uri;
651   return UpdateResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
652 }
653 
UpdateResourceCallable(const UpdateResourceRequest & request) const654 UpdateResourceOutcomeCallable LakeFormationClient::UpdateResourceCallable(const UpdateResourceRequest& request) const
655 {
656   auto task = Aws::MakeShared< std::packaged_task< UpdateResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateResource(request); } );
657   auto packagedFunction = [task]() { (*task)(); };
658   m_executor->Submit(packagedFunction);
659   return task->get_future();
660 }
661 
UpdateResourceAsync(const UpdateResourceRequest & request,const UpdateResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const662 void LakeFormationClient::UpdateResourceAsync(const UpdateResourceRequest& request, const UpdateResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
663 {
664   m_executor->Submit( [this, request, handler, context](){ this->UpdateResourceAsyncHelper( request, handler, context ); } );
665 }
666 
UpdateResourceAsyncHelper(const UpdateResourceRequest & request,const UpdateResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const667 void LakeFormationClient::UpdateResourceAsyncHelper(const UpdateResourceRequest& request, const UpdateResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
668 {
669   handler(this, request, UpdateResource(request), context);
670 }
671 
672