1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/monitoring/CloudWatch_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/monitoring/model/ResponseMetadata.h>
11 #include <aws/monitoring/model/InsightRuleContributor.h>
12 #include <aws/monitoring/model/InsightRuleMetricDatapoint.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 template<typename RESULT_TYPE>
18 class AmazonWebServiceResult;
19 
20 namespace Utils
21 {
22 namespace Xml
23 {
24   class XmlDocument;
25 } // namespace Xml
26 } // namespace Utils
27 namespace CloudWatch
28 {
29 namespace Model
30 {
31   class AWS_CLOUDWATCH_API GetInsightRuleReportResult
32   {
33   public:
34     GetInsightRuleReportResult();
35     GetInsightRuleReportResult(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
36     GetInsightRuleReportResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
37 
38 
39     /**
40      * <p>An array of the strings used as the keys for this rule. The keys are the
41      * dimensions used to classify contributors. If the rule contains more than one
42      * key, then each unique combination of values for the keys is counted as a unique
43      * contributor.</p>
44      */
GetKeyLabels()45     inline const Aws::Vector<Aws::String>& GetKeyLabels() const{ return m_keyLabels; }
46 
47     /**
48      * <p>An array of the strings used as the keys for this rule. The keys are the
49      * dimensions used to classify contributors. If the rule contains more than one
50      * key, then each unique combination of values for the keys is counted as a unique
51      * contributor.</p>
52      */
SetKeyLabels(const Aws::Vector<Aws::String> & value)53     inline void SetKeyLabels(const Aws::Vector<Aws::String>& value) { m_keyLabels = value; }
54 
55     /**
56      * <p>An array of the strings used as the keys for this rule. The keys are the
57      * dimensions used to classify contributors. If the rule contains more than one
58      * key, then each unique combination of values for the keys is counted as a unique
59      * contributor.</p>
60      */
SetKeyLabels(Aws::Vector<Aws::String> && value)61     inline void SetKeyLabels(Aws::Vector<Aws::String>&& value) { m_keyLabels = std::move(value); }
62 
63     /**
64      * <p>An array of the strings used as the keys for this rule. The keys are the
65      * dimensions used to classify contributors. If the rule contains more than one
66      * key, then each unique combination of values for the keys is counted as a unique
67      * contributor.</p>
68      */
WithKeyLabels(const Aws::Vector<Aws::String> & value)69     inline GetInsightRuleReportResult& WithKeyLabels(const Aws::Vector<Aws::String>& value) { SetKeyLabels(value); return *this;}
70 
71     /**
72      * <p>An array of the strings used as the keys for this rule. The keys are the
73      * dimensions used to classify contributors. If the rule contains more than one
74      * key, then each unique combination of values for the keys is counted as a unique
75      * contributor.</p>
76      */
WithKeyLabels(Aws::Vector<Aws::String> && value)77     inline GetInsightRuleReportResult& WithKeyLabels(Aws::Vector<Aws::String>&& value) { SetKeyLabels(std::move(value)); return *this;}
78 
79     /**
80      * <p>An array of the strings used as the keys for this rule. The keys are the
81      * dimensions used to classify contributors. If the rule contains more than one
82      * key, then each unique combination of values for the keys is counted as a unique
83      * contributor.</p>
84      */
AddKeyLabels(const Aws::String & value)85     inline GetInsightRuleReportResult& AddKeyLabels(const Aws::String& value) { m_keyLabels.push_back(value); return *this; }
86 
87     /**
88      * <p>An array of the strings used as the keys for this rule. The keys are the
89      * dimensions used to classify contributors. If the rule contains more than one
90      * key, then each unique combination of values for the keys is counted as a unique
91      * contributor.</p>
92      */
AddKeyLabels(Aws::String && value)93     inline GetInsightRuleReportResult& AddKeyLabels(Aws::String&& value) { m_keyLabels.push_back(std::move(value)); return *this; }
94 
95     /**
96      * <p>An array of the strings used as the keys for this rule. The keys are the
97      * dimensions used to classify contributors. If the rule contains more than one
98      * key, then each unique combination of values for the keys is counted as a unique
99      * contributor.</p>
100      */
AddKeyLabels(const char * value)101     inline GetInsightRuleReportResult& AddKeyLabels(const char* value) { m_keyLabels.push_back(value); return *this; }
102 
103 
104     /**
105      * <p>Specifies whether this rule aggregates contributor data by COUNT or SUM.</p>
106      */
GetAggregationStatistic()107     inline const Aws::String& GetAggregationStatistic() const{ return m_aggregationStatistic; }
108 
109     /**
110      * <p>Specifies whether this rule aggregates contributor data by COUNT or SUM.</p>
111      */
SetAggregationStatistic(const Aws::String & value)112     inline void SetAggregationStatistic(const Aws::String& value) { m_aggregationStatistic = value; }
113 
114     /**
115      * <p>Specifies whether this rule aggregates contributor data by COUNT or SUM.</p>
116      */
SetAggregationStatistic(Aws::String && value)117     inline void SetAggregationStatistic(Aws::String&& value) { m_aggregationStatistic = std::move(value); }
118 
119     /**
120      * <p>Specifies whether this rule aggregates contributor data by COUNT or SUM.</p>
121      */
SetAggregationStatistic(const char * value)122     inline void SetAggregationStatistic(const char* value) { m_aggregationStatistic.assign(value); }
123 
124     /**
125      * <p>Specifies whether this rule aggregates contributor data by COUNT or SUM.</p>
126      */
WithAggregationStatistic(const Aws::String & value)127     inline GetInsightRuleReportResult& WithAggregationStatistic(const Aws::String& value) { SetAggregationStatistic(value); return *this;}
128 
129     /**
130      * <p>Specifies whether this rule aggregates contributor data by COUNT or SUM.</p>
131      */
WithAggregationStatistic(Aws::String && value)132     inline GetInsightRuleReportResult& WithAggregationStatistic(Aws::String&& value) { SetAggregationStatistic(std::move(value)); return *this;}
133 
134     /**
135      * <p>Specifies whether this rule aggregates contributor data by COUNT or SUM.</p>
136      */
WithAggregationStatistic(const char * value)137     inline GetInsightRuleReportResult& WithAggregationStatistic(const char* value) { SetAggregationStatistic(value); return *this;}
138 
139 
140     /**
141      * <p>The sum of the values from all individual contributors that match the
142      * rule.</p>
143      */
GetAggregateValue()144     inline double GetAggregateValue() const{ return m_aggregateValue; }
145 
146     /**
147      * <p>The sum of the values from all individual contributors that match the
148      * rule.</p>
149      */
SetAggregateValue(double value)150     inline void SetAggregateValue(double value) { m_aggregateValue = value; }
151 
152     /**
153      * <p>The sum of the values from all individual contributors that match the
154      * rule.</p>
155      */
WithAggregateValue(double value)156     inline GetInsightRuleReportResult& WithAggregateValue(double value) { SetAggregateValue(value); return *this;}
157 
158 
159     /**
160      * <p>An approximate count of the unique contributors found by this rule in this
161      * time period.</p>
162      */
GetApproximateUniqueCount()163     inline long long GetApproximateUniqueCount() const{ return m_approximateUniqueCount; }
164 
165     /**
166      * <p>An approximate count of the unique contributors found by this rule in this
167      * time period.</p>
168      */
SetApproximateUniqueCount(long long value)169     inline void SetApproximateUniqueCount(long long value) { m_approximateUniqueCount = value; }
170 
171     /**
172      * <p>An approximate count of the unique contributors found by this rule in this
173      * time period.</p>
174      */
WithApproximateUniqueCount(long long value)175     inline GetInsightRuleReportResult& WithApproximateUniqueCount(long long value) { SetApproximateUniqueCount(value); return *this;}
176 
177 
178     /**
179      * <p>An array of the unique contributors found by this rule in this time period.
180      * If the rule contains multiple keys, each combination of values for the keys
181      * counts as a unique contributor.</p>
182      */
GetContributors()183     inline const Aws::Vector<InsightRuleContributor>& GetContributors() const{ return m_contributors; }
184 
185     /**
186      * <p>An array of the unique contributors found by this rule in this time period.
187      * If the rule contains multiple keys, each combination of values for the keys
188      * counts as a unique contributor.</p>
189      */
SetContributors(const Aws::Vector<InsightRuleContributor> & value)190     inline void SetContributors(const Aws::Vector<InsightRuleContributor>& value) { m_contributors = value; }
191 
192     /**
193      * <p>An array of the unique contributors found by this rule in this time period.
194      * If the rule contains multiple keys, each combination of values for the keys
195      * counts as a unique contributor.</p>
196      */
SetContributors(Aws::Vector<InsightRuleContributor> && value)197     inline void SetContributors(Aws::Vector<InsightRuleContributor>&& value) { m_contributors = std::move(value); }
198 
199     /**
200      * <p>An array of the unique contributors found by this rule in this time period.
201      * If the rule contains multiple keys, each combination of values for the keys
202      * counts as a unique contributor.</p>
203      */
WithContributors(const Aws::Vector<InsightRuleContributor> & value)204     inline GetInsightRuleReportResult& WithContributors(const Aws::Vector<InsightRuleContributor>& value) { SetContributors(value); return *this;}
205 
206     /**
207      * <p>An array of the unique contributors found by this rule in this time period.
208      * If the rule contains multiple keys, each combination of values for the keys
209      * counts as a unique contributor.</p>
210      */
WithContributors(Aws::Vector<InsightRuleContributor> && value)211     inline GetInsightRuleReportResult& WithContributors(Aws::Vector<InsightRuleContributor>&& value) { SetContributors(std::move(value)); return *this;}
212 
213     /**
214      * <p>An array of the unique contributors found by this rule in this time period.
215      * If the rule contains multiple keys, each combination of values for the keys
216      * counts as a unique contributor.</p>
217      */
AddContributors(const InsightRuleContributor & value)218     inline GetInsightRuleReportResult& AddContributors(const InsightRuleContributor& value) { m_contributors.push_back(value); return *this; }
219 
220     /**
221      * <p>An array of the unique contributors found by this rule in this time period.
222      * If the rule contains multiple keys, each combination of values for the keys
223      * counts as a unique contributor.</p>
224      */
AddContributors(InsightRuleContributor && value)225     inline GetInsightRuleReportResult& AddContributors(InsightRuleContributor&& value) { m_contributors.push_back(std::move(value)); return *this; }
226 
227 
228     /**
229      * <p>A time series of metric data points that matches the time period in the rule
230      * request.</p>
231      */
GetMetricDatapoints()232     inline const Aws::Vector<InsightRuleMetricDatapoint>& GetMetricDatapoints() const{ return m_metricDatapoints; }
233 
234     /**
235      * <p>A time series of metric data points that matches the time period in the rule
236      * request.</p>
237      */
SetMetricDatapoints(const Aws::Vector<InsightRuleMetricDatapoint> & value)238     inline void SetMetricDatapoints(const Aws::Vector<InsightRuleMetricDatapoint>& value) { m_metricDatapoints = value; }
239 
240     /**
241      * <p>A time series of metric data points that matches the time period in the rule
242      * request.</p>
243      */
SetMetricDatapoints(Aws::Vector<InsightRuleMetricDatapoint> && value)244     inline void SetMetricDatapoints(Aws::Vector<InsightRuleMetricDatapoint>&& value) { m_metricDatapoints = std::move(value); }
245 
246     /**
247      * <p>A time series of metric data points that matches the time period in the rule
248      * request.</p>
249      */
WithMetricDatapoints(const Aws::Vector<InsightRuleMetricDatapoint> & value)250     inline GetInsightRuleReportResult& WithMetricDatapoints(const Aws::Vector<InsightRuleMetricDatapoint>& value) { SetMetricDatapoints(value); return *this;}
251 
252     /**
253      * <p>A time series of metric data points that matches the time period in the rule
254      * request.</p>
255      */
WithMetricDatapoints(Aws::Vector<InsightRuleMetricDatapoint> && value)256     inline GetInsightRuleReportResult& WithMetricDatapoints(Aws::Vector<InsightRuleMetricDatapoint>&& value) { SetMetricDatapoints(std::move(value)); return *this;}
257 
258     /**
259      * <p>A time series of metric data points that matches the time period in the rule
260      * request.</p>
261      */
AddMetricDatapoints(const InsightRuleMetricDatapoint & value)262     inline GetInsightRuleReportResult& AddMetricDatapoints(const InsightRuleMetricDatapoint& value) { m_metricDatapoints.push_back(value); return *this; }
263 
264     /**
265      * <p>A time series of metric data points that matches the time period in the rule
266      * request.</p>
267      */
AddMetricDatapoints(InsightRuleMetricDatapoint && value)268     inline GetInsightRuleReportResult& AddMetricDatapoints(InsightRuleMetricDatapoint&& value) { m_metricDatapoints.push_back(std::move(value)); return *this; }
269 
270 
271 
GetResponseMetadata()272     inline const ResponseMetadata& GetResponseMetadata() const{ return m_responseMetadata; }
273 
274 
SetResponseMetadata(const ResponseMetadata & value)275     inline void SetResponseMetadata(const ResponseMetadata& value) { m_responseMetadata = value; }
276 
277 
SetResponseMetadata(ResponseMetadata && value)278     inline void SetResponseMetadata(ResponseMetadata&& value) { m_responseMetadata = std::move(value); }
279 
280 
WithResponseMetadata(const ResponseMetadata & value)281     inline GetInsightRuleReportResult& WithResponseMetadata(const ResponseMetadata& value) { SetResponseMetadata(value); return *this;}
282 
283 
WithResponseMetadata(ResponseMetadata && value)284     inline GetInsightRuleReportResult& WithResponseMetadata(ResponseMetadata&& value) { SetResponseMetadata(std::move(value)); return *this;}
285 
286   private:
287 
288     Aws::Vector<Aws::String> m_keyLabels;
289 
290     Aws::String m_aggregationStatistic;
291 
292     double m_aggregateValue;
293 
294     long long m_approximateUniqueCount;
295 
296     Aws::Vector<InsightRuleContributor> m_contributors;
297 
298     Aws::Vector<InsightRuleMetricDatapoint> m_metricDatapoints;
299 
300     ResponseMetadata m_responseMetadata;
301   };
302 
303 } // namespace Model
304 } // namespace CloudWatch
305 } // namespace Aws
306