AWS SDK for C++

AWS SDK for C++ Version 1.11.909

Loading...
Searching...
No Matches
Expression.h
1
6#pragma once
7#include <aws/budgets/Budgets_EXPORTS.h>
8#include <aws/budgets/model/CostCategoryValues.h>
9#include <aws/budgets/model/ExpressionDimensionValues.h>
10#include <aws/budgets/model/ProductAttributeValues.h>
11#include <aws/budgets/model/TagValues.h>
12#include <aws/core/utils/memory/stl/AWSVector.h>
13
14#include <utility>
15
16namespace Aws {
17namespace Utils {
18namespace Json {
19class JsonValue;
20class JsonView;
21} // namespace Json
22} // namespace Utils
23namespace Budgets {
24namespace Model {
25
33 public:
34 AWS_BUDGETS_API Expression() = default;
35 AWS_BUDGETS_API Expression(Aws::Utils::Json::JsonView jsonValue);
36 AWS_BUDGETS_API Expression& operator=(Aws::Utils::Json::JsonView jsonValue);
37 AWS_BUDGETS_API Aws::Utils::Json::JsonValue Jsonize() const;
38
40
43 inline const Aws::Vector<Expression>& GetOr() const { return m_or; }
44 inline bool OrHasBeenSet() const { return m_orHasBeenSet; }
45 template <typename OrT = Aws::Vector<Expression>>
46 void SetOr(OrT&& value) {
47 m_orHasBeenSet = true;
48 m_or = std::forward<OrT>(value);
49 }
50 template <typename OrT = Aws::Vector<Expression>>
51 Expression& WithOr(OrT&& value) {
52 SetOr(std::forward<OrT>(value));
53 return *this;
54 }
55 template <typename OrT = Expression>
56 Expression& AddOr(OrT&& value) {
57 m_orHasBeenSet = true;
58 m_or.emplace_back(std::forward<OrT>(value));
59 return *this;
60 }
62
64
67 inline const Aws::Vector<Expression>& GetAnd() const { return m_and; }
68 inline bool AndHasBeenSet() const { return m_andHasBeenSet; }
69 template <typename AndT = Aws::Vector<Expression>>
70 void SetAnd(AndT&& value) {
71 m_andHasBeenSet = true;
72 m_and = std::forward<AndT>(value);
73 }
74 template <typename AndT = Aws::Vector<Expression>>
75 Expression& WithAnd(AndT&& value) {
76 SetAnd(std::forward<AndT>(value));
77 return *this;
78 }
79 template <typename AndT = Expression>
80 Expression& AddAnd(AndT&& value) {
81 m_andHasBeenSet = true;
82 m_and.emplace_back(std::forward<AndT>(value));
83 return *this;
84 }
86
88
91 inline const Expression& GetNot() const { return *m_not; }
92 inline bool NotHasBeenSet() const { return m_notHasBeenSet; }
93 template <typename NotT = Expression>
94 void SetNot(NotT&& value) {
95 m_notHasBeenSet = true;
96 m_not = Aws::MakeShared<Expression>("Expression", std::forward<NotT>(value));
97 }
98 template <typename NotT = Expression>
99 Expression& WithNot(NotT&& value) {
100 SetNot(std::forward<NotT>(value));
101 return *this;
102 }
104
106
109 inline const ExpressionDimensionValues& GetDimensions() const { return m_dimensions; }
110 inline bool DimensionsHasBeenSet() const { return m_dimensionsHasBeenSet; }
111 template <typename DimensionsT = ExpressionDimensionValues>
112 void SetDimensions(DimensionsT&& value) {
113 m_dimensionsHasBeenSet = true;
114 m_dimensions = std::forward<DimensionsT>(value);
115 }
116 template <typename DimensionsT = ExpressionDimensionValues>
117 Expression& WithDimensions(DimensionsT&& value) {
118 SetDimensions(std::forward<DimensionsT>(value));
119 return *this;
120 }
122
124
127 inline const TagValues& GetTags() const { return m_tags; }
128 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
129 template <typename TagsT = TagValues>
130 void SetTags(TagsT&& value) {
131 m_tagsHasBeenSet = true;
132 m_tags = std::forward<TagsT>(value);
133 }
134 template <typename TagsT = TagValues>
135 Expression& WithTags(TagsT&& value) {
136 SetTags(std::forward<TagsT>(value));
137 return *this;
138 }
140
142
145 inline const CostCategoryValues& GetCostCategories() const { return m_costCategories; }
146 inline bool CostCategoriesHasBeenSet() const { return m_costCategoriesHasBeenSet; }
147 template <typename CostCategoriesT = CostCategoryValues>
148 void SetCostCategories(CostCategoriesT&& value) {
149 m_costCategoriesHasBeenSet = true;
150 m_costCategories = std::forward<CostCategoriesT>(value);
151 }
152 template <typename CostCategoriesT = CostCategoryValues>
153 Expression& WithCostCategories(CostCategoriesT&& value) {
154 SetCostCategories(std::forward<CostCategoriesT>(value));
155 return *this;
156 }
158
160
164 inline const ProductAttributeValues& GetProductAttributes() const { return m_productAttributes; }
165 inline bool ProductAttributesHasBeenSet() const { return m_productAttributesHasBeenSet; }
166 template <typename ProductAttributesT = ProductAttributeValues>
167 void SetProductAttributes(ProductAttributesT&& value) {
168 m_productAttributesHasBeenSet = true;
169 m_productAttributes = std::forward<ProductAttributesT>(value);
170 }
171 template <typename ProductAttributesT = ProductAttributeValues>
172 Expression& WithProductAttributes(ProductAttributesT&& value) {
173 SetProductAttributes(std::forward<ProductAttributesT>(value));
174 return *this;
175 }
177 private:
179
181
182 std::shared_ptr<Expression> m_not;
183
184 ExpressionDimensionValues m_dimensions;
185
186 TagValues m_tags;
187
188 CostCategoryValues m_costCategories;
189
190 ProductAttributeValues m_productAttributes;
191 bool m_orHasBeenSet = false;
192 bool m_andHasBeenSet = false;
193 bool m_notHasBeenSet = false;
194 bool m_dimensionsHasBeenSet = false;
195 bool m_tagsHasBeenSet = false;
196 bool m_costCategoriesHasBeenSet = false;
197 bool m_productAttributesHasBeenSet = false;
198};
199
200} // namespace Model
201} // namespace Budgets
202} // namespace Aws
void SetDimensions(DimensionsT &&value)
Definition Expression.h:112
AWS_BUDGETS_API Expression(Aws::Utils::Json::JsonView jsonValue)
Expression & WithAnd(AndT &&value)
Definition Expression.h:75
Expression & AddAnd(AndT &&value)
Definition Expression.h:80
const ProductAttributeValues & GetProductAttributes() const
Definition Expression.h:164
void SetCostCategories(CostCategoriesT &&value)
Definition Expression.h:148
Expression & WithTags(TagsT &&value)
Definition Expression.h:135
Expression & WithOr(OrT &&value)
Definition Expression.h:51
const Expression & GetNot() const
Definition Expression.h:91
AWS_BUDGETS_API Expression & operator=(Aws::Utils::Json::JsonView jsonValue)
void SetNot(NotT &&value)
Definition Expression.h:94
const TagValues & GetTags() const
Definition Expression.h:127
Expression & WithProductAttributes(ProductAttributesT &&value)
Definition Expression.h:172
void SetProductAttributes(ProductAttributesT &&value)
Definition Expression.h:167
const Aws::Vector< Expression > & GetOr() const
Definition Expression.h:43
Expression & WithCostCategories(CostCategoriesT &&value)
Definition Expression.h:153
bool ProductAttributesHasBeenSet() const
Definition Expression.h:165
const ExpressionDimensionValues & GetDimensions() const
Definition Expression.h:109
void SetAnd(AndT &&value)
Definition Expression.h:70
Expression & AddOr(OrT &&value)
Definition Expression.h:56
const Aws::Vector< Expression > & GetAnd() const
Definition Expression.h:67
AWS_BUDGETS_API Aws::Utils::Json::JsonValue Jsonize() const
Expression & WithNot(NotT &&value)
Definition Expression.h:99
Expression & WithDimensions(DimensionsT &&value)
Definition Expression.h:117
AWS_BUDGETS_API Expression()=default
void SetTags(TagsT &&value)
Definition Expression.h:130
const CostCategoryValues & GetCostCategories() const
Definition Expression.h:145
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue