/** * 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 QuickSight { namespace Model { /** *

A view of a data source that contains information about the shape of the data * in the underlying source. This is a variant type structure. For this structure * to be valid, only one of the attributes can be non-null.

See * Also:

AWS * API Reference

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

A physical table type for relational data sources.

*/ inline const RelationalTable& GetRelationalTable() const{ return m_relationalTable; } /** *

A physical table type for relational data sources.

*/ inline bool RelationalTableHasBeenSet() const { return m_relationalTableHasBeenSet; } /** *

A physical table type for relational data sources.

*/ inline void SetRelationalTable(const RelationalTable& value) { m_relationalTableHasBeenSet = true; m_relationalTable = value; } /** *

A physical table type for relational data sources.

*/ inline void SetRelationalTable(RelationalTable&& value) { m_relationalTableHasBeenSet = true; m_relationalTable = std::move(value); } /** *

A physical table type for relational data sources.

*/ inline PhysicalTable& WithRelationalTable(const RelationalTable& value) { SetRelationalTable(value); return *this;} /** *

A physical table type for relational data sources.

*/ inline PhysicalTable& WithRelationalTable(RelationalTable&& value) { SetRelationalTable(std::move(value)); return *this;} /** *

A physical table type built from the results of the custom SQL query.

*/ inline const CustomSql& GetCustomSql() const{ return m_customSql; } /** *

A physical table type built from the results of the custom SQL query.

*/ inline bool CustomSqlHasBeenSet() const { return m_customSqlHasBeenSet; } /** *

A physical table type built from the results of the custom SQL query.

*/ inline void SetCustomSql(const CustomSql& value) { m_customSqlHasBeenSet = true; m_customSql = value; } /** *

A physical table type built from the results of the custom SQL query.

*/ inline void SetCustomSql(CustomSql&& value) { m_customSqlHasBeenSet = true; m_customSql = std::move(value); } /** *

A physical table type built from the results of the custom SQL query.

*/ inline PhysicalTable& WithCustomSql(const CustomSql& value) { SetCustomSql(value); return *this;} /** *

A physical table type built from the results of the custom SQL query.

*/ inline PhysicalTable& WithCustomSql(CustomSql&& value) { SetCustomSql(std::move(value)); return *this;} /** *

A physical table type for as S3 data source.

*/ inline const S3Source& GetS3Source() const{ return m_s3Source; } /** *

A physical table type for as S3 data source.

*/ inline bool S3SourceHasBeenSet() const { return m_s3SourceHasBeenSet; } /** *

A physical table type for as S3 data source.

*/ inline void SetS3Source(const S3Source& value) { m_s3SourceHasBeenSet = true; m_s3Source = value; } /** *

A physical table type for as S3 data source.

*/ inline void SetS3Source(S3Source&& value) { m_s3SourceHasBeenSet = true; m_s3Source = std::move(value); } /** *

A physical table type for as S3 data source.

*/ inline PhysicalTable& WithS3Source(const S3Source& value) { SetS3Source(value); return *this;} /** *

A physical table type for as S3 data source.

*/ inline PhysicalTable& WithS3Source(S3Source&& value) { SetS3Source(std::move(value)); return *this;} private: RelationalTable m_relationalTable; bool m_relationalTableHasBeenSet = false; CustomSql m_customSql; bool m_customSqlHasBeenSet = false; S3Source m_s3Source; bool m_s3SourceHasBeenSet = false; }; } // namespace Model } // namespace QuickSight } // namespace Aws