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

Constraint on query output removing output rows that do not meet a minimum * number of distinct values of a specified column.

See Also:

AWS * API Reference

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

Column in aggregation constraint for which there must be a minimum number of * distinct values in an output row for it to be in the query output.

*/ inline const Aws::String& GetColumnName() const{ return m_columnName; } /** *

Column in aggregation constraint for which there must be a minimum number of * distinct values in an output row for it to be in the query output.

*/ inline bool ColumnNameHasBeenSet() const { return m_columnNameHasBeenSet; } /** *

Column in aggregation constraint for which there must be a minimum number of * distinct values in an output row for it to be in the query output.

*/ inline void SetColumnName(const Aws::String& value) { m_columnNameHasBeenSet = true; m_columnName = value; } /** *

Column in aggregation constraint for which there must be a minimum number of * distinct values in an output row for it to be in the query output.

*/ inline void SetColumnName(Aws::String&& value) { m_columnNameHasBeenSet = true; m_columnName = std::move(value); } /** *

Column in aggregation constraint for which there must be a minimum number of * distinct values in an output row for it to be in the query output.

*/ inline void SetColumnName(const char* value) { m_columnNameHasBeenSet = true; m_columnName.assign(value); } /** *

Column in aggregation constraint for which there must be a minimum number of * distinct values in an output row for it to be in the query output.

*/ inline AggregationConstraint& WithColumnName(const Aws::String& value) { SetColumnName(value); return *this;} /** *

Column in aggregation constraint for which there must be a minimum number of * distinct values in an output row for it to be in the query output.

*/ inline AggregationConstraint& WithColumnName(Aws::String&& value) { SetColumnName(std::move(value)); return *this;} /** *

Column in aggregation constraint for which there must be a minimum number of * distinct values in an output row for it to be in the query output.

*/ inline AggregationConstraint& WithColumnName(const char* value) { SetColumnName(value); return *this;} /** *

The minimum number of distinct values that an output row must be an * aggregation of. Minimum threshold of distinct values for a specified column that * must exist in an output row for it to be in the query output.

*/ inline int GetMinimum() const{ return m_minimum; } /** *

The minimum number of distinct values that an output row must be an * aggregation of. Minimum threshold of distinct values for a specified column that * must exist in an output row for it to be in the query output.

*/ inline bool MinimumHasBeenSet() const { return m_minimumHasBeenSet; } /** *

The minimum number of distinct values that an output row must be an * aggregation of. Minimum threshold of distinct values for a specified column that * must exist in an output row for it to be in the query output.

*/ inline void SetMinimum(int value) { m_minimumHasBeenSet = true; m_minimum = value; } /** *

The minimum number of distinct values that an output row must be an * aggregation of. Minimum threshold of distinct values for a specified column that * must exist in an output row for it to be in the query output.

*/ inline AggregationConstraint& WithMinimum(int value) { SetMinimum(value); return *this;} /** *

The type of aggregation the constraint allows. The only valid value is * currently `COUNT_DISTINCT`.

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

The type of aggregation the constraint allows. The only valid value is * currently `COUNT_DISTINCT`.

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

The type of aggregation the constraint allows. The only valid value is * currently `COUNT_DISTINCT`.

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

The type of aggregation the constraint allows. The only valid value is * currently `COUNT_DISTINCT`.

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

The type of aggregation the constraint allows. The only valid value is * currently `COUNT_DISTINCT`.

*/ inline AggregationConstraint& WithType(const AggregationType& value) { SetType(value); return *this;} /** *

The type of aggregation the constraint allows. The only valid value is * currently `COUNT_DISTINCT`.

*/ inline AggregationConstraint& WithType(AggregationType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_columnName; bool m_columnNameHasBeenSet = false; int m_minimum; bool m_minimumHasBeenSet = false; AggregationType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace CleanRooms } // namespace Aws