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

Specifies the inventory type and attribute for the aggregation * execution.

See Also:

AWS * API Reference

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

The inventory type and attribute name for aggregation.

*/ inline const Aws::String& GetExpression() const{ return m_expression; } /** *

The inventory type and attribute name for aggregation.

*/ inline bool ExpressionHasBeenSet() const { return m_expressionHasBeenSet; } /** *

The inventory type and attribute name for aggregation.

*/ inline void SetExpression(const Aws::String& value) { m_expressionHasBeenSet = true; m_expression = value; } /** *

The inventory type and attribute name for aggregation.

*/ inline void SetExpression(Aws::String&& value) { m_expressionHasBeenSet = true; m_expression = std::move(value); } /** *

The inventory type and attribute name for aggregation.

*/ inline void SetExpression(const char* value) { m_expressionHasBeenSet = true; m_expression.assign(value); } /** *

The inventory type and attribute name for aggregation.

*/ inline InventoryAggregator& WithExpression(const Aws::String& value) { SetExpression(value); return *this;} /** *

The inventory type and attribute name for aggregation.

*/ inline InventoryAggregator& WithExpression(Aws::String&& value) { SetExpression(std::move(value)); return *this;} /** *

The inventory type and attribute name for aggregation.

*/ inline InventoryAggregator& WithExpression(const char* value) { SetExpression(value); return *this;} /** *

Nested aggregators to further refine aggregation for an inventory type.

*/ inline const Aws::Vector& GetAggregators() const{ return m_aggregators; } /** *

Nested aggregators to further refine aggregation for an inventory type.

*/ inline bool AggregatorsHasBeenSet() const { return m_aggregatorsHasBeenSet; } /** *

Nested aggregators to further refine aggregation for an inventory type.

*/ inline void SetAggregators(const Aws::Vector& value) { m_aggregatorsHasBeenSet = true; m_aggregators = value; } /** *

Nested aggregators to further refine aggregation for an inventory type.

*/ inline void SetAggregators(Aws::Vector&& value) { m_aggregatorsHasBeenSet = true; m_aggregators = std::move(value); } /** *

Nested aggregators to further refine aggregation for an inventory type.

*/ inline InventoryAggregator& WithAggregators(const Aws::Vector& value) { SetAggregators(value); return *this;} /** *

Nested aggregators to further refine aggregation for an inventory type.

*/ inline InventoryAggregator& WithAggregators(Aws::Vector&& value) { SetAggregators(std::move(value)); return *this;} /** *

Nested aggregators to further refine aggregation for an inventory type.

*/ inline InventoryAggregator& AddAggregators(const InventoryAggregator& value) { m_aggregatorsHasBeenSet = true; m_aggregators.push_back(value); return *this; } /** *

Nested aggregators to further refine aggregation for an inventory type.

*/ inline InventoryAggregator& AddAggregators(InventoryAggregator&& value) { m_aggregatorsHasBeenSet = true; m_aggregators.push_back(std::move(value)); return *this; } /** *

A user-defined set of one or more filters on which to aggregate inventory * data. Groups return a count of resources that match and don't match the * specified criteria.

*/ inline const Aws::Vector& GetGroups() const{ return m_groups; } /** *

A user-defined set of one or more filters on which to aggregate inventory * data. Groups return a count of resources that match and don't match the * specified criteria.

*/ inline bool GroupsHasBeenSet() const { return m_groupsHasBeenSet; } /** *

A user-defined set of one or more filters on which to aggregate inventory * data. Groups return a count of resources that match and don't match the * specified criteria.

*/ inline void SetGroups(const Aws::Vector& value) { m_groupsHasBeenSet = true; m_groups = value; } /** *

A user-defined set of one or more filters on which to aggregate inventory * data. Groups return a count of resources that match and don't match the * specified criteria.

*/ inline void SetGroups(Aws::Vector&& value) { m_groupsHasBeenSet = true; m_groups = std::move(value); } /** *

A user-defined set of one or more filters on which to aggregate inventory * data. Groups return a count of resources that match and don't match the * specified criteria.

*/ inline InventoryAggregator& WithGroups(const Aws::Vector& value) { SetGroups(value); return *this;} /** *

A user-defined set of one or more filters on which to aggregate inventory * data. Groups return a count of resources that match and don't match the * specified criteria.

*/ inline InventoryAggregator& WithGroups(Aws::Vector&& value) { SetGroups(std::move(value)); return *this;} /** *

A user-defined set of one or more filters on which to aggregate inventory * data. Groups return a count of resources that match and don't match the * specified criteria.

*/ inline InventoryAggregator& AddGroups(const InventoryGroup& value) { m_groupsHasBeenSet = true; m_groups.push_back(value); return *this; } /** *

A user-defined set of one or more filters on which to aggregate inventory * data. Groups return a count of resources that match and don't match the * specified criteria.

*/ inline InventoryAggregator& AddGroups(InventoryGroup&& value) { m_groupsHasBeenSet = true; m_groups.push_back(std::move(value)); return *this; } private: Aws::String m_expression; bool m_expressionHasBeenSet = false; Aws::Vector m_aggregators; bool m_aggregatorsHasBeenSet = false; Aws::Vector m_groups; bool m_groupsHasBeenSet = false; }; } // namespace Model } // namespace SSM } // namespace Aws