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/iotsitewise/IoTSiteWise_EXPORTS.h>
8 #include <aws/iotsitewise/model/Variant.h>
9 #include <aws/iotsitewise/model/TimeInNanos.h>
10 #include <aws/iotsitewise/model/Quality.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace IoTSiteWise
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Contains asset property value information.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/AssetPropertyValue">AWS
31    * API Reference</a></p>
32    */
33   class AWS_IOTSITEWISE_API AssetPropertyValue
34   {
35   public:
36     AssetPropertyValue();
37     AssetPropertyValue(Aws::Utils::Json::JsonView jsonValue);
38     AssetPropertyValue& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The value of the asset property (see <code>Variant</code>).</p>
44      */
GetValue()45     inline const Variant& GetValue() const{ return m_value; }
46 
47     /**
48      * <p>The value of the asset property (see <code>Variant</code>).</p>
49      */
ValueHasBeenSet()50     inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; }
51 
52     /**
53      * <p>The value of the asset property (see <code>Variant</code>).</p>
54      */
SetValue(const Variant & value)55     inline void SetValue(const Variant& value) { m_valueHasBeenSet = true; m_value = value; }
56 
57     /**
58      * <p>The value of the asset property (see <code>Variant</code>).</p>
59      */
SetValue(Variant && value)60     inline void SetValue(Variant&& value) { m_valueHasBeenSet = true; m_value = std::move(value); }
61 
62     /**
63      * <p>The value of the asset property (see <code>Variant</code>).</p>
64      */
WithValue(const Variant & value)65     inline AssetPropertyValue& WithValue(const Variant& value) { SetValue(value); return *this;}
66 
67     /**
68      * <p>The value of the asset property (see <code>Variant</code>).</p>
69      */
WithValue(Variant && value)70     inline AssetPropertyValue& WithValue(Variant&& value) { SetValue(std::move(value)); return *this;}
71 
72 
73     /**
74      * <p>The timestamp of the asset property value.</p>
75      */
GetTimestamp()76     inline const TimeInNanos& GetTimestamp() const{ return m_timestamp; }
77 
78     /**
79      * <p>The timestamp of the asset property value.</p>
80      */
TimestampHasBeenSet()81     inline bool TimestampHasBeenSet() const { return m_timestampHasBeenSet; }
82 
83     /**
84      * <p>The timestamp of the asset property value.</p>
85      */
SetTimestamp(const TimeInNanos & value)86     inline void SetTimestamp(const TimeInNanos& value) { m_timestampHasBeenSet = true; m_timestamp = value; }
87 
88     /**
89      * <p>The timestamp of the asset property value.</p>
90      */
SetTimestamp(TimeInNanos && value)91     inline void SetTimestamp(TimeInNanos&& value) { m_timestampHasBeenSet = true; m_timestamp = std::move(value); }
92 
93     /**
94      * <p>The timestamp of the asset property value.</p>
95      */
WithTimestamp(const TimeInNanos & value)96     inline AssetPropertyValue& WithTimestamp(const TimeInNanos& value) { SetTimestamp(value); return *this;}
97 
98     /**
99      * <p>The timestamp of the asset property value.</p>
100      */
WithTimestamp(TimeInNanos && value)101     inline AssetPropertyValue& WithTimestamp(TimeInNanos&& value) { SetTimestamp(std::move(value)); return *this;}
102 
103 
104     /**
105      * <p>The quality of the asset property value.</p>
106      */
GetQuality()107     inline const Quality& GetQuality() const{ return m_quality; }
108 
109     /**
110      * <p>The quality of the asset property value.</p>
111      */
QualityHasBeenSet()112     inline bool QualityHasBeenSet() const { return m_qualityHasBeenSet; }
113 
114     /**
115      * <p>The quality of the asset property value.</p>
116      */
SetQuality(const Quality & value)117     inline void SetQuality(const Quality& value) { m_qualityHasBeenSet = true; m_quality = value; }
118 
119     /**
120      * <p>The quality of the asset property value.</p>
121      */
SetQuality(Quality && value)122     inline void SetQuality(Quality&& value) { m_qualityHasBeenSet = true; m_quality = std::move(value); }
123 
124     /**
125      * <p>The quality of the asset property value.</p>
126      */
WithQuality(const Quality & value)127     inline AssetPropertyValue& WithQuality(const Quality& value) { SetQuality(value); return *this;}
128 
129     /**
130      * <p>The quality of the asset property value.</p>
131      */
WithQuality(Quality && value)132     inline AssetPropertyValue& WithQuality(Quality&& value) { SetQuality(std::move(value)); return *this;}
133 
134   private:
135 
136     Variant m_value;
137     bool m_valueHasBeenSet;
138 
139     TimeInNanos m_timestamp;
140     bool m_timestampHasBeenSet;
141 
142     Quality m_quality;
143     bool m_qualityHasBeenSet;
144   };
145 
146 } // namespace Model
147 } // namespace IoTSiteWise
148 } // namespace Aws
149