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

A schema is a relation within a collaboration.

See Also:

AWS * API Reference

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

The columns for the relation this schema represents.

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

The columns for the relation this schema represents.

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

The columns for the relation this schema represents.

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

The columns for the relation this schema represents.

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

The columns for the relation this schema represents.

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

The columns for the relation this schema represents.

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

The columns for the relation this schema represents.

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

The columns for the relation this schema represents.

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

The partition keys for the dataset underlying this schema.

*/ inline const Aws::Vector& GetPartitionKeys() const{ return m_partitionKeys; } /** *

The partition keys for the dataset underlying this schema.

*/ inline bool PartitionKeysHasBeenSet() const { return m_partitionKeysHasBeenSet; } /** *

The partition keys for the dataset underlying this schema.

*/ inline void SetPartitionKeys(const Aws::Vector& value) { m_partitionKeysHasBeenSet = true; m_partitionKeys = value; } /** *

The partition keys for the dataset underlying this schema.

*/ inline void SetPartitionKeys(Aws::Vector&& value) { m_partitionKeysHasBeenSet = true; m_partitionKeys = std::move(value); } /** *

The partition keys for the dataset underlying this schema.

*/ inline Schema& WithPartitionKeys(const Aws::Vector& value) { SetPartitionKeys(value); return *this;} /** *

The partition keys for the dataset underlying this schema.

*/ inline Schema& WithPartitionKeys(Aws::Vector&& value) { SetPartitionKeys(std::move(value)); return *this;} /** *

The partition keys for the dataset underlying this schema.

*/ inline Schema& AddPartitionKeys(const Column& value) { m_partitionKeysHasBeenSet = true; m_partitionKeys.push_back(value); return *this; } /** *

The partition keys for the dataset underlying this schema.

*/ inline Schema& AddPartitionKeys(Column&& value) { m_partitionKeysHasBeenSet = true; m_partitionKeys.push_back(std::move(value)); return *this; } /** *

The analysis rule types associated with the schema. Valued values are LIST * and AGGREGATION. Currently, only one entry is present.

*/ inline const Aws::Vector& GetAnalysisRuleTypes() const{ return m_analysisRuleTypes; } /** *

The analysis rule types associated with the schema. Valued values are LIST * and AGGREGATION. Currently, only one entry is present.

*/ inline bool AnalysisRuleTypesHasBeenSet() const { return m_analysisRuleTypesHasBeenSet; } /** *

The analysis rule types associated with the schema. Valued values are LIST * and AGGREGATION. Currently, only one entry is present.

*/ inline void SetAnalysisRuleTypes(const Aws::Vector& value) { m_analysisRuleTypesHasBeenSet = true; m_analysisRuleTypes = value; } /** *

The analysis rule types associated with the schema. Valued values are LIST * and AGGREGATION. Currently, only one entry is present.

*/ inline void SetAnalysisRuleTypes(Aws::Vector&& value) { m_analysisRuleTypesHasBeenSet = true; m_analysisRuleTypes = std::move(value); } /** *

The analysis rule types associated with the schema. Valued values are LIST * and AGGREGATION. Currently, only one entry is present.

*/ inline Schema& WithAnalysisRuleTypes(const Aws::Vector& value) { SetAnalysisRuleTypes(value); return *this;} /** *

The analysis rule types associated with the schema. Valued values are LIST * and AGGREGATION. Currently, only one entry is present.

*/ inline Schema& WithAnalysisRuleTypes(Aws::Vector&& value) { SetAnalysisRuleTypes(std::move(value)); return *this;} /** *

The analysis rule types associated with the schema. Valued values are LIST * and AGGREGATION. Currently, only one entry is present.

*/ inline Schema& AddAnalysisRuleTypes(const AnalysisRuleType& value) { m_analysisRuleTypesHasBeenSet = true; m_analysisRuleTypes.push_back(value); return *this; } /** *

The analysis rule types associated with the schema. Valued values are LIST * and AGGREGATION. Currently, only one entry is present.

*/ inline Schema& AddAnalysisRuleTypes(AnalysisRuleType&& value) { m_analysisRuleTypesHasBeenSet = true; m_analysisRuleTypes.push_back(std::move(value)); return *this; } /** *

The analysis method for the schema. The only valid value is currently * DIRECT_QUERY.

*/ inline const AnalysisMethod& GetAnalysisMethod() const{ return m_analysisMethod; } /** *

The analysis method for the schema. The only valid value is currently * DIRECT_QUERY.

*/ inline bool AnalysisMethodHasBeenSet() const { return m_analysisMethodHasBeenSet; } /** *

The analysis method for the schema. The only valid value is currently * DIRECT_QUERY.

*/ inline void SetAnalysisMethod(const AnalysisMethod& value) { m_analysisMethodHasBeenSet = true; m_analysisMethod = value; } /** *

The analysis method for the schema. The only valid value is currently * DIRECT_QUERY.

*/ inline void SetAnalysisMethod(AnalysisMethod&& value) { m_analysisMethodHasBeenSet = true; m_analysisMethod = std::move(value); } /** *

The analysis method for the schema. The only valid value is currently * DIRECT_QUERY.

*/ inline Schema& WithAnalysisMethod(const AnalysisMethod& value) { SetAnalysisMethod(value); return *this;} /** *

The analysis method for the schema. The only valid value is currently * DIRECT_QUERY.

*/ inline Schema& WithAnalysisMethod(AnalysisMethod&& value) { SetAnalysisMethod(std::move(value)); return *this;} /** *

The unique account ID for the Amazon Web Services account that owns the * schema.

*/ inline const Aws::String& GetCreatorAccountId() const{ return m_creatorAccountId; } /** *

The unique account ID for the Amazon Web Services account that owns the * schema.

*/ inline bool CreatorAccountIdHasBeenSet() const { return m_creatorAccountIdHasBeenSet; } /** *

The unique account ID for the Amazon Web Services account that owns the * schema.

*/ inline void SetCreatorAccountId(const Aws::String& value) { m_creatorAccountIdHasBeenSet = true; m_creatorAccountId = value; } /** *

The unique account ID for the Amazon Web Services account that owns the * schema.

*/ inline void SetCreatorAccountId(Aws::String&& value) { m_creatorAccountIdHasBeenSet = true; m_creatorAccountId = std::move(value); } /** *

The unique account ID for the Amazon Web Services account that owns the * schema.

*/ inline void SetCreatorAccountId(const char* value) { m_creatorAccountIdHasBeenSet = true; m_creatorAccountId.assign(value); } /** *

The unique account ID for the Amazon Web Services account that owns the * schema.

*/ inline Schema& WithCreatorAccountId(const Aws::String& value) { SetCreatorAccountId(value); return *this;} /** *

The unique account ID for the Amazon Web Services account that owns the * schema.

*/ inline Schema& WithCreatorAccountId(Aws::String&& value) { SetCreatorAccountId(std::move(value)); return *this;} /** *

The unique account ID for the Amazon Web Services account that owns the * schema.

*/ inline Schema& WithCreatorAccountId(const char* value) { SetCreatorAccountId(value); return *this;} /** *

A name for the schema. The schema relation is referred to by this name when * queried by a protected query.

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

A name for the schema. The schema relation is referred to by this name when * queried by a protected query.

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

A name for the schema. The schema relation is referred to by this name when * queried by a protected query.

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

A name for the schema. The schema relation is referred to by this name when * queried by a protected query.

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

A name for the schema. The schema relation is referred to by this name when * queried by a protected query.

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

A name for the schema. The schema relation is referred to by this name when * queried by a protected query.

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

A name for the schema. The schema relation is referred to by this name when * queried by a protected query.

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

A name for the schema. The schema relation is referred to by this name when * queried by a protected query.

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

The unique ID for the collaboration that the schema belongs to.

*/ inline const Aws::String& GetCollaborationId() const{ return m_collaborationId; } /** *

The unique ID for the collaboration that the schema belongs to.

*/ inline bool CollaborationIdHasBeenSet() const { return m_collaborationIdHasBeenSet; } /** *

The unique ID for the collaboration that the schema belongs to.

*/ inline void SetCollaborationId(const Aws::String& value) { m_collaborationIdHasBeenSet = true; m_collaborationId = value; } /** *

The unique ID for the collaboration that the schema belongs to.

*/ inline void SetCollaborationId(Aws::String&& value) { m_collaborationIdHasBeenSet = true; m_collaborationId = std::move(value); } /** *

The unique ID for the collaboration that the schema belongs to.

*/ inline void SetCollaborationId(const char* value) { m_collaborationIdHasBeenSet = true; m_collaborationId.assign(value); } /** *

The unique ID for the collaboration that the schema belongs to.

*/ inline Schema& WithCollaborationId(const Aws::String& value) { SetCollaborationId(value); return *this;} /** *

The unique ID for the collaboration that the schema belongs to.

*/ inline Schema& WithCollaborationId(Aws::String&& value) { SetCollaborationId(std::move(value)); return *this;} /** *

The unique ID for the collaboration that the schema belongs to.

*/ inline Schema& WithCollaborationId(const char* value) { SetCollaborationId(value); return *this;} /** *

The unique ARN for the collaboration that the schema belongs to.

*/ inline const Aws::String& GetCollaborationArn() const{ return m_collaborationArn; } /** *

The unique ARN for the collaboration that the schema belongs to.

*/ inline bool CollaborationArnHasBeenSet() const { return m_collaborationArnHasBeenSet; } /** *

The unique ARN for the collaboration that the schema belongs to.

*/ inline void SetCollaborationArn(const Aws::String& value) { m_collaborationArnHasBeenSet = true; m_collaborationArn = value; } /** *

The unique ARN for the collaboration that the schema belongs to.

*/ inline void SetCollaborationArn(Aws::String&& value) { m_collaborationArnHasBeenSet = true; m_collaborationArn = std::move(value); } /** *

The unique ARN for the collaboration that the schema belongs to.

*/ inline void SetCollaborationArn(const char* value) { m_collaborationArnHasBeenSet = true; m_collaborationArn.assign(value); } /** *

The unique ARN for the collaboration that the schema belongs to.

*/ inline Schema& WithCollaborationArn(const Aws::String& value) { SetCollaborationArn(value); return *this;} /** *

The unique ARN for the collaboration that the schema belongs to.

*/ inline Schema& WithCollaborationArn(Aws::String&& value) { SetCollaborationArn(std::move(value)); return *this;} /** *

The unique ARN for the collaboration that the schema belongs to.

*/ inline Schema& WithCollaborationArn(const char* value) { SetCollaborationArn(value); return *this;} /** *

A description for the schema.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description for the schema.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description for the schema.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description for the schema.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description for the schema.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description for the schema.

*/ inline Schema& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description for the schema.

