/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace Athena { namespace Model { class BatchGetNamedQueryRequest; class BatchGetQueryExecutionRequest; class CreateDataCatalogRequest; class CreateNamedQueryRequest; class CreateWorkGroupRequest; class DeleteDataCatalogRequest; class DeleteNamedQueryRequest; class DeleteWorkGroupRequest; class GetDataCatalogRequest; class GetDatabaseRequest; class GetNamedQueryRequest; class GetQueryExecutionRequest; class GetQueryResultsRequest; class GetTableMetadataRequest; class GetWorkGroupRequest; class ListDataCatalogsRequest; class ListDatabasesRequest; class ListNamedQueriesRequest; class ListQueryExecutionsRequest; class ListTableMetadataRequest; class ListTagsForResourceRequest; class ListWorkGroupsRequest; class StartQueryExecutionRequest; class StopQueryExecutionRequest; class TagResourceRequest; class UntagResourceRequest; class UpdateDataCatalogRequest; class UpdateWorkGroupRequest; typedef Aws::Utils::Outcome BatchGetNamedQueryOutcome; typedef Aws::Utils::Outcome BatchGetQueryExecutionOutcome; typedef Aws::Utils::Outcome CreateDataCatalogOutcome; typedef Aws::Utils::Outcome CreateNamedQueryOutcome; typedef Aws::Utils::Outcome CreateWorkGroupOutcome; typedef Aws::Utils::Outcome DeleteDataCatalogOutcome; typedef Aws::Utils::Outcome DeleteNamedQueryOutcome; typedef Aws::Utils::Outcome DeleteWorkGroupOutcome; typedef Aws::Utils::Outcome GetDataCatalogOutcome; typedef Aws::Utils::Outcome GetDatabaseOutcome; typedef Aws::Utils::Outcome GetNamedQueryOutcome; typedef Aws::Utils::Outcome GetQueryExecutionOutcome; typedef Aws::Utils::Outcome GetQueryResultsOutcome; typedef Aws::Utils::Outcome GetTableMetadataOutcome; typedef Aws::Utils::Outcome GetWorkGroupOutcome; typedef Aws::Utils::Outcome ListDataCatalogsOutcome; typedef Aws::Utils::Outcome ListDatabasesOutcome; typedef Aws::Utils::Outcome ListNamedQueriesOutcome; typedef Aws::Utils::Outcome ListQueryExecutionsOutcome; typedef Aws::Utils::Outcome ListTableMetadataOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome ListWorkGroupsOutcome; typedef Aws::Utils::Outcome StartQueryExecutionOutcome; typedef Aws::Utils::Outcome StopQueryExecutionOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateDataCatalogOutcome; typedef Aws::Utils::Outcome UpdateWorkGroupOutcome; typedef std::future BatchGetNamedQueryOutcomeCallable; typedef std::future BatchGetQueryExecutionOutcomeCallable; typedef std::future CreateDataCatalogOutcomeCallable; typedef std::future CreateNamedQueryOutcomeCallable; typedef std::future CreateWorkGroupOutcomeCallable; typedef std::future DeleteDataCatalogOutcomeCallable; typedef std::future DeleteNamedQueryOutcomeCallable; typedef std::future DeleteWorkGroupOutcomeCallable; typedef std::future GetDataCatalogOutcomeCallable; typedef std::future GetDatabaseOutcomeCallable; typedef std::future GetNamedQueryOutcomeCallable; typedef std::future GetQueryExecutionOutcomeCallable; typedef std::future GetQueryResultsOutcomeCallable; typedef std::future GetTableMetadataOutcomeCallable; typedef std::future GetWorkGroupOutcomeCallable; typedef std::future ListDataCatalogsOutcomeCallable; typedef std::future ListDatabasesOutcomeCallable; typedef std::future ListNamedQueriesOutcomeCallable; typedef std::future ListQueryExecutionsOutcomeCallable; typedef std::future ListTableMetadataOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future ListWorkGroupsOutcomeCallable; typedef std::future StartQueryExecutionOutcomeCallable; typedef std::future StopQueryExecutionOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateDataCatalogOutcomeCallable; typedef std::future UpdateWorkGroupOutcomeCallable; } // namespace Model class AthenaClient; typedef std::function&) > BatchGetNamedQueryResponseReceivedHandler; typedef std::function&) > BatchGetQueryExecutionResponseReceivedHandler; typedef std::function&) > CreateDataCatalogResponseReceivedHandler; typedef std::function&) > CreateNamedQueryResponseReceivedHandler; typedef std::function&) > CreateWorkGroupResponseReceivedHandler; typedef std::function&) > DeleteDataCatalogResponseReceivedHandler; typedef std::function&) > DeleteNamedQueryResponseReceivedHandler; typedef std::function&) > DeleteWorkGroupResponseReceivedHandler; typedef std::function&) > GetDataCatalogResponseReceivedHandler; typedef std::function&) > GetDatabaseResponseReceivedHandler; typedef std::function&) > GetNamedQueryResponseReceivedHandler; typedef std::function&) > GetQueryExecutionResponseReceivedHandler; typedef std::function&) > GetQueryResultsResponseReceivedHandler; typedef std::function&) > GetTableMetadataResponseReceivedHandler; typedef std::function&) > GetWorkGroupResponseReceivedHandler; typedef std::function&) > ListDataCatalogsResponseReceivedHandler; typedef std::function&) > ListDatabasesResponseReceivedHandler; typedef std::function&) > ListNamedQueriesResponseReceivedHandler; typedef std::function&) > ListQueryExecutionsResponseReceivedHandler; typedef std::function&) > ListTableMetadataResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > ListWorkGroupsResponseReceivedHandler; typedef std::function&) > StartQueryExecutionResponseReceivedHandler; typedef std::function&) > StopQueryExecutionResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateDataCatalogResponseReceivedHandler; typedef std::function&) > UpdateWorkGroupResponseReceivedHandler; /** *

Amazon Athena is an interactive query service that lets you use standard SQL * to analyze data directly in Amazon S3. You can point Athena at your data in * Amazon S3 and run ad-hoc queries and get results in seconds. Athena is * serverless, so there is no infrastructure to set up or manage. You pay only for * the queries you run. Athena scales automatically—executing queries in * parallel—so results are fast, even with large datasets and complex queries. For * more information, see What is Amazon * Athena in the Amazon Athena User Guide.

If you connect to * Athena using the JDBC driver, use version 1.1.0 of the driver or later with the * Amazon Athena API. Earlier version drivers do not support the API. For more * information and to download the driver, see Accessing * Amazon Athena with JDBC.

For code samples using the AWS SDK for Java, * see Examples * and Code Samples in the Amazon Athena User Guide.

*/ class AWS_ATHENA_API AthenaClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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. */ AthenaClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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. */ AthenaClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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 */ AthenaClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~AthenaClient(); /** *

Returns the details of a single named query or a list of up to 50 queries, * which you provide as an array of query ID strings. Requires you to have access * to the workgroup in which the queries were saved. Use * ListNamedQueriesInput to get the list of named query IDs in the specified * workgroup. If information could not be retrieved for a submitted query ID, * information about the query ID submitted is listed under * UnprocessedNamedQueryId. Named queries differ from executed queries. Use * BatchGetQueryExecutionInput to get details about each unique query * execution, and ListQueryExecutionsInput to get a list of query execution * IDs.

See Also:

AWS * API Reference

*/ virtual Model::BatchGetNamedQueryOutcome BatchGetNamedQuery(const Model::BatchGetNamedQueryRequest& request) const; /** *

Returns the details of a single named query or a list of up to 50 queries, * which you provide as an array of query ID strings. Requires you to have access * to the workgroup in which the queries were saved. Use * ListNamedQueriesInput to get the list of named query IDs in the specified * workgroup. If information could not be retrieved for a submitted query ID, * information about the query ID submitted is listed under * UnprocessedNamedQueryId. Named queries differ from executed queries. Use * BatchGetQueryExecutionInput to get details about each unique query * execution, and ListQueryExecutionsInput to get a list of query execution * IDs.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::BatchGetNamedQueryOutcomeCallable BatchGetNamedQueryCallable(const Model::BatchGetNamedQueryRequest& request) const; /** *

Returns the details of a single named query or a list of up to 50 queries, * which you provide as an array of query ID strings. Requires you to have access * to the workgroup in which the queries were saved. Use * ListNamedQueriesInput to get the list of named query IDs in the specified * workgroup. If information could not be retrieved for a submitted query ID, * information about the query ID submitted is listed under * UnprocessedNamedQueryId. Named queries differ from executed queries. Use * BatchGetQueryExecutionInput to get details about each unique query * execution, and ListQueryExecutionsInput to get a list of query execution * IDs.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void BatchGetNamedQueryAsync(const Model::BatchGetNamedQueryRequest& request, const BatchGetNamedQueryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the details of a single query execution or a list of up to 50 query * executions, which you provide as an array of query execution ID strings. * Requires you to have access to the workgroup in which the queries ran. To get a * list of query execution IDs, use ListQueryExecutionsInput$WorkGroup. * Query executions differ from named (saved) queries. Use * BatchGetNamedQueryInput to get details about named queries.

See * Also:

AWS * API Reference

*/ virtual Model::BatchGetQueryExecutionOutcome BatchGetQueryExecution(const Model::BatchGetQueryExecutionRequest& request) const; /** *

Returns the details of a single query execution or a list of up to 50 query * executions, which you provide as an array of query execution ID strings. * Requires you to have access to the workgroup in which the queries ran. To get a * list of query execution IDs, use ListQueryExecutionsInput$WorkGroup. * Query executions differ from named (saved) queries. Use * BatchGetNamedQueryInput to get details about named queries.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::BatchGetQueryExecutionOutcomeCallable BatchGetQueryExecutionCallable(const Model::BatchGetQueryExecutionRequest& request) const; /** *

Returns the details of a single query execution or a list of up to 50 query * executions, which you provide as an array of query execution ID strings. * Requires you to have access to the workgroup in which the queries ran. To get a * list of query execution IDs, use ListQueryExecutionsInput$WorkGroup. * Query executions differ from named (saved) queries. Use * BatchGetNamedQueryInput to get details about named queries.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void BatchGetQueryExecutionAsync(const Model::BatchGetQueryExecutionRequest& request, const BatchGetQueryExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates (registers) a data catalog with the specified name and properties. * Catalogs created are visible to all users of the same AWS account.

See * Also:

AWS * API Reference

*/ virtual Model::CreateDataCatalogOutcome CreateDataCatalog(const Model::CreateDataCatalogRequest& request) const; /** *

Creates (registers) a data catalog with the specified name and properties. * Catalogs created are visible to all users of the same AWS account.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateDataCatalogOutcomeCallable CreateDataCatalogCallable(const Model::CreateDataCatalogRequest& request) const; /** *

Creates (registers) a data catalog with the specified name and properties. * Catalogs created are visible to all users of the same AWS account.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateDataCatalogAsync(const Model::CreateDataCatalogRequest& request, const CreateDataCatalogResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a named query in the specified workgroup. Requires that you have * access to the workgroup.

For code samples using the AWS SDK for Java, see * Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateNamedQueryOutcome CreateNamedQuery(const Model::CreateNamedQueryRequest& request) const; /** *

Creates a named query in the specified workgroup. Requires that you have * access to the workgroup.

For code samples using the AWS SDK for Java, see * Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateNamedQueryOutcomeCallable CreateNamedQueryCallable(const Model::CreateNamedQueryRequest& request) const; /** *

Creates a named query in the specified workgroup. Requires that you have * access to the workgroup.

For code samples using the AWS SDK for Java, see * Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateNamedQueryAsync(const Model::CreateNamedQueryRequest& request, const CreateNamedQueryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a workgroup with the specified name.

See Also:

AWS * API Reference

*/ virtual Model::CreateWorkGroupOutcome CreateWorkGroup(const Model::CreateWorkGroupRequest& request) const; /** *

Creates a workgroup with the specified name.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateWorkGroupOutcomeCallable CreateWorkGroupCallable(const Model::CreateWorkGroupRequest& request) const; /** *

Creates a workgroup with the specified name.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateWorkGroupAsync(const Model::CreateWorkGroupRequest& request, const CreateWorkGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a data catalog.

See Also:

AWS * API Reference

*/ virtual Model::DeleteDataCatalogOutcome DeleteDataCatalog(const Model::DeleteDataCatalogRequest& request) const; /** *

Deletes a data catalog.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteDataCatalogOutcomeCallable DeleteDataCatalogCallable(const Model::DeleteDataCatalogRequest& request) const; /** *

Deletes a data catalog.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteDataCatalogAsync(const Model::DeleteDataCatalogRequest& request, const DeleteDataCatalogResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the named query if you have access to the workgroup in which the * query was saved.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteNamedQueryOutcome DeleteNamedQuery(const Model::DeleteNamedQueryRequest& request) const; /** *

Deletes the named query if you have access to the workgroup in which the * query was saved.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteNamedQueryOutcomeCallable DeleteNamedQueryCallable(const Model::DeleteNamedQueryRequest& request) const; /** *

Deletes the named query if you have access to the workgroup in which the * query was saved.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteNamedQueryAsync(const Model::DeleteNamedQueryRequest& request, const DeleteNamedQueryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the workgroup with the specified name. The primary workgroup cannot * be deleted.

See Also:

AWS * API Reference

*/ virtual Model::DeleteWorkGroupOutcome DeleteWorkGroup(const Model::DeleteWorkGroupRequest& request) const; /** *

Deletes the workgroup with the specified name. The primary workgroup cannot * be deleted.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteWorkGroupOutcomeCallable DeleteWorkGroupCallable(const Model::DeleteWorkGroupRequest& request) const; /** *

Deletes the workgroup with the specified name. The primary workgroup cannot * be deleted.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteWorkGroupAsync(const Model::DeleteWorkGroupRequest& request, const DeleteWorkGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the specified data catalog.

See Also:

AWS * API Reference

*/ virtual Model::GetDataCatalogOutcome GetDataCatalog(const Model::GetDataCatalogRequest& request) const; /** *

Returns the specified data catalog.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetDataCatalogOutcomeCallable GetDataCatalogCallable(const Model::GetDataCatalogRequest& request) const; /** *

Returns the specified data catalog.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetDataCatalogAsync(const Model::GetDataCatalogRequest& request, const GetDataCatalogResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns a database object for the specfied database and data * catalog.

See Also:

AWS * API Reference

*/ virtual Model::GetDatabaseOutcome GetDatabase(const Model::GetDatabaseRequest& request) const; /** *

Returns a database object for the specfied database and data * catalog.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetDatabaseOutcomeCallable GetDatabaseCallable(const Model::GetDatabaseRequest& request) const; /** *

Returns a database object for the specfied database and data * catalog.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetDatabaseAsync(const Model::GetDatabaseRequest& request, const GetDatabaseResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about a single query. Requires that you have access to * the workgroup in which the query was saved.

See Also:

AWS * API Reference

*/ virtual Model::GetNamedQueryOutcome GetNamedQuery(const Model::GetNamedQueryRequest& request) const; /** *

Returns information about a single query. Requires that you have access to * the workgroup in which the query was saved.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetNamedQueryOutcomeCallable GetNamedQueryCallable(const Model::GetNamedQueryRequest& request) const; /** *

Returns information about a single query. Requires that you have access to * the workgroup in which the query was saved.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetNamedQueryAsync(const Model::GetNamedQueryRequest& request, const GetNamedQueryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about a single execution of a query if you have access to * the workgroup in which the query ran. Each time a query executes, information * about the query execution is saved with a unique ID.

See Also:

* AWS * API Reference

*/ virtual Model::GetQueryExecutionOutcome GetQueryExecution(const Model::GetQueryExecutionRequest& request) const; /** *

Returns information about a single execution of a query if you have access to * the workgroup in which the query ran. Each time a query executes, information * about the query execution is saved with a unique ID.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetQueryExecutionOutcomeCallable GetQueryExecutionCallable(const Model::GetQueryExecutionRequest& request) const; /** *

Returns information about a single execution of a query if you have access to * the workgroup in which the query ran. Each time a query executes, information * about the query execution is saved with a unique ID.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetQueryExecutionAsync(const Model::GetQueryExecutionRequest& request, const GetQueryExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Streams the results of a single query execution specified by * QueryExecutionId from the Athena query results location in Amazon * S3. For more information, see Query * Results in the Amazon Athena User Guide. This request does not * execute the query but returns results. Use StartQueryExecution to run a * query.

To stream query results successfully, the IAM principal with * permission to call GetQueryResults also must have permissions to * the Amazon S3 GetObject action for the Athena query results * location.

IAM principals with permission to the Amazon S3 * GetObject action for the query results location are able to * retrieve query results from Amazon S3 even if permission to the * GetQueryResults action is denied. To restrict user or role access, * ensure that Amazon S3 permissions to the Athena query location are denied.

*

See Also:

AWS * API Reference

*/ virtual Model::GetQueryResultsOutcome GetQueryResults(const Model::GetQueryResultsRequest& request) const; /** *

Streams the results of a single query execution specified by * QueryExecutionId from the Athena query results location in Amazon * S3. For more information, see Query * Results in the Amazon Athena User Guide. This request does not * execute the query but returns results. Use StartQueryExecution to run a * query.

To stream query results successfully, the IAM principal with * permission to call GetQueryResults also must have permissions to * the Amazon S3 GetObject action for the Athena query results * location.

IAM principals with permission to the Amazon S3 * GetObject action for the query results location are able to * retrieve query results from Amazon S3 even if permission to the * GetQueryResults action is denied. To restrict user or role access, * ensure that Amazon S3 permissions to the Athena query location are denied.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetQueryResultsOutcomeCallable GetQueryResultsCallable(const Model::GetQueryResultsRequest& request) const; /** *

Streams the results of a single query execution specified by * QueryExecutionId from the Athena query results location in Amazon * S3. For more information, see Query * Results in the Amazon Athena User Guide. This request does not * execute the query but returns results. Use StartQueryExecution to run a * query.

To stream query results successfully, the IAM principal with * permission to call GetQueryResults also must have permissions to * the Amazon S3 GetObject action for the Athena query results * location.

IAM principals with permission to the Amazon S3 * GetObject action for the query results location are able to * retrieve query results from Amazon S3 even if permission to the * GetQueryResults action is denied. To restrict user or role access, * ensure that Amazon S3 permissions to the Athena query location are denied.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetQueryResultsAsync(const Model::GetQueryResultsRequest& request, const GetQueryResultsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns table metadata for the specified catalog, database, and * table.

See Also:

AWS * API Reference

*/ virtual Model::GetTableMetadataOutcome GetTableMetadata(const Model::GetTableMetadataRequest& request) const; /** *

Returns table metadata for the specified catalog, database, and * table.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetTableMetadataOutcomeCallable GetTableMetadataCallable(const Model::GetTableMetadataRequest& request) const; /** *

Returns table metadata for the specified catalog, database, and * table.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetTableMetadataAsync(const Model::GetTableMetadataRequest& request, const GetTableMetadataResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the workgroup with the specified * name.

See Also:

AWS * API Reference

*/ virtual Model::GetWorkGroupOutcome GetWorkGroup(const Model::GetWorkGroupRequest& request) const; /** *

Returns information about the workgroup with the specified * name.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetWorkGroupOutcomeCallable GetWorkGroupCallable(const Model::GetWorkGroupRequest& request) const; /** *

Returns information about the workgroup with the specified * name.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetWorkGroupAsync(const Model::GetWorkGroupRequest& request, const GetWorkGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the data catalogs in the current AWS account.

See Also:

* AWS * API Reference

*/ virtual Model::ListDataCatalogsOutcome ListDataCatalogs(const Model::ListDataCatalogsRequest& request) const; /** *

Lists the data catalogs in the current AWS account.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListDataCatalogsOutcomeCallable ListDataCatalogsCallable(const Model::ListDataCatalogsRequest& request) const; /** *

Lists the data catalogs in the current AWS account.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListDataCatalogsAsync(const Model::ListDataCatalogsRequest& request, const ListDataCatalogsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the databases in the specified data catalog.

See Also:

* AWS * API Reference

*/ virtual Model::ListDatabasesOutcome ListDatabases(const Model::ListDatabasesRequest& request) const; /** *

Lists the databases in the specified data catalog.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListDatabasesOutcomeCallable ListDatabasesCallable(const Model::ListDatabasesRequest& request) const; /** *

Lists the databases in the specified data catalog.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListDatabasesAsync(const Model::ListDatabasesRequest& request, const ListDatabasesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides a list of available query IDs only for queries saved in the * specified workgroup. Requires that you have access to the specified workgroup. * If a workgroup is not specified, lists the saved queries for the primary * workgroup.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::ListNamedQueriesOutcome ListNamedQueries(const Model::ListNamedQueriesRequest& request) const; /** *

Provides a list of available query IDs only for queries saved in the * specified workgroup. Requires that you have access to the specified workgroup. * If a workgroup is not specified, lists the saved queries for the primary * workgroup.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListNamedQueriesOutcomeCallable ListNamedQueriesCallable(const Model::ListNamedQueriesRequest& request) const; /** *

Provides a list of available query IDs only for queries saved in the * specified workgroup. Requires that you have access to the specified workgroup. * If a workgroup is not specified, lists the saved queries for the primary * workgroup.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListNamedQueriesAsync(const Model::ListNamedQueriesRequest& request, const ListNamedQueriesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Provides a list of available query execution IDs for the queries in the * specified workgroup. If a workgroup is not specified, returns a list of query * execution IDs for the primary workgroup. Requires you to have access to the * workgroup in which the queries ran.

For code samples using the AWS SDK * for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::ListQueryExecutionsOutcome ListQueryExecutions(const Model::ListQueryExecutionsRequest& request) const; /** *

Provides a list of available query execution IDs for the queries in the * specified workgroup. If a workgroup is not specified, returns a list of query * execution IDs for the primary workgroup. Requires you to have access to the * workgroup in which the queries ran.

For code samples using the AWS SDK * for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListQueryExecutionsOutcomeCallable ListQueryExecutionsCallable(const Model::ListQueryExecutionsRequest& request) const; /** *

Provides a list of available query execution IDs for the queries in the * specified workgroup. If a workgroup is not specified, returns a list of query * execution IDs for the primary workgroup. Requires you to have access to the * workgroup in which the queries ran.

For code samples using the AWS SDK * for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListQueryExecutionsAsync(const Model::ListQueryExecutionsRequest& request, const ListQueryExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the metadata for the tables in the specified data catalog * database.

See Also:

AWS * API Reference

*/ virtual Model::ListTableMetadataOutcome ListTableMetadata(const Model::ListTableMetadataRequest& request) const; /** *

Lists the metadata for the tables in the specified data catalog * database.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTableMetadataOutcomeCallable ListTableMetadataCallable(const Model::ListTableMetadataRequest& request) const; /** *

Lists the metadata for the tables in the specified data catalog * database.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTableMetadataAsync(const Model::ListTableMetadataRequest& request, const ListTableMetadataResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the tags associated with an Athena workgroup or data catalog * resource.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

Lists the tags associated with an Athena workgroup or data catalog * resource.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

Lists the tags associated with an Athena workgroup or data catalog * resource.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists available workgroups for the account.

See Also:

AWS * API Reference

*/ virtual Model::ListWorkGroupsOutcome ListWorkGroups(const Model::ListWorkGroupsRequest& request) const; /** *

Lists available workgroups for the account.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListWorkGroupsOutcomeCallable ListWorkGroupsCallable(const Model::ListWorkGroupsRequest& request) const; /** *

Lists available workgroups for the account.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListWorkGroupsAsync(const Model::ListWorkGroupsRequest& request, const ListWorkGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Runs the SQL query statements contained in the Query. Requires * you to have access to the workgroup in which the query ran. Running queries * against an external catalog requires GetDataCatalog permission to the * catalog. For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::StartQueryExecutionOutcome StartQueryExecution(const Model::StartQueryExecutionRequest& request) const; /** *

Runs the SQL query statements contained in the Query. Requires * you to have access to the workgroup in which the query ran. Running queries * against an external catalog requires GetDataCatalog permission to the * catalog. For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StartQueryExecutionOutcomeCallable StartQueryExecutionCallable(const Model::StartQueryExecutionRequest& request) const; /** *

Runs the SQL query statements contained in the Query. Requires * you to have access to the workgroup in which the query ran. Running queries * against an external catalog requires GetDataCatalog permission to the * catalog. For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StartQueryExecutionAsync(const Model::StartQueryExecutionRequest& request, const StartQueryExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Stops a query execution. Requires you to have access to the workgroup in * which the query ran.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::StopQueryExecutionOutcome StopQueryExecution(const Model::StopQueryExecutionRequest& request) const; /** *

Stops a query execution. Requires you to have access to the workgroup in * which the query ran.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StopQueryExecutionOutcomeCallable StopQueryExecutionCallable(const Model::StopQueryExecutionRequest& request) const; /** *

Stops a query execution. Requires you to have access to the workgroup in * which the query ran.

For code samples using the AWS SDK for Java, see Examples * and Code Samples in the Amazon Athena User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StopQueryExecutionAsync(const Model::StopQueryExecutionRequest& request, const StopQueryExecutionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds one or more tags to an Athena resource. A tag is a label that you assign * to a resource. In Athena, a resource can be a workgroup or data catalog. Each * tag consists of a key and an optional value, both of which you define. For * example, you can use tags to categorize Athena workgroups or data catalogs by * purpose, owner, or environment. Use a consistent set of tag keys to make it * easier to search and filter workgroups or data catalogs in your account. For * best practices, see Tagging * Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and * tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters * and numbers representable in UTF-8, and the following characters: + - = . _ : / * @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. * If you specify more than one tag, separate them by commas.

See * Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Adds one or more tags to an Athena resource. A tag is a label that you assign * to a resource. In Athena, a resource can be a workgroup or data catalog. Each * tag consists of a key and an optional value, both of which you define. For * example, you can use tags to categorize Athena workgroups or data catalogs by * purpose, owner, or environment. Use a consistent set of tag keys to make it * easier to search and filter workgroups or data catalogs in your account. For * best practices, see Tagging * Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and * tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters * and numbers representable in UTF-8, and the following characters: + - = . _ : / * @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. * If you specify more than one tag, separate them by commas.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Adds one or more tags to an Athena resource. A tag is a label that you assign * to a resource. In Athena, a resource can be a workgroup or data catalog. Each * tag consists of a key and an optional value, both of which you define. For * example, you can use tags to categorize Athena workgroups or data catalogs by * purpose, owner, or environment. Use a consistent set of tag keys to make it * easier to search and filter workgroups or data catalogs in your account. For * best practices, see Tagging * Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and * tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters * and numbers representable in UTF-8, and the following characters: + - = . _ : / * @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. * If you specify more than one tag, separate them by commas.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes one or more tags from a data catalog or workgroup * resource.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from a data catalog or workgroup * resource.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from a data catalog or workgroup * resource.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the data catalog that has the specified name.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateDataCatalogOutcome UpdateDataCatalog(const Model::UpdateDataCatalogRequest& request) const; /** *

Updates the data catalog that has the specified name.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateDataCatalogOutcomeCallable UpdateDataCatalogCallable(const Model::UpdateDataCatalogRequest& request) const; /** *

Updates the data catalog that has the specified name.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateDataCatalogAsync(const Model::UpdateDataCatalogRequest& request, const UpdateDataCatalogResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the workgroup with the specified name. The workgroup's name cannot be * changed.

See Also:

AWS * API Reference

*/ virtual Model::UpdateWorkGroupOutcome UpdateWorkGroup(const Model::UpdateWorkGroupRequest& request) const; /** *

Updates the workgroup with the specified name. The workgroup's name cannot be * changed.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateWorkGroupOutcomeCallable UpdateWorkGroupCallable(const Model::UpdateWorkGroupRequest& request) const; /** *

Updates the workgroup with the specified name. The workgroup's name cannot be * changed.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateWorkGroupAsync(const Model::UpdateWorkGroupRequest& request, const UpdateWorkGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void BatchGetNamedQueryAsyncHelper(const Model::BatchGetNamedQueryRequest& request, const BatchGetNamedQueryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void BatchGetQueryExecutionAsyncHelper(const Model::BatchGetQueryExecutionRequest& request, const BatchGetQueryExecutionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateDataCatalogAsyncHelper(const Model::CreateDataCatalogRequest& request, const CreateDataCatalogResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateNamedQueryAsyncHelper(const Model::CreateNamedQueryRequest& request, const CreateNamedQueryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateWorkGroupAsyncHelper(const Model::CreateWorkGroupRequest& request, const CreateWorkGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteDataCatalogAsyncHelper(const Model::DeleteDataCatalogRequest& request, const DeleteDataCatalogResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteNamedQueryAsyncHelper(const Model::DeleteNamedQueryRequest& request, const DeleteNamedQueryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteWorkGroupAsyncHelper(const Model::DeleteWorkGroupRequest& request, const DeleteWorkGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetDataCatalogAsyncHelper(const Model::GetDataCatalogRequest& request, const GetDataCatalogResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetDatabaseAsyncHelper(const Model::GetDatabaseRequest& request, const GetDatabaseResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetNamedQueryAsyncHelper(const Model::GetNamedQueryRequest& request, const GetNamedQueryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetQueryExecutionAsyncHelper(const Model::GetQueryExecutionRequest& request, const GetQueryExecutionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetQueryResultsAsyncHelper(const Model::GetQueryResultsRequest& request, const GetQueryResultsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetTableMetadataAsyncHelper(const Model::GetTableMetadataRequest& request, const GetTableMetadataResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetWorkGroupAsyncHelper(const Model::GetWorkGroupRequest& request, const GetWorkGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListDataCatalogsAsyncHelper(const Model::ListDataCatalogsRequest& request, const ListDataCatalogsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListDatabasesAsyncHelper(const Model::ListDatabasesRequest& request, const ListDatabasesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListNamedQueriesAsyncHelper(const Model::ListNamedQueriesRequest& request, const ListNamedQueriesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListQueryExecutionsAsyncHelper(const Model::ListQueryExecutionsRequest& request, const ListQueryExecutionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTableMetadataAsyncHelper(const Model::ListTableMetadataRequest& request, const ListTableMetadataResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListWorkGroupsAsyncHelper(const Model::ListWorkGroupsRequest& request, const ListWorkGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StartQueryExecutionAsyncHelper(const Model::StartQueryExecutionRequest& request, const StartQueryExecutionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StopQueryExecutionAsyncHelper(const Model::StopQueryExecutionRequest& request, const StopQueryExecutionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateDataCatalogAsyncHelper(const Model::UpdateDataCatalogRequest& request, const UpdateDataCatalogResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateWorkGroupAsyncHelper(const Model::UpdateWorkGroupRequest& request, const UpdateWorkGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace Athena } // namespace Aws