/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Athena { namespace Model { /** *

Information about a single instance of a query execution.

See * Also:

AWS * API Reference

*/ class AWS_ATHENA_API QueryExecution { public: QueryExecution(); QueryExecution(Aws::Utils::Json::JsonView jsonValue); QueryExecution& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The unique identifier for each query execution.

*/ inline const Aws::String& GetQueryExecutionId() const{ return m_queryExecutionId; } /** *

The unique identifier for each query execution.

*/ inline bool QueryExecutionIdHasBeenSet() const { return m_queryExecutionIdHasBeenSet; } /** *

The unique identifier for each query execution.

*/ inline void SetQueryExecutionId(const Aws::String& value) { m_queryExecutionIdHasBeenSet = true; m_queryExecutionId = value; } /** *

The unique identifier for each query execution.

*/ inline void SetQueryExecutionId(Aws::String&& value) { m_queryExecutionIdHasBeenSet = true; m_queryExecutionId = std::move(value); } /** *

The unique identifier for each query execution.

*/ inline void SetQueryExecutionId(const char* value) { m_queryExecutionIdHasBeenSet = true; m_queryExecutionId.assign(value); } /** *

The unique identifier for each query execution.

*/ inline QueryExecution& WithQueryExecutionId(const Aws::String& value) { SetQueryExecutionId(value); return *this;} /** *

The unique identifier for each query execution.

*/ inline QueryExecution& WithQueryExecutionId(Aws::String&& value) { SetQueryExecutionId(std::move(value)); return *this;} /** *

The unique identifier for each query execution.

*/ inline QueryExecution& WithQueryExecutionId(const char* value) { SetQueryExecutionId(value); return *this;} /** *

The SQL query statements which the query execution ran.

*/ inline const Aws::String& GetQuery() const{ return m_query; } /** *

The SQL query statements which the query execution ran.

*/ inline bool QueryHasBeenSet() const { return m_queryHasBeenSet; } /** *

The SQL query statements which the query execution ran.

*/ inline void SetQuery(const Aws::String& value) { m_queryHasBeenSet = true; m_query = value; } /** *

The SQL query statements which the query execution ran.

*/ inline void SetQuery(Aws::String&& value) { m_queryHasBeenSet = true; m_query = std::move(value); } /** *

The SQL query statements which the query execution ran.

*/ inline void SetQuery(const char* value) { m_queryHasBeenSet = true; m_query.assign(value); } /** *

The SQL query statements which the query execution ran.

*/ inline QueryExecution& WithQuery(const Aws::String& value) { SetQuery(value); return *this;} /** *

The SQL query statements which the query execution ran.

*/ inline QueryExecution& WithQuery(Aws::String&& value) { SetQuery(std::move(value)); return *this;} /** *

The SQL query statements which the query execution ran.

*/ inline QueryExecution& WithQuery(const char* value) { SetQuery(value); return *this;} /** *

The type of query statement that was run. DDL indicates DDL * query statements. DML indicates DML (Data Manipulation Language) * query statements, such as CREATE TABLE AS SELECT. * UTILITY indicates query statements other than DDL and DML, such as * SHOW CREATE TABLE, or DESCRIBE <table>.

*/ inline const StatementType& GetStatementType() const{ return m_statementType; } /** *

The type of query statement that was run. DDL indicates DDL * query statements. DML indicates DML (Data Manipulation Language) * query statements, such as CREATE TABLE AS SELECT. * UTILITY indicates query statements other than DDL and DML, such as * SHOW CREATE TABLE, or DESCRIBE <table>.

*/ inline bool StatementTypeHasBeenSet() const { return m_statementTypeHasBeenSet; } /** *

The type of query statement that was run. DDL indicates DDL * query statements. DML indicates DML (Data Manipulation Language) * query statements, such as CREATE TABLE AS SELECT. * UTILITY indicates query statements other than DDL and DML, such as * SHOW CREATE TABLE, or DESCRIBE <table>.

*/ inline void SetStatementType(const StatementType& value) { m_statementTypeHasBeenSet = true; m_statementType = value; } /** *

The type of query statement that was run. DDL indicates DDL * query statements. DML indicates DML (Data Manipulation Language) * query statements, such as CREATE TABLE AS SELECT. * UTILITY indicates query statements other than DDL and DML, such as * SHOW CREATE TABLE, or DESCRIBE <table>.

*/ inline void SetStatementType(StatementType&& value) { m_statementTypeHasBeenSet = true; m_statementType = std::move(value); } /** *

The type of query statement that was run. DDL indicates DDL * query statements. DML indicates DML (Data Manipulation Language) * query statements, such as CREATE TABLE AS SELECT. * UTILITY indicates query statements other than DDL and DML, such as * SHOW CREATE TABLE, or DESCRIBE <table>.

*/ inline QueryExecution& WithStatementType(const StatementType& value) { SetStatementType(value); return *this;} /** *

The type of query statement that was run. DDL indicates DDL * query statements. DML indicates DML (Data Manipulation Language) * query statements, such as CREATE TABLE AS SELECT. * UTILITY indicates query statements other than DDL and DML, such as * SHOW CREATE TABLE, or DESCRIBE <table>.

*/ inline QueryExecution& WithStatementType(StatementType&& value) { SetStatementType(std::move(value)); return *this;} /** *

The location in Amazon S3 where query results were stored and the encryption * option, if any, used for query results. These are known as "client-side * settings". If workgroup settings override client-side settings, then the query * uses the location for the query results and the encryption configuration that * are specified for the workgroup.

*/ inline const ResultConfiguration& GetResultConfiguration() const{ return m_resultConfiguration; } /** *

The location in Amazon S3 where query results were stored and the encryption * option, if any, used for query results. These are known as "client-side * settings". If workgroup settings override client-side settings, then the query * uses the location for the query results and the encryption configuration that * are specified for the workgroup.

*/ inline bool ResultConfigurationHasBeenSet() const { return m_resultConfigurationHasBeenSet; } /** *

The location in Amazon S3 where query results were stored and the encryption * option, if any, used for query results. These are known as "client-side * settings". If workgroup settings override client-side settings, then the query * uses the location for the query results and the encryption configuration that * are specified for the workgroup.

*/ inline void SetResultConfiguration(const ResultConfiguration& value) { m_resultConfigurationHasBeenSet = true; m_resultConfiguration = value; } /** *

The location in Amazon S3 where query results were stored and the encryption * option, if any, used for query results. These are known as "client-side * settings". If workgroup settings override client-side settings, then the query * uses the location for the query results and the encryption configuration that * are specified for the workgroup.

*/ inline void SetResultConfiguration(ResultConfiguration&& value) { m_resultConfigurationHasBeenSet = true; m_resultConfiguration = std::move(value); } /** *

The location in Amazon S3 where query results were stored and the encryption * option, if any, used for query results. These are known as "client-side * settings". If workgroup settings override client-side settings, then the query * uses the location for the query results and the encryption configuration that * are specified for the workgroup.

*/ inline QueryExecution& WithResultConfiguration(const ResultConfiguration& value) { SetResultConfiguration(value); return *this;} /** *

The location in Amazon S3 where query results were stored and the encryption * option, if any, used for query results. These are known as "client-side * settings". If workgroup settings override client-side settings, then the query * uses the location for the query results and the encryption configuration that * are specified for the workgroup.

*/ inline QueryExecution& WithResultConfiguration(ResultConfiguration&& value) { SetResultConfiguration(std::move(value)); return *this;} /** *

The database in which the query execution occurred.

*/ inline const QueryExecutionContext& GetQueryExecutionContext() const{ return m_queryExecutionContext; } /** *

The database in which the query execution occurred.

*/ inline bool QueryExecutionContextHasBeenSet() const { return m_queryExecutionContextHasBeenSet; } /** *

The database in which the query execution occurred.

*/ inline void SetQueryExecutionContext(const QueryExecutionContext& value) { m_queryExecutionContextHasBeenSet = true; m_queryExecutionContext = value; } /** *

The database in which the query execution occurred.

*/ inline void SetQueryExecutionContext(QueryExecutionContext&& value) { m_queryExecutionContextHasBeenSet = true; m_queryExecutionContext = std::move(value); } /** *

The database in which the query execution occurred.

*/ inline QueryExecution& WithQueryExecutionContext(const QueryExecutionContext& value) { SetQueryExecutionContext(value); return *this;} /** *

The database in which the query execution occurred.

*/ inline QueryExecution& WithQueryExecutionContext(QueryExecutionContext&& value) { SetQueryExecutionContext(std::move(value)); return *this;} /** *

The completion date, current state, submission time, and state change reason * (if applicable) for the query execution.

*/ inline const QueryExecutionStatus& GetStatus() const{ return m_status; } /** *

The completion date, current state, submission time, and state change reason * (if applicable) for the query execution.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The completion date, current state, submission time, and state change reason * (if applicable) for the query execution.

*/ inline void SetStatus(const QueryExecutionStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The completion date, current state, submission time, and state change reason * (if applicable) for the query execution.

*/ inline void SetStatus(QueryExecutionStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The completion date, current state, submission time, and state change reason * (if applicable) for the query execution.

*/ inline QueryExecution& WithStatus(const QueryExecutionStatus& value) { SetStatus(value); return *this;} /** *

The completion date, current state, submission time, and state change reason * (if applicable) for the query execution.

*/ inline QueryExecution& WithStatus(QueryExecutionStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

Query execution statistics, such as the amount of data scanned, the amount of * time that the query took to process, and the type of statement that was run.

*/ inline const QueryExecutionStatistics& GetStatistics() const{ return m_statistics; } /** *

Query execution statistics, such as the amount of data scanned, the amount of * time that the query took to process, and the type of statement that was run.

*/ inline bool StatisticsHasBeenSet() const { return m_statisticsHasBeenSet; } /** *

Query execution statistics, such as the amount of data scanned, the amount of * time that the query took to process, and the type of statement that was run.

*/ inline void SetStatistics(const QueryExecutionStatistics& value) { m_statisticsHasBeenSet = true; m_statistics = value; } /** *

Query execution statistics, such as the amount of data scanned, the amount of * time that the query took to process, and the type of statement that was run.

*/ inline void SetStatistics(QueryExecutionStatistics&& value) { m_statisticsHasBeenSet = true; m_statistics = std::move(value); } /** *

Query execution statistics, such as the amount of data scanned, the amount of * time that the query took to process, and the type of statement that was run.

*/ inline QueryExecution& WithStatistics(const QueryExecutionStatistics& value) { SetStatistics(value); return *this;} /** *

Query execution statistics, such as the amount of data scanned, the amount of * time that the query took to process, and the type of statement that was run.

*/ inline QueryExecution& WithStatistics(QueryExecutionStatistics&& value) { SetStatistics(std::move(value)); return *this;} /** *

The name of the workgroup in which the query ran.

*/ inline const Aws::String& GetWorkGroup() const{ return m_workGroup; } /** *

The name of the workgroup in which the query ran.

*/ inline bool WorkGroupHasBeenSet() const { return m_workGroupHasBeenSet; } /** *

The name of the workgroup in which the query ran.

*/ inline void SetWorkGroup(const Aws::String& value) { m_workGroupHasBeenSet = true; m_workGroup = value; } /** *

The name of the workgroup in which the query ran.

*/ inline void SetWorkGroup(Aws::String&& value) { m_workGroupHasBeenSet = true; m_workGroup = std::move(value); } /** *

The name of the workgroup in which the query ran.

*/ inline void SetWorkGroup(const char* value) { m_workGroupHasBeenSet = true; m_workGroup.assign(value); } /** *

The name of the workgroup in which the query ran.

*/ inline QueryExecution& WithWorkGroup(const Aws::String& value) { SetWorkGroup(value); return *this;} /** *

The name of the workgroup in which the query ran.

*/ inline QueryExecution& WithWorkGroup(Aws::String&& value) { SetWorkGroup(std::move(value)); return *this;} /** *

The name of the workgroup in which the query ran.

*/ inline QueryExecution& WithWorkGroup(const char* value) { SetWorkGroup(value); return *this;} private: Aws::String m_queryExecutionId; bool m_queryExecutionIdHasBeenSet; Aws::String m_query; bool m_queryHasBeenSet; StatementType m_statementType; bool m_statementTypeHasBeenSet; ResultConfiguration m_resultConfiguration; bool m_resultConfigurationHasBeenSet; QueryExecutionContext m_queryExecutionContext; bool m_queryExecutionContextHasBeenSet; QueryExecutionStatus m_status; bool m_statusHasBeenSet; QueryExecutionStatistics m_statistics; bool m_statisticsHasBeenSet; Aws::String m_workGroup; bool m_workGroupHasBeenSet; }; } // namespace Model } // namespace Athena } // namespace Aws