*/ inline Schema& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description for the schema.

*/ inline Schema& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The time the schema was created.

*/ inline const Aws::Utils::DateTime& GetCreateTime() const{ return m_createTime; } /** *

The time the schema was created.

*/ inline bool CreateTimeHasBeenSet() const { return m_createTimeHasBeenSet; } /** *

The time the schema was created.

*/ inline void SetCreateTime(const Aws::Utils::DateTime& value) { m_createTimeHasBeenSet = true; m_createTime = value; } /** *

The time the schema was created.

*/ inline void SetCreateTime(Aws::Utils::DateTime&& value) { m_createTimeHasBeenSet = true; m_createTime = std::move(value); } /** *

The time the schema was created.

*/ inline Schema& WithCreateTime(const Aws::Utils::DateTime& value) { SetCreateTime(value); return *this;} /** *

The time the schema was created.

*/ inline Schema& WithCreateTime(Aws::Utils::DateTime&& value) { SetCreateTime(std::move(value)); return *this;} /** *

The time the schema was last updated.

*/ inline const Aws::Utils::DateTime& GetUpdateTime() const{ return m_updateTime; } /** *

The time the schema was last updated.

*/ inline bool UpdateTimeHasBeenSet() const { return m_updateTimeHasBeenSet; } /** *

The time the schema was last updated.

*/ inline void SetUpdateTime(const Aws::Utils::DateTime& value) { m_updateTimeHasBeenSet = true; m_updateTime = value; } /** *

The time the schema was last updated.

*/ inline void SetUpdateTime(Aws::Utils::DateTime&& value) { m_updateTimeHasBeenSet = true; m_updateTime = std::move(value); } /** *

The time the schema was last updated.

*/ inline Schema& WithUpdateTime(const Aws::Utils::DateTime& value) { SetUpdateTime(value); return *this;} /** *

The time the schema was last updated.

*/ inline Schema& WithUpdateTime(Aws::Utils::DateTime&& value) { SetUpdateTime(std::move(value)); return *this;} /** *

The type of schema. The only valid value is currently `TABLE`.

*/ inline const SchemaType& GetType() const{ return m_type; } /** *

The type of schema. The only valid value is currently `TABLE`.

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

The type of schema. The only valid value is currently `TABLE`.

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

The type of schema. The only valid value is currently `TABLE`.

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

The type of schema. The only valid value is currently `TABLE`.

*/ inline Schema& WithType(const SchemaType& value) { SetType(value); return *this;} /** *

The type of schema. The only valid value is currently `TABLE`.

*/ inline Schema& WithType(SchemaType&& value) { SetType(std::move(value)); return *this;} private: Aws::Vector m_columns; bool m_columnsHasBeenSet = false; Aws::Vector m_partitionKeys; bool m_partitionKeysHasBeenSet = false; Aws::Vector m_analysisRuleTypes; bool m_analysisRuleTypesHasBeenSet = false; AnalysisMethod m_analysisMethod; bool m_analysisMethodHasBeenSet = false; Aws::String m_creatorAccountId; bool m_creatorAccountIdHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_collaborationId; bool m_collaborationIdHasBeenSet = false; Aws::String m_collaborationArn; bool m_collaborationArnHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Utils::DateTime m_createTime; bool m_createTimeHasBeenSet = false; Aws::Utils::DateTime m_updateTime; bool m_updateTimeHasBeenSet = false; SchemaType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace CleanRooms } // namespace Aws