/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Honeycode { /** *

Amazon Honeycode is a fully managed service that allows you to quickly build * mobile and web apps for teams—without programming. Build Honeycode apps for * managing almost anything, like projects, customers, operations, approvals, * resources, and even your team.

*/ class AWS_HONEYCODE_API HoneycodeClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef HoneycodeClientConfiguration ClientConfigurationType; typedef HoneycodeEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ HoneycodeClient(const Aws::Honeycode::HoneycodeClientConfiguration& clientConfiguration = Aws::Honeycode::HoneycodeClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ HoneycodeClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::Honeycode::HoneycodeClientConfiguration& clientConfiguration = Aws::Honeycode::HoneycodeClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ HoneycodeClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::Honeycode::HoneycodeClientConfiguration& clientConfiguration = Aws::Honeycode::HoneycodeClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ HoneycodeClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ HoneycodeClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ HoneycodeClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~HoneycodeClient(); /** *

The BatchCreateTableRows API allows you to create one or more rows at the * end of a table in a workbook. The API allows you to specify the values to set in * some or all of the columns in the new rows.

If a column is not * explicitly set in a specific row, then the column level formula specified in the * table will be applied to the new row. If there is no column level formula but * the last row of the table has a formula, then that formula will be copied down * to the new row. If there is no column level formula and no formula in the last * row of the table, then that column will be left blank for the new rows. *

See Also:

AWS * API Reference

*/ virtual Model::BatchCreateTableRowsOutcome BatchCreateTableRows(const Model::BatchCreateTableRowsRequest& request) const; /** * A Callable wrapper for BatchCreateTableRows that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchCreateTableRowsOutcomeCallable BatchCreateTableRowsCallable(const BatchCreateTableRowsRequestT& request) const { return SubmitCallable(&HoneycodeClient::BatchCreateTableRows, request); } /** * An Async wrapper for BatchCreateTableRows that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchCreateTableRowsAsync(const BatchCreateTableRowsRequestT& request, const BatchCreateTableRowsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::BatchCreateTableRows, request, handler, context); } /** *

The BatchDeleteTableRows API allows you to delete one or more rows from a * table in a workbook. You need to specify the ids of the rows that you want to * delete from the table.

See Also:

AWS * API Reference

*/ virtual Model::BatchDeleteTableRowsOutcome BatchDeleteTableRows(const Model::BatchDeleteTableRowsRequest& request) const; /** * A Callable wrapper for BatchDeleteTableRows that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchDeleteTableRowsOutcomeCallable BatchDeleteTableRowsCallable(const BatchDeleteTableRowsRequestT& request) const { return SubmitCallable(&HoneycodeClient::BatchDeleteTableRows, request); } /** * An Async wrapper for BatchDeleteTableRows that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchDeleteTableRowsAsync(const BatchDeleteTableRowsRequestT& request, const BatchDeleteTableRowsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::BatchDeleteTableRows, request, handler, context); } /** *

The BatchUpdateTableRows API allows you to update one or more rows in a * table in a workbook.

You can specify the values to set in some or all * of the columns in the table for the specified rows. If a column is not * explicitly specified in a particular row, then that column will not be updated * for that row. To clear out the data in a specific cell, you need to set the * value as an empty string ("").

See Also:

AWS * API Reference

*/ virtual Model::BatchUpdateTableRowsOutcome BatchUpdateTableRows(const Model::BatchUpdateTableRowsRequest& request) const; /** * A Callable wrapper for BatchUpdateTableRows that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchUpdateTableRowsOutcomeCallable BatchUpdateTableRowsCallable(const BatchUpdateTableRowsRequestT& request) const { return SubmitCallable(&HoneycodeClient::BatchUpdateTableRows, request); } /** * An Async wrapper for BatchUpdateTableRows that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchUpdateTableRowsAsync(const BatchUpdateTableRowsRequestT& request, const BatchUpdateTableRowsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::BatchUpdateTableRows, request, handler, context); } /** *

The BatchUpsertTableRows API allows you to upsert one or more rows in a * table. The upsert operation takes a filter expression as input and evaluates it * to find matching rows on the destination table. If matching rows are found, it * will update the cells in the matching rows to new values specified in the * request. If no matching rows are found, a new row is added at the end of the * table and the cells in that row are set to the new values specified in the * request.

You can specify the values to set in some or all of the * columns in the table for the matching or newly appended rows. If a column is not * explicitly specified for a particular row, then that column will not be updated * for that row. To clear out the data in a specific cell, you need to set the * value as an empty string ("").

See Also:

AWS * API Reference

*/ virtual Model::BatchUpsertTableRowsOutcome BatchUpsertTableRows(const Model::BatchUpsertTableRowsRequest& request) const; /** * A Callable wrapper for BatchUpsertTableRows that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchUpsertTableRowsOutcomeCallable BatchUpsertTableRowsCallable(const BatchUpsertTableRowsRequestT& request) const { return SubmitCallable(&HoneycodeClient::BatchUpsertTableRows, request); } /** * An Async wrapper for BatchUpsertTableRows that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchUpsertTableRowsAsync(const BatchUpsertTableRowsRequestT& request, const BatchUpsertTableRowsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::BatchUpsertTableRows, request, handler, context); } /** *

The DescribeTableDataImportJob API allows you to retrieve the status and * details of a table data import job.

See Also:

AWS * API Reference

*/ virtual Model::DescribeTableDataImportJobOutcome DescribeTableDataImportJob(const Model::DescribeTableDataImportJobRequest& request) const; /** * A Callable wrapper for DescribeTableDataImportJob that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeTableDataImportJobOutcomeCallable DescribeTableDataImportJobCallable(const DescribeTableDataImportJobRequestT& request) const { return SubmitCallable(&HoneycodeClient::DescribeTableDataImportJob, request); } /** * An Async wrapper for DescribeTableDataImportJob that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeTableDataImportJobAsync(const DescribeTableDataImportJobRequestT& request, const DescribeTableDataImportJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::DescribeTableDataImportJob, request, handler, context); } /** *

The GetScreenData API allows retrieval of data from a screen in a Honeycode * app. The API allows setting local variables in the screen to filter, sort or * otherwise affect what will be displayed on the screen.

See Also:

* AWS * API Reference

*/ virtual Model::GetScreenDataOutcome GetScreenData(const Model::GetScreenDataRequest& request) const; /** * A Callable wrapper for GetScreenData that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetScreenDataOutcomeCallable GetScreenDataCallable(const GetScreenDataRequestT& request) const { return SubmitCallable(&HoneycodeClient::GetScreenData, request); } /** * An Async wrapper for GetScreenData that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetScreenDataAsync(const GetScreenDataRequestT& request, const GetScreenDataResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::GetScreenData, request, handler, context); } /** *

The InvokeScreenAutomation API allows invoking an action defined in a screen * in a Honeycode app. The API allows setting local variables, which can then be * used in the automation being invoked. This allows automating the Honeycode app * interactions to write, update or delete data in the workbook.

See * Also:

AWS * API Reference

*/ virtual Model::InvokeScreenAutomationOutcome InvokeScreenAutomation(const Model::InvokeScreenAutomationRequest& request) const; /** * A Callable wrapper for InvokeScreenAutomation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::InvokeScreenAutomationOutcomeCallable InvokeScreenAutomationCallable(const InvokeScreenAutomationRequestT& request) const { return SubmitCallable(&HoneycodeClient::InvokeScreenAutomation, request); } /** * An Async wrapper for InvokeScreenAutomation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void InvokeScreenAutomationAsync(const InvokeScreenAutomationRequestT& request, const InvokeScreenAutomationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::InvokeScreenAutomation, request, handler, context); } /** *

The ListTableColumns API allows you to retrieve a list of all the columns in * a table in a workbook.

See Also:

AWS * API Reference

*/ virtual Model::ListTableColumnsOutcome ListTableColumns(const Model::ListTableColumnsRequest& request) const; /** * A Callable wrapper for ListTableColumns that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTableColumnsOutcomeCallable ListTableColumnsCallable(const ListTableColumnsRequestT& request) const { return SubmitCallable(&HoneycodeClient::ListTableColumns, request); } /** * An Async wrapper for ListTableColumns that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTableColumnsAsync(const ListTableColumnsRequestT& request, const ListTableColumnsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::ListTableColumns, request, handler, context); } /** *

The ListTableRows API allows you to retrieve a list of all the rows in a * table in a workbook.

See Also:

AWS * API Reference

*/ virtual Model::ListTableRowsOutcome ListTableRows(const Model::ListTableRowsRequest& request) const; /** * A Callable wrapper for ListTableRows that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTableRowsOutcomeCallable ListTableRowsCallable(const ListTableRowsRequestT& request) const { return SubmitCallable(&HoneycodeClient::ListTableRows, request); } /** * An Async wrapper for ListTableRows that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTableRowsAsync(const ListTableRowsRequestT& request, const ListTableRowsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::ListTableRows, request, handler, context); } /** *

The ListTables API allows you to retrieve a list of all the tables in a * workbook.

See Also:

AWS * API Reference

*/ virtual Model::ListTablesOutcome ListTables(const Model::ListTablesRequest& request) const; /** * A Callable wrapper for ListTables that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTablesOutcomeCallable ListTablesCallable(const ListTablesRequestT& request) const { return SubmitCallable(&HoneycodeClient::ListTables, request); } /** * An Async wrapper for ListTables that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTablesAsync(const ListTablesRequestT& request, const ListTablesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::ListTables, request, handler, context); } /** *

The ListTagsForResource API allows you to return a resource's tags. *

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&HoneycodeClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::ListTagsForResource, request, handler, context); } /** *

The QueryTableRows API allows you to use a filter formula to query for * specific rows in a table.

See Also:

AWS * API Reference

*/ virtual Model::QueryTableRowsOutcome QueryTableRows(const Model::QueryTableRowsRequest& request) const; /** * A Callable wrapper for QueryTableRows that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::QueryTableRowsOutcomeCallable QueryTableRowsCallable(const QueryTableRowsRequestT& request) const { return SubmitCallable(&HoneycodeClient::QueryTableRows, request); } /** * An Async wrapper for QueryTableRows that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void QueryTableRowsAsync(const QueryTableRowsRequestT& request, const QueryTableRowsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::QueryTableRows, request, handler, context); } /** *

The StartTableDataImportJob API allows you to start an import job on a * table. This API will only return the id of the job that was started. To find out * the status of the import request, you need to call the * DescribeTableDataImportJob API.

See Also:

AWS * API Reference

*/ virtual Model::StartTableDataImportJobOutcome StartTableDataImportJob(const Model::StartTableDataImportJobRequest& request) const; /** * A Callable wrapper for StartTableDataImportJob that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartTableDataImportJobOutcomeCallable StartTableDataImportJobCallable(const StartTableDataImportJobRequestT& request) const { return SubmitCallable(&HoneycodeClient::StartTableDataImportJob, request); } /** * An Async wrapper for StartTableDataImportJob that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartTableDataImportJobAsync(const StartTableDataImportJobRequestT& request, const StartTableDataImportJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::StartTableDataImportJob, request, handler, context); } /** *

The TagResource API allows you to add tags to an ARN-able resource. Resource * includes workbook, table, screen and screen-automation.

See * Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&HoneycodeClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::TagResource, request, handler, context); } /** *

The UntagResource API allows you to removes tags from an ARN-able resource. * Resource includes workbook, table, screen and screen-automation.

See * Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&HoneycodeClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&HoneycodeClient::UntagResource, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const HoneycodeClientConfiguration& clientConfiguration); HoneycodeClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace Honeycode } // namespace Aws