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

Definition for a schema on a tabular Dataset.

See Also:

AWS * API Reference

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

List of column definitions.

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

List of column definitions.

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

List of column definitions.

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

List of column definitions.

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

List of column definitions.

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

List of column definitions.

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

List of column definitions.

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

List of column definitions.

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

List of column names used for primary key.

*/ inline const Aws::Vector& GetPrimaryKeyColumns() const{ return m_primaryKeyColumns; } /** *

List of column names used for primary key.

*/ inline bool PrimaryKeyColumnsHasBeenSet() const { return m_primaryKeyColumnsHasBeenSet; } /** *

List of column names used for primary key.

*/ inline void SetPrimaryKeyColumns(const Aws::Vector& value) { m_primaryKeyColumnsHasBeenSet = true; m_primaryKeyColumns = value; } /** *

List of column names used for primary key.

*/ inline void SetPrimaryKeyColumns(Aws::Vector&& value) { m_primaryKeyColumnsHasBeenSet = true; m_primaryKeyColumns = std::move(value); } /** *

List of column names used for primary key.

*/ inline SchemaDefinition& WithPrimaryKeyColumns(const Aws::Vector& value) { SetPrimaryKeyColumns(value); return *this;} /** *

List of column names used for primary key.

*/ inline SchemaDefinition& WithPrimaryKeyColumns(Aws::Vector&& value) { SetPrimaryKeyColumns(std::move(value)); return *this;} /** *

List of column names used for primary key.

*/ inline SchemaDefinition& AddPrimaryKeyColumns(const Aws::String& value) { m_primaryKeyColumnsHasBeenSet = true; m_primaryKeyColumns.push_back(value); return *this; } /** *

List of column names used for primary key.

*/ inline SchemaDefinition& AddPrimaryKeyColumns(Aws::String&& value) { m_primaryKeyColumnsHasBeenSet = true; m_primaryKeyColumns.push_back(std::move(value)); return *this; } /** *

List of column names used for primary key.

*/ inline SchemaDefinition& AddPrimaryKeyColumns(const char* value) { m_primaryKeyColumnsHasBeenSet = true; m_primaryKeyColumns.push_back(value); return *this; } private: Aws::Vector m_columns; bool m_columnsHasBeenSet = false; Aws::Vector m_primaryKeyColumns; bool m_primaryKeyColumnsHasBeenSet = false; }; } // namespace Model } // namespace FinSpaceData } // namespace Aws