1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/lookoutvision/LookoutforVision_EXPORTS.h>
8 #include <aws/lookoutvision/LookoutforVisionErrors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/client/AWSClient.h>
12 #include <aws/core/utils/memory/stl/AWSString.h>
13 #include <aws/core/utils/json/JsonSerializer.h>
14 #include <aws/lookoutvision/model/CreateDatasetResult.h>
15 #include <aws/lookoutvision/model/CreateModelResult.h>
16 #include <aws/lookoutvision/model/CreateProjectResult.h>
17 #include <aws/lookoutvision/model/DeleteDatasetResult.h>
18 #include <aws/lookoutvision/model/DeleteModelResult.h>
19 #include <aws/lookoutvision/model/DeleteProjectResult.h>
20 #include <aws/lookoutvision/model/DescribeDatasetResult.h>
21 #include <aws/lookoutvision/model/DescribeModelResult.h>
22 #include <aws/lookoutvision/model/DescribeProjectResult.h>
23 #include <aws/lookoutvision/model/DetectAnomaliesResult.h>
24 #include <aws/lookoutvision/model/ListDatasetEntriesResult.h>
25 #include <aws/lookoutvision/model/ListModelsResult.h>
26 #include <aws/lookoutvision/model/ListProjectsResult.h>
27 #include <aws/lookoutvision/model/ListTagsForResourceResult.h>
28 #include <aws/lookoutvision/model/StartModelResult.h>
29 #include <aws/lookoutvision/model/StopModelResult.h>
30 #include <aws/lookoutvision/model/TagResourceResult.h>
31 #include <aws/lookoutvision/model/UntagResourceResult.h>
32 #include <aws/lookoutvision/model/UpdateDatasetEntriesResult.h>
33 #include <aws/core/client/AsyncCallerContext.h>
34 #include <aws/core/http/HttpTypes.h>
35 #include <future>
36 #include <functional>
37 
38 namespace Aws
39 {
40 
41 namespace Http
42 {
43   class HttpClient;
44   class HttpClientFactory;
45 } // namespace Http
46 
47 namespace Utils
48 {
49   template< typename R, typename E> class Outcome;
50 namespace Threading
51 {
52   class Executor;
53 } // namespace Threading
54 } // namespace Utils
55 
56 namespace Auth
57 {
58   class AWSCredentials;
59   class AWSCredentialsProvider;
60 } // namespace Auth
61 
62 namespace Client
63 {
64   class RetryStrategy;
65 } // namespace Client
66 
67 namespace LookoutforVision
68 {
69 
70 namespace Model
71 {
72         class CreateDatasetRequest;
73         class CreateModelRequest;
74         class CreateProjectRequest;
75         class DeleteDatasetRequest;
76         class DeleteModelRequest;
77         class DeleteProjectRequest;
78         class DescribeDatasetRequest;
79         class DescribeModelRequest;
80         class DescribeProjectRequest;
81         class DetectAnomaliesRequest;
82         class ListDatasetEntriesRequest;
83         class ListModelsRequest;
84         class ListProjectsRequest;
85         class ListTagsForResourceRequest;
86         class StartModelRequest;
87         class StopModelRequest;
88         class TagResourceRequest;
89         class UntagResourceRequest;
90         class UpdateDatasetEntriesRequest;
91 
92         typedef Aws::Utils::Outcome<CreateDatasetResult, LookoutforVisionError> CreateDatasetOutcome;
93         typedef Aws::Utils::Outcome<CreateModelResult, LookoutforVisionError> CreateModelOutcome;
94         typedef Aws::Utils::Outcome<CreateProjectResult, LookoutforVisionError> CreateProjectOutcome;
95         typedef Aws::Utils::Outcome<DeleteDatasetResult, LookoutforVisionError> DeleteDatasetOutcome;
96         typedef Aws::Utils::Outcome<DeleteModelResult, LookoutforVisionError> DeleteModelOutcome;
97         typedef Aws::Utils::Outcome<DeleteProjectResult, LookoutforVisionError> DeleteProjectOutcome;
98         typedef Aws::Utils::Outcome<DescribeDatasetResult, LookoutforVisionError> DescribeDatasetOutcome;
99         typedef Aws::Utils::Outcome<DescribeModelResult, LookoutforVisionError> DescribeModelOutcome;
100         typedef Aws::Utils::Outcome<DescribeProjectResult, LookoutforVisionError> DescribeProjectOutcome;
101         typedef Aws::Utils::Outcome<DetectAnomaliesResult, LookoutforVisionError> DetectAnomaliesOutcome;
102         typedef Aws::Utils::Outcome<ListDatasetEntriesResult, LookoutforVisionError> ListDatasetEntriesOutcome;
103         typedef Aws::Utils::Outcome<ListModelsResult, LookoutforVisionError> ListModelsOutcome;
104         typedef Aws::Utils::Outcome<ListProjectsResult, LookoutforVisionError> ListProjectsOutcome;
105         typedef Aws::Utils::Outcome<ListTagsForResourceResult, LookoutforVisionError> ListTagsForResourceOutcome;
106         typedef Aws::Utils::Outcome<StartModelResult, LookoutforVisionError> StartModelOutcome;
107         typedef Aws::Utils::Outcome<StopModelResult, LookoutforVisionError> StopModelOutcome;
108         typedef Aws::Utils::Outcome<TagResourceResult, LookoutforVisionError> TagResourceOutcome;
109         typedef Aws::Utils::Outcome<UntagResourceResult, LookoutforVisionError> UntagResourceOutcome;
110         typedef Aws::Utils::Outcome<UpdateDatasetEntriesResult, LookoutforVisionError> UpdateDatasetEntriesOutcome;
111 
112         typedef std::future<CreateDatasetOutcome> CreateDatasetOutcomeCallable;
113         typedef std::future<CreateModelOutcome> CreateModelOutcomeCallable;
114         typedef std::future<CreateProjectOutcome> CreateProjectOutcomeCallable;
115         typedef std::future<DeleteDatasetOutcome> DeleteDatasetOutcomeCallable;
116         typedef std::future<DeleteModelOutcome> DeleteModelOutcomeCallable;
117         typedef std::future<DeleteProjectOutcome> DeleteProjectOutcomeCallable;
118         typedef std::future<DescribeDatasetOutcome> DescribeDatasetOutcomeCallable;
119         typedef std::future<DescribeModelOutcome> DescribeModelOutcomeCallable;
120         typedef std::future<DescribeProjectOutcome> DescribeProjectOutcomeCallable;
121         typedef std::future<DetectAnomaliesOutcome> DetectAnomaliesOutcomeCallable;
122         typedef std::future<ListDatasetEntriesOutcome> ListDatasetEntriesOutcomeCallable;
123         typedef std::future<ListModelsOutcome> ListModelsOutcomeCallable;
124         typedef std::future<ListProjectsOutcome> ListProjectsOutcomeCallable;
125         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
126         typedef std::future<StartModelOutcome> StartModelOutcomeCallable;
127         typedef std::future<StopModelOutcome> StopModelOutcomeCallable;
128         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
129         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
130         typedef std::future<UpdateDatasetEntriesOutcome> UpdateDatasetEntriesOutcomeCallable;
131 } // namespace Model
132 
133   class LookoutforVisionClient;
134 
135     typedef std::function<void(const LookoutforVisionClient*, const Model::CreateDatasetRequest&, const Model::CreateDatasetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDatasetResponseReceivedHandler;
136     typedef std::function<void(const LookoutforVisionClient*, const Model::CreateModelRequest&, const Model::CreateModelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateModelResponseReceivedHandler;
137     typedef std::function<void(const LookoutforVisionClient*, const Model::CreateProjectRequest&, const Model::CreateProjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateProjectResponseReceivedHandler;
138     typedef std::function<void(const LookoutforVisionClient*, const Model::DeleteDatasetRequest&, const Model::DeleteDatasetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDatasetResponseReceivedHandler;
139     typedef std::function<void(const LookoutforVisionClient*, const Model::DeleteModelRequest&, const Model::DeleteModelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteModelResponseReceivedHandler;
140     typedef std::function<void(const LookoutforVisionClient*, const Model::DeleteProjectRequest&, const Model::DeleteProjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteProjectResponseReceivedHandler;
141     typedef std::function<void(const LookoutforVisionClient*, const Model::DescribeDatasetRequest&, const Model::DescribeDatasetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDatasetResponseReceivedHandler;
142     typedef std::function<void(const LookoutforVisionClient*, const Model::DescribeModelRequest&, const Model::DescribeModelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeModelResponseReceivedHandler;
143     typedef std::function<void(const LookoutforVisionClient*, const Model::DescribeProjectRequest&, const Model::DescribeProjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeProjectResponseReceivedHandler;
144     typedef std::function<void(const LookoutforVisionClient*, const Model::DetectAnomaliesRequest&, const Model::DetectAnomaliesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetectAnomaliesResponseReceivedHandler;
145     typedef std::function<void(const LookoutforVisionClient*, const Model::ListDatasetEntriesRequest&, const Model::ListDatasetEntriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDatasetEntriesResponseReceivedHandler;
146     typedef std::function<void(const LookoutforVisionClient*, const Model::ListModelsRequest&, const Model::ListModelsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListModelsResponseReceivedHandler;
147     typedef std::function<void(const LookoutforVisionClient*, const Model::ListProjectsRequest&, const Model::ListProjectsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListProjectsResponseReceivedHandler;
148     typedef std::function<void(const LookoutforVisionClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
149     typedef std::function<void(const LookoutforVisionClient*, const Model::StartModelRequest&, const Model::StartModelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartModelResponseReceivedHandler;
150     typedef std::function<void(const LookoutforVisionClient*, const Model::StopModelRequest&, const Model::StopModelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopModelResponseReceivedHandler;
151     typedef std::function<void(const LookoutforVisionClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
152     typedef std::function<void(const LookoutforVisionClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
153     typedef std::function<void(const LookoutforVisionClient*, const Model::UpdateDatasetEntriesRequest&, const Model::UpdateDatasetEntriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateDatasetEntriesResponseReceivedHandler;
154 
155   /**
156    * <p>This is the Amazon Lookout for Vision API Reference. It provides descriptions
157    * of actions, data types, common parameters, and common errors.</p> <p>Amazon
158    * Lookout for Vision enables you to find visual defects in industrial products,
159    * accurately and at scale. It uses computer vision to identify missing components
160    * in an industrial product, damage to vehicles or structures, irregularities in
161    * production lines, and even minuscule defects in silicon wafers — or any other
162    * physical item where quality is important such as a missing capacitor on printed
163    * circuit boards.</p>
164    */
165   class AWS_LOOKOUTFORVISION_API LookoutforVisionClient : public Aws::Client::AWSJsonClient
166   {
167     public:
168       typedef Aws::Client::AWSJsonClient BASECLASS;
169 
170        /**
171         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
172         * is not specified, it will be initialized to default values.
173         */
174         LookoutforVisionClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
175 
176        /**
177         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
178         * is not specified, it will be initialized to default values.
179         */
180         LookoutforVisionClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
181 
182        /**
183         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
184         * the default http client factory will be used
185         */
186         LookoutforVisionClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
187             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
188 
189         virtual ~LookoutforVisionClient();
190 
191 
192         /**
193          * <p>Creates a new dataset in an Amazon Lookout for Vision project.
194          * <code>CreateDataset</code> can create a training or a test dataset from a valid
195          * dataset source (<code>DatasetSource</code>).</p> <p>If you want a single dataset
196          * project, specify <code>train</code> for the value of
197          * <code>DatasetType</code>.</p> <p>To have a project with separate training and
198          * test datasets, call <code>CreateDataset</code> twice. On the first call, specify
199          * <code>train</code> for the value of <code>DatasetType</code>. On the second
200          * call, specify <code>test</code> for the value of <code>DatasetType</code>. </p>
201          * <p>This operation requires permissions to perform the
202          * <code>lookoutvision:CreateDataset</code> operation.</p><p><h3>See Also:</h3>
203          * <a
204          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateDataset">AWS
205          * API Reference</a></p>
206          */
207         virtual Model::CreateDatasetOutcome CreateDataset(const Model::CreateDatasetRequest& request) const;
208 
209         /**
210          * <p>Creates a new dataset in an Amazon Lookout for Vision project.
211          * <code>CreateDataset</code> can create a training or a test dataset from a valid
212          * dataset source (<code>DatasetSource</code>).</p> <p>If you want a single dataset
213          * project, specify <code>train</code> for the value of
214          * <code>DatasetType</code>.</p> <p>To have a project with separate training and
215          * test datasets, call <code>CreateDataset</code> twice. On the first call, specify
216          * <code>train</code> for the value of <code>DatasetType</code>. On the second
217          * call, specify <code>test</code> for the value of <code>DatasetType</code>. </p>
218          * <p>This operation requires permissions to perform the
219          * <code>lookoutvision:CreateDataset</code> operation.</p><p><h3>See Also:</h3>
220          * <a
221          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateDataset">AWS
222          * API Reference</a></p>
223          *
224          * returns a future to the operation so that it can be executed in parallel to other requests.
225          */
226         virtual Model::CreateDatasetOutcomeCallable CreateDatasetCallable(const Model::CreateDatasetRequest& request) const;
227 
228         /**
229          * <p>Creates a new dataset in an Amazon Lookout for Vision project.
230          * <code>CreateDataset</code> can create a training or a test dataset from a valid
231          * dataset source (<code>DatasetSource</code>).</p> <p>If you want a single dataset
232          * project, specify <code>train</code> for the value of
233          * <code>DatasetType</code>.</p> <p>To have a project with separate training and
234          * test datasets, call <code>CreateDataset</code> twice. On the first call, specify
235          * <code>train</code> for the value of <code>DatasetType</code>. On the second
236          * call, specify <code>test</code> for the value of <code>DatasetType</code>. </p>
237          * <p>This operation requires permissions to perform the
238          * <code>lookoutvision:CreateDataset</code> operation.</p><p><h3>See Also:</h3>
239          * <a
240          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateDataset">AWS
241          * API Reference</a></p>
242          *
243          * Queues the request into a thread executor and triggers associated callback when operation has finished.
244          */
245         virtual void CreateDatasetAsync(const Model::CreateDatasetRequest& request, const CreateDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
246 
247         /**
248          * <p>Creates a new version of a model within an an Amazon Lookout for Vision
249          * project. <code>CreateModel</code> is an asynchronous operation in which Amazon
250          * Lookout for Vision trains, tests, and evaluates a new version of a model. </p>
251          * <p>To get the current status, check the <code>Status</code> field returned in
252          * the response from <a>DescribeModel</a>.</p> <p>If the project has a single
253          * dataset, Amazon Lookout for Vision internally splits the dataset to create a
254          * training and a test dataset. If the project has a training and a test dataset,
255          * Lookout for Vision uses the respective datasets to train and test the model.
256          * </p> <p>After training completes, the evaluation metrics are stored at the
257          * location specified in <code>OutputConfig</code>. </p> <p>This operation requires
258          * permissions to perform the <code>lookoutvision:CreateModel</code> operation. If
259          * you want to tag your model, you also require permission to the
260          * <code>lookoutvision:TagResource</code> operation.</p><p><h3>See Also:</h3>   <a
261          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateModel">AWS
262          * API Reference</a></p>
263          */
264         virtual Model::CreateModelOutcome CreateModel(const Model::CreateModelRequest& request) const;
265 
266         /**
267          * <p>Creates a new version of a model within an an Amazon Lookout for Vision
268          * project. <code>CreateModel</code> is an asynchronous operation in which Amazon
269          * Lookout for Vision trains, tests, and evaluates a new version of a model. </p>
270          * <p>To get the current status, check the <code>Status</code> field returned in
271          * the response from <a>DescribeModel</a>.</p> <p>If the project has a single
272          * dataset, Amazon Lookout for Vision internally splits the dataset to create a
273          * training and a test dataset. If the project has a training and a test dataset,
274          * Lookout for Vision uses the respective datasets to train and test the model.
275          * </p> <p>After training completes, the evaluation metrics are stored at the
276          * location specified in <code>OutputConfig</code>. </p> <p>This operation requires
277          * permissions to perform the <code>lookoutvision:CreateModel</code> operation. If
278          * you want to tag your model, you also require permission to the
279          * <code>lookoutvision:TagResource</code> operation.</p><p><h3>See Also:</h3>   <a
280          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateModel">AWS
281          * API Reference</a></p>
282          *
283          * returns a future to the operation so that it can be executed in parallel to other requests.
284          */
285         virtual Model::CreateModelOutcomeCallable CreateModelCallable(const Model::CreateModelRequest& request) const;
286 
287         /**
288          * <p>Creates a new version of a model within an an Amazon Lookout for Vision
289          * project. <code>CreateModel</code> is an asynchronous operation in which Amazon
290          * Lookout for Vision trains, tests, and evaluates a new version of a model. </p>
291          * <p>To get the current status, check the <code>Status</code> field returned in
292          * the response from <a>DescribeModel</a>.</p> <p>If the project has a single
293          * dataset, Amazon Lookout for Vision internally splits the dataset to create a
294          * training and a test dataset. If the project has a training and a test dataset,
295          * Lookout for Vision uses the respective datasets to train and test the model.
296          * </p> <p>After training completes, the evaluation metrics are stored at the
297          * location specified in <code>OutputConfig</code>. </p> <p>This operation requires
298          * permissions to perform the <code>lookoutvision:CreateModel</code> operation. If
299          * you want to tag your model, you also require permission to the
300          * <code>lookoutvision:TagResource</code> operation.</p><p><h3>See Also:</h3>   <a
301          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateModel">AWS
302          * API Reference</a></p>
303          *
304          * Queues the request into a thread executor and triggers associated callback when operation has finished.
305          */
306         virtual void CreateModelAsync(const Model::CreateModelRequest& request, const CreateModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
307 
308         /**
309          * <p>Creates an empty Amazon Lookout for Vision project. After you create the
310          * project, add a dataset by calling <a>CreateDataset</a>.</p> <p>This operation
311          * requires permissions to perform the <code>lookoutvision:CreateProject</code>
312          * operation.</p><p><h3>See Also:</h3>   <a
313          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateProject">AWS
314          * API Reference</a></p>
315          */
316         virtual Model::CreateProjectOutcome CreateProject(const Model::CreateProjectRequest& request) const;
317 
318         /**
319          * <p>Creates an empty Amazon Lookout for Vision project. After you create the
320          * project, add a dataset by calling <a>CreateDataset</a>.</p> <p>This operation
321          * requires permissions to perform the <code>lookoutvision:CreateProject</code>
322          * operation.</p><p><h3>See Also:</h3>   <a
323          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateProject">AWS
324          * API Reference</a></p>
325          *
326          * returns a future to the operation so that it can be executed in parallel to other requests.
327          */
328         virtual Model::CreateProjectOutcomeCallable CreateProjectCallable(const Model::CreateProjectRequest& request) const;
329 
330         /**
331          * <p>Creates an empty Amazon Lookout for Vision project. After you create the
332          * project, add a dataset by calling <a>CreateDataset</a>.</p> <p>This operation
333          * requires permissions to perform the <code>lookoutvision:CreateProject</code>
334          * operation.</p><p><h3>See Also:</h3>   <a
335          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/CreateProject">AWS
336          * API Reference</a></p>
337          *
338          * Queues the request into a thread executor and triggers associated callback when operation has finished.
339          */
340         virtual void CreateProjectAsync(const Model::CreateProjectRequest& request, const CreateProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
341 
342         /**
343          * <p>Deletes an existing Amazon Lookout for Vision <code>dataset</code>. </p>
344          * <p>If your the project has a single dataset, you must create a new dataset
345          * before you can create a model.</p> <p>If you project has a training dataset and
346          * a test dataset consider the following. </p> <ul> <li> <p>If you delete the test
347          * dataset, your project reverts to a single dataset project. If you then train the
348          * model, Amazon Lookout for Vision internally splits the remaining dataset into a
349          * training and test dataset.</p> </li> <li> <p>If you delete the training dataset,
350          * you must create a training dataset before you can create a model.</p> </li>
351          * </ul> <p>This operation requires permissions to perform the
352          * <code>lookoutvision:DeleteDataset</code> operation.</p><p><h3>See Also:</h3>
353          * <a
354          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteDataset">AWS
355          * API Reference</a></p>
356          */
357         virtual Model::DeleteDatasetOutcome DeleteDataset(const Model::DeleteDatasetRequest& request) const;
358 
359         /**
360          * <p>Deletes an existing Amazon Lookout for Vision <code>dataset</code>. </p>
361          * <p>If your the project has a single dataset, you must create a new dataset
362          * before you can create a model.</p> <p>If you project has a training dataset and
363          * a test dataset consider the following. </p> <ul> <li> <p>If you delete the test
364          * dataset, your project reverts to a single dataset project. If you then train the
365          * model, Amazon Lookout for Vision internally splits the remaining dataset into a
366          * training and test dataset.</p> </li> <li> <p>If you delete the training dataset,
367          * you must create a training dataset before you can create a model.</p> </li>
368          * </ul> <p>This operation requires permissions to perform the
369          * <code>lookoutvision:DeleteDataset</code> operation.</p><p><h3>See Also:</h3>
370          * <a
371          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteDataset">AWS
372          * API Reference</a></p>
373          *
374          * returns a future to the operation so that it can be executed in parallel to other requests.
375          */
376         virtual Model::DeleteDatasetOutcomeCallable DeleteDatasetCallable(const Model::DeleteDatasetRequest& request) const;
377 
378         /**
379          * <p>Deletes an existing Amazon Lookout for Vision <code>dataset</code>. </p>
380          * <p>If your the project has a single dataset, you must create a new dataset
381          * before you can create a model.</p> <p>If you project has a training dataset and
382          * a test dataset consider the following. </p> <ul> <li> <p>If you delete the test
383          * dataset, your project reverts to a single dataset project. If you then train the
384          * model, Amazon Lookout for Vision internally splits the remaining dataset into a
385          * training and test dataset.</p> </li> <li> <p>If you delete the training dataset,
386          * you must create a training dataset before you can create a model.</p> </li>
387          * </ul> <p>This operation requires permissions to perform the
388          * <code>lookoutvision:DeleteDataset</code> operation.</p><p><h3>See Also:</h3>
389          * <a
390          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteDataset">AWS
391          * API Reference</a></p>
392          *
393          * Queues the request into a thread executor and triggers associated callback when operation has finished.
394          */
395         virtual void DeleteDatasetAsync(const Model::DeleteDatasetRequest& request, const DeleteDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
396 
397         /**
398          * <p>Deletes an Amazon Lookout for Vision model. You can't delete a running model.
399          * To stop a running model, use the <a>StopModel</a> operation.</p> <p>It might
400          * take a few seconds to delete a model. To determine if a model has been deleted,
401          * call <a>ListProjects</a> and check if the version of the model
402          * (<code>ModelVersion</code>) is in the <code>Models</code> array. </p> <p>This
403          * operation requires permissions to perform the
404          * <code>lookoutvision:DeleteModel</code> operation.</p><p><h3>See Also:</h3>   <a
405          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteModel">AWS
406          * API Reference</a></p>
407          */
408         virtual Model::DeleteModelOutcome DeleteModel(const Model::DeleteModelRequest& request) const;
409 
410         /**
411          * <p>Deletes an Amazon Lookout for Vision model. You can't delete a running model.
412          * To stop a running model, use the <a>StopModel</a> operation.</p> <p>It might
413          * take a few seconds to delete a model. To determine if a model has been deleted,
414          * call <a>ListProjects</a> and check if the version of the model
415          * (<code>ModelVersion</code>) is in the <code>Models</code> array. </p> <p>This
416          * operation requires permissions to perform the
417          * <code>lookoutvision:DeleteModel</code> operation.</p><p><h3>See Also:</h3>   <a
418          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteModel">AWS
419          * API Reference</a></p>
420          *
421          * returns a future to the operation so that it can be executed in parallel to other requests.
422          */
423         virtual Model::DeleteModelOutcomeCallable DeleteModelCallable(const Model::DeleteModelRequest& request) const;
424 
425         /**
426          * <p>Deletes an Amazon Lookout for Vision model. You can't delete a running model.
427          * To stop a running model, use the <a>StopModel</a> operation.</p> <p>It might
428          * take a few seconds to delete a model. To determine if a model has been deleted,
429          * call <a>ListProjects</a> and check if the version of the model
430          * (<code>ModelVersion</code>) is in the <code>Models</code> array. </p> <p>This
431          * operation requires permissions to perform the
432          * <code>lookoutvision:DeleteModel</code> operation.</p><p><h3>See Also:</h3>   <a
433          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteModel">AWS
434          * API Reference</a></p>
435          *
436          * Queues the request into a thread executor and triggers associated callback when operation has finished.
437          */
438         virtual void DeleteModelAsync(const Model::DeleteModelRequest& request, const DeleteModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
439 
440         /**
441          * <p>Deletes an Amazon Lookout for Vision project.</p> <p>To delete a project, you
442          * must first delete each version of the model associated with the project. To
443          * delete a model use the <a>DeleteModel</a> operation.</p> <p>You also have to
444          * delete the dataset(s) associated with the model. For more information, see
445          * <a>DeleteDataset</a>. The images referenced by the training and test datasets
446          * aren't deleted. </p> <p>This operation requires permissions to perform the
447          * <code>lookoutvision:DeleteProject</code> operation.</p><p><h3>See Also:</h3>
448          * <a
449          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteProject">AWS
450          * API Reference</a></p>
451          */
452         virtual Model::DeleteProjectOutcome DeleteProject(const Model::DeleteProjectRequest& request) const;
453 
454         /**
455          * <p>Deletes an Amazon Lookout for Vision project.</p> <p>To delete a project, you
456          * must first delete each version of the model associated with the project. To
457          * delete a model use the <a>DeleteModel</a> operation.</p> <p>You also have to
458          * delete the dataset(s) associated with the model. For more information, see
459          * <a>DeleteDataset</a>. The images referenced by the training and test datasets
460          * aren't deleted. </p> <p>This operation requires permissions to perform the
461          * <code>lookoutvision:DeleteProject</code> operation.</p><p><h3>See Also:</h3>
462          * <a
463          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteProject">AWS
464          * API Reference</a></p>
465          *
466          * returns a future to the operation so that it can be executed in parallel to other requests.
467          */
468         virtual Model::DeleteProjectOutcomeCallable DeleteProjectCallable(const Model::DeleteProjectRequest& request) const;
469 
470         /**
471          * <p>Deletes an Amazon Lookout for Vision project.</p> <p>To delete a project, you
472          * must first delete each version of the model associated with the project. To
473          * delete a model use the <a>DeleteModel</a> operation.</p> <p>You also have to
474          * delete the dataset(s) associated with the model. For more information, see
475          * <a>DeleteDataset</a>. The images referenced by the training and test datasets
476          * aren't deleted. </p> <p>This operation requires permissions to perform the
477          * <code>lookoutvision:DeleteProject</code> operation.</p><p><h3>See Also:</h3>
478          * <a
479          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DeleteProject">AWS
480          * API Reference</a></p>
481          *
482          * Queues the request into a thread executor and triggers associated callback when operation has finished.
483          */
484         virtual void DeleteProjectAsync(const Model::DeleteProjectRequest& request, const DeleteProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
485 
486         /**
487          * <p>Describe an Amazon Lookout for Vision dataset.</p> <p>This operation requires
488          * permissions to perform the <code>lookoutvision:DescribeDataset</code>
489          * operation.</p><p><h3>See Also:</h3>   <a
490          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeDataset">AWS
491          * API Reference</a></p>
492          */
493         virtual Model::DescribeDatasetOutcome DescribeDataset(const Model::DescribeDatasetRequest& request) const;
494 
495         /**
496          * <p>Describe an Amazon Lookout for Vision dataset.</p> <p>This operation requires
497          * permissions to perform the <code>lookoutvision:DescribeDataset</code>
498          * operation.</p><p><h3>See Also:</h3>   <a
499          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeDataset">AWS
500          * API Reference</a></p>
501          *
502          * returns a future to the operation so that it can be executed in parallel to other requests.
503          */
504         virtual Model::DescribeDatasetOutcomeCallable DescribeDatasetCallable(const Model::DescribeDatasetRequest& request) const;
505 
506         /**
507          * <p>Describe an Amazon Lookout for Vision dataset.</p> <p>This operation requires
508          * permissions to perform the <code>lookoutvision:DescribeDataset</code>
509          * operation.</p><p><h3>See Also:</h3>   <a
510          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeDataset">AWS
511          * API Reference</a></p>
512          *
513          * Queues the request into a thread executor and triggers associated callback when operation has finished.
514          */
515         virtual void DescribeDatasetAsync(const Model::DescribeDatasetRequest& request, const DescribeDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
516 
517         /**
518          * <p>Describes a version of an Amazon Lookout for Vision model.</p> <p>This
519          * operation requires permissions to perform the
520          * <code>lookoutvision:DescribeModel</code> operation.</p><p><h3>See Also:</h3>
521          * <a
522          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeModel">AWS
523          * API Reference</a></p>
524          */
525         virtual Model::DescribeModelOutcome DescribeModel(const Model::DescribeModelRequest& request) const;
526 
527         /**
528          * <p>Describes a version of an Amazon Lookout for Vision model.</p> <p>This
529          * operation requires permissions to perform the
530          * <code>lookoutvision:DescribeModel</code> operation.</p><p><h3>See Also:</h3>
531          * <a
532          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeModel">AWS
533          * API Reference</a></p>
534          *
535          * returns a future to the operation so that it can be executed in parallel to other requests.
536          */
537         virtual Model::DescribeModelOutcomeCallable DescribeModelCallable(const Model::DescribeModelRequest& request) const;
538 
539         /**
540          * <p>Describes a version of an Amazon Lookout for Vision model.</p> <p>This
541          * operation requires permissions to perform the
542          * <code>lookoutvision:DescribeModel</code> operation.</p><p><h3>See Also:</h3>
543          * <a
544          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeModel">AWS
545          * API Reference</a></p>
546          *
547          * Queues the request into a thread executor and triggers associated callback when operation has finished.
548          */
549         virtual void DescribeModelAsync(const Model::DescribeModelRequest& request, const DescribeModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
550 
551         /**
552          * <p>Describes an Amazon Lookout for Vision project.</p> <p>This operation
553          * requires permissions to perform the <code>lookoutvision:DescribeProject</code>
554          * operation.</p><p><h3>See Also:</h3>   <a
555          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeProject">AWS
556          * API Reference</a></p>
557          */
558         virtual Model::DescribeProjectOutcome DescribeProject(const Model::DescribeProjectRequest& request) const;
559 
560         /**
561          * <p>Describes an Amazon Lookout for Vision project.</p> <p>This operation
562          * requires permissions to perform the <code>lookoutvision:DescribeProject</code>
563          * operation.</p><p><h3>See Also:</h3>   <a
564          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeProject">AWS
565          * API Reference</a></p>
566          *
567          * returns a future to the operation so that it can be executed in parallel to other requests.
568          */
569         virtual Model::DescribeProjectOutcomeCallable DescribeProjectCallable(const Model::DescribeProjectRequest& request) const;
570 
571         /**
572          * <p>Describes an Amazon Lookout for Vision project.</p> <p>This operation
573          * requires permissions to perform the <code>lookoutvision:DescribeProject</code>
574          * operation.</p><p><h3>See Also:</h3>   <a
575          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DescribeProject">AWS
576          * API Reference</a></p>
577          *
578          * Queues the request into a thread executor and triggers associated callback when operation has finished.
579          */
580         virtual void DescribeProjectAsync(const Model::DescribeProjectRequest& request, const DescribeProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
581 
582         /**
583          * <p>Detects anomalies in an image that you supply. </p> <p>The response from
584          * <code>DetectAnomalies</code> includes a boolean prediction that the image
585          * contains one or more anomalies and a confidence value for the prediction.</p>
586          *  <p>Before calling <code>DetectAnomalies</code>, you must first start your
587          * model with the <a>StartModel</a> operation. You are charged for the amount of
588          * time, in minutes, that a model runs and for the number of anomaly detection
589          * units that your model uses. If you are not using a model, use the
590          * <a>StopModel</a> operation to stop your model. </p>  <p>This operation
591          * requires permissions to perform the <code>lookoutvision:DetectAnomalies</code>
592          * operation.</p><p><h3>See Also:</h3>   <a
593          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DetectAnomalies">AWS
594          * API Reference</a></p>
595          */
596         virtual Model::DetectAnomaliesOutcome DetectAnomalies(const Model::DetectAnomaliesRequest& request) const;
597 
598         /**
599          * <p>Detects anomalies in an image that you supply. </p> <p>The response from
600          * <code>DetectAnomalies</code> includes a boolean prediction that the image
601          * contains one or more anomalies and a confidence value for the prediction.</p>
602          *  <p>Before calling <code>DetectAnomalies</code>, you must first start your
603          * model with the <a>StartModel</a> operation. You are charged for the amount of
604          * time, in minutes, that a model runs and for the number of anomaly detection
605          * units that your model uses. If you are not using a model, use the
606          * <a>StopModel</a> operation to stop your model. </p>  <p>This operation
607          * requires permissions to perform the <code>lookoutvision:DetectAnomalies</code>
608          * operation.</p><p><h3>See Also:</h3>   <a
609          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DetectAnomalies">AWS
610          * API Reference</a></p>
611          *
612          * returns a future to the operation so that it can be executed in parallel to other requests.
613          */
614         virtual Model::DetectAnomaliesOutcomeCallable DetectAnomaliesCallable(const Model::DetectAnomaliesRequest& request) const;
615 
616         /**
617          * <p>Detects anomalies in an image that you supply. </p> <p>The response from
618          * <code>DetectAnomalies</code> includes a boolean prediction that the image
619          * contains one or more anomalies and a confidence value for the prediction.</p>
620          *  <p>Before calling <code>DetectAnomalies</code>, you must first start your
621          * model with the <a>StartModel</a> operation. You are charged for the amount of
622          * time, in minutes, that a model runs and for the number of anomaly detection
623          * units that your model uses. If you are not using a model, use the
624          * <a>StopModel</a> operation to stop your model. </p>  <p>This operation
625          * requires permissions to perform the <code>lookoutvision:DetectAnomalies</code>
626          * operation.</p><p><h3>See Also:</h3>   <a
627          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/DetectAnomalies">AWS
628          * API Reference</a></p>
629          *
630          * Queues the request into a thread executor and triggers associated callback when operation has finished.
631          */
632         virtual void DetectAnomaliesAsync(const Model::DetectAnomaliesRequest& request, const DetectAnomaliesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
633 
634         /**
635          * <p>Lists the JSON Lines within a dataset. An Amazon Lookout for Vision JSON Line
636          * contains the anomaly information for a single image, including the image
637          * location and the assigned label.</p> <p>This operation requires permissions to
638          * perform the <code>lookoutvision:ListDatasetEntries</code>
639          * operation.</p><p><h3>See Also:</h3>   <a
640          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListDatasetEntries">AWS
641          * API Reference</a></p>
642          */
643         virtual Model::ListDatasetEntriesOutcome ListDatasetEntries(const Model::ListDatasetEntriesRequest& request) const;
644 
645         /**
646          * <p>Lists the JSON Lines within a dataset. An Amazon Lookout for Vision JSON Line
647          * contains the anomaly information for a single image, including the image
648          * location and the assigned label.</p> <p>This operation requires permissions to
649          * perform the <code>lookoutvision:ListDatasetEntries</code>
650          * operation.</p><p><h3>See Also:</h3>   <a
651          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListDatasetEntries">AWS
652          * API Reference</a></p>
653          *
654          * returns a future to the operation so that it can be executed in parallel to other requests.
655          */
656         virtual Model::ListDatasetEntriesOutcomeCallable ListDatasetEntriesCallable(const Model::ListDatasetEntriesRequest& request) const;
657 
658         /**
659          * <p>Lists the JSON Lines within a dataset. An Amazon Lookout for Vision JSON Line
660          * contains the anomaly information for a single image, including the image
661          * location and the assigned label.</p> <p>This operation requires permissions to
662          * perform the <code>lookoutvision:ListDatasetEntries</code>
663          * operation.</p><p><h3>See Also:</h3>   <a
664          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListDatasetEntries">AWS
665          * API Reference</a></p>
666          *
667          * Queues the request into a thread executor and triggers associated callback when operation has finished.
668          */
669         virtual void ListDatasetEntriesAsync(const Model::ListDatasetEntriesRequest& request, const ListDatasetEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
670 
671         /**
672          * <p>Lists the versions of a model in an Amazon Lookout for Vision project.</p>
673          * <p>This operation requires permissions to perform the
674          * <code>lookoutvision:ListModels</code> operation.</p><p><h3>See Also:</h3>   <a
675          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListModels">AWS
676          * API Reference</a></p>
677          */
678         virtual Model::ListModelsOutcome ListModels(const Model::ListModelsRequest& request) const;
679 
680         /**
681          * <p>Lists the versions of a model in an Amazon Lookout for Vision project.</p>
682          * <p>This operation requires permissions to perform the
683          * <code>lookoutvision:ListModels</code> operation.</p><p><h3>See Also:</h3>   <a
684          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListModels">AWS
685          * API Reference</a></p>
686          *
687          * returns a future to the operation so that it can be executed in parallel to other requests.
688          */
689         virtual Model::ListModelsOutcomeCallable ListModelsCallable(const Model::ListModelsRequest& request) const;
690 
691         /**
692          * <p>Lists the versions of a model in an Amazon Lookout for Vision project.</p>
693          * <p>This operation requires permissions to perform the
694          * <code>lookoutvision:ListModels</code> operation.</p><p><h3>See Also:</h3>   <a
695          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListModels">AWS
696          * API Reference</a></p>
697          *
698          * Queues the request into a thread executor and triggers associated callback when operation has finished.
699          */
700         virtual void ListModelsAsync(const Model::ListModelsRequest& request, const ListModelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
701 
702         /**
703          * <p>Lists the Amazon Lookout for Vision projects in your AWS account.</p> <p>This
704          * operation requires permissions to perform the
705          * <code>lookoutvision:ListProjects</code> operation.</p><p><h3>See Also:</h3>   <a
706          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListProjects">AWS
707          * API Reference</a></p>
708          */
709         virtual Model::ListProjectsOutcome ListProjects(const Model::ListProjectsRequest& request) const;
710 
711         /**
712          * <p>Lists the Amazon Lookout for Vision projects in your AWS account.</p> <p>This
713          * operation requires permissions to perform the
714          * <code>lookoutvision:ListProjects</code> operation.</p><p><h3>See Also:</h3>   <a
715          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListProjects">AWS
716          * API Reference</a></p>
717          *
718          * returns a future to the operation so that it can be executed in parallel to other requests.
719          */
720         virtual Model::ListProjectsOutcomeCallable ListProjectsCallable(const Model::ListProjectsRequest& request) const;
721 
722         /**
723          * <p>Lists the Amazon Lookout for Vision projects in your AWS account.</p> <p>This
724          * operation requires permissions to perform the
725          * <code>lookoutvision:ListProjects</code> operation.</p><p><h3>See Also:</h3>   <a
726          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListProjects">AWS
727          * API Reference</a></p>
728          *
729          * Queues the request into a thread executor and triggers associated callback when operation has finished.
730          */
731         virtual void ListProjectsAsync(const Model::ListProjectsRequest& request, const ListProjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
732 
733         /**
734          * <p>Returns a list of tags attached to the specified Amazon Lookout for Vision
735          * model.</p> <p>This operation requires permissions to perform the
736          * <code>lookoutvision:ListTagsForResource</code> operation.</p><p><h3>See
737          * Also:</h3>   <a
738          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListTagsForResource">AWS
739          * API Reference</a></p>
740          */
741         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
742 
743         /**
744          * <p>Returns a list of tags attached to the specified Amazon Lookout for Vision
745          * model.</p> <p>This operation requires permissions to perform the
746          * <code>lookoutvision:ListTagsForResource</code> operation.</p><p><h3>See
747          * Also:</h3>   <a
748          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListTagsForResource">AWS
749          * API Reference</a></p>
750          *
751          * returns a future to the operation so that it can be executed in parallel to other requests.
752          */
753         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
754 
755         /**
756          * <p>Returns a list of tags attached to the specified Amazon Lookout for Vision
757          * model.</p> <p>This operation requires permissions to perform the
758          * <code>lookoutvision:ListTagsForResource</code> operation.</p><p><h3>See
759          * Also:</h3>   <a
760          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/ListTagsForResource">AWS
761          * API Reference</a></p>
762          *
763          * Queues the request into a thread executor and triggers associated callback when operation has finished.
764          */
765         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
766 
767         /**
768          * <p>Starts the running of the version of an Amazon Lookout for Vision model.
769          * Starting a model takes a while to complete. To check the current state of the
770          * model, use <a>DescribeModel</a>.</p> <p>A model is ready to use when its status
771          * is <code>HOSTED</code>.</p> <p>Once the model is running, you can detect custom
772          * labels in new images by calling <a>DetectAnomalies</a>.</p>  <p>You are
773          * charged for the amount of time that the model is running. To stop a running
774          * model, call <a>StopModel</a>.</p>  <p>This operation requires permissions
775          * to perform the <code>lookoutvision:StartModel</code> operation.</p><p><h3>See
776          * Also:</h3>   <a
777          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/StartModel">AWS
778          * API Reference</a></p>
779          */
780         virtual Model::StartModelOutcome StartModel(const Model::StartModelRequest& request) const;
781 
782         /**
783          * <p>Starts the running of the version of an Amazon Lookout for Vision model.
784          * Starting a model takes a while to complete. To check the current state of the
785          * model, use <a>DescribeModel</a>.</p> <p>A model is ready to use when its status
786          * is <code>HOSTED</code>.</p> <p>Once the model is running, you can detect custom
787          * labels in new images by calling <a>DetectAnomalies</a>.</p>  <p>You are
788          * charged for the amount of time that the model is running. To stop a running
789          * model, call <a>StopModel</a>.</p>  <p>This operation requires permissions
790          * to perform the <code>lookoutvision:StartModel</code> operation.</p><p><h3>See
791          * Also:</h3>   <a
792          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/StartModel">AWS
793          * API Reference</a></p>
794          *
795          * returns a future to the operation so that it can be executed in parallel to other requests.
796          */
797         virtual Model::StartModelOutcomeCallable StartModelCallable(const Model::StartModelRequest& request) const;
798 
799         /**
800          * <p>Starts the running of the version of an Amazon Lookout for Vision model.
801          * Starting a model takes a while to complete. To check the current state of the
802          * model, use <a>DescribeModel</a>.</p> <p>A model is ready to use when its status
803          * is <code>HOSTED</code>.</p> <p>Once the model is running, you can detect custom
804          * labels in new images by calling <a>DetectAnomalies</a>.</p>  <p>You are
805          * charged for the amount of time that the model is running. To stop a running
806          * model, call <a>StopModel</a>.</p>  <p>This operation requires permissions
807          * to perform the <code>lookoutvision:StartModel</code> operation.</p><p><h3>See
808          * Also:</h3>   <a
809          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/StartModel">AWS
810          * API Reference</a></p>
811          *
812          * Queues the request into a thread executor and triggers associated callback when operation has finished.
813          */
814         virtual void StartModelAsync(const Model::StartModelRequest& request, const StartModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
815 
816         /**
817          * <p>Stops the hosting of a running model. The operation might take a while to
818          * complete. To check the current status, call <a>DescribeModel</a>. </p> <p>After
819          * the model hosting stops, the <code>Status</code> of the model is
820          * <code>TRAINED</code>.</p> <p>This operation requires permissions to perform the
821          * <code>lookoutvision:StopModel</code> operation.</p><p><h3>See Also:</h3>   <a
822          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/StopModel">AWS
823          * API Reference</a></p>
824          */
825         virtual Model::StopModelOutcome StopModel(const Model::StopModelRequest& request) const;
826 
827         /**
828          * <p>Stops the hosting of a running model. The operation might take a while to
829          * complete. To check the current status, call <a>DescribeModel</a>. </p> <p>After
830          * the model hosting stops, the <code>Status</code> of the model is
831          * <code>TRAINED</code>.</p> <p>This operation requires permissions to perform the
832          * <code>lookoutvision:StopModel</code> operation.</p><p><h3>See Also:</h3>   <a
833          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/StopModel">AWS
834          * API Reference</a></p>
835          *
836          * returns a future to the operation so that it can be executed in parallel to other requests.
837          */
838         virtual Model::StopModelOutcomeCallable StopModelCallable(const Model::StopModelRequest& request) const;
839 
840         /**
841          * <p>Stops the hosting of a running model. The operation might take a while to
842          * complete. To check the current status, call <a>DescribeModel</a>. </p> <p>After
843          * the model hosting stops, the <code>Status</code> of the model is
844          * <code>TRAINED</code>.</p> <p>This operation requires permissions to perform the
845          * <code>lookoutvision:StopModel</code> operation.</p><p><h3>See Also:</h3>   <a
846          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/StopModel">AWS
847          * API Reference</a></p>
848          *
849          * Queues the request into a thread executor and triggers associated callback when operation has finished.
850          */
851         virtual void StopModelAsync(const Model::StopModelRequest& request, const StopModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
852 
853         /**
854          * <p>Adds one or more key-value tags to an Amazon Lookout for Vision model. For
855          * more information, see <i>Tagging a model</i> in the <i>Amazon Lookout for Vision
856          * Developer Guide</i>. </p> <p>This operation requires permissions to perform the
857          * <code>lookoutvision:TagResource</code> operation.</p><p><h3>See Also:</h3>   <a
858          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/TagResource">AWS
859          * API Reference</a></p>
860          */
861         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
862 
863         /**
864          * <p>Adds one or more key-value tags to an Amazon Lookout for Vision model. For
865          * more information, see <i>Tagging a model</i> in the <i>Amazon Lookout for Vision
866          * Developer Guide</i>. </p> <p>This operation requires permissions to perform the
867          * <code>lookoutvision:TagResource</code> operation.</p><p><h3>See Also:</h3>   <a
868          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/TagResource">AWS
869          * API Reference</a></p>
870          *
871          * returns a future to the operation so that it can be executed in parallel to other requests.
872          */
873         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
874 
875         /**
876          * <p>Adds one or more key-value tags to an Amazon Lookout for Vision model. For
877          * more information, see <i>Tagging a model</i> in the <i>Amazon Lookout for Vision
878          * Developer Guide</i>. </p> <p>This operation requires permissions to perform the
879          * <code>lookoutvision:TagResource</code> operation.</p><p><h3>See Also:</h3>   <a
880          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/TagResource">AWS
881          * API Reference</a></p>
882          *
883          * Queues the request into a thread executor and triggers associated callback when operation has finished.
884          */
885         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
886 
887         /**
888          * <p>Removes one or more tags from an Amazon Lookout for Vision model. For more
889          * information, see <i>Tagging a model</i> in the <i>Amazon Lookout for Vision
890          * Developer Guide</i>. </p> <p>This operation requires permissions to perform the
891          * <code>lookoutvision:UntagResource</code> operation.</p><p><h3>See Also:</h3>
892          * <a
893          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/UntagResource">AWS
894          * API Reference</a></p>
895          */
896         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
897 
898         /**
899          * <p>Removes one or more tags from an Amazon Lookout for Vision model. For more
900          * information, see <i>Tagging a model</i> in the <i>Amazon Lookout for Vision
901          * Developer Guide</i>. </p> <p>This operation requires permissions to perform the
902          * <code>lookoutvision:UntagResource</code> operation.</p><p><h3>See Also:</h3>
903          * <a
904          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/UntagResource">AWS
905          * API Reference</a></p>
906          *
907          * returns a future to the operation so that it can be executed in parallel to other requests.
908          */
909         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
910 
911         /**
912          * <p>Removes one or more tags from an Amazon Lookout for Vision model. For more
913          * information, see <i>Tagging a model</i> in the <i>Amazon Lookout for Vision
914          * Developer Guide</i>. </p> <p>This operation requires permissions to perform the
915          * <code>lookoutvision:UntagResource</code> operation.</p><p><h3>See Also:</h3>
916          * <a
917          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/UntagResource">AWS
918          * API Reference</a></p>
919          *
920          * Queues the request into a thread executor and triggers associated callback when operation has finished.
921          */
922         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
923 
924         /**
925          * <p>Adds one or more JSON Line entries to a dataset. A JSON Line includes
926          * information about an image used for training or testing an Amazon Lookout for
927          * Vision model. The following is an example JSON Line.</p> <p>Updating a dataset
928          * might take a while to complete. To check the current status, call
929          * <a>DescribeDataset</a> and check the <code>Status</code> field in the
930          * response.</p> <p>This operation requires permissions to perform the
931          * <code>lookoutvision:UpdateDatasetEntries</code> operation.</p><p><h3>See
932          * Also:</h3>   <a
933          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/UpdateDatasetEntries">AWS
934          * API Reference</a></p>
935          */
936         virtual Model::UpdateDatasetEntriesOutcome UpdateDatasetEntries(const Model::UpdateDatasetEntriesRequest& request) const;
937 
938         /**
939          * <p>Adds one or more JSON Line entries to a dataset. A JSON Line includes
940          * information about an image used for training or testing an Amazon Lookout for
941          * Vision model. The following is an example JSON Line.</p> <p>Updating a dataset
942          * might take a while to complete. To check the current status, call
943          * <a>DescribeDataset</a> and check the <code>Status</code> field in the
944          * response.</p> <p>This operation requires permissions to perform the
945          * <code>lookoutvision:UpdateDatasetEntries</code> operation.</p><p><h3>See
946          * Also:</h3>   <a
947          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/UpdateDatasetEntries">AWS
948          * API Reference</a></p>
949          *
950          * returns a future to the operation so that it can be executed in parallel to other requests.
951          */
952         virtual Model::UpdateDatasetEntriesOutcomeCallable UpdateDatasetEntriesCallable(const Model::UpdateDatasetEntriesRequest& request) const;
953 
954         /**
955          * <p>Adds one or more JSON Line entries to a dataset. A JSON Line includes
956          * information about an image used for training or testing an Amazon Lookout for
957          * Vision model. The following is an example JSON Line.</p> <p>Updating a dataset
958          * might take a while to complete. To check the current status, call
959          * <a>DescribeDataset</a> and check the <code>Status</code> field in the
960          * response.</p> <p>This operation requires permissions to perform the
961          * <code>lookoutvision:UpdateDatasetEntries</code> operation.</p><p><h3>See
962          * Also:</h3>   <a
963          * href="http://docs.aws.amazon.com/goto/WebAPI/lookoutvision-2020-11-20/UpdateDatasetEntries">AWS
964          * API Reference</a></p>
965          *
966          * Queues the request into a thread executor and triggers associated callback when operation has finished.
967          */
968         virtual void UpdateDatasetEntriesAsync(const Model::UpdateDatasetEntriesRequest& request, const UpdateDatasetEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
969 
970 
971       void OverrideEndpoint(const Aws::String& endpoint);
972     private:
973       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
974         void CreateDatasetAsyncHelper(const Model::CreateDatasetRequest& request, const CreateDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
975         void CreateModelAsyncHelper(const Model::CreateModelRequest& request, const CreateModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
976         void CreateProjectAsyncHelper(const Model::CreateProjectRequest& request, const CreateProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
977         void DeleteDatasetAsyncHelper(const Model::DeleteDatasetRequest& request, const DeleteDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
978         void DeleteModelAsyncHelper(const Model::DeleteModelRequest& request, const DeleteModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
979         void DeleteProjectAsyncHelper(const Model::DeleteProjectRequest& request, const DeleteProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
980         void DescribeDatasetAsyncHelper(const Model::DescribeDatasetRequest& request, const DescribeDatasetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
981         void DescribeModelAsyncHelper(const Model::DescribeModelRequest& request, const DescribeModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
982         void DescribeProjectAsyncHelper(const Model::DescribeProjectRequest& request, const DescribeProjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
983         void DetectAnomaliesAsyncHelper(const Model::DetectAnomaliesRequest& request, const DetectAnomaliesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
984         void ListDatasetEntriesAsyncHelper(const Model::ListDatasetEntriesRequest& request, const ListDatasetEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
985         void ListModelsAsyncHelper(const Model::ListModelsRequest& request, const ListModelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
986         void ListProjectsAsyncHelper(const Model::ListProjectsRequest& request, const ListProjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
987         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
988         void StartModelAsyncHelper(const Model::StartModelRequest& request, const StartModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
989         void StopModelAsyncHelper(const Model::StopModelRequest& request, const StopModelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
990         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
991         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
992         void UpdateDatasetEntriesAsyncHelper(const Model::UpdateDatasetEntriesRequest& request, const UpdateDatasetEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
993 
994       Aws::String m_uri;
995       Aws::String m_configScheme;
996       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
997   };
998 
999 } // namespace LookoutforVision
1000 } // namespace Aws
1001