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/mwaa/MWAA_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/mwaa/model/StatisticSet.h>
11 #include <aws/core/utils/DateTime.h>
12 #include <aws/mwaa/model/Unit.h>
13 #include <aws/mwaa/model/Dimension.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23   class JsonView;
24 } // namespace Json
25 } // namespace Utils
26 namespace MWAA
27 {
28 namespace Model
29 {
30 
31   /**
32    * <p>Internal only API.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/mwaa-2020-07-01/MetricDatum">AWS
34    * API Reference</a></p>
35    */
36   class AWS_MWAA_API MetricDatum
37   {
38   public:
39     MetricDatum();
40     MetricDatum(Aws::Utils::Json::JsonView jsonValue);
41     MetricDatum& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>Internal only API.</p>
47      */
GetDimensions()48     inline const Aws::Vector<Dimension>& GetDimensions() const{ return m_dimensions; }
49 
50     /**
51      * <p>Internal only API.</p>
52      */
DimensionsHasBeenSet()53     inline bool DimensionsHasBeenSet() const { return m_dimensionsHasBeenSet; }
54 
55     /**
56      * <p>Internal only API.</p>
57      */
SetDimensions(const Aws::Vector<Dimension> & value)58     inline void SetDimensions(const Aws::Vector<Dimension>& value) { m_dimensionsHasBeenSet = true; m_dimensions = value; }
59 
60     /**
61      * <p>Internal only API.</p>
62      */
SetDimensions(Aws::Vector<Dimension> && value)63     inline void SetDimensions(Aws::Vector<Dimension>&& value) { m_dimensionsHasBeenSet = true; m_dimensions = std::move(value); }
64 
65     /**
66      * <p>Internal only API.</p>
67      */
WithDimensions(const Aws::Vector<Dimension> & value)68     inline MetricDatum& WithDimensions(const Aws::Vector<Dimension>& value) { SetDimensions(value); return *this;}
69 
70     /**
71      * <p>Internal only API.</p>
72      */
WithDimensions(Aws::Vector<Dimension> && value)73     inline MetricDatum& WithDimensions(Aws::Vector<Dimension>&& value) { SetDimensions(std::move(value)); return *this;}
74 
75     /**
76      * <p>Internal only API.</p>
77      */
AddDimensions(const Dimension & value)78     inline MetricDatum& AddDimensions(const Dimension& value) { m_dimensionsHasBeenSet = true; m_dimensions.push_back(value); return *this; }
79 
80     /**
81      * <p>Internal only API.</p>
82      */
AddDimensions(Dimension && value)83     inline MetricDatum& AddDimensions(Dimension&& value) { m_dimensionsHasBeenSet = true; m_dimensions.push_back(std::move(value)); return *this; }
84 
85 
86     /**
87      * <p>Internal only API.</p>
88      */
GetMetricName()89     inline const Aws::String& GetMetricName() const{ return m_metricName; }
90 
91     /**
92      * <p>Internal only API.</p>
93      */
MetricNameHasBeenSet()94     inline bool MetricNameHasBeenSet() const { return m_metricNameHasBeenSet; }
95 
96     /**
97      * <p>Internal only API.</p>
98      */
SetMetricName(const Aws::String & value)99     inline void SetMetricName(const Aws::String& value) { m_metricNameHasBeenSet = true; m_metricName = value; }
100 
101     /**
102      * <p>Internal only API.</p>
103      */
SetMetricName(Aws::String && value)104     inline void SetMetricName(Aws::String&& value) { m_metricNameHasBeenSet = true; m_metricName = std::move(value); }
105 
106     /**
107      * <p>Internal only API.</p>
108      */
SetMetricName(const char * value)109     inline void SetMetricName(const char* value) { m_metricNameHasBeenSet = true; m_metricName.assign(value); }
110 
111     /**
112      * <p>Internal only API.</p>
113      */
WithMetricName(const Aws::String & value)114     inline MetricDatum& WithMetricName(const Aws::String& value) { SetMetricName(value); return *this;}
115 
116     /**
117      * <p>Internal only API.</p>
118      */
WithMetricName(Aws::String && value)119     inline MetricDatum& WithMetricName(Aws::String&& value) { SetMetricName(std::move(value)); return *this;}
120 
121     /**
122      * <p>Internal only API.</p>
123      */
WithMetricName(const char * value)124     inline MetricDatum& WithMetricName(const char* value) { SetMetricName(value); return *this;}
125 
126 
127     /**
128      * <p>Internal only API.</p>
129      */
GetStatisticValues()130     inline const StatisticSet& GetStatisticValues() const{ return m_statisticValues; }
131 
132     /**
133      * <p>Internal only API.</p>
134      */
StatisticValuesHasBeenSet()135     inline bool StatisticValuesHasBeenSet() const { return m_statisticValuesHasBeenSet; }
136 
137     /**
138      * <p>Internal only API.</p>
139      */
SetStatisticValues(const StatisticSet & value)140     inline void SetStatisticValues(const StatisticSet& value) { m_statisticValuesHasBeenSet = true; m_statisticValues = value; }
141 
142     /**
143      * <p>Internal only API.</p>
144      */
SetStatisticValues(StatisticSet && value)145     inline void SetStatisticValues(StatisticSet&& value) { m_statisticValuesHasBeenSet = true; m_statisticValues = std::move(value); }
146 
147     /**
148      * <p>Internal only API.</p>
149      */
WithStatisticValues(const StatisticSet & value)150     inline MetricDatum& WithStatisticValues(const StatisticSet& value) { SetStatisticValues(value); return *this;}
151 
152     /**
153      * <p>Internal only API.</p>
154      */
WithStatisticValues(StatisticSet && value)155     inline MetricDatum& WithStatisticValues(StatisticSet&& value) { SetStatisticValues(std::move(value)); return *this;}
156 
157 
158     /**
159      * <p>Internal only API.</p>
160      */
GetTimestamp()161     inline const Aws::Utils::DateTime& GetTimestamp() const{ return m_timestamp; }
162 
163     /**
164      * <p>Internal only API.</p>
165      */
TimestampHasBeenSet()166     inline bool TimestampHasBeenSet() const { return m_timestampHasBeenSet; }
167 
168     /**
169      * <p>Internal only API.</p>
170      */
SetTimestamp(const Aws::Utils::DateTime & value)171     inline void SetTimestamp(const Aws::Utils::DateTime& value) { m_timestampHasBeenSet = true; m_timestamp = value; }
172 
173     /**
174      * <p>Internal only API.</p>
175      */
SetTimestamp(Aws::Utils::DateTime && value)176     inline void SetTimestamp(Aws::Utils::DateTime&& value) { m_timestampHasBeenSet = true; m_timestamp = std::move(value); }
177 
178     /**
179      * <p>Internal only API.</p>
180      */
WithTimestamp(const Aws::Utils::DateTime & value)181     inline MetricDatum& WithTimestamp(const Aws::Utils::DateTime& value) { SetTimestamp(value); return *this;}
182 
183     /**
184      * <p>Internal only API.</p>
185      */
WithTimestamp(Aws::Utils::DateTime && value)186     inline MetricDatum& WithTimestamp(Aws::Utils::DateTime&& value) { SetTimestamp(std::move(value)); return *this;}
187 
188 
189 
GetUnit()190     inline const Unit& GetUnit() const{ return m_unit; }
191 
192 
UnitHasBeenSet()193     inline bool UnitHasBeenSet() const { return m_unitHasBeenSet; }
194 
195 
SetUnit(const Unit & value)196     inline void SetUnit(const Unit& value) { m_unitHasBeenSet = true; m_unit = value; }
197 
198 
SetUnit(Unit && value)199     inline void SetUnit(Unit&& value) { m_unitHasBeenSet = true; m_unit = std::move(value); }
200 
201 
WithUnit(const Unit & value)202     inline MetricDatum& WithUnit(const Unit& value) { SetUnit(value); return *this;}
203 
204 
WithUnit(Unit && value)205     inline MetricDatum& WithUnit(Unit&& value) { SetUnit(std::move(value)); return *this;}
206 
207 
208     /**
209      * <p>Internal only API.</p>
210      */
GetValue()211     inline double GetValue() const{ return m_value; }
212 
213     /**
214      * <p>Internal only API.</p>
215      */
ValueHasBeenSet()216     inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; }
217 
218     /**
219      * <p>Internal only API.</p>
220      */
SetValue(double value)221     inline void SetValue(double value) { m_valueHasBeenSet = true; m_value = value; }
222 
223     /**
224      * <p>Internal only API.</p>
225      */
WithValue(double value)226     inline MetricDatum& WithValue(double value) { SetValue(value); return *this;}
227 
228   private:
229 
230     Aws::Vector<Dimension> m_dimensions;
231     bool m_dimensionsHasBeenSet;
232 
233     Aws::String m_metricName;
234     bool m_metricNameHasBeenSet;
235 
236     StatisticSet m_statisticValues;
237     bool m_statisticValuesHasBeenSet;
238 
239     Aws::Utils::DateTime m_timestamp;
240     bool m_timestampHasBeenSet;
241 
242     Unit m_unit;
243     bool m_unitHasBeenSet;
244 
245     double m_value;
246     bool m_valueHasBeenSet;
247   };
248 
249 } // namespace Model
250 } // namespace MWAA
251 } // namespace Aws
252