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

Describes the physical storage of table data.

See Also:

AWS * API Reference

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

A list of the Columns in the table.

*/ inline const Aws::Vector& GetColumns() const{ return m_columns; } /** *

A list of the Columns in the table.

*/ inline bool ColumnsHasBeenSet() const { return m_columnsHasBeenSet; } /** *

A list of the Columns in the table.

*/ inline void SetColumns(const Aws::Vector& value) { m_columnsHasBeenSet = true; m_columns = value; } /** *

A list of the Columns in the table.

*/ inline void SetColumns(Aws::Vector&& value) { m_columnsHasBeenSet = true; m_columns = std::move(value); } /** *

A list of the Columns in the table.

*/ inline StorageDescriptor& WithColumns(const Aws::Vector& value) { SetColumns(value); return *this;} /** *

A list of the Columns in the table.

*/ inline StorageDescriptor& WithColumns(Aws::Vector&& value) { SetColumns(std::move(value)); return *this;} /** *

A list of the Columns in the table.

*/ inline StorageDescriptor& AddColumns(const Column& value) { m_columnsHasBeenSet = true; m_columns.push_back(value); return *this; } /** *

A list of the Columns in the table.

*/ inline StorageDescriptor& AddColumns(Column&& value) { m_columnsHasBeenSet = true; m_columns.push_back(std::move(value)); return *this; } /** *

The physical location of the table. By default, this takes the form of the * warehouse location, followed by the database location in the warehouse, followed * by the table name.

*/ inline const Aws::String& GetLocation() const{ return m_location; } /** *

The physical location of the table. By default, this takes the form of the * warehouse location, followed by the database location in the warehouse, followed * by the table name.

*/ inline bool LocationHasBeenSet() const { return m_locationHasBeenSet; } /** *

The physical location of the table. By default, this takes the form of the * warehouse location, followed by the database location in the warehouse, followed * by the table name.

*/ inline void SetLocation(const Aws::String& value) { m_locationHasBeenSet = true; m_location = value; } /** *

The physical location of the table. By default, this takes the form of the * warehouse location, followed by the database location in the warehouse, followed * by the table name.

*/ inline void SetLocation(Aws::String&& value) { m_locationHasBeenSet = true; m_location = std::move(value); } /** *

The physical location of the table. By default, this takes the form of the * warehouse location, followed by the database location in the warehouse, followed * by the table name.

*/ inline void SetLocation(const char* value) { m_locationHasBeenSet = true; m_location.assign(value); } /** *

The physical location of the table. By default, this takes the form of the * warehouse location, followed by the database location in the warehouse, followed * by the table name.

*/ inline StorageDescriptor& WithLocation(const Aws::String& value) { SetLocation(value); return *this;} /** *

The physical location of the table. By default, this takes the form of the * warehouse location, followed by the database location in the warehouse, followed * by the table name.

*/ inline StorageDescriptor& WithLocation(Aws::String&& value) { SetLocation(std::move(value)); return *this;} /** *

The physical location of the table. By default, this takes the form of the * warehouse location, followed by the database location in the warehouse, followed * by the table name.

*/ inline StorageDescriptor& WithLocation(const char* value) { SetLocation(value); return *this;} /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline const Aws::Vector& GetAdditionalLocations() const{ return m_additionalLocations; } /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline bool AdditionalLocationsHasBeenSet() const { return m_additionalLocationsHasBeenSet; } /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline void SetAdditionalLocations(const Aws::Vector& value) { m_additionalLocationsHasBeenSet = true; m_additionalLocations = value; } /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline void SetAdditionalLocations(Aws::Vector&& value) { m_additionalLocationsHasBeenSet = true; m_additionalLocations = std::move(value); } /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline StorageDescriptor& WithAdditionalLocations(const Aws::Vector& value) { SetAdditionalLocations(value); return *this;} /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline StorageDescriptor& WithAdditionalLocations(Aws::Vector&& value) { SetAdditionalLocations(std::move(value)); return *this;} /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline StorageDescriptor& AddAdditionalLocations(const Aws::String& value) { m_additionalLocationsHasBeenSet = true; m_additionalLocations.push_back(value); return *this; } /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline StorageDescriptor& AddAdditionalLocations(Aws::String&& value) { m_additionalLocationsHasBeenSet = true; m_additionalLocations.push_back(std::move(value)); return *this; } /** *

A list of locations that point to the path where a Delta table is * located.

*/ inline StorageDescriptor& AddAdditionalLocations(const char* value) { m_additionalLocationsHasBeenSet = true; m_additionalLocations.push_back(value); return *this; } /** *

The input format: SequenceFileInputFormat (binary), or * TextInputFormat, or a custom format.

*/ inline const Aws::String& GetInputFormat() const{ return m_inputFormat; } /** *

The input format: SequenceFileInputFormat (binary), or * TextInputFormat, or a custom format.

*/ inline bool InputFormatHasBeenSet() const { return m_inputFormatHasBeenSet; } /** *

The input format: SequenceFileInputFormat (binary), or * TextInputFormat, or a custom format.

*/ inline void SetInputFormat(const Aws::String& value) { m_inputFormatHasBeenSet = true; m_inputFormat = value; } /** *

The input format: SequenceFileInputFormat (binary), or * TextInputFormat, or a custom format.

*/ inline void SetInputFormat(Aws::String&& value) { m_inputFormatHasBeenSet = true; m_inputFormat = std::move(value); } /** *

The input format: SequenceFileInputFormat (binary), or * TextInputFormat, or a custom format.

*/ inline void SetInputFormat(const char* value) { m_inputFormatHasBeenSet = true; m_inputFormat.assign(value); } /** *

The input format: SequenceFileInputFormat (binary), or * TextInputFormat, or a custom format.

*/ inline StorageDescriptor& WithInputFormat(const Aws::String& value) { SetInputFormat(value); return *this;} /** *

The input format: SequenceFileInputFormat (binary), or * TextInputFormat, or a custom format.

*/ inline StorageDescriptor& WithInputFormat(Aws::String&& value) { SetInputFormat(std::move(value)); return *this;} /** *

The input format: SequenceFileInputFormat (binary), or * TextInputFormat, or a custom format.

*/ inline StorageDescriptor& WithInputFormat(const char* value) { SetInputFormat(value); return *this;} /** *

The output format: SequenceFileOutputFormat (binary), or * IgnoreKeyTextOutputFormat, or a custom format.

*/ inline const Aws::String& GetOutputFormat() const{ return m_outputFormat; } /** *

The output format: SequenceFileOutputFormat (binary), or * IgnoreKeyTextOutputFormat, or a custom format.

*/ inline bool OutputFormatHasBeenSet() const { return m_outputFormatHasBeenSet; } /** *

The output format: SequenceFileOutputFormat (binary), or * IgnoreKeyTextOutputFormat, or a custom format.

*/ inline void SetOutputFormat(const Aws::String& value) { m_outputFormatHasBeenSet = true; m_outputFormat = value; } /** *

The output format: SequenceFileOutputFormat (binary), or * IgnoreKeyTextOutputFormat, or a custom format.

*/ inline void SetOutputFormat(Aws::String&& value) { m_outputFormatHasBeenSet = true; m_outputFormat = std::move(value); } /** *

The output format: SequenceFileOutputFormat (binary), or * IgnoreKeyTextOutputFormat, or a custom format.

*/ inline void SetOutputFormat(const char* value) { m_outputFormatHasBeenSet = true; m_outputFormat.assign(value); } /** *

The output format: SequenceFileOutputFormat (binary), or * IgnoreKeyTextOutputFormat, or a custom format.

*/ inline StorageDescriptor& WithOutputFormat(const Aws::String& value) { SetOutputFormat(value); return *this;} /** *

The output format: SequenceFileOutputFormat (binary), or * IgnoreKeyTextOutputFormat, or a custom format.

*/ inline StorageDescriptor& WithOutputFormat(Aws::String&& value) { SetOutputFormat(std::move(value)); return *this;} /** *

The output format: SequenceFileOutputFormat (binary), or * IgnoreKeyTextOutputFormat, or a custom format.

*/ inline StorageDescriptor& WithOutputFormat(const char* value) { SetOutputFormat(value); return *this;} /** *

True if the data in the table is compressed, or * False if not.

*/ inline bool GetCompressed() const{ return m_compressed; } /** *

True if the data in the table is compressed, or * False if not.

*/ inline bool CompressedHasBeenSet() const { return m_compressedHasBeenSet; } /** *

True if the data in the table is compressed, or * False if not.

*/ inline void SetCompressed(bool value) { m_compressedHasBeenSet = true; m_compressed = value; } /** *

True if the data in the table is compressed, or * False if not.

*/ inline StorageDescriptor& WithCompressed(bool value) { SetCompressed(value); return *this;} /** *

Must be specified if the table contains any dimension columns.

*/ inline int GetNumberOfBuckets() const{ return m_numberOfBuckets; } /** *

Must be specified if the table contains any dimension columns.

*/ inline bool NumberOfBucketsHasBeenSet() const { return m_numberOfBucketsHasBeenSet; } /** *

Must be specified if the table contains any dimension columns.

*/ inline void SetNumberOfBuckets(int value) { m_numberOfBucketsHasBeenSet = true; m_numberOfBuckets = value; } /** *

Must be specified if the table contains any dimension columns.

*/ inline StorageDescriptor& WithNumberOfBuckets(int value) { SetNumberOfBuckets(value); return *this;} /** *

The serialization/deserialization (SerDe) information.

*/ inline const SerDeInfo& GetSerdeInfo() const{ return m_serdeInfo; } /** *

The serialization/deserialization (SerDe) information.

*/ inline bool SerdeInfoHasBeenSet() const { return m_serdeInfoHasBeenSet; } /** *

The serialization/deserialization (SerDe) information.

*/ inline void SetSerdeInfo(const SerDeInfo& value) { m_serdeInfoHasBeenSet = true; m_serdeInfo = value; } /** *

The serialization/deserialization (SerDe) information.

*/ inline void SetSerdeInfo(SerDeInfo&& value) { m_serdeInfoHasBeenSet = true; m_serdeInfo = std::move(value); } /** *

The serialization/deserialization (SerDe) information.

*/ inline StorageDescriptor& WithSerdeInfo(const SerDeInfo& value) { SetSerdeInfo(value); return *this;} /** *

The serialization/deserialization (SerDe) information.

*/ inline StorageDescriptor& WithSerdeInfo(SerDeInfo&& value) { SetSerdeInfo(std::move(value)); return *this;} /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline const Aws::Vector& GetBucketColumns() const{ return m_bucketColumns; } /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline bool BucketColumnsHasBeenSet() const { return m_bucketColumnsHasBeenSet; } /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline void SetBucketColumns(const Aws::Vector& value) { m_bucketColumnsHasBeenSet = true; m_bucketColumns = value; } /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline void SetBucketColumns(Aws::Vector&& value) { m_bucketColumnsHasBeenSet = true; m_bucketColumns = std::move(value); } /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline StorageDescriptor& WithBucketColumns(const Aws::Vector& value) { SetBucketColumns(value); return *this;} /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline StorageDescriptor& WithBucketColumns(Aws::Vector&& value) { SetBucketColumns(std::move(value)); return *this;} /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline StorageDescriptor& AddBucketColumns(const Aws::String& value) { m_bucketColumnsHasBeenSet = true; m_bucketColumns.push_back(value); return *this; } /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline StorageDescriptor& AddBucketColumns(Aws::String&& value) { m_bucketColumnsHasBeenSet = true; m_bucketColumns.push_back(std::move(value)); return *this; } /** *

A list of reducer grouping columns, clustering columns, and bucketing columns * in the table.

*/ inline StorageDescriptor& AddBucketColumns(const char* value) { m_bucketColumnsHasBeenSet = true; m_bucketColumns.push_back(value); return *this; } /** *

A list specifying the sort order of each bucket in the table.

*/ inline const Aws::Vector& GetSortColumns() const{ return m_sortColumns; } /** *

A list specifying the sort order of each bucket in the table.

*/ inline bool SortColumnsHasBeenSet() const { return m_sortColumnsHasBeenSet; } /** *

A list specifying the sort order of each bucket in the table.

*/ inline void SetSortColumns(const Aws::Vector& value) { m_sortColumnsHasBeenSet = true; m_sortColumns = value; } /** *

A list specifying the sort order of each bucket in the table.

*/ inline void SetSortColumns(Aws::Vector&& value) { m_sortColumnsHasBeenSet = true; m_sortColumns = std::move(value); } /** *

A list specifying the sort order of each bucket in the table.

*/ inline StorageDescriptor& WithSortColumns(const Aws::Vector& value) { SetSortColumns(value); return *this;} /** *

A list specifying the sort order of each bucket in the table.

*/ inline StorageDescriptor& WithSortColumns(Aws::Vector&& value) { SetSortColumns(std::move(value)); return *this;} /** *

A list specifying the sort order of each bucket in the table.

*/ inline StorageDescriptor& AddSortColumns(const Order& value) { m_sortColumnsHasBeenSet = true; m_sortColumns.push_back(value); return *this; } /** *

A list specifying the sort order of each bucket in the table.

*/ inline StorageDescriptor& AddSortColumns(Order&& value) { m_sortColumnsHasBeenSet = true; m_sortColumns.push_back(std::move(value)); return *this; } /** *

The user-supplied properties in key-value form.

*/ inline const Aws::Map& GetParameters() const{ return m_parameters; } /** *

The user-supplied properties in key-value form.

*/ inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; } /** *

The user-supplied properties in key-value form.

*/ inline void SetParameters(const Aws::Map& value) { m_parametersHasBeenSet = true; m_parameters = value; } /** *

The user-supplied properties in key-value form.

*/ inline void SetParameters(Aws::Map&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); } /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& WithParameters(const Aws::Map& value) { SetParameters(value); return *this;} /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& WithParameters(Aws::Map&& value) { SetParameters(std::move(value)); return *this;} /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& AddParameters(const Aws::String& key, const Aws::String& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& AddParameters(Aws::String&& key, const Aws::String& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; } /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& AddParameters(const Aws::String& key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& AddParameters(Aws::String&& key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; } /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& AddParameters(const char* key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& AddParameters(Aws::String&& key, const char* value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; } /** *

The user-supplied properties in key-value form.

*/ inline StorageDescriptor& AddParameters(const char* key, const char* value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

The information about values that appear frequently in a column (skewed * values).

*/ inline const SkewedInfo& GetSkewedInfo() const{ return m_skewedInfo; } /** *

The information about values that appear frequently in a column (skewed * values).

*/ inline bool SkewedInfoHasBeenSet() const { return m_skewedInfoHasBeenSet; } /** *

The information about values that appear frequently in a column (skewed * values).

*/ inline void SetSkewedInfo(const SkewedInfo& value) { m_skewedInfoHasBeenSet = true; m_skewedInfo = value; } /** *

The information about values that appear frequently in a column (skewed * values).

*/ inline void SetSkewedInfo(SkewedInfo&& value) { m_skewedInfoHasBeenSet = true; m_skewedInfo = std::move(value); } /** *

The information about values that appear frequently in a column (skewed * values).

*/ inline StorageDescriptor& WithSkewedInfo(const SkewedInfo& value) { SetSkewedInfo(value); return *this;} /** *

The information about values that appear frequently in a column (skewed * values).

*/ inline StorageDescriptor& WithSkewedInfo(SkewedInfo&& value) { SetSkewedInfo(std::move(value)); return *this;} /** *

True if the table data is stored in subdirectories, or * False if not.

*/ inline bool GetStoredAsSubDirectories() const{ return m_storedAsSubDirectories; } /** *

True if the table data is stored in subdirectories, or * False if not.

*/ inline bool StoredAsSubDirectoriesHasBeenSet() const { return m_storedAsSubDirectoriesHasBeenSet; } /** *

True if the table data is stored in subdirectories, or * False if not.

*/ inline void SetStoredAsSubDirectories(bool value) { m_storedAsSubDirectoriesHasBeenSet = true; m_storedAsSubDirectories = value; } /** *

True if the table data is stored in subdirectories, or * False if not.

*/ inline StorageDescriptor& WithStoredAsSubDirectories(bool value) { SetStoredAsSubDirectories(value); return *this;} /** *

An object that references a schema stored in the Glue Schema Registry.

*

When creating a table, you can pass an empty list of columns for the schema, * and instead use a schema reference.

*/ inline const SchemaReference& GetSchemaReference() const{ return m_schemaReference; } /** *

An object that references a schema stored in the Glue Schema Registry.

*

When creating a table, you can pass an empty list of columns for the schema, * and instead use a schema reference.

*/ inline bool SchemaReferenceHasBeenSet() const { return m_schemaReferenceHasBeenSet; } /** *

An object that references a schema stored in the Glue Schema Registry.

*

When creating a table, you can pass an empty list of columns for the schema, * and instead use a schema reference.

*/ inline void SetSchemaReference(const SchemaReference& value) { m_schemaReferenceHasBeenSet = true; m_schemaReference = value; } /** *

An object that references a schema stored in the Glue Schema Registry.

*

When creating a table, you can pass an empty list of columns for the schema, * and instead use a schema reference.

*/ inline void SetSchemaReference(SchemaReference&& value) { m_schemaReferenceHasBeenSet = true; m_schemaReference = std::move(value); } /** *

An object that references a schema stored in the Glue Schema Registry.

*

When creating a table, you can pass an empty list of columns for the schema, * and instead use a schema reference.

*/ inline StorageDescriptor& WithSchemaReference(const SchemaReference& value) { SetSchemaReference(value); return *this;} /** *

An object that references a schema stored in the Glue Schema Registry.

*

When creating a table, you can pass an empty list of columns for the schema, * and instead use a schema reference.

*/ inline StorageDescriptor& WithSchemaReference(SchemaReference&& value) { SetSchemaReference(std::move(value)); return *this;} private: Aws::Vector m_columns; bool m_columnsHasBeenSet = false; Aws::String m_location; bool m_locationHasBeenSet = false; Aws::Vector m_additionalLocations; bool m_additionalLocationsHasBeenSet = false; Aws::String m_inputFormat; bool m_inputFormatHasBeenSet = false; Aws::String m_outputFormat; bool m_outputFormatHasBeenSet = false; bool m_compressed; bool m_compressedHasBeenSet = false; int m_numberOfBuckets; bool m_numberOfBucketsHasBeenSet = false; SerDeInfo m_serdeInfo; bool m_serdeInfoHasBeenSet = false; Aws::Vector m_bucketColumns; bool m_bucketColumnsHasBeenSet = false; Aws::Vector m_sortColumns; bool m_sortColumnsHasBeenSet = false; Aws::Map m_parameters; bool m_parametersHasBeenSet = false; SkewedInfo m_skewedInfo; bool m_skewedInfoHasBeenSet = false; bool m_storedAsSubDirectories; bool m_storedAsSubDirectoriesHasBeenSet = false; SchemaReference m_schemaReference; bool m_schemaReferenceHasBeenSet = false; }; } // namespace Model } // namespace Glue } // namespace Aws