/** * 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 { /** *

Enables query structure and specified queries that produce aggregate * statistics.

See Also:

AWS * API Reference

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

The columns that query runners are allowed to use in aggregation queries.

*/ inline const Aws::Vector& GetAggregateColumns() const{ return m_aggregateColumns; } /** *

The columns that query runners are allowed to use in aggregation queries.

*/ inline bool AggregateColumnsHasBeenSet() const { return m_aggregateColumnsHasBeenSet; } /** *

The columns that query runners are allowed to use in aggregation queries.

*/ inline void SetAggregateColumns(const Aws::Vector& value) { m_aggregateColumnsHasBeenSet = true; m_aggregateColumns = value; } /** *

The columns that query runners are allowed to use in aggregation queries.

*/ inline void SetAggregateColumns(Aws::Vector&& value) { m_aggregateColumnsHasBeenSet = true; m_aggregateColumns = std::move(value); } /** *

The columns that query runners are allowed to use in aggregation queries.

*/ inline AnalysisRuleAggregation& WithAggregateColumns(const Aws::Vector& value) { SetAggregateColumns(value); return *this;} /** *

The columns that query runners are allowed to use in aggregation queries.

*/ inline AnalysisRuleAggregation& WithAggregateColumns(Aws::Vector&& value) { SetAggregateColumns(std::move(value)); return *this;} /** *

The columns that query runners are allowed to use in aggregation queries.

*/ inline AnalysisRuleAggregation& AddAggregateColumns(const AggregateColumn& value) { m_aggregateColumnsHasBeenSet = true; m_aggregateColumns.push_back(value); return *this; } /** *

The columns that query runners are allowed to use in aggregation queries.

*/ inline AnalysisRuleAggregation& AddAggregateColumns(AggregateColumn&& value) { m_aggregateColumnsHasBeenSet = true; m_aggregateColumns.push_back(std::move(value)); return *this; } /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline const Aws::Vector& GetJoinColumns() const{ return m_joinColumns; } /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline bool JoinColumnsHasBeenSet() const { return m_joinColumnsHasBeenSet; } /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline void SetJoinColumns(const Aws::Vector& value) { m_joinColumnsHasBeenSet = true; m_joinColumns = value; } /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline void SetJoinColumns(Aws::Vector&& value) { m_joinColumnsHasBeenSet = true; m_joinColumns = std::move(value); } /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline AnalysisRuleAggregation& WithJoinColumns(const Aws::Vector& value) { SetJoinColumns(value); return *this;} /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline AnalysisRuleAggregation& WithJoinColumns(Aws::Vector&& value) { SetJoinColumns(std::move(value)); return *this;} /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline AnalysisRuleAggregation& AddJoinColumns(const Aws::String& value) { m_joinColumnsHasBeenSet = true; m_joinColumns.push_back(value); return *this; } /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline AnalysisRuleAggregation& AddJoinColumns(Aws::String&& value) { m_joinColumnsHasBeenSet = true; m_joinColumns.push_back(std::move(value)); return *this; } /** *

Columns in configured table that can be used in join statements and/or as * aggregate columns. They can never be outputted directly.

*/ inline AnalysisRuleAggregation& AddJoinColumns(const char* value) { m_joinColumnsHasBeenSet = true; m_joinColumns.push_back(value); return *this; } /** *

Control that requires member who runs query to do a join with their * configured table and/or other configured table in query.

*/ inline const JoinRequiredOption& GetJoinRequired() const{ return m_joinRequired; } /** *

Control that requires member who runs query to do a join with their * configured table and/or other configured table in query.

*/ inline bool JoinRequiredHasBeenSet() const { return m_joinRequiredHasBeenSet; } /** *

Control that requires member who runs query to do a join with their * configured table and/or other configured table in query.

*/ inline void SetJoinRequired(const JoinRequiredOption& value) { m_joinRequiredHasBeenSet = true; m_joinRequired = value; } /** *

Control that requires member who runs query to do a join with their * configured table and/or other configured table in query.

*/ inline void SetJoinRequired(JoinRequiredOption&& value) { m_joinRequiredHasBeenSet = true; m_joinRequired = std::move(value); } /** *

Control that requires member who runs query to do a join with their * configured table and/or other configured table in query.

*/ inline AnalysisRuleAggregation& WithJoinRequired(const JoinRequiredOption& value) { SetJoinRequired(value); return *this;} /** *

Control that requires member who runs query to do a join with their * configured table and/or other configured table in query.

*/ inline AnalysisRuleAggregation& WithJoinRequired(JoinRequiredOption&& value) { SetJoinRequired(std::move(value)); return *this;} /** *

Which logical operators (if any) are to be used in an INNER JOIN match * condition. Default is AND.

*/ inline const Aws::Vector& GetAllowedJoinOperators() const{ return m_allowedJoinOperators; } /** *

Which logical operators (if any) are to be used in an INNER JOIN match * condition. Default is AND.

*/ inline bool AllowedJoinOperatorsHasBeenSet() const { return m_allowedJoinOperatorsHasBeenSet; } /** *

Which logical operators (if any) are to be used in an INNER JOIN match * condition. Default is AND.

*/ inline void SetAllowedJoinOperators(const Aws::Vector& value) { m_allowedJoinOperatorsHasBeenSet = true; m_allowedJoinOperators = value; } /** *

Which logical operators (if any) are to be used in an INNER JOIN match * condition. Default is AND.

*/ inline void SetAllowedJoinOperators(Aws::Vector&& value) { m_allowedJoinOperatorsHasBeenSet = true; m_allowedJoinOperators = std::move(value); } /** *

Which logical operators (if any) are to be used in an INNER JOIN match * condition. Default is AND.

*/ inline AnalysisRuleAggregation& WithAllowedJoinOperators(const Aws::Vector& value) { SetAllowedJoinOperators(value); return *this;} /** *

Which logical operators (if any) are to be used in an INNER JOIN match * condition. Default is AND.

*/ inline AnalysisRuleAggregation& WithAllowedJoinOperators(Aws::Vector&& value) { SetAllowedJoinOperators(std::move(value)); return *this;} /** *

Which logical operators (if any) are to be used in an INNER JOIN match * condition. Default is AND.

*/ inline AnalysisRuleAggregation& AddAllowedJoinOperators(const JoinOperator& value) { m_allowedJoinOperatorsHasBeenSet = true; m_allowedJoinOperators.push_back(value); return *this; } /** *

Which logical operators (if any) are to be used in an INNER JOIN match * condition. Default is AND.

*/ inline AnalysisRuleAggregation& AddAllowedJoinOperators(JoinOperator&& value) { m_allowedJoinOperatorsHasBeenSet = true; m_allowedJoinOperators.push_back(std::move(value)); return *this; } /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline const Aws::Vector& GetDimensionColumns() const{ return m_dimensionColumns; } /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline bool DimensionColumnsHasBeenSet() const { return m_dimensionColumnsHasBeenSet; } /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline void SetDimensionColumns(const Aws::Vector& value) { m_dimensionColumnsHasBeenSet = true; m_dimensionColumns = value; } /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline void SetDimensionColumns(Aws::Vector&& value) { m_dimensionColumnsHasBeenSet = true; m_dimensionColumns = std::move(value); } /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline AnalysisRuleAggregation& WithDimensionColumns(const Aws::Vector& value) { SetDimensionColumns(value); return *this;} /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline AnalysisRuleAggregation& WithDimensionColumns(Aws::Vector&& value) { SetDimensionColumns(std::move(value)); return *this;} /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline AnalysisRuleAggregation& AddDimensionColumns(const Aws::String& value) { m_dimensionColumnsHasBeenSet = true; m_dimensionColumns.push_back(value); return *this; } /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline AnalysisRuleAggregation& AddDimensionColumns(Aws::String&& value) { m_dimensionColumnsHasBeenSet = true; m_dimensionColumns.push_back(std::move(value)); return *this; } /** *

The columns that query runners are allowed to select, group by, or filter * by.

*/ inline AnalysisRuleAggregation& AddDimensionColumns(const char* value) { m_dimensionColumnsHasBeenSet = true; m_dimensionColumns.push_back(value); return *this; } /** *

Set of scalar functions that are allowed to be used on dimension columns and * the output of aggregation of metrics.

*/ inline const Aws::Vector& GetScalarFunctions() const{ return m_scalarFunctions; } /** *

Set of scalar functions that are allowed to be used on dimension columns and * the output of aggregation of metrics.

*/ inline bool ScalarFunctionsHasBeenSet() const { return m_scalarFunctionsHasBeenSet; } /** *

Set of scalar functions that are allowed to be used on dimension columns and * the output of aggregation of metrics.

*/ inline void SetScalarFunctions(const Aws::Vector& value) { m_scalarFunctionsHasBeenSet = true; m_scalarFunctions = value; } /** *

Set of scalar functions that are allowed to be used on dimension columns and * the output of aggregation of metrics.

*/ inline void SetScalarFunctions(Aws::Vector&& value) { m_scalarFunctionsHasBeenSet = true; m_scalarFunctions = std::move(value); } /** *

Set of scalar functions that are allowed to be used on dimension columns and * the output of aggregation of metrics.

*/ inline AnalysisRuleAggregation& WithScalarFunctions(const Aws::Vector& value) { SetScalarFunctions(value); return *this;} /** *

Set of scalar functions that are allowed to be used on dimension columns and * the output of aggregation of metrics.

*/ inline AnalysisRuleAggregation& WithScalarFunctions(Aws::Vector&& value) { SetScalarFunctions(std::move(value)); return *this;} /** *

Set of scalar functions that are allowed to be used on dimension columns and * the output of aggregation of metrics.

*/ inline AnalysisRuleAggregation& AddScalarFunctions(const ScalarFunctions& value) { m_scalarFunctionsHasBeenSet = true; m_scalarFunctions.push_back(value); return *this; } /** *

Set of scalar functions that are allowed to be used on dimension columns and * the output of aggregation of metrics.

*/ inline AnalysisRuleAggregation& AddScalarFunctions(ScalarFunctions&& value) { m_scalarFunctionsHasBeenSet = true; m_scalarFunctions.push_back(std::move(value)); return *this; } /** *

Columns that must meet a specific threshold value (after an aggregation * function is applied to it) for each output row to be returned.

*/ inline const Aws::Vector& GetOutputConstraints() const{ return m_outputConstraints; } /** *

Columns that must meet a specific threshold value (after an aggregation * function is applied to it) for each output row to be returned.

*/ inline bool OutputConstraintsHasBeenSet() const { return m_outputConstraintsHasBeenSet; } /** *

Columns that must meet a specific threshold value (after an aggregation * function is applied to it) for each output row to be returned.

*/ inline void SetOutputConstraints(const Aws::Vector& value) { m_outputConstraintsHasBeenSet = true; m_outputConstraints = value; } /** *

Columns that must meet a specific threshold value (after an aggregation * function is applied to it) for each output row to be returned.

*/ inline void SetOutputConstraints(Aws::Vector&& value) { m_outputConstraintsHasBeenSet = true; m_outputConstraints = std::move(value); } /** *

Columns that must meet a specific threshold value (after an aggregation * function is applied to it) for each output row to be returned.

*/ inline AnalysisRuleAggregation& WithOutputConstraints(const Aws::Vector& value) { SetOutputConstraints(value); return *this;} /** *

Columns that must meet a specific threshold value (after an aggregation * function is applied to it) for each output row to be returned.

*/ inline AnalysisRuleAggregation& WithOutputConstraints(Aws::Vector&& value) { SetOutputConstraints(std::move(value)); return *this;} /** *

Columns that must meet a specific threshold value (after an aggregation * function is applied to it) for each output row to be returned.

*/ inline AnalysisRuleAggregation& AddOutputConstraints(const AggregationConstraint& value) { m_outputConstraintsHasBeenSet = true; m_outputConstraints.push_back(value); return *this; } /** *

Columns that must meet a specific threshold value (after an aggregation * function is applied to it) for each output row to be returned.

*/ inline AnalysisRuleAggregation& AddOutputConstraints(AggregationConstraint&& value) { m_outputConstraintsHasBeenSet = true; m_outputConstraints.push_back(std::move(value)); return *this; } private: Aws::Vector m_aggregateColumns; bool m_aggregateColumnsHasBeenSet = false; Aws::Vector m_joinColumns; bool m_joinColumnsHasBeenSet = false; JoinRequiredOption m_joinRequired; bool m_joinRequiredHasBeenSet = false; Aws::Vector m_allowedJoinOperators; bool m_allowedJoinOperatorsHasBeenSet = false; Aws::Vector m_dimensionColumns; bool m_dimensionColumnsHasBeenSet = false; Aws::Vector m_scalarFunctions; bool m_scalarFunctionsHasBeenSet = false; Aws::Vector m_outputConstraints; bool m_outputConstraintsHasBeenSet = false; }; } // namespace Model } // namespace CleanRooms } // namespace Aws