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/lookoutvision/LookoutforVisionClient.h>
21 #include <aws/lookoutvision/LookoutforVisionEndpoint.h>
22 #include <aws/lookoutvision/LookoutforVisionErrorMarshaller.h>
23 #include <aws/lookoutvision/model/CreateDatasetRequest.h>
24 #include <aws/lookoutvision/model/CreateModelRequest.h>
25 #include <aws/lookoutvision/model/CreateProjectRequest.h>
26 #include <aws/lookoutvision/model/DeleteDatasetRequest.h>
27 #include <aws/lookoutvision/model/DeleteModelRequest.h>
28 #include <aws/lookoutvision/model/DeleteProjectRequest.h>
29 #include <aws/lookoutvision/model/DescribeDatasetRequest.h>
30 #include <aws/lookoutvision/model/DescribeModelRequest.h>
31 #include <aws/lookoutvision/model/DescribeProjectRequest.h>
32 #include <aws/lookoutvision/model/DetectAnomaliesRequest.h>
33 #include <aws/lookoutvision/model/ListDatasetEntriesRequest.h>
34 #include <aws/lookoutvision/model/ListModelsRequest.h>
35 #include <aws/lookoutvision/model/ListProjectsRequest.h>
36 #include <aws/lookoutvision/model/ListTagsForResourceRequest.h>
37 #include <aws/lookoutvision/model/StartModelRequest.h>
38 #include <aws/lookoutvision/model/StopModelRequest.h>
39 #include <aws/lookoutvision/model/TagResourceRequest.h>
40 #include <aws/lookoutvision/model/UntagResourceRequest.h>
41 #include <aws/lookoutvision/model/UpdateDatasetEntriesRequest.h>
42 
43 using namespace Aws;
44 using namespace Aws::Auth;
45 using namespace Aws::Client;
46 using namespace Aws::LookoutforVision;
47 using namespace Aws::LookoutforVision::Model;
48 using namespace Aws::Http;
49 using namespace Aws::Utils::Json;
50 
51 static const char* SERVICE_NAME = "lookoutvision";
52 static const char* ALLOCATION_TAG = "LookoutforVisionClient";
53 
54 
LookoutforVisionClient(const Client::ClientConfiguration & clientConfiguration)55 LookoutforVisionClient::LookoutforVisionClient(const Client::ClientConfiguration& clientConfiguration) :
56   BASECLASS(clientConfiguration,
57     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG),
58         SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
59     Aws::MakeShared<LookoutforVisionErrorMarshaller>(ALLOCATION_TAG)),
60     m_executor(clientConfiguration.executor)
61 {
62   init(clientConfiguration);
63 }
64 
LookoutforVisionClient(const AWSCredentials & credentials,const Client::ClientConfiguration & clientConfiguration)65 LookoutforVisionClient::LookoutforVisionClient(const AWSCredentials& credentials, const Client::ClientConfiguration& clientConfiguration) :
66   BASECLASS(clientConfiguration,
67     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials),
68          SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
69     Aws::MakeShared<LookoutforVisionErrorMarshaller>(ALLOCATION_TAG)),
70     m_executor(clientConfiguration.executor)
71 {
72   init(clientConfiguration);
73 }
74 
LookoutforVisionClient(const std::shared_ptr<AWSCredentialsProvider> & credentialsProvider,const Client::ClientConfiguration & clientConfiguration)75 LookoutforVisionClient::LookoutforVisionClient(const std::shared_ptr<AWSCredentialsProvider>& credentialsProvider,
76   const Client::ClientConfiguration& clientConfiguration) :
77   BASECLASS(clientConfiguration,
78     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, credentialsProvider,
79          SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
80     Aws::MakeShared<LookoutforVisionErrorMarshaller>(ALLOCATION_TAG)),
81     m_executor(clientConfiguration.executor)
82 {
83   init(clientConfiguration);
84 }
85 
~LookoutforVisionClient()86 LookoutforVisionClient::~LookoutforVisionClient()
87 {
88 }
89 
init(const Client::ClientConfiguration & config)90 void LookoutforVisionClient::init(const Client::ClientConfiguration& config)
91 {
92   SetServiceClientName("LookoutVision");
93   m_configScheme = SchemeMapper::ToString(config.scheme);
94   if (config.endpointOverride.empty())
95   {
96       m_uri = m_configScheme + "://" + LookoutforVisionEndpoint::ForRegion(config.region, config.useDualStack);
97   }
98   else
99   {
100       OverrideEndpoint(config.endpointOverride);
101   }
102 }
103 
OverrideEndpoint(const Aws::String & endpoint)104 void LookoutforVisionClient::OverrideEndpoint(const Aws::String& endpoint)
105 {
106   if (endpoint.compare(0, 7, "http://") == 0 || endpoint.compare(0, 8, "https://") == 0)
107   {
108       m_uri = endpoint;
109   }
110   else
111   {
112       m_uri = m_configScheme + "://" + endpoint;
113   }
114 }
115 
CreateDataset(const CreateDatasetRequest & request) const116 CreateDatasetOutcome LookoutforVisionClient::CreateDataset(const CreateDatasetRequest& request) const
117 {
118   if (!request.ProjectNameHasBeenSet())
119   {
120     AWS_LOGSTREAM_ERROR("CreateDataset", "Required field: ProjectName, is not set");
121     return CreateDatasetOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
122   }
123   Aws::Http::URI uri = m_uri;
124   uri.AddPathSegments("/2020-11-20/projects/");
125   uri.AddPathSegment(request.GetProjectName());
126   uri.AddPathSegments("/datasets");
127   return CreateDatasetOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
128 }
129 
CreateDatasetCallable(const CreateDatasetRequest & request) const130 CreateDatasetOutcomeCallable LookoutforVisionClient::CreateDatasetCallable(const CreateDatasetRequest& request) const
131 {
132   auto task = Aws::MakeShared< std::packaged_task< CreateDatasetOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateDataset(request); } );
133   auto packagedFunction = [task]() { (*task)(); };
134   m_executor->Submit(packagedFunction);
135   return task->get_future();
136 }
137 
CreateDatasetAsync(const CreateDatasetRequest & request,const CreateDatasetResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const138 void LookoutforVisionClient::CreateDatasetAsync(const CreateDatasetRequest& request, const CreateDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
139 {
140   m_executor->Submit( [this, request, handler, context](){ this->CreateDatasetAsyncHelper( request, handler, context ); } );
141 }
142 
CreateDatasetAsyncHelper(const CreateDatasetRequest & request,const CreateDatasetResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const143 void LookoutforVisionClient::CreateDatasetAsyncHelper(const CreateDatasetRequest& request, const CreateDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
144 {
145   handler(this, request, CreateDataset(request), context);
146 }
147 
CreateModel(const CreateModelRequest & request) const148 CreateModelOutcome LookoutforVisionClient::CreateModel(const CreateModelRequest& request) const
149 {
150   if (!request.ProjectNameHasBeenSet())
151   {
152     AWS_LOGSTREAM_ERROR("CreateModel", "Required field: ProjectName, is not set");
153     return CreateModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
154   }
155   Aws::Http::URI uri = m_uri;
156   uri.AddPathSegments("/2020-11-20/projects/");
157   uri.AddPathSegment(request.GetProjectName());
158   uri.AddPathSegments("/models");
159   return CreateModelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
160 }
161 
CreateModelCallable(const CreateModelRequest & request) const162 CreateModelOutcomeCallable LookoutforVisionClient::CreateModelCallable(const CreateModelRequest& request) const
163 {
164   auto task = Aws::MakeShared< std::packaged_task< CreateModelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateModel(request); } );
165   auto packagedFunction = [task]() { (*task)(); };
166   m_executor->Submit(packagedFunction);
167   return task->get_future();
168 }
169 
CreateModelAsync(const CreateModelRequest & request,const CreateModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const170 void LookoutforVisionClient::CreateModelAsync(const CreateModelRequest& request, const CreateModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
171 {
172   m_executor->Submit( [this, request, handler, context](){ this->CreateModelAsyncHelper( request, handler, context ); } );
173 }
174 
CreateModelAsyncHelper(const CreateModelRequest & request,const CreateModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const175 void LookoutforVisionClient::CreateModelAsyncHelper(const CreateModelRequest& request, const CreateModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
176 {
177   handler(this, request, CreateModel(request), context);
178 }
179 
CreateProject(const CreateProjectRequest & request) const180 CreateProjectOutcome LookoutforVisionClient::CreateProject(const CreateProjectRequest& request) const
181 {
182   Aws::Http::URI uri = m_uri;
183   uri.AddPathSegments("/2020-11-20/projects");
184   return CreateProjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
185 }
186 
CreateProjectCallable(const CreateProjectRequest & request) const187 CreateProjectOutcomeCallable LookoutforVisionClient::CreateProjectCallable(const CreateProjectRequest& request) const
188 {
189   auto task = Aws::MakeShared< std::packaged_task< CreateProjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateProject(request); } );
190   auto packagedFunction = [task]() { (*task)(); };
191   m_executor->Submit(packagedFunction);
192   return task->get_future();
193 }
194 
CreateProjectAsync(const CreateProjectRequest & request,const CreateProjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const195 void LookoutforVisionClient::CreateProjectAsync(const CreateProjectRequest& request, const CreateProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
196 {
197   m_executor->Submit( [this, request, handler, context](){ this->CreateProjectAsyncHelper( request, handler, context ); } );
198 }
199 
CreateProjectAsyncHelper(const CreateProjectRequest & request,const CreateProjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const200 void LookoutforVisionClient::CreateProjectAsyncHelper(const CreateProjectRequest& request, const CreateProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
201 {
202   handler(this, request, CreateProject(request), context);
203 }
204 
DeleteDataset(const DeleteDatasetRequest & request) const205 DeleteDatasetOutcome LookoutforVisionClient::DeleteDataset(const DeleteDatasetRequest& request) const
206 {
207   if (!request.ProjectNameHasBeenSet())
208   {
209     AWS_LOGSTREAM_ERROR("DeleteDataset", "Required field: ProjectName, is not set");
210     return DeleteDatasetOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
211   }
212   if (!request.DatasetTypeHasBeenSet())
213   {
214     AWS_LOGSTREAM_ERROR("DeleteDataset", "Required field: DatasetType, is not set");
215     return DeleteDatasetOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DatasetType]", false));
216   }
217   Aws::Http::URI uri = m_uri;
218   uri.AddPathSegments("/2020-11-20/projects/");
219   uri.AddPathSegment(request.GetProjectName());
220   uri.AddPathSegments("/datasets/");
221   uri.AddPathSegment(request.GetDatasetType());
222   return DeleteDatasetOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
223 }
224 
DeleteDatasetCallable(const DeleteDatasetRequest & request) const225 DeleteDatasetOutcomeCallable LookoutforVisionClient::DeleteDatasetCallable(const DeleteDatasetRequest& request) const
226 {
227   auto task = Aws::MakeShared< std::packaged_task< DeleteDatasetOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteDataset(request); } );
228   auto packagedFunction = [task]() { (*task)(); };
229   m_executor->Submit(packagedFunction);
230   return task->get_future();
231 }
232 
DeleteDatasetAsync(const DeleteDatasetRequest & request,const DeleteDatasetResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const233 void LookoutforVisionClient::DeleteDatasetAsync(const DeleteDatasetRequest& request, const DeleteDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
234 {
235   m_executor->Submit( [this, request, handler, context](){ this->DeleteDatasetAsyncHelper( request, handler, context ); } );
236 }
237 
DeleteDatasetAsyncHelper(const DeleteDatasetRequest & request,const DeleteDatasetResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const238 void LookoutforVisionClient::DeleteDatasetAsyncHelper(const DeleteDatasetRequest& request, const DeleteDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
239 {
240   handler(this, request, DeleteDataset(request), context);
241 }
242 
DeleteModel(const DeleteModelRequest & request) const243 DeleteModelOutcome LookoutforVisionClient::DeleteModel(const DeleteModelRequest& request) const
244 {
245   if (!request.ProjectNameHasBeenSet())
246   {
247     AWS_LOGSTREAM_ERROR("DeleteModel", "Required field: ProjectName, is not set");
248     return DeleteModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
249   }
250   if (!request.ModelVersionHasBeenSet())
251   {
252     AWS_LOGSTREAM_ERROR("DeleteModel", "Required field: ModelVersion, is not set");
253     return DeleteModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ModelVersion]", false));
254   }
255   Aws::Http::URI uri = m_uri;
256   uri.AddPathSegments("/2020-11-20/projects/");
257   uri.AddPathSegment(request.GetProjectName());
258   uri.AddPathSegments("/models/");
259   uri.AddPathSegment(request.GetModelVersion());
260   return DeleteModelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
261 }
262 
DeleteModelCallable(const DeleteModelRequest & request) const263 DeleteModelOutcomeCallable LookoutforVisionClient::DeleteModelCallable(const DeleteModelRequest& request) const
264 {
265   auto task = Aws::MakeShared< std::packaged_task< DeleteModelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteModel(request); } );
266   auto packagedFunction = [task]() { (*task)(); };
267   m_executor->Submit(packagedFunction);
268   return task->get_future();
269 }
270 
DeleteModelAsync(const DeleteModelRequest & request,const DeleteModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const271 void LookoutforVisionClient::DeleteModelAsync(const DeleteModelRequest& request, const DeleteModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
272 {
273   m_executor->Submit( [this, request, handler, context](){ this->DeleteModelAsyncHelper( request, handler, context ); } );
274 }
275 
DeleteModelAsyncHelper(const DeleteModelRequest & request,const DeleteModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const276 void LookoutforVisionClient::DeleteModelAsyncHelper(const DeleteModelRequest& request, const DeleteModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
277 {
278   handler(this, request, DeleteModel(request), context);
279 }
280 
DeleteProject(const DeleteProjectRequest & request) const281 DeleteProjectOutcome LookoutforVisionClient::DeleteProject(const DeleteProjectRequest& request) const
282 {
283   if (!request.ProjectNameHasBeenSet())
284   {
285     AWS_LOGSTREAM_ERROR("DeleteProject", "Required field: ProjectName, is not set");
286     return DeleteProjectOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
287   }
288   Aws::Http::URI uri = m_uri;
289   uri.AddPathSegments("/2020-11-20/projects/");
290   uri.AddPathSegment(request.GetProjectName());
291   return DeleteProjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
292 }
293 
DeleteProjectCallable(const DeleteProjectRequest & request) const294 DeleteProjectOutcomeCallable LookoutforVisionClient::DeleteProjectCallable(const DeleteProjectRequest& request) const
295 {
296   auto task = Aws::MakeShared< std::packaged_task< DeleteProjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteProject(request); } );
297   auto packagedFunction = [task]() { (*task)(); };
298   m_executor->Submit(packagedFunction);
299   return task->get_future();
300 }
301 
DeleteProjectAsync(const DeleteProjectRequest & request,const DeleteProjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const302 void LookoutforVisionClient::DeleteProjectAsync(const DeleteProjectRequest& request, const DeleteProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
303 {
304   m_executor->Submit( [this, request, handler, context](){ this->DeleteProjectAsyncHelper( request, handler, context ); } );
305 }
306 
DeleteProjectAsyncHelper(const DeleteProjectRequest & request,const DeleteProjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const307 void LookoutforVisionClient::DeleteProjectAsyncHelper(const DeleteProjectRequest& request, const DeleteProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
308 {
309   handler(this, request, DeleteProject(request), context);
310 }
311 
DescribeDataset(const DescribeDatasetRequest & request) const312 DescribeDatasetOutcome LookoutforVisionClient::DescribeDataset(const DescribeDatasetRequest& request) const
313 {
314   if (!request.ProjectNameHasBeenSet())
315   {
316     AWS_LOGSTREAM_ERROR("DescribeDataset", "Required field: ProjectName, is not set");
317     return DescribeDatasetOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
318   }
319   if (!request.DatasetTypeHasBeenSet())
320   {
321     AWS_LOGSTREAM_ERROR("DescribeDataset", "Required field: DatasetType, is not set");
322     return DescribeDatasetOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DatasetType]", false));
323   }
324   Aws::Http::URI uri = m_uri;
325   uri.AddPathSegments("/2020-11-20/projects/");
326   uri.AddPathSegment(request.GetProjectName());
327   uri.AddPathSegments("/datasets/");
328   uri.AddPathSegment(request.GetDatasetType());
329   return DescribeDatasetOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
330 }
331 
DescribeDatasetCallable(const DescribeDatasetRequest & request) const332 DescribeDatasetOutcomeCallable LookoutforVisionClient::DescribeDatasetCallable(const DescribeDatasetRequest& request) const
333 {
334   auto task = Aws::MakeShared< std::packaged_task< DescribeDatasetOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeDataset(request); } );
335   auto packagedFunction = [task]() { (*task)(); };
336   m_executor->Submit(packagedFunction);
337   return task->get_future();
338 }
339 
DescribeDatasetAsync(const DescribeDatasetRequest & request,const DescribeDatasetResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const340 void LookoutforVisionClient::DescribeDatasetAsync(const DescribeDatasetRequest& request, const DescribeDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
341 {
342   m_executor->Submit( [this, request, handler, context](){ this->DescribeDatasetAsyncHelper( request, handler, context ); } );
343 }
344 
DescribeDatasetAsyncHelper(const DescribeDatasetRequest & request,const DescribeDatasetResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const345 void LookoutforVisionClient::DescribeDatasetAsyncHelper(const DescribeDatasetRequest& request, const DescribeDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
346 {
347   handler(this, request, DescribeDataset(request), context);
348 }
349 
DescribeModel(const DescribeModelRequest & request) const350 DescribeModelOutcome LookoutforVisionClient::DescribeModel(const DescribeModelRequest& request) const
351 {
352   if (!request.ProjectNameHasBeenSet())
353   {
354     AWS_LOGSTREAM_ERROR("DescribeModel", "Required field: ProjectName, is not set");
355     return DescribeModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
356   }
357   if (!request.ModelVersionHasBeenSet())
358   {
359     AWS_LOGSTREAM_ERROR("DescribeModel", "Required field: ModelVersion, is not set");
360     return DescribeModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ModelVersion]", false));
361   }
362   Aws::Http::URI uri = m_uri;
363   uri.AddPathSegments("/2020-11-20/projects/");
364   uri.AddPathSegment(request.GetProjectName());
365   uri.AddPathSegments("/models/");
366   uri.AddPathSegment(request.GetModelVersion());
367   return DescribeModelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
368 }
369 
DescribeModelCallable(const DescribeModelRequest & request) const370 DescribeModelOutcomeCallable LookoutforVisionClient::DescribeModelCallable(const DescribeModelRequest& request) const
371 {
372   auto task = Aws::MakeShared< std::packaged_task< DescribeModelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeModel(request); } );
373   auto packagedFunction = [task]() { (*task)(); };
374   m_executor->Submit(packagedFunction);
375   return task->get_future();
376 }
377 
DescribeModelAsync(const DescribeModelRequest & request,const DescribeModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const378 void LookoutforVisionClient::DescribeModelAsync(const DescribeModelRequest& request, const DescribeModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
379 {
380   m_executor->Submit( [this, request, handler, context](){ this->DescribeModelAsyncHelper( request, handler, context ); } );
381 }
382 
DescribeModelAsyncHelper(const DescribeModelRequest & request,const DescribeModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const383 void LookoutforVisionClient::DescribeModelAsyncHelper(const DescribeModelRequest& request, const DescribeModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
384 {
385   handler(this, request, DescribeModel(request), context);
386 }
387 
DescribeProject(const DescribeProjectRequest & request) const388 DescribeProjectOutcome LookoutforVisionClient::DescribeProject(const DescribeProjectRequest& request) const
389 {
390   if (!request.ProjectNameHasBeenSet())
391   {
392     AWS_LOGSTREAM_ERROR("DescribeProject", "Required field: ProjectName, is not set");
393     return DescribeProjectOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
394   }
395   Aws::Http::URI uri = m_uri;
396   uri.AddPathSegments("/2020-11-20/projects/");
397   uri.AddPathSegment(request.GetProjectName());
398   return DescribeProjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
399 }
400 
DescribeProjectCallable(const DescribeProjectRequest & request) const401 DescribeProjectOutcomeCallable LookoutforVisionClient::DescribeProjectCallable(const DescribeProjectRequest& request) const
402 {
403   auto task = Aws::MakeShared< std::packaged_task< DescribeProjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeProject(request); } );
404   auto packagedFunction = [task]() { (*task)(); };
405   m_executor->Submit(packagedFunction);
406   return task->get_future();
407 }
408 
DescribeProjectAsync(const DescribeProjectRequest & request,const DescribeProjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const409 void LookoutforVisionClient::DescribeProjectAsync(const DescribeProjectRequest& request, const DescribeProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
410 {
411   m_executor->Submit( [this, request, handler, context](){ this->DescribeProjectAsyncHelper( request, handler, context ); } );
412 }
413 
DescribeProjectAsyncHelper(const DescribeProjectRequest & request,const DescribeProjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const414 void LookoutforVisionClient::DescribeProjectAsyncHelper(const DescribeProjectRequest& request, const DescribeProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
415 {
416   handler(this, request, DescribeProject(request), context);
417 }
418 
DetectAnomalies(const DetectAnomaliesRequest & request) const419 DetectAnomaliesOutcome LookoutforVisionClient::DetectAnomalies(const DetectAnomaliesRequest& request) const
420 {
421   if (!request.ProjectNameHasBeenSet())
422   {
423     AWS_LOGSTREAM_ERROR("DetectAnomalies", "Required field: ProjectName, is not set");
424     return DetectAnomaliesOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
425   }
426   if (!request.ModelVersionHasBeenSet())
427   {
428     AWS_LOGSTREAM_ERROR("DetectAnomalies", "Required field: ModelVersion, is not set");
429     return DetectAnomaliesOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ModelVersion]", false));
430   }
431   Aws::Http::URI uri = m_uri;
432   uri.AddPathSegments("/2020-11-20/projects/");
433   uri.AddPathSegment(request.GetProjectName());
434   uri.AddPathSegments("/models/");
435   uri.AddPathSegment(request.GetModelVersion());
436   uri.AddPathSegments("/detect");
437   return DetectAnomaliesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
438 }
439 
DetectAnomaliesCallable(const DetectAnomaliesRequest & request) const440 DetectAnomaliesOutcomeCallable LookoutforVisionClient::DetectAnomaliesCallable(const DetectAnomaliesRequest& request) const
441 {
442   auto task = Aws::MakeShared< std::packaged_task< DetectAnomaliesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DetectAnomalies(request); } );
443   auto packagedFunction = [task]() { (*task)(); };
444   m_executor->Submit(packagedFunction);
445   return task->get_future();
446 }
447 
DetectAnomaliesAsync(const DetectAnomaliesRequest & request,const DetectAnomaliesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const448 void LookoutforVisionClient::DetectAnomaliesAsync(const DetectAnomaliesRequest& request, const DetectAnomaliesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
449 {
450   m_executor->Submit( [this, request, handler, context](){ this->DetectAnomaliesAsyncHelper( request, handler, context ); } );
451 }
452 
DetectAnomaliesAsyncHelper(const DetectAnomaliesRequest & request,const DetectAnomaliesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const453 void LookoutforVisionClient::DetectAnomaliesAsyncHelper(const DetectAnomaliesRequest& request, const DetectAnomaliesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
454 {
455   handler(this, request, DetectAnomalies(request), context);
456 }
457 
ListDatasetEntries(const ListDatasetEntriesRequest & request) const458 ListDatasetEntriesOutcome LookoutforVisionClient::ListDatasetEntries(const ListDatasetEntriesRequest& request) const
459 {
460   if (!request.ProjectNameHasBeenSet())
461   {
462     AWS_LOGSTREAM_ERROR("ListDatasetEntries", "Required field: ProjectName, is not set");
463     return ListDatasetEntriesOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
464   }
465   if (!request.DatasetTypeHasBeenSet())
466   {
467     AWS_LOGSTREAM_ERROR("ListDatasetEntries", "Required field: DatasetType, is not set");
468     return ListDatasetEntriesOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DatasetType]", false));
469   }
470   Aws::Http::URI uri = m_uri;
471   uri.AddPathSegments("/2020-11-20/projects/");
472   uri.AddPathSegment(request.GetProjectName());
473   uri.AddPathSegments("/datasets/");
474   uri.AddPathSegment(request.GetDatasetType());
475   uri.AddPathSegments("/entries");
476   return ListDatasetEntriesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
477 }
478 
ListDatasetEntriesCallable(const ListDatasetEntriesRequest & request) const479 ListDatasetEntriesOutcomeCallable LookoutforVisionClient::ListDatasetEntriesCallable(const ListDatasetEntriesRequest& request) const
480 {
481   auto task = Aws::MakeShared< std::packaged_task< ListDatasetEntriesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListDatasetEntries(request); } );
482   auto packagedFunction = [task]() { (*task)(); };
483   m_executor->Submit(packagedFunction);
484   return task->get_future();
485 }
486 
ListDatasetEntriesAsync(const ListDatasetEntriesRequest & request,const ListDatasetEntriesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const487 void LookoutforVisionClient::ListDatasetEntriesAsync(const ListDatasetEntriesRequest& request, const ListDatasetEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
488 {
489   m_executor->Submit( [this, request, handler, context](){ this->ListDatasetEntriesAsyncHelper( request, handler, context ); } );
490 }
491 
ListDatasetEntriesAsyncHelper(const ListDatasetEntriesRequest & request,const ListDatasetEntriesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const492 void LookoutforVisionClient::ListDatasetEntriesAsyncHelper(const ListDatasetEntriesRequest& request, const ListDatasetEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
493 {
494   handler(this, request, ListDatasetEntries(request), context);
495 }
496 
ListModels(const ListModelsRequest & request) const497 ListModelsOutcome LookoutforVisionClient::ListModels(const ListModelsRequest& request) const
498 {
499   if (!request.ProjectNameHasBeenSet())
500   {
501     AWS_LOGSTREAM_ERROR("ListModels", "Required field: ProjectName, is not set");
502     return ListModelsOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
503   }
504   Aws::Http::URI uri = m_uri;
505   uri.AddPathSegments("/2020-11-20/projects/");
506   uri.AddPathSegment(request.GetProjectName());
507   uri.AddPathSegments("/models");
508   return ListModelsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
509 }
510 
ListModelsCallable(const ListModelsRequest & request) const511 ListModelsOutcomeCallable LookoutforVisionClient::ListModelsCallable(const ListModelsRequest& request) const
512 {
513   auto task = Aws::MakeShared< std::packaged_task< ListModelsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListModels(request); } );
514   auto packagedFunction = [task]() { (*task)(); };
515   m_executor->Submit(packagedFunction);
516   return task->get_future();
517 }
518 
ListModelsAsync(const ListModelsRequest & request,const ListModelsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const519 void LookoutforVisionClient::ListModelsAsync(const ListModelsRequest& request, const ListModelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
520 {
521   m_executor->Submit( [this, request, handler, context](){ this->ListModelsAsyncHelper( request, handler, context ); } );
522 }
523 
ListModelsAsyncHelper(const ListModelsRequest & request,const ListModelsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const524 void LookoutforVisionClient::ListModelsAsyncHelper(const ListModelsRequest& request, const ListModelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
525 {
526   handler(this, request, ListModels(request), context);
527 }
528 
ListProjects(const ListProjectsRequest & request) const529 ListProjectsOutcome LookoutforVisionClient::ListProjects(const ListProjectsRequest& request) const
530 {
531   Aws::Http::URI uri = m_uri;
532   uri.AddPathSegments("/2020-11-20/projects");
533   return ListProjectsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
534 }
535 
ListProjectsCallable(const ListProjectsRequest & request) const536 ListProjectsOutcomeCallable LookoutforVisionClient::ListProjectsCallable(const ListProjectsRequest& request) const
537 {
538   auto task = Aws::MakeShared< std::packaged_task< ListProjectsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListProjects(request); } );
539   auto packagedFunction = [task]() { (*task)(); };
540   m_executor->Submit(packagedFunction);
541   return task->get_future();
542 }
543 
ListProjectsAsync(const ListProjectsRequest & request,const ListProjectsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const544 void LookoutforVisionClient::ListProjectsAsync(const ListProjectsRequest& request, const ListProjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
545 {
546   m_executor->Submit( [this, request, handler, context](){ this->ListProjectsAsyncHelper( request, handler, context ); } );
547 }
548 
ListProjectsAsyncHelper(const ListProjectsRequest & request,const ListProjectsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const549 void LookoutforVisionClient::ListProjectsAsyncHelper(const ListProjectsRequest& request, const ListProjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
550 {
551   handler(this, request, ListProjects(request), context);
552 }
553 
ListTagsForResource(const ListTagsForResourceRequest & request) const554 ListTagsForResourceOutcome LookoutforVisionClient::ListTagsForResource(const ListTagsForResourceRequest& request) const
555 {
556   if (!request.ResourceArnHasBeenSet())
557   {
558     AWS_LOGSTREAM_ERROR("ListTagsForResource", "Required field: ResourceArn, is not set");
559     return ListTagsForResourceOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
560   }
561   Aws::Http::URI uri = m_uri;
562   uri.AddPathSegments("/2020-11-20/tags/");
563   uri.AddPathSegment(request.GetResourceArn());
564   return ListTagsForResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
565 }
566 
ListTagsForResourceCallable(const ListTagsForResourceRequest & request) const567 ListTagsForResourceOutcomeCallable LookoutforVisionClient::ListTagsForResourceCallable(const ListTagsForResourceRequest& request) const
568 {
569   auto task = Aws::MakeShared< std::packaged_task< ListTagsForResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListTagsForResource(request); } );
570   auto packagedFunction = [task]() { (*task)(); };
571   m_executor->Submit(packagedFunction);
572   return task->get_future();
573 }
574 
ListTagsForResourceAsync(const ListTagsForResourceRequest & request,const ListTagsForResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const575 void LookoutforVisionClient::ListTagsForResourceAsync(const ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
576 {
577   m_executor->Submit( [this, request, handler, context](){ this->ListTagsForResourceAsyncHelper( request, handler, context ); } );
578 }
579 
ListTagsForResourceAsyncHelper(const ListTagsForResourceRequest & request,const ListTagsForResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const580 void LookoutforVisionClient::ListTagsForResourceAsyncHelper(const ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
581 {
582   handler(this, request, ListTagsForResource(request), context);
583 }
584 
StartModel(const StartModelRequest & request) const585 StartModelOutcome LookoutforVisionClient::StartModel(const StartModelRequest& request) const
586 {
587   if (!request.ProjectNameHasBeenSet())
588   {
589     AWS_LOGSTREAM_ERROR("StartModel", "Required field: ProjectName, is not set");
590     return StartModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
591   }
592   if (!request.ModelVersionHasBeenSet())
593   {
594     AWS_LOGSTREAM_ERROR("StartModel", "Required field: ModelVersion, is not set");
595     return StartModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ModelVersion]", false));
596   }
597   Aws::Http::URI uri = m_uri;
598   uri.AddPathSegments("/2020-11-20/projects/");
599   uri.AddPathSegment(request.GetProjectName());
600   uri.AddPathSegments("/models/");
601   uri.AddPathSegment(request.GetModelVersion());
602   uri.AddPathSegments("/start");
603   return StartModelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
604 }
605 
StartModelCallable(const StartModelRequest & request) const606 StartModelOutcomeCallable LookoutforVisionClient::StartModelCallable(const StartModelRequest& request) const
607 {
608   auto task = Aws::MakeShared< std::packaged_task< StartModelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->StartModel(request); } );
609   auto packagedFunction = [task]() { (*task)(); };
610   m_executor->Submit(packagedFunction);
611   return task->get_future();
612 }
613 
StartModelAsync(const StartModelRequest & request,const StartModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const614 void LookoutforVisionClient::StartModelAsync(const StartModelRequest& request, const StartModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
615 {
616   m_executor->Submit( [this, request, handler, context](){ this->StartModelAsyncHelper( request, handler, context ); } );
617 }
618 
StartModelAsyncHelper(const StartModelRequest & request,const StartModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const619 void LookoutforVisionClient::StartModelAsyncHelper(const StartModelRequest& request, const StartModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
620 {
621   handler(this, request, StartModel(request), context);
622 }
623 
StopModel(const StopModelRequest & request) const624 StopModelOutcome LookoutforVisionClient::StopModel(const StopModelRequest& request) const
625 {
626   if (!request.ProjectNameHasBeenSet())
627   {
628     AWS_LOGSTREAM_ERROR("StopModel", "Required field: ProjectName, is not set");
629     return StopModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
630   }
631   if (!request.ModelVersionHasBeenSet())
632   {
633     AWS_LOGSTREAM_ERROR("StopModel", "Required field: ModelVersion, is not set");
634     return StopModelOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ModelVersion]", false));
635   }
636   Aws::Http::URI uri = m_uri;
637   uri.AddPathSegments("/2020-11-20/projects/");
638   uri.AddPathSegment(request.GetProjectName());
639   uri.AddPathSegments("/models/");
640   uri.AddPathSegment(request.GetModelVersion());
641   uri.AddPathSegments("/stop");
642   return StopModelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
643 }
644 
StopModelCallable(const StopModelRequest & request) const645 StopModelOutcomeCallable LookoutforVisionClient::StopModelCallable(const StopModelRequest& request) const
646 {
647   auto task = Aws::MakeShared< std::packaged_task< StopModelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->StopModel(request); } );
648   auto packagedFunction = [task]() { (*task)(); };
649   m_executor->Submit(packagedFunction);
650   return task->get_future();
651 }
652 
StopModelAsync(const StopModelRequest & request,const StopModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const653 void LookoutforVisionClient::StopModelAsync(const StopModelRequest& request, const StopModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
654 {
655   m_executor->Submit( [this, request, handler, context](){ this->StopModelAsyncHelper( request, handler, context ); } );
656 }
657 
StopModelAsyncHelper(const StopModelRequest & request,const StopModelResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const658 void LookoutforVisionClient::StopModelAsyncHelper(const StopModelRequest& request, const StopModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
659 {
660   handler(this, request, StopModel(request), context);
661 }
662 
TagResource(const TagResourceRequest & request) const663 TagResourceOutcome LookoutforVisionClient::TagResource(const TagResourceRequest& request) const
664 {
665   if (!request.ResourceArnHasBeenSet())
666   {
667     AWS_LOGSTREAM_ERROR("TagResource", "Required field: ResourceArn, is not set");
668     return TagResourceOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
669   }
670   Aws::Http::URI uri = m_uri;
671   uri.AddPathSegments("/2020-11-20/tags/");
672   uri.AddPathSegment(request.GetResourceArn());
673   return TagResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
674 }
675 
TagResourceCallable(const TagResourceRequest & request) const676 TagResourceOutcomeCallable LookoutforVisionClient::TagResourceCallable(const TagResourceRequest& request) const
677 {
678   auto task = Aws::MakeShared< std::packaged_task< TagResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->TagResource(request); } );
679   auto packagedFunction = [task]() { (*task)(); };
680   m_executor->Submit(packagedFunction);
681   return task->get_future();
682 }
683 
TagResourceAsync(const TagResourceRequest & request,const TagResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const684 void LookoutforVisionClient::TagResourceAsync(const TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
685 {
686   m_executor->Submit( [this, request, handler, context](){ this->TagResourceAsyncHelper( request, handler, context ); } );
687 }
688 
TagResourceAsyncHelper(const TagResourceRequest & request,const TagResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const689 void LookoutforVisionClient::TagResourceAsyncHelper(const TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
690 {
691   handler(this, request, TagResource(request), context);
692 }
693 
UntagResource(const UntagResourceRequest & request) const694 UntagResourceOutcome LookoutforVisionClient::UntagResource(const UntagResourceRequest& request) const
695 {
696   if (!request.ResourceArnHasBeenSet())
697   {
698     AWS_LOGSTREAM_ERROR("UntagResource", "Required field: ResourceArn, is not set");
699     return UntagResourceOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
700   }
701   if (!request.TagKeysHasBeenSet())
702   {
703     AWS_LOGSTREAM_ERROR("UntagResource", "Required field: TagKeys, is not set");
704     return UntagResourceOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [TagKeys]", false));
705   }
706   Aws::Http::URI uri = m_uri;
707   uri.AddPathSegments("/2020-11-20/tags/");
708   uri.AddPathSegment(request.GetResourceArn());
709   return UntagResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
710 }
711 
UntagResourceCallable(const UntagResourceRequest & request) const712 UntagResourceOutcomeCallable LookoutforVisionClient::UntagResourceCallable(const UntagResourceRequest& request) const
713 {
714   auto task = Aws::MakeShared< std::packaged_task< UntagResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UntagResource(request); } );
715   auto packagedFunction = [task]() { (*task)(); };
716   m_executor->Submit(packagedFunction);
717   return task->get_future();
718 }
719 
UntagResourceAsync(const UntagResourceRequest & request,const UntagResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const720 void LookoutforVisionClient::UntagResourceAsync(const UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
721 {
722   m_executor->Submit( [this, request, handler, context](){ this->UntagResourceAsyncHelper( request, handler, context ); } );
723 }
724 
UntagResourceAsyncHelper(const UntagResourceRequest & request,const UntagResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const725 void LookoutforVisionClient::UntagResourceAsyncHelper(const UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
726 {
727   handler(this, request, UntagResource(request), context);
728 }
729 
UpdateDatasetEntries(const UpdateDatasetEntriesRequest & request) const730 UpdateDatasetEntriesOutcome LookoutforVisionClient::UpdateDatasetEntries(const UpdateDatasetEntriesRequest& request) const
731 {
732   if (!request.ProjectNameHasBeenSet())
733   {
734     AWS_LOGSTREAM_ERROR("UpdateDatasetEntries", "Required field: ProjectName, is not set");
735     return UpdateDatasetEntriesOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ProjectName]", false));
736   }
737   if (!request.DatasetTypeHasBeenSet())
738   {
739     AWS_LOGSTREAM_ERROR("UpdateDatasetEntries", "Required field: DatasetType, is not set");
740     return UpdateDatasetEntriesOutcome(Aws::Client::AWSError<LookoutforVisionErrors>(LookoutforVisionErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DatasetType]", false));
741   }
742   Aws::Http::URI uri = m_uri;
743   uri.AddPathSegments("/2020-11-20/projects/");
744   uri.AddPathSegment(request.GetProjectName());
745   uri.AddPathSegments("/datasets/");
746   uri.AddPathSegment(request.GetDatasetType());
747   uri.AddPathSegments("/entries");
748   return UpdateDatasetEntriesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PATCH, Aws::Auth::SIGV4_SIGNER));
749 }
750 
UpdateDatasetEntriesCallable(const UpdateDatasetEntriesRequest & request) const751 UpdateDatasetEntriesOutcomeCallable LookoutforVisionClient::UpdateDatasetEntriesCallable(const UpdateDatasetEntriesRequest& request) const
752 {
753   auto task = Aws::MakeShared< std::packaged_task< UpdateDatasetEntriesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateDatasetEntries(request); } );
754   auto packagedFunction = [task]() { (*task)(); };
755   m_executor->Submit(packagedFunction);
756   return task->get_future();
757 }
758 
UpdateDatasetEntriesAsync(const UpdateDatasetEntriesRequest & request,const UpdateDatasetEntriesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const759 void LookoutforVisionClient::UpdateDatasetEntriesAsync(const UpdateDatasetEntriesRequest& request, const UpdateDatasetEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
760 {
761   m_executor->Submit( [this, request, handler, context](){ this->UpdateDatasetEntriesAsyncHelper( request, handler, context ); } );
762 }
763 
UpdateDatasetEntriesAsyncHelper(const UpdateDatasetEntriesRequest & request,const UpdateDatasetEntriesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const764 void LookoutforVisionClient::UpdateDatasetEntriesAsyncHelper(const UpdateDatasetEntriesRequest& request, const UpdateDatasetEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
765 {
766   handler(this, request, UpdateDatasetEntries(request), context);
767 }
768 
769