AWS SDK for C++

AWS SDK for C++ Version 1.11.912

Loading...
Searching...
No Matches
Expression.h
1
6#pragma once
7#include <aws/ce/CostExplorer_EXPORTS.h>
8#include <aws/ce/model/CostCategoryValues.h>
9#include <aws/ce/model/DimensionValues.h>
10#include <aws/ce/model/ProductAttributeValues.h>
11#include <aws/ce/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 CostExplorer {
24namespace Model {
25
96 public:
97 AWS_COSTEXPLORER_API Expression() = default;
98 AWS_COSTEXPLORER_API Expression(Aws::Utils::Json::JsonView jsonValue);
99 AWS_COSTEXPLORER_API Expression& operator=(Aws::Utils::Json::JsonView jsonValue);
100 AWS_COSTEXPLORER_API Aws::Utils::Json::JsonValue Jsonize() const;
101
103
106 inline const Aws::Vector<Expression>& GetOr() const { return m_or; }
107 inline bool OrHasBeenSet() const { return m_orHasBeenSet; }
108 template <typename OrT = Aws::Vector<Expression>>
109 void SetOr(OrT&& value) {
110 m_orHasBeenSet = true;
111 m_or = std::forward<OrT>(value);
112 }
113 template <typename OrT = Aws::Vector<Expression>>
114 Expression& WithOr(OrT&& value) {
115 SetOr(std::forward<OrT>(value));
116 return *this;
117 }
118 template <typename OrT = Expression>
119 Expression& AddOr(OrT&& value) {
120 m_orHasBeenSet = true;
121 m_or.emplace_back(std::forward<OrT>(value));
122 return *this;
123 }
125
127
130 inline const Aws::Vector<Expression>& GetAnd() const { return m_and; }
131 inline bool AndHasBeenSet() const { return m_andHasBeenSet; }
132 template <typename AndT = Aws::Vector<Expression>>
133 void SetAnd(AndT&& value) {
134 m_andHasBeenSet = true;
135 m_and = std::forward<AndT>(value);
136 }
137 template <typename AndT = Aws::Vector<Expression>>
138 Expression& WithAnd(AndT&& value) {
139 SetAnd(std::forward<AndT>(value));
140 return *this;
141 }
142 template <typename AndT = Expression>
143 Expression& AddAnd(AndT&& value) {
144 m_andHasBeenSet = true;
145 m_and.emplace_back(std::forward<AndT>(value));
146 return *this;
147 }
149
151
154 inline const Expression& GetNot() const { return *m_not; }
155 inline bool NotHasBeenSet() const { return m_notHasBeenSet; }
156 template <typename NotT = Expression>
157 void SetNot(NotT&& value) {
158 m_notHasBeenSet = true;
159 m_not = Aws::MakeShared<Expression>("Expression", std::forward<NotT>(value));
160 }
161 template <typename NotT = Expression>
162 Expression& WithNot(NotT&& value) {
163 SetNot(std::forward<NotT>(value));
164 return *this;
165 }
167
169
172 inline const DimensionValues& GetDimensions() const { return m_dimensions; }
173 inline bool DimensionsHasBeenSet() const { return m_dimensionsHasBeenSet; }
174 template <typename DimensionsT = DimensionValues>
175 void SetDimensions(DimensionsT&& value) {
176 m_dimensionsHasBeenSet = true;
177 m_dimensions = std::forward<DimensionsT>(value);
178 }
179 template <typename DimensionsT = DimensionValues>
180 Expression& WithDimensions(DimensionsT&& value) {
181 SetDimensions(std::forward<DimensionsT>(value));
182 return *this;
183 }
185
187
190 inline const TagValues& GetTags() const { return m_tags; }
191 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
192 template <typename TagsT = TagValues>
193 void SetTags(TagsT&& value) {
194 m_tagsHasBeenSet = true;
195 m_tags = std::forward<TagsT>(value);
196 }
197 template <typename TagsT = TagValues>
198 Expression& WithTags(TagsT&& value) {
199 SetTags(std::forward<TagsT>(value));
200 return *this;
201 }
203
205
208 inline const CostCategoryValues& GetCostCategories() const { return m_costCategories; }
209 inline bool CostCategoriesHasBeenSet() const { return m_costCategoriesHasBeenSet; }
210 template <typename CostCategoriesT = CostCategoryValues>
211 void SetCostCategories(CostCategoriesT&& value) {
212 m_costCategoriesHasBeenSet = true;
213 m_costCategories = std::forward<CostCategoriesT>(value);
214 }
215 template <typename CostCategoriesT = CostCategoryValues>
216 Expression& WithCostCategories(CostCategoriesT&& value) {
217 SetCostCategories(std::forward<CostCategoriesT>(value));
218 return *this;
219 }
221
223
234 inline const ProductAttributeValues& GetProductAttributes() const { return m_productAttributes; }
235 inline bool ProductAttributesHasBeenSet() const { return m_productAttributesHasBeenSet; }
236 template <typename ProductAttributesT = ProductAttributeValues>
237 void SetProductAttributes(ProductAttributesT&& value) {
238 m_productAttributesHasBeenSet = true;
239 m_productAttributes = std::forward<ProductAttributesT>(value);
240 }
241 template <typename ProductAttributesT = ProductAttributeValues>
242 Expression& WithProductAttributes(ProductAttributesT&& value) {
243 SetProductAttributes(std::forward<ProductAttributesT>(value));
244 return *this;
245 }
247 private:
249
251
252 std::shared_ptr<Expression> m_not;
253
254 DimensionValues m_dimensions;
255
256 TagValues m_tags;
257
258 CostCategoryValues m_costCategories;
259
260 ProductAttributeValues m_productAttributes;
261 bool m_orHasBeenSet = false;
262 bool m_andHasBeenSet = false;
263 bool m_notHasBeenSet = false;
264 bool m_dimensionsHasBeenSet = false;
265 bool m_tagsHasBeenSet = false;
266 bool m_costCategoriesHasBeenSet = false;
267 bool m_productAttributesHasBeenSet = false;
268};
269
270} // namespace Model
271} // namespace CostExplorer
272} // namespace Aws
AWS_COSTEXPLORER_API Aws::Utils::Json::JsonValue Jsonize() const
const TagValues & GetTags() const
Definition Expression.h:190
const ProductAttributeValues & GetProductAttributes() const
Definition Expression.h:234
void SetProductAttributes(ProductAttributesT &&value)
Definition Expression.h:237
Expression & WithOr(OrT &&value)
Definition Expression.h:114
Expression & WithProductAttributes(ProductAttributesT &&value)
Definition Expression.h:242
AWS_COSTEXPLORER_API Expression & operator=(Aws::Utils::Json::JsonView jsonValue)
const Aws::Vector< Expression > & GetOr() const
Definition Expression.h:106
Expression & WithCostCategories(CostCategoriesT &&value)
Definition Expression.h:216
Expression & WithNot(NotT &&value)
Definition Expression.h:162
const DimensionValues & GetDimensions() const
Definition Expression.h:172
const Expression & GetNot() const
Definition Expression.h:154
AWS_COSTEXPLORER_API Expression(Aws::Utils::Json::JsonView jsonValue)
const CostCategoryValues & GetCostCategories() const
Definition Expression.h:208
void SetDimensions(DimensionsT &&value)
Definition Expression.h:175
void SetCostCategories(CostCategoriesT &&value)
Definition Expression.h:211
Expression & WithAnd(AndT &&value)
Definition Expression.h:138
AWS_COSTEXPLORER_API Expression()=default
Expression & WithTags(TagsT &&value)
Definition Expression.h:198
Expression & WithDimensions(DimensionsT &&value)
Definition Expression.h:180
Expression & AddOr(OrT &&value)
Definition Expression.h:119
Expression & AddAnd(AndT &&value)
Definition Expression.h:143
const Aws::Vector< Expression > & GetAnd() const
Definition Expression.h:130
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue