/** * 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 structure that represents a metric.

See Also:

AWS * API Reference

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

The aggregation of a named entity. Valid values for this structure are * SUM, MIN, MAX, COUNT, * AVERAGE, DISTINCT_COUNT, STDEV, * STDEVP, VAR, VARP, * PERCENTILE, MEDIAN, and CUSTOM.

*/ inline const NamedEntityAggType& GetAggregation() const{ return m_aggregation; } /** *

The aggregation of a named entity. Valid values for this structure are * SUM, MIN, MAX, COUNT, * AVERAGE, DISTINCT_COUNT, STDEV, * STDEVP, VAR, VARP, * PERCENTILE, MEDIAN, and CUSTOM.

*/ inline bool AggregationHasBeenSet() const { return m_aggregationHasBeenSet; } /** *

The aggregation of a named entity. Valid values for this structure are * SUM, MIN, MAX, COUNT, * AVERAGE, DISTINCT_COUNT, STDEV, * STDEVP, VAR, VARP, * PERCENTILE, MEDIAN, and CUSTOM.

*/ inline void SetAggregation(const NamedEntityAggType& value) { m_aggregationHasBeenSet = true; m_aggregation = value; } /** *

The aggregation of a named entity. Valid values for this structure are * SUM, MIN, MAX, COUNT, * AVERAGE, DISTINCT_COUNT, STDEV, * STDEVP, VAR, VARP, * PERCENTILE, MEDIAN, and CUSTOM.

*/ inline void SetAggregation(NamedEntityAggType&& value) { m_aggregationHasBeenSet = true; m_aggregation = std::move(value); } /** *

The aggregation of a named entity. Valid values for this structure are * SUM, MIN, MAX, COUNT, * AVERAGE, DISTINCT_COUNT, STDEV, * STDEVP, VAR, VARP, * PERCENTILE, MEDIAN, and CUSTOM.

*/ inline NamedEntityDefinitionMetric& WithAggregation(const NamedEntityAggType& value) { SetAggregation(value); return *this;} /** *

The aggregation of a named entity. Valid values for this structure are * SUM, MIN, MAX, COUNT, * AVERAGE, DISTINCT_COUNT, STDEV, * STDEVP, VAR, VARP, * PERCENTILE, MEDIAN, and CUSTOM.

*/ inline NamedEntityDefinitionMetric& WithAggregation(NamedEntityAggType&& value) { SetAggregation(std::move(value)); return *this;} /** *

The additional parameters for an aggregation function.

*/ inline const Aws::Map& GetAggregationFunctionParameters() const{ return m_aggregationFunctionParameters; } /** *

The additional parameters for an aggregation function.

*/ inline bool AggregationFunctionParametersHasBeenSet() const { return m_aggregationFunctionParametersHasBeenSet; } /** *

The additional parameters for an aggregation function.

*/ inline void SetAggregationFunctionParameters(const Aws::Map& value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters = value; } /** *

The additional parameters for an aggregation function.

*/ inline void SetAggregationFunctionParameters(Aws::Map&& value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters = std::move(value); } /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& WithAggregationFunctionParameters(const Aws::Map& value) { SetAggregationFunctionParameters(value); return *this;} /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& WithAggregationFunctionParameters(Aws::Map&& value) { SetAggregationFunctionParameters(std::move(value)); return *this;} /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& AddAggregationFunctionParameters(const Aws::String& key, const Aws::String& value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters.emplace(key, value); return *this; } /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& AddAggregationFunctionParameters(Aws::String&& key, const Aws::String& value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters.emplace(std::move(key), value); return *this; } /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& AddAggregationFunctionParameters(const Aws::String& key, Aws::String&& value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters.emplace(key, std::move(value)); return *this; } /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& AddAggregationFunctionParameters(Aws::String&& key, Aws::String&& value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters.emplace(std::move(key), std::move(value)); return *this; } /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& AddAggregationFunctionParameters(const char* key, Aws::String&& value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters.emplace(key, std::move(value)); return *this; } /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& AddAggregationFunctionParameters(Aws::String&& key, const char* value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters.emplace(std::move(key), value); return *this; } /** *

The additional parameters for an aggregation function.

*/ inline NamedEntityDefinitionMetric& AddAggregationFunctionParameters(const char* key, const char* value) { m_aggregationFunctionParametersHasBeenSet = true; m_aggregationFunctionParameters.emplace(key, value); return *this; } private: NamedEntityAggType m_aggregation; bool m_aggregationHasBeenSet = false; Aws::Map m_aggregationFunctionParameters; bool m_aggregationFunctionParametersHasBeenSet = false; }; } // namespace Model } // namespace QuickSight } // namespace Aws