AWS SDK for C++

AWS SDK for C++ Version 1.11.719

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/TagValues.h>
11#include <aws/core/utils/memory/stl/AWSVector.h>
12
13#include <utility>
14
15namespace Aws {
16namespace Utils {
17namespace Json {
18class JsonValue;
19class JsonView;
20} // namespace Json
21} // namespace Utils
22namespace CostExplorer {
23namespace Model {
24
84 public:
85 AWS_COSTEXPLORER_API Expression() = default;
86 AWS_COSTEXPLORER_API Expression(Aws::Utils::Json::JsonView jsonValue);
87 AWS_COSTEXPLORER_API Expression& operator=(Aws::Utils::Json::JsonView jsonValue);
88 AWS_COSTEXPLORER_API Aws::Utils::Json::JsonValue Jsonize() const;
89
91
94 inline const Aws::Vector<Expression>& GetOr() const { return m_or; }
95 inline bool OrHasBeenSet() const { return m_orHasBeenSet; }
96 template <typename OrT = Aws::Vector<Expression>>
97 void SetOr(OrT&& value) {
98 m_orHasBeenSet = true;
99 m_or = std::forward<OrT>(value);
100 }
101 template <typename OrT = Aws::Vector<Expression>>
102 Expression& WithOr(OrT&& value) {
103 SetOr(std::forward<OrT>(value));
104 return *this;
105 }
106 template <typename OrT = Expression>
107 Expression& AddOr(OrT&& value) {
108 m_orHasBeenSet = true;
109 m_or.emplace_back(std::forward<OrT>(value));
110 return *this;
111 }
113
115
118 inline const Aws::Vector<Expression>& GetAnd() const { return m_and; }
119 inline bool AndHasBeenSet() const { return m_andHasBeenSet; }
120 template <typename AndT = Aws::Vector<Expression>>
121 void SetAnd(AndT&& value) {
122 m_andHasBeenSet = true;
123 m_and = std::forward<AndT>(value);
124 }
125 template <typename AndT = Aws::Vector<Expression>>
126 Expression& WithAnd(AndT&& value) {
127 SetAnd(std::forward<AndT>(value));
128 return *this;
129 }
130 template <typename AndT = Expression>
131 Expression& AddAnd(AndT&& value) {
132 m_andHasBeenSet = true;
133 m_and.emplace_back(std::forward<AndT>(value));
134 return *this;
135 }
137
139
142 inline const Expression& GetNot() const { return *m_not; }
143 inline bool NotHasBeenSet() const { return m_notHasBeenSet; }
144 template <typename NotT = Expression>
145 void SetNot(NotT&& value) {
146 m_notHasBeenSet = true;
147 m_not = Aws::MakeShared<Expression>("Expression", std::forward<NotT>(value));
148 }
149 template <typename NotT = Expression>
150 Expression& WithNot(NotT&& value) {
151 SetNot(std::forward<NotT>(value));
152 return *this;
153 }
155
157
160 inline const DimensionValues& GetDimensions() const { return m_dimensions; }
161 inline bool DimensionsHasBeenSet() const { return m_dimensionsHasBeenSet; }
162 template <typename DimensionsT = DimensionValues>
163 void SetDimensions(DimensionsT&& value) {
164 m_dimensionsHasBeenSet = true;
165 m_dimensions = std::forward<DimensionsT>(value);
166 }
167 template <typename DimensionsT = DimensionValues>
168 Expression& WithDimensions(DimensionsT&& value) {
169 SetDimensions(std::forward<DimensionsT>(value));
170 return *this;
171 }
173
175
178 inline const TagValues& GetTags() const { return m_tags; }
179 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
180 template <typename TagsT = TagValues>
181 void SetTags(TagsT&& value) {
182 m_tagsHasBeenSet = true;
183 m_tags = std::forward<TagsT>(value);
184 }
185 template <typename TagsT = TagValues>
186 Expression& WithTags(TagsT&& value) {
187 SetTags(std::forward<TagsT>(value));
188 return *this;
189 }
191
193
196 inline const CostCategoryValues& GetCostCategories() const { return m_costCategories; }
197 inline bool CostCategoriesHasBeenSet() const { return m_costCategoriesHasBeenSet; }
198 template <typename CostCategoriesT = CostCategoryValues>
199 void SetCostCategories(CostCategoriesT&& value) {
200 m_costCategoriesHasBeenSet = true;
201 m_costCategories = std::forward<CostCategoriesT>(value);
202 }
203 template <typename CostCategoriesT = CostCategoryValues>
204 Expression& WithCostCategories(CostCategoriesT&& value) {
205 SetCostCategories(std::forward<CostCategoriesT>(value));
206 return *this;
207 }
209 private:
211
213
214 std::shared_ptr<Expression> m_not;
215
216 DimensionValues m_dimensions;
217
218 TagValues m_tags;
219
220 CostCategoryValues m_costCategories;
221 bool m_orHasBeenSet = false;
222 bool m_andHasBeenSet = false;
223 bool m_notHasBeenSet = false;
224 bool m_dimensionsHasBeenSet = false;
225 bool m_tagsHasBeenSet = false;
226 bool m_costCategoriesHasBeenSet = false;
227};
228
229} // namespace Model
230} // namespace CostExplorer
231} // namespace Aws
AWS_COSTEXPLORER_API Aws::Utils::Json::JsonValue Jsonize() const
const TagValues & GetTags() const
Definition Expression.h:178
Expression & WithOr(OrT &&value)
Definition Expression.h:102
AWS_COSTEXPLORER_API Expression & operator=(Aws::Utils::Json::JsonView jsonValue)
const Aws::Vector< Expression > & GetOr() const
Definition Expression.h:94
Expression & WithCostCategories(CostCategoriesT &&value)
Definition Expression.h:204
Expression & WithNot(NotT &&value)
Definition Expression.h:150
const DimensionValues & GetDimensions() const
Definition Expression.h:160
const Expression & GetNot() const
Definition Expression.h:142
AWS_COSTEXPLORER_API Expression(Aws::Utils::Json::JsonView jsonValue)
const CostCategoryValues & GetCostCategories() const
Definition Expression.h:196
void SetDimensions(DimensionsT &&value)
Definition Expression.h:163
void SetCostCategories(CostCategoriesT &&value)
Definition Expression.h:199
Expression & WithAnd(AndT &&value)
Definition Expression.h:126
AWS_COSTEXPLORER_API Expression()=default
Expression & WithTags(TagsT &&value)
Definition Expression.h:186
Expression & WithDimensions(DimensionsT &&value)
Definition Expression.h:168
Expression & AddOr(OrT &&value)
Definition Expression.h:107
Expression & AddAnd(AndT &&value)
Definition Expression.h:131
const Aws::Vector< Expression > & GetAnd() const
Definition Expression.h:118
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue