/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Athena { namespace Model { /** *

Information about the columns in a query execution result.

See * Also:

AWS * API Reference

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

The catalog to which the query results belong.

*/ inline const Aws::String& GetCatalogName() const{ return m_catalogName; } /** *

The catalog to which the query results belong.

*/ inline bool CatalogNameHasBeenSet() const { return m_catalogNameHasBeenSet; } /** *

The catalog to which the query results belong.

*/ inline void SetCatalogName(const Aws::String& value) { m_catalogNameHasBeenSet = true; m_catalogName = value; } /** *

The catalog to which the query results belong.

*/ inline void SetCatalogName(Aws::String&& value) { m_catalogNameHasBeenSet = true; m_catalogName = std::move(value); } /** *

The catalog to which the query results belong.

*/ inline void SetCatalogName(const char* value) { m_catalogNameHasBeenSet = true; m_catalogName.assign(value); } /** *

The catalog to which the query results belong.

*/ inline ColumnInfo& WithCatalogName(const Aws::String& value) { SetCatalogName(value); return *this;} /** *

The catalog to which the query results belong.

*/ inline ColumnInfo& WithCatalogName(Aws::String&& value) { SetCatalogName(std::move(value)); return *this;} /** *

The catalog to which the query results belong.

*/ inline ColumnInfo& WithCatalogName(const char* value) { SetCatalogName(value); return *this;} /** *

The schema name (database name) to which the query results belong.

*/ inline const Aws::String& GetSchemaName() const{ return m_schemaName; } /** *

The schema name (database name) to which the query results belong.

*/ inline bool SchemaNameHasBeenSet() const { return m_schemaNameHasBeenSet; } /** *

The schema name (database name) to which the query results belong.

*/ inline void SetSchemaName(const Aws::String& value) { m_schemaNameHasBeenSet = true; m_schemaName = value; } /** *

The schema name (database name) to which the query results belong.

*/ inline void SetSchemaName(Aws::String&& value) { m_schemaNameHasBeenSet = true; m_schemaName = std::move(value); } /** *

The schema name (database name) to which the query results belong.

*/ inline void SetSchemaName(const char* value) { m_schemaNameHasBeenSet = true; m_schemaName.assign(value); } /** *

The schema name (database name) to which the query results belong.

*/ inline ColumnInfo& WithSchemaName(const Aws::String& value) { SetSchemaName(value); return *this;} /** *

The schema name (database name) to which the query results belong.

*/ inline ColumnInfo& WithSchemaName(Aws::String&& value) { SetSchemaName(std::move(value)); return *this;} /** *

The schema name (database name) to which the query results belong.

*/ inline ColumnInfo& WithSchemaName(const char* value) { SetSchemaName(value); return *this;} /** *

The table name for the query results.

*/ inline const Aws::String& GetTableName() const{ return m_tableName; } /** *

The table name for the query results.

*/ inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; } /** *

The table name for the query results.

*/ inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; } /** *

The table name for the query results.

*/ inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); } /** *

The table name for the query results.

*/ inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); } /** *

The table name for the query results.

*/ inline ColumnInfo& WithTableName(const Aws::String& value) { SetTableName(value); return *this;} /** *

The table name for the query results.

*/ inline ColumnInfo& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;} /** *

The table name for the query results.

*/ inline ColumnInfo& WithTableName(const char* value) { SetTableName(value); return *this;} /** *

The name of the column.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the column.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the column.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the column.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the column.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the column.

*/ inline ColumnInfo& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the column.

*/ inline ColumnInfo& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the column.

*/ inline ColumnInfo& WithName(const char* value) { SetName(value); return *this;} /** *

A column label.

*/ inline const Aws::String& GetLabel() const{ return m_label; } /** *

A column label.

*/ inline bool LabelHasBeenSet() const { return m_labelHasBeenSet; } /** *

A column label.

*/ inline void SetLabel(const Aws::String& value) { m_labelHasBeenSet = true; m_label = value; } /** *

A column label.

*/ inline void SetLabel(Aws::String&& value) { m_labelHasBeenSet = true; m_label = std::move(value); } /** *

A column label.

*/ inline void SetLabel(const char* value) { m_labelHasBeenSet = true; m_label.assign(value); } /** *

A column label.

*/ inline ColumnInfo& WithLabel(const Aws::String& value) { SetLabel(value); return *this;} /** *

A column label.

*/ inline ColumnInfo& WithLabel(Aws::String&& value) { SetLabel(std::move(value)); return *this;} /** *

A column label.

*/ inline ColumnInfo& WithLabel(const char* value) { SetLabel(value); return *this;} /** *

The data type of the column.

*/ inline const Aws::String& GetType() const{ return m_type; } /** *

The data type of the column.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The data type of the column.

*/ inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The data type of the column.

*/ inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The data type of the column.

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } /** *

The data type of the column.

*/ inline ColumnInfo& WithType(const Aws::String& value) { SetType(value); return *this;} /** *

The data type of the column.

*/ inline ColumnInfo& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} /** *

The data type of the column.

*/ inline ColumnInfo& WithType(const char* value) { SetType(value); return *this;} /** *

For DECIMAL data types, specifies the total number of digits, up * to 38. For performance reasons, we recommend up to 18 digits.

*/ inline int GetPrecision() const{ return m_precision; } /** *

For DECIMAL data types, specifies the total number of digits, up * to 38. For performance reasons, we recommend up to 18 digits.

*/ inline bool PrecisionHasBeenSet() const { return m_precisionHasBeenSet; } /** *

For DECIMAL data types, specifies the total number of digits, up * to 38. For performance reasons, we recommend up to 18 digits.

*/ inline void SetPrecision(int value) { m_precisionHasBeenSet = true; m_precision = value; } /** *

For DECIMAL data types, specifies the total number of digits, up * to 38. For performance reasons, we recommend up to 18 digits.

*/ inline ColumnInfo& WithPrecision(int value) { SetPrecision(value); return *this;} /** *

For DECIMAL data types, specifies the total number of digits in * the fractional part of the value. Defaults to 0.

*/ inline int GetScale() const{ return m_scale; } /** *

For DECIMAL data types, specifies the total number of digits in * the fractional part of the value. Defaults to 0.

*/ inline bool ScaleHasBeenSet() const { return m_scaleHasBeenSet; } /** *

For DECIMAL data types, specifies the total number of digits in * the fractional part of the value. Defaults to 0.

*/ inline void SetScale(int value) { m_scaleHasBeenSet = true; m_scale = value; } /** *

For DECIMAL data types, specifies the total number of digits in * the fractional part of the value. Defaults to 0.

*/ inline ColumnInfo& WithScale(int value) { SetScale(value); return *this;} /** *

Indicates the column's nullable status.

*/ inline const ColumnNullable& GetNullable() const{ return m_nullable; } /** *

Indicates the column's nullable status.

*/ inline bool NullableHasBeenSet() const { return m_nullableHasBeenSet; } /** *

Indicates the column's nullable status.

*/ inline void SetNullable(const ColumnNullable& value) { m_nullableHasBeenSet = true; m_nullable = value; } /** *

Indicates the column's nullable status.

*/ inline void SetNullable(ColumnNullable&& value) { m_nullableHasBeenSet = true; m_nullable = std::move(value); } /** *

Indicates the column's nullable status.

*/ inline ColumnInfo& WithNullable(const ColumnNullable& value) { SetNullable(value); return *this;} /** *

Indicates the column's nullable status.

*/ inline ColumnInfo& WithNullable(ColumnNullable&& value) { SetNullable(std::move(value)); return *this;} /** *

Indicates whether values in the column are case-sensitive.

*/ inline bool GetCaseSensitive() const{ return m_caseSensitive; } /** *

Indicates whether values in the column are case-sensitive.

*/ inline bool CaseSensitiveHasBeenSet() const { return m_caseSensitiveHasBeenSet; } /** *

Indicates whether values in the column are case-sensitive.

*/ inline void SetCaseSensitive(bool value) { m_caseSensitiveHasBeenSet = true; m_caseSensitive = value; } /** *

Indicates whether values in the column are case-sensitive.

*/ inline ColumnInfo& WithCaseSensitive(bool value) { SetCaseSensitive(value); return *this;} private: Aws::String m_catalogName; bool m_catalogNameHasBeenSet = false; Aws::String m_schemaName; bool m_schemaNameHasBeenSet = false; Aws::String m_tableName; bool m_tableNameHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_label; bool m_labelHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; int m_precision; bool m_precisionHasBeenSet = false; int m_scale; bool m_scaleHasBeenSet = false; ColumnNullable m_nullable; bool m_nullableHasBeenSet = false; bool m_caseSensitive; bool m_caseSensitiveHasBeenSet = false; }; } // namespace Model } // namespace Athena } // namespace Aws