Java tutorial
/* * Copyright 2014-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.athena; import javax.annotation.Generated; import com.amazonaws.*; import com.amazonaws.regions.*; import com.amazonaws.services.athena.model.*; /** * Interface for accessing Amazon Athena. * <p> * <b>Note:</b> Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.athena.AbstractAmazonAthena} instead. * </p> * <p> * <p> * 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 * automaticallyexecuting queries in parallelso results are fast, even with large datasets and complex queries. For * more information, see <a href="http://docs.aws.amazon.com/athena/latest/ug/what-is.html">What is Amazon Athena</a> in * the <i>Amazon Athena User Guide</i>. * </p> * <p> * 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 <a * href="https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html">Accessing Amazon Athena with JDBC</a>. * </p> * <p> * For code samples using the AWS SDK for Java, see <a * href="https://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the <i>Amazon * Athena User Guide</i>. * </p> */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AmazonAthena { /** * The region metadata service name for computing region endpoints. You can use this value to retrieve metadata * (such as supported regions) of the service. * * @see RegionUtils#getRegionsForService(String) */ String ENDPOINT_PREFIX = "athena"; /** * <p> * 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 * <a>ListNamedQueriesInput</a> 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 * <a>UnprocessedNamedQueryId</a>. Named queries differ from executed queries. Use * <a>BatchGetQueryExecutionInput</a> to get details about each unique query execution, and * <a>ListQueryExecutionsInput</a> to get a list of query execution IDs. * </p> * * @param batchGetNamedQueryRequest * @return Result of the BatchGetNamedQuery operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.BatchGetNamedQuery * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetNamedQuery" target="_top">AWS API * Documentation</a> */ BatchGetNamedQueryResult batchGetNamedQuery(BatchGetNamedQueryRequest batchGetNamedQueryRequest); /** * <p> * 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 <a>ListQueryExecutionsInput$WorkGroup</a>. Query executions differ from * named (saved) queries. Use <a>BatchGetNamedQueryInput</a> to get details about named queries. * </p> * * @param batchGetQueryExecutionRequest * @return Result of the BatchGetQueryExecution operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.BatchGetQueryExecution * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetQueryExecution" target="_top">AWS * API Documentation</a> */ BatchGetQueryExecutionResult batchGetQueryExecution( BatchGetQueryExecutionRequest batchGetQueryExecutionRequest); /** * <p> * Creates a named query in the specified workgroup. Requires that you have access to the workgroup. * </p> * <p> * For code samples using the AWS SDK for Java, see <a * href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the * <i>Amazon Athena User Guide</i>. * </p> * * @param createNamedQueryRequest * @return Result of the CreateNamedQuery operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.CreateNamedQuery * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateNamedQuery" target="_top">AWS API * Documentation</a> */ CreateNamedQueryResult createNamedQuery(CreateNamedQueryRequest createNamedQueryRequest); /** * <p> * Creates a workgroup with the specified name. * </p> * * @param createWorkGroupRequest * @return Result of the CreateWorkGroup operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.CreateWorkGroup * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateWorkGroup" target="_top">AWS API * Documentation</a> */ CreateWorkGroupResult createWorkGroup(CreateWorkGroupRequest createWorkGroupRequest); /** * <p> * Deletes the named query if you have access to the workgroup in which the query was saved. * </p> * <p> * For code samples using the AWS SDK for Java, see <a * href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the * <i>Amazon Athena User Guide</i>. * </p> * * @param deleteNamedQueryRequest * @return Result of the DeleteNamedQuery operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.DeleteNamedQuery * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteNamedQuery" target="_top">AWS API * Documentation</a> */ DeleteNamedQueryResult deleteNamedQuery(DeleteNamedQueryRequest deleteNamedQueryRequest); /** * <p> * Deletes the workgroup with the specified name. The primary workgroup cannot be deleted. * </p> * * @param deleteWorkGroupRequest * @return Result of the DeleteWorkGroup operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.DeleteWorkGroup * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteWorkGroup" target="_top">AWS API * Documentation</a> */ DeleteWorkGroupResult deleteWorkGroup(DeleteWorkGroupRequest deleteWorkGroupRequest); /** * <p> * Returns information about a single query. Requires that you have access to the workgroup in which the query was * saved. * </p> * * @param getNamedQueryRequest * @return Result of the GetNamedQuery operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.GetNamedQuery * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetNamedQuery" target="_top">AWS API * Documentation</a> */ GetNamedQueryResult getNamedQuery(GetNamedQueryRequest getNamedQueryRequest); /** * <p> * 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. * </p> * * @param getQueryExecutionRequest * @return Result of the GetQueryExecution operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.GetQueryExecution * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryExecution" target="_top">AWS API * Documentation</a> */ GetQueryExecutionResult getQueryExecution(GetQueryExecutionRequest getQueryExecutionRequest); /** * <p> * Streams the results of a single query execution specified by <code>QueryExecutionId</code> from the Athena query * results location in Amazon S3. For more information, see <a * href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a> in the <i>Amazon Athena User * Guide</i>. This request does not execute the query but returns results. Use <a>StartQueryExecution</a> to run a * query. * </p> * <p> * To stream query results successfully, the IAM principal with permission to call <code>GetQueryResults</code> also * must have permissions to the Amazon S3 <code>GetObject</code> action for the Athena query results location. * </p> * <important> * <p> * IAM principals with permission to the Amazon S3 <code>GetObject</code> action for the query results location are * able to retrieve query results from Amazon S3 even if permission to the <code>GetQueryResults</code> action is * denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are * denied. * </p> * </important> * * @param getQueryResultsRequest * @return Result of the GetQueryResults operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.GetQueryResults * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryResults" target="_top">AWS API * Documentation</a> */ GetQueryResultsResult getQueryResults(GetQueryResultsRequest getQueryResultsRequest); /** * <p> * Returns information about the workgroup with the specified name. * </p> * * @param getWorkGroupRequest * @return Result of the GetWorkGroup operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.GetWorkGroup * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetWorkGroup" target="_top">AWS API * Documentation</a> */ GetWorkGroupResult getWorkGroup(GetWorkGroupRequest getWorkGroupRequest); /** * <p> * Provides a list of available query IDs only for queries saved in the specified workgroup. Requires that you have * access to the workgroup. * </p> * <p> * For code samples using the AWS SDK for Java, see <a * href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the * <i>Amazon Athena User Guide</i>. * </p> * * @param listNamedQueriesRequest * @return Result of the ListNamedQueries operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.ListNamedQueries * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListNamedQueries" target="_top">AWS API * Documentation</a> */ ListNamedQueriesResult listNamedQueries(ListNamedQueriesRequest listNamedQueriesRequest); /** * <p> * Provides a list of available query execution IDs for the queries in the specified workgroup. Requires you to have * access to the workgroup in which the queries ran. * </p> * <p> * For code samples using the AWS SDK for Java, see <a * href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the * <i>Amazon Athena User Guide</i>. * </p> * * @param listQueryExecutionsRequest * @return Result of the ListQueryExecutions operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.ListQueryExecutions * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListQueryExecutions" target="_top">AWS API * Documentation</a> */ ListQueryExecutionsResult listQueryExecutions(ListQueryExecutionsRequest listQueryExecutionsRequest); /** * <p> * Lists the tags associated with this workgroup. * </p> * * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @throws ResourceNotFoundException * A resource, such as a workgroup, was not found. * @sample AmazonAthena.ListTagsForResource * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListTagsForResource" target="_top">AWS API * Documentation</a> */ ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest); /** * <p> * Lists available workgroups for the account. * </p> * * @param listWorkGroupsRequest * @return Result of the ListWorkGroups operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.ListWorkGroups * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListWorkGroups" target="_top">AWS API * Documentation</a> */ ListWorkGroupsResult listWorkGroups(ListWorkGroupsRequest listWorkGroupsRequest); /** * <p> * Runs the SQL query statements contained in the <code>Query</code>. Requires you to have access to the workgroup * in which the query ran. * </p> * <p> * For code samples using the AWS SDK for Java, see <a * href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the * <i>Amazon Athena User Guide</i>. * </p> * * @param startQueryExecutionRequest * @return Result of the StartQueryExecution operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @throws TooManyRequestsException * Indicates that the request was throttled. * @sample AmazonAthena.StartQueryExecution * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StartQueryExecution" target="_top">AWS API * Documentation</a> */ StartQueryExecutionResult startQueryExecution(StartQueryExecutionRequest startQueryExecutionRequest); /** * <p> * Stops a query execution. Requires you to have access to the workgroup in which the query ran. * </p> * <p> * For code samples using the AWS SDK for Java, see <a * href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the * <i>Amazon Athena User Guide</i>. * </p> * * @param stopQueryExecutionRequest * @return Result of the StopQueryExecution operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.StopQueryExecution * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StopQueryExecution" target="_top">AWS API * Documentation</a> */ StopQueryExecutionResult stopQueryExecution(StopQueryExecutionRequest stopQueryExecutionRequest); /** * <p> * Adds one or more tags to the resource, such as a workgroup. A tag is a label that you assign to an AWS Athena * resource (a workgroup). Each tag consists of a key and an optional value, both of which you define. Tags enable * you to categorize resources (workgroups) in Athena, for example, by purpose, owner, or environment. Use a * consistent set of tag keys to make it easier to search and filter workgroups in your account. For best practices, * see <a href="https://aws.amazon.com/answers/account-management/aws-tagging-strategies/">AWS Tagging * Strategies</a>. The key length is from 1 (minimum) to 128 (maximum) Unicode characters in UTF-8. The tag value * length is from 0 (minimum) to 256 (maximum) Unicode characters in UTF-8. You 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, separate them by commas. * </p> * * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @throws ResourceNotFoundException * A resource, such as a workgroup, was not found. * @sample AmazonAthena.TagResource * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/TagResource" target="_top">AWS API * Documentation</a> */ TagResourceResult tagResource(TagResourceRequest tagResourceRequest); /** * <p> * Removes one or more tags from the workgroup resource. Takes as an input a list of TagKey Strings separated by * commas, and removes their tags at the same time. * </p> * * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @throws ResourceNotFoundException * A resource, such as a workgroup, was not found. * @sample AmazonAthena.UntagResource * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UntagResource" target="_top">AWS API * Documentation</a> */ UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest); /** * <p> * Updates the workgroup with the specified name. The workgroup's name cannot be changed. * </p> * * @param updateWorkGroupRequest * @return Result of the UpdateWorkGroup operation returned by the service. * @throws InternalServerException * Indicates a platform issue, which may be due to a transient condition or outage. * @throws InvalidRequestException * Indicates that something is wrong with the input to the request. For example, a required parameter may be * missing or out of range. * @sample AmazonAthena.UpdateWorkGroup * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdateWorkGroup" target="_top">AWS API * Documentation</a> */ UpdateWorkGroupResult updateWorkGroup(UpdateWorkGroupRequest updateWorkGroupRequest); /** * Shuts down this client object, releasing any resources that might be held open. This is an optional method, and * callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client * has been shutdown, it should not be used to make any more requests. */ void shutdown(); /** * Returns additional metadata for a previously executed successful request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. * <p> * Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing a request. * * @param request * The originally executed request. * * @return The response metadata for the specified request, or null if none is available. */ ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); }