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