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/honeycode/Honeycode_EXPORTS.h>
8 #include <aws/honeycode/HoneycodeErrors.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/honeycode/model/BatchCreateTableRowsResult.h>
15 #include <aws/honeycode/model/BatchDeleteTableRowsResult.h>
16 #include <aws/honeycode/model/BatchUpdateTableRowsResult.h>
17 #include <aws/honeycode/model/BatchUpsertTableRowsResult.h>
18 #include <aws/honeycode/model/DescribeTableDataImportJobResult.h>
19 #include <aws/honeycode/model/GetScreenDataResult.h>
20 #include <aws/honeycode/model/InvokeScreenAutomationResult.h>
21 #include <aws/honeycode/model/ListTableColumnsResult.h>
22 #include <aws/honeycode/model/ListTableRowsResult.h>
23 #include <aws/honeycode/model/ListTablesResult.h>
24 #include <aws/honeycode/model/QueryTableRowsResult.h>
25 #include <aws/honeycode/model/StartTableDataImportJobResult.h>
26 #include <aws/core/client/AsyncCallerContext.h>
27 #include <aws/core/http/HttpTypes.h>
28 #include <future>
29 #include <functional>
30 
31 namespace Aws
32 {
33 
34 namespace Http
35 {
36   class HttpClient;
37   class HttpClientFactory;
38 } // namespace Http
39 
40 namespace Utils
41 {
42   template< typename R, typename E> class Outcome;
43 namespace Threading
44 {
45   class Executor;
46 } // namespace Threading
47 } // namespace Utils
48 
49 namespace Auth
50 {
51   class AWSCredentials;
52   class AWSCredentialsProvider;
53 } // namespace Auth
54 
55 namespace Client
56 {
57   class RetryStrategy;
58 } // namespace Client
59 
60 namespace Honeycode
61 {
62 
63 namespace Model
64 {
65         class BatchCreateTableRowsRequest;
66         class BatchDeleteTableRowsRequest;
67         class BatchUpdateTableRowsRequest;
68         class BatchUpsertTableRowsRequest;
69         class DescribeTableDataImportJobRequest;
70         class GetScreenDataRequest;
71         class InvokeScreenAutomationRequest;
72         class ListTableColumnsRequest;
73         class ListTableRowsRequest;
74         class ListTablesRequest;
75         class QueryTableRowsRequest;
76         class StartTableDataImportJobRequest;
77 
78         typedef Aws::Utils::Outcome<BatchCreateTableRowsResult, HoneycodeError> BatchCreateTableRowsOutcome;
79         typedef Aws::Utils::Outcome<BatchDeleteTableRowsResult, HoneycodeError> BatchDeleteTableRowsOutcome;
80         typedef Aws::Utils::Outcome<BatchUpdateTableRowsResult, HoneycodeError> BatchUpdateTableRowsOutcome;
81         typedef Aws::Utils::Outcome<BatchUpsertTableRowsResult, HoneycodeError> BatchUpsertTableRowsOutcome;
82         typedef Aws::Utils::Outcome<DescribeTableDataImportJobResult, HoneycodeError> DescribeTableDataImportJobOutcome;
83         typedef Aws::Utils::Outcome<GetScreenDataResult, HoneycodeError> GetScreenDataOutcome;
84         typedef Aws::Utils::Outcome<InvokeScreenAutomationResult, HoneycodeError> InvokeScreenAutomationOutcome;
85         typedef Aws::Utils::Outcome<ListTableColumnsResult, HoneycodeError> ListTableColumnsOutcome;
86         typedef Aws::Utils::Outcome<ListTableRowsResult, HoneycodeError> ListTableRowsOutcome;
87         typedef Aws::Utils::Outcome<ListTablesResult, HoneycodeError> ListTablesOutcome;
88         typedef Aws::Utils::Outcome<QueryTableRowsResult, HoneycodeError> QueryTableRowsOutcome;
89         typedef Aws::Utils::Outcome<StartTableDataImportJobResult, HoneycodeError> StartTableDataImportJobOutcome;
90 
91         typedef std::future<BatchCreateTableRowsOutcome> BatchCreateTableRowsOutcomeCallable;
92         typedef std::future<BatchDeleteTableRowsOutcome> BatchDeleteTableRowsOutcomeCallable;
93         typedef std::future<BatchUpdateTableRowsOutcome> BatchUpdateTableRowsOutcomeCallable;
94         typedef std::future<BatchUpsertTableRowsOutcome> BatchUpsertTableRowsOutcomeCallable;
95         typedef std::future<DescribeTableDataImportJobOutcome> DescribeTableDataImportJobOutcomeCallable;
96         typedef std::future<GetScreenDataOutcome> GetScreenDataOutcomeCallable;
97         typedef std::future<InvokeScreenAutomationOutcome> InvokeScreenAutomationOutcomeCallable;
98         typedef std::future<ListTableColumnsOutcome> ListTableColumnsOutcomeCallable;
99         typedef std::future<ListTableRowsOutcome> ListTableRowsOutcomeCallable;
100         typedef std::future<ListTablesOutcome> ListTablesOutcomeCallable;
101         typedef std::future<QueryTableRowsOutcome> QueryTableRowsOutcomeCallable;
102         typedef std::future<StartTableDataImportJobOutcome> StartTableDataImportJobOutcomeCallable;
103 } // namespace Model
104 
105   class HoneycodeClient;
106 
107     typedef std::function<void(const HoneycodeClient*, const Model::BatchCreateTableRowsRequest&, const Model::BatchCreateTableRowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchCreateTableRowsResponseReceivedHandler;
108     typedef std::function<void(const HoneycodeClient*, const Model::BatchDeleteTableRowsRequest&, const Model::BatchDeleteTableRowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchDeleteTableRowsResponseReceivedHandler;
109     typedef std::function<void(const HoneycodeClient*, const Model::BatchUpdateTableRowsRequest&, const Model::BatchUpdateTableRowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchUpdateTableRowsResponseReceivedHandler;
110     typedef std::function<void(const HoneycodeClient*, const Model::BatchUpsertTableRowsRequest&, const Model::BatchUpsertTableRowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchUpsertTableRowsResponseReceivedHandler;
111     typedef std::function<void(const HoneycodeClient*, const Model::DescribeTableDataImportJobRequest&, const Model::DescribeTableDataImportJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTableDataImportJobResponseReceivedHandler;
112     typedef std::function<void(const HoneycodeClient*, const Model::GetScreenDataRequest&, const Model::GetScreenDataOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetScreenDataResponseReceivedHandler;
113     typedef std::function<void(const HoneycodeClient*, const Model::InvokeScreenAutomationRequest&, const Model::InvokeScreenAutomationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > InvokeScreenAutomationResponseReceivedHandler;
114     typedef std::function<void(const HoneycodeClient*, const Model::ListTableColumnsRequest&, const Model::ListTableColumnsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTableColumnsResponseReceivedHandler;
115     typedef std::function<void(const HoneycodeClient*, const Model::ListTableRowsRequest&, const Model::ListTableRowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTableRowsResponseReceivedHandler;
116     typedef std::function<void(const HoneycodeClient*, const Model::ListTablesRequest&, const Model::ListTablesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTablesResponseReceivedHandler;
117     typedef std::function<void(const HoneycodeClient*, const Model::QueryTableRowsRequest&, const Model::QueryTableRowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > QueryTableRowsResponseReceivedHandler;
118     typedef std::function<void(const HoneycodeClient*, const Model::StartTableDataImportJobRequest&, const Model::StartTableDataImportJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartTableDataImportJobResponseReceivedHandler;
119 
120   /**
121    * <p> Amazon Honeycode is a fully managed service that allows you to quickly build
122    * mobile and web apps for teams—without programming. Build Honeycode apps for
123    * managing almost anything, like projects, customers, operations, approvals,
124    * resources, and even your team. </p>
125    */
126   class AWS_HONEYCODE_API HoneycodeClient : public Aws::Client::AWSJsonClient
127   {
128     public:
129       typedef Aws::Client::AWSJsonClient BASECLASS;
130 
131        /**
132         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
133         * is not specified, it will be initialized to default values.
134         */
135         HoneycodeClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
136 
137        /**
138         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
139         * is not specified, it will be initialized to default values.
140         */
141         HoneycodeClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
142 
143        /**
144         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
145         * the default http client factory will be used
146         */
147         HoneycodeClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
148             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
149 
150         virtual ~HoneycodeClient();
151 
152 
153         /**
154          * <p> The BatchCreateTableRows API allows you to create one or more rows at the
155          * end of a table in a workbook. The API allows you to specify the values to set in
156          * some or all of the columns in the new rows. </p> <p> If a column is not
157          * explicitly set in a specific row, then the column level formula specified in the
158          * table will be applied to the new row. If there is no column level formula but
159          * the last row of the table has a formula, then that formula will be copied down
160          * to the new row. If there is no column level formula and no formula in the last
161          * row of the table, then that column will be left blank for the new rows.
162          * </p><p><h3>See Also:</h3>   <a
163          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchCreateTableRows">AWS
164          * API Reference</a></p>
165          */
166         virtual Model::BatchCreateTableRowsOutcome BatchCreateTableRows(const Model::BatchCreateTableRowsRequest& request) const;
167 
168         /**
169          * <p> The BatchCreateTableRows API allows you to create one or more rows at the
170          * end of a table in a workbook. The API allows you to specify the values to set in
171          * some or all of the columns in the new rows. </p> <p> If a column is not
172          * explicitly set in a specific row, then the column level formula specified in the
173          * table will be applied to the new row. If there is no column level formula but
174          * the last row of the table has a formula, then that formula will be copied down
175          * to the new row. If there is no column level formula and no formula in the last
176          * row of the table, then that column will be left blank for the new rows.
177          * </p><p><h3>See Also:</h3>   <a
178          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchCreateTableRows">AWS
179          * API Reference</a></p>
180          *
181          * returns a future to the operation so that it can be executed in parallel to other requests.
182          */
183         virtual Model::BatchCreateTableRowsOutcomeCallable BatchCreateTableRowsCallable(const Model::BatchCreateTableRowsRequest& request) const;
184 
185         /**
186          * <p> The BatchCreateTableRows API allows you to create one or more rows at the
187          * end of a table in a workbook. The API allows you to specify the values to set in
188          * some or all of the columns in the new rows. </p> <p> If a column is not
189          * explicitly set in a specific row, then the column level formula specified in the
190          * table will be applied to the new row. If there is no column level formula but
191          * the last row of the table has a formula, then that formula will be copied down
192          * to the new row. If there is no column level formula and no formula in the last
193          * row of the table, then that column will be left blank for the new rows.
194          * </p><p><h3>See Also:</h3>   <a
195          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchCreateTableRows">AWS
196          * API Reference</a></p>
197          *
198          * Queues the request into a thread executor and triggers associated callback when operation has finished.
199          */
200         virtual void BatchCreateTableRowsAsync(const Model::BatchCreateTableRowsRequest& request, const BatchCreateTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
201 
202         /**
203          * <p> The BatchDeleteTableRows API allows you to delete one or more rows from a
204          * table in a workbook. You need to specify the ids of the rows that you want to
205          * delete from the table. </p><p><h3>See Also:</h3>   <a
206          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchDeleteTableRows">AWS
207          * API Reference</a></p>
208          */
209         virtual Model::BatchDeleteTableRowsOutcome BatchDeleteTableRows(const Model::BatchDeleteTableRowsRequest& request) const;
210 
211         /**
212          * <p> The BatchDeleteTableRows API allows you to delete one or more rows from a
213          * table in a workbook. You need to specify the ids of the rows that you want to
214          * delete from the table. </p><p><h3>See Also:</h3>   <a
215          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchDeleteTableRows">AWS
216          * API Reference</a></p>
217          *
218          * returns a future to the operation so that it can be executed in parallel to other requests.
219          */
220         virtual Model::BatchDeleteTableRowsOutcomeCallable BatchDeleteTableRowsCallable(const Model::BatchDeleteTableRowsRequest& request) const;
221 
222         /**
223          * <p> The BatchDeleteTableRows API allows you to delete one or more rows from a
224          * table in a workbook. You need to specify the ids of the rows that you want to
225          * delete from the table. </p><p><h3>See Also:</h3>   <a
226          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchDeleteTableRows">AWS
227          * API Reference</a></p>
228          *
229          * Queues the request into a thread executor and triggers associated callback when operation has finished.
230          */
231         virtual void BatchDeleteTableRowsAsync(const Model::BatchDeleteTableRowsRequest& request, const BatchDeleteTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
232 
233         /**
234          * <p> The BatchUpdateTableRows API allows you to update one or more rows in a
235          * table in a workbook. </p> <p> You can specify the values to set in some or all
236          * of the columns in the table for the specified rows. If a column is not
237          * explicitly specified in a particular row, then that column will not be updated
238          * for that row. To clear out the data in a specific cell, you need to set the
239          * value as an empty string (""). </p><p><h3>See Also:</h3>   <a
240          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchUpdateTableRows">AWS
241          * API Reference</a></p>
242          */
243         virtual Model::BatchUpdateTableRowsOutcome BatchUpdateTableRows(const Model::BatchUpdateTableRowsRequest& request) const;
244 
245         /**
246          * <p> The BatchUpdateTableRows API allows you to update one or more rows in a
247          * table in a workbook. </p> <p> You can specify the values to set in some or all
248          * of the columns in the table for the specified rows. If a column is not
249          * explicitly specified in a particular row, then that column will not be updated
250          * for that row. To clear out the data in a specific cell, you need to set the
251          * value as an empty string (""). </p><p><h3>See Also:</h3>   <a
252          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchUpdateTableRows">AWS
253          * API Reference</a></p>
254          *
255          * returns a future to the operation so that it can be executed in parallel to other requests.
256          */
257         virtual Model::BatchUpdateTableRowsOutcomeCallable BatchUpdateTableRowsCallable(const Model::BatchUpdateTableRowsRequest& request) const;
258 
259         /**
260          * <p> The BatchUpdateTableRows API allows you to update one or more rows in a
261          * table in a workbook. </p> <p> You can specify the values to set in some or all
262          * of the columns in the table for the specified rows. If a column is not
263          * explicitly specified in a particular row, then that column will not be updated
264          * for that row. To clear out the data in a specific cell, you need to set the
265          * value as an empty string (""). </p><p><h3>See Also:</h3>   <a
266          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchUpdateTableRows">AWS
267          * API Reference</a></p>
268          *
269          * Queues the request into a thread executor and triggers associated callback when operation has finished.
270          */
271         virtual void BatchUpdateTableRowsAsync(const Model::BatchUpdateTableRowsRequest& request, const BatchUpdateTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
272 
273         /**
274          * <p> The BatchUpsertTableRows API allows you to upsert one or more rows in a
275          * table. The upsert operation takes a filter expression as input and evaluates it
276          * to find matching rows on the destination table. If matching rows are found, it
277          * will update the cells in the matching rows to new values specified in the
278          * request. If no matching rows are found, a new row is added at the end of the
279          * table and the cells in that row are set to the new values specified in the
280          * request. </p> <p> You can specify the values to set in some or all of the
281          * columns in the table for the matching or newly appended rows. If a column is not
282          * explicitly specified for a particular row, then that column will not be updated
283          * for that row. To clear out the data in a specific cell, you need to set the
284          * value as an empty string (""). </p><p><h3>See Also:</h3>   <a
285          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchUpsertTableRows">AWS
286          * API Reference</a></p>
287          */
288         virtual Model::BatchUpsertTableRowsOutcome BatchUpsertTableRows(const Model::BatchUpsertTableRowsRequest& request) const;
289 
290         /**
291          * <p> The BatchUpsertTableRows API allows you to upsert one or more rows in a
292          * table. The upsert operation takes a filter expression as input and evaluates it
293          * to find matching rows on the destination table. If matching rows are found, it
294          * will update the cells in the matching rows to new values specified in the
295          * request. If no matching rows are found, a new row is added at the end of the
296          * table and the cells in that row are set to the new values specified in the
297          * request. </p> <p> You can specify the values to set in some or all of the
298          * columns in the table for the matching or newly appended rows. If a column is not
299          * explicitly specified for a particular row, then that column will not be updated
300          * for that row. To clear out the data in a specific cell, you need to set the
301          * value as an empty string (""). </p><p><h3>See Also:</h3>   <a
302          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchUpsertTableRows">AWS
303          * API Reference</a></p>
304          *
305          * returns a future to the operation so that it can be executed in parallel to other requests.
306          */
307         virtual Model::BatchUpsertTableRowsOutcomeCallable BatchUpsertTableRowsCallable(const Model::BatchUpsertTableRowsRequest& request) const;
308 
309         /**
310          * <p> The BatchUpsertTableRows API allows you to upsert one or more rows in a
311          * table. The upsert operation takes a filter expression as input and evaluates it
312          * to find matching rows on the destination table. If matching rows are found, it
313          * will update the cells in the matching rows to new values specified in the
314          * request. If no matching rows are found, a new row is added at the end of the
315          * table and the cells in that row are set to the new values specified in the
316          * request. </p> <p> You can specify the values to set in some or all of the
317          * columns in the table for the matching or newly appended rows. If a column is not
318          * explicitly specified for a particular row, then that column will not be updated
319          * for that row. To clear out the data in a specific cell, you need to set the
320          * value as an empty string (""). </p><p><h3>See Also:</h3>   <a
321          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/BatchUpsertTableRows">AWS
322          * API Reference</a></p>
323          *
324          * Queues the request into a thread executor and triggers associated callback when operation has finished.
325          */
326         virtual void BatchUpsertTableRowsAsync(const Model::BatchUpsertTableRowsRequest& request, const BatchUpsertTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
327 
328         /**
329          * <p> The DescribeTableDataImportJob API allows you to retrieve the status and
330          * details of a table data import job. </p><p><h3>See Also:</h3>   <a
331          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/DescribeTableDataImportJob">AWS
332          * API Reference</a></p>
333          */
334         virtual Model::DescribeTableDataImportJobOutcome DescribeTableDataImportJob(const Model::DescribeTableDataImportJobRequest& request) const;
335 
336         /**
337          * <p> The DescribeTableDataImportJob API allows you to retrieve the status and
338          * details of a table data import job. </p><p><h3>See Also:</h3>   <a
339          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/DescribeTableDataImportJob">AWS
340          * API Reference</a></p>
341          *
342          * returns a future to the operation so that it can be executed in parallel to other requests.
343          */
344         virtual Model::DescribeTableDataImportJobOutcomeCallable DescribeTableDataImportJobCallable(const Model::DescribeTableDataImportJobRequest& request) const;
345 
346         /**
347          * <p> The DescribeTableDataImportJob API allows you to retrieve the status and
348          * details of a table data import job. </p><p><h3>See Also:</h3>   <a
349          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/DescribeTableDataImportJob">AWS
350          * API Reference</a></p>
351          *
352          * Queues the request into a thread executor and triggers associated callback when operation has finished.
353          */
354         virtual void DescribeTableDataImportJobAsync(const Model::DescribeTableDataImportJobRequest& request, const DescribeTableDataImportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
355 
356         /**
357          * <p> The GetScreenData API allows retrieval of data from a screen in a Honeycode
358          * app. The API allows setting local variables in the screen to filter, sort or
359          * otherwise affect what will be displayed on the screen. </p><p><h3>See Also:</h3>
360          * <a
361          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/GetScreenData">AWS
362          * API Reference</a></p>
363          */
364         virtual Model::GetScreenDataOutcome GetScreenData(const Model::GetScreenDataRequest& request) const;
365 
366         /**
367          * <p> The GetScreenData API allows retrieval of data from a screen in a Honeycode
368          * app. The API allows setting local variables in the screen to filter, sort or
369          * otherwise affect what will be displayed on the screen. </p><p><h3>See Also:</h3>
370          * <a
371          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/GetScreenData">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::GetScreenDataOutcomeCallable GetScreenDataCallable(const Model::GetScreenDataRequest& request) const;
377 
378         /**
379          * <p> The GetScreenData API allows retrieval of data from a screen in a Honeycode
380          * app. The API allows setting local variables in the screen to filter, sort or
381          * otherwise affect what will be displayed on the screen. </p><p><h3>See Also:</h3>
382          * <a
383          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/GetScreenData">AWS
384          * API Reference</a></p>
385          *
386          * Queues the request into a thread executor and triggers associated callback when operation has finished.
387          */
388         virtual void GetScreenDataAsync(const Model::GetScreenDataRequest& request, const GetScreenDataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
389 
390         /**
391          * <p> The InvokeScreenAutomation API allows invoking an action defined in a screen
392          * in a Honeycode app. The API allows setting local variables, which can then be
393          * used in the automation being invoked. This allows automating the Honeycode app
394          * interactions to write, update or delete data in the workbook. </p><p><h3>See
395          * Also:</h3>   <a
396          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/InvokeScreenAutomation">AWS
397          * API Reference</a></p>
398          */
399         virtual Model::InvokeScreenAutomationOutcome InvokeScreenAutomation(const Model::InvokeScreenAutomationRequest& request) const;
400 
401         /**
402          * <p> The InvokeScreenAutomation API allows invoking an action defined in a screen
403          * in a Honeycode app. The API allows setting local variables, which can then be
404          * used in the automation being invoked. This allows automating the Honeycode app
405          * interactions to write, update or delete data in the workbook. </p><p><h3>See
406          * Also:</h3>   <a
407          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/InvokeScreenAutomation">AWS
408          * API Reference</a></p>
409          *
410          * returns a future to the operation so that it can be executed in parallel to other requests.
411          */
412         virtual Model::InvokeScreenAutomationOutcomeCallable InvokeScreenAutomationCallable(const Model::InvokeScreenAutomationRequest& request) const;
413 
414         /**
415          * <p> The InvokeScreenAutomation API allows invoking an action defined in a screen
416          * in a Honeycode app. The API allows setting local variables, which can then be
417          * used in the automation being invoked. This allows automating the Honeycode app
418          * interactions to write, update or delete data in the workbook. </p><p><h3>See
419          * Also:</h3>   <a
420          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/InvokeScreenAutomation">AWS
421          * API Reference</a></p>
422          *
423          * Queues the request into a thread executor and triggers associated callback when operation has finished.
424          */
425         virtual void InvokeScreenAutomationAsync(const Model::InvokeScreenAutomationRequest& request, const InvokeScreenAutomationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
426 
427         /**
428          * <p> The ListTableColumns API allows you to retrieve a list of all the columns in
429          * a table in a workbook. </p><p><h3>See Also:</h3>   <a
430          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTableColumns">AWS
431          * API Reference</a></p>
432          */
433         virtual Model::ListTableColumnsOutcome ListTableColumns(const Model::ListTableColumnsRequest& request) const;
434 
435         /**
436          * <p> The ListTableColumns API allows you to retrieve a list of all the columns in
437          * a table in a workbook. </p><p><h3>See Also:</h3>   <a
438          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTableColumns">AWS
439          * API Reference</a></p>
440          *
441          * returns a future to the operation so that it can be executed in parallel to other requests.
442          */
443         virtual Model::ListTableColumnsOutcomeCallable ListTableColumnsCallable(const Model::ListTableColumnsRequest& request) const;
444 
445         /**
446          * <p> The ListTableColumns API allows you to retrieve a list of all the columns in
447          * a table in a workbook. </p><p><h3>See Also:</h3>   <a
448          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTableColumns">AWS
449          * API Reference</a></p>
450          *
451          * Queues the request into a thread executor and triggers associated callback when operation has finished.
452          */
453         virtual void ListTableColumnsAsync(const Model::ListTableColumnsRequest& request, const ListTableColumnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
454 
455         /**
456          * <p> The ListTableRows API allows you to retrieve a list of all the rows in a
457          * table in a workbook. </p><p><h3>See Also:</h3>   <a
458          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTableRows">AWS
459          * API Reference</a></p>
460          */
461         virtual Model::ListTableRowsOutcome ListTableRows(const Model::ListTableRowsRequest& request) const;
462 
463         /**
464          * <p> The ListTableRows API allows you to retrieve a list of all the rows in a
465          * table in a workbook. </p><p><h3>See Also:</h3>   <a
466          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTableRows">AWS
467          * API Reference</a></p>
468          *
469          * returns a future to the operation so that it can be executed in parallel to other requests.
470          */
471         virtual Model::ListTableRowsOutcomeCallable ListTableRowsCallable(const Model::ListTableRowsRequest& request) const;
472 
473         /**
474          * <p> The ListTableRows API allows you to retrieve a list of all the rows in a
475          * table in a workbook. </p><p><h3>See Also:</h3>   <a
476          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTableRows">AWS
477          * API Reference</a></p>
478          *
479          * Queues the request into a thread executor and triggers associated callback when operation has finished.
480          */
481         virtual void ListTableRowsAsync(const Model::ListTableRowsRequest& request, const ListTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
482 
483         /**
484          * <p> The ListTables API allows you to retrieve a list of all the tables in a
485          * workbook. </p><p><h3>See Also:</h3>   <a
486          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTables">AWS
487          * API Reference</a></p>
488          */
489         virtual Model::ListTablesOutcome ListTables(const Model::ListTablesRequest& request) const;
490 
491         /**
492          * <p> The ListTables API allows you to retrieve a list of all the tables in a
493          * workbook. </p><p><h3>See Also:</h3>   <a
494          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTables">AWS
495          * API Reference</a></p>
496          *
497          * returns a future to the operation so that it can be executed in parallel to other requests.
498          */
499         virtual Model::ListTablesOutcomeCallable ListTablesCallable(const Model::ListTablesRequest& request) const;
500 
501         /**
502          * <p> The ListTables API allows you to retrieve a list of all the tables in a
503          * workbook. </p><p><h3>See Also:</h3>   <a
504          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/ListTables">AWS
505          * API Reference</a></p>
506          *
507          * Queues the request into a thread executor and triggers associated callback when operation has finished.
508          */
509         virtual void ListTablesAsync(const Model::ListTablesRequest& request, const ListTablesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
510 
511         /**
512          * <p> The QueryTableRows API allows you to use a filter formula to query for
513          * specific rows in a table. </p><p><h3>See Also:</h3>   <a
514          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/QueryTableRows">AWS
515          * API Reference</a></p>
516          */
517         virtual Model::QueryTableRowsOutcome QueryTableRows(const Model::QueryTableRowsRequest& request) const;
518 
519         /**
520          * <p> The QueryTableRows API allows you to use a filter formula to query for
521          * specific rows in a table. </p><p><h3>See Also:</h3>   <a
522          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/QueryTableRows">AWS
523          * API Reference</a></p>
524          *
525          * returns a future to the operation so that it can be executed in parallel to other requests.
526          */
527         virtual Model::QueryTableRowsOutcomeCallable QueryTableRowsCallable(const Model::QueryTableRowsRequest& request) const;
528 
529         /**
530          * <p> The QueryTableRows API allows you to use a filter formula to query for
531          * specific rows in a table. </p><p><h3>See Also:</h3>   <a
532          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/QueryTableRows">AWS
533          * API Reference</a></p>
534          *
535          * Queues the request into a thread executor and triggers associated callback when operation has finished.
536          */
537         virtual void QueryTableRowsAsync(const Model::QueryTableRowsRequest& request, const QueryTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
538 
539         /**
540          * <p> The StartTableDataImportJob API allows you to start an import job on a
541          * table. This API will only return the id of the job that was started. To find out
542          * the status of the import request, you need to call the
543          * DescribeTableDataImportJob API. </p><p><h3>See Also:</h3>   <a
544          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/StartTableDataImportJob">AWS
545          * API Reference</a></p>
546          */
547         virtual Model::StartTableDataImportJobOutcome StartTableDataImportJob(const Model::StartTableDataImportJobRequest& request) const;
548 
549         /**
550          * <p> The StartTableDataImportJob API allows you to start an import job on a
551          * table. This API will only return the id of the job that was started. To find out
552          * the status of the import request, you need to call the
553          * DescribeTableDataImportJob API. </p><p><h3>See Also:</h3>   <a
554          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/StartTableDataImportJob">AWS
555          * API Reference</a></p>
556          *
557          * returns a future to the operation so that it can be executed in parallel to other requests.
558          */
559         virtual Model::StartTableDataImportJobOutcomeCallable StartTableDataImportJobCallable(const Model::StartTableDataImportJobRequest& request) const;
560 
561         /**
562          * <p> The StartTableDataImportJob API allows you to start an import job on a
563          * table. This API will only return the id of the job that was started. To find out
564          * the status of the import request, you need to call the
565          * DescribeTableDataImportJob API. </p><p><h3>See Also:</h3>   <a
566          * href="http://docs.aws.amazon.com/goto/WebAPI/honeycode-2020-03-01/StartTableDataImportJob">AWS
567          * API Reference</a></p>
568          *
569          * Queues the request into a thread executor and triggers associated callback when operation has finished.
570          */
571         virtual void StartTableDataImportJobAsync(const Model::StartTableDataImportJobRequest& request, const StartTableDataImportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
572 
573 
574       void OverrideEndpoint(const Aws::String& endpoint);
575     private:
576       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
577         void BatchCreateTableRowsAsyncHelper(const Model::BatchCreateTableRowsRequest& request, const BatchCreateTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
578         void BatchDeleteTableRowsAsyncHelper(const Model::BatchDeleteTableRowsRequest& request, const BatchDeleteTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
579         void BatchUpdateTableRowsAsyncHelper(const Model::BatchUpdateTableRowsRequest& request, const BatchUpdateTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
580         void BatchUpsertTableRowsAsyncHelper(const Model::BatchUpsertTableRowsRequest& request, const BatchUpsertTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
581         void DescribeTableDataImportJobAsyncHelper(const Model::DescribeTableDataImportJobRequest& request, const DescribeTableDataImportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
582         void GetScreenDataAsyncHelper(const Model::GetScreenDataRequest& request, const GetScreenDataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
583         void InvokeScreenAutomationAsyncHelper(const Model::InvokeScreenAutomationRequest& request, const InvokeScreenAutomationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
584         void ListTableColumnsAsyncHelper(const Model::ListTableColumnsRequest& request, const ListTableColumnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
585         void ListTableRowsAsyncHelper(const Model::ListTableRowsRequest& request, const ListTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
586         void ListTablesAsyncHelper(const Model::ListTablesRequest& request, const ListTablesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
587         void QueryTableRowsAsyncHelper(const Model::QueryTableRowsRequest& request, const QueryTableRowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
588         void StartTableDataImportJobAsyncHelper(const Model::StartTableDataImportJobRequest& request, const StartTableDataImportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
589 
590       Aws::String m_uri;
591       Aws::String m_configScheme;
592       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
593   };
594 
595 } // namespace Honeycode
596 } // namespace Aws
597