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/core/utils/memory/stl/AWSString.h>
9 #include <aws/iotsitewise/model/PropertyNotification.h>
10 #include <aws/iotsitewise/model/PropertyDataType.h>
11 #include <aws/iotsitewise/model/PropertyType.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace IoTSiteWise
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Contains asset property information.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/Property">AWS
32    * API Reference</a></p>
33    */
34   class AWS_IOTSITEWISE_API Property
35   {
36   public:
37     Property();
38     Property(Aws::Utils::Json::JsonView jsonValue);
39     Property& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The ID of the asset property.</p>
45      */
GetId()46     inline const Aws::String& GetId() const{ return m_id; }
47 
48     /**
49      * <p>The ID of the asset property.</p>
50      */
IdHasBeenSet()51     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
52 
53     /**
54      * <p>The ID of the asset property.</p>
55      */
SetId(const Aws::String & value)56     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
57 
58     /**
59      * <p>The ID of the asset property.</p>
60      */
SetId(Aws::String && value)61     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
62 
63     /**
64      * <p>The ID of the asset property.</p>
65      */
SetId(const char * value)66     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
67 
68     /**
69      * <p>The ID of the asset property.</p>
70      */
WithId(const Aws::String & value)71     inline Property& WithId(const Aws::String& value) { SetId(value); return *this;}
72 
73     /**
74      * <p>The ID of the asset property.</p>
75      */
WithId(Aws::String && value)76     inline Property& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
77 
78     /**
79      * <p>The ID of the asset property.</p>
80      */
WithId(const char * value)81     inline Property& WithId(const char* value) { SetId(value); return *this;}
82 
83 
84     /**
85      * <p>The name of the property.</p>
86      */
GetName()87     inline const Aws::String& GetName() const{ return m_name; }
88 
89     /**
90      * <p>The name of the property.</p>
91      */
NameHasBeenSet()92     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
93 
94     /**
95      * <p>The name of the property.</p>
96      */
SetName(const Aws::String & value)97     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
98 
99     /**
100      * <p>The name of the property.</p>
101      */
SetName(Aws::String && value)102     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
103 
104     /**
105      * <p>The name of the property.</p>
106      */
SetName(const char * value)107     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
108 
109     /**
110      * <p>The name of the property.</p>
111      */
WithName(const Aws::String & value)112     inline Property& WithName(const Aws::String& value) { SetName(value); return *this;}
113 
114     /**
115      * <p>The name of the property.</p>
116      */
WithName(Aws::String && value)117     inline Property& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
118 
119     /**
120      * <p>The name of the property.</p>
121      */
WithName(const char * value)122     inline Property& WithName(const char* value) { SetName(value); return *this;}
123 
124 
125     /**
126      * <p>The alias that identifies the property, such as an OPC-UA server data stream
127      * path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For
128      * more information, see <a
129      * href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping
130      * industrial data streams to asset properties</a> in the <i>IoT SiteWise User
131      * Guide</i>.</p>
132      */
GetAlias()133     inline const Aws::String& GetAlias() const{ return m_alias; }
134 
135     /**
136      * <p>The alias that identifies the property, such as an OPC-UA server data stream
137      * path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For
138      * more information, see <a
139      * href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping
140      * industrial data streams to asset properties</a> in the <i>IoT SiteWise User
141      * Guide</i>.</p>
142      */
AliasHasBeenSet()143     inline bool AliasHasBeenSet() const { return m_aliasHasBeenSet; }
144 
145     /**
146      * <p>The alias that identifies the property, such as an OPC-UA server data stream
147      * path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For
148      * more information, see <a
149      * href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping
150      * industrial data streams to asset properties</a> in the <i>IoT SiteWise User
151      * Guide</i>.</p>
152      */
SetAlias(const Aws::String & value)153     inline void SetAlias(const Aws::String& value) { m_aliasHasBeenSet = true; m_alias = value; }
154 
155     /**
156      * <p>The alias that identifies the property, such as an OPC-UA server data stream
157      * path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For
158      * more information, see <a
159      * href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping
160      * industrial data streams to asset properties</a> in the <i>IoT SiteWise User
161      * Guide</i>.</p>
162      */
SetAlias(Aws::String && value)163     inline void SetAlias(Aws::String&& value) { m_aliasHasBeenSet = true; m_alias = std::move(value); }
164 
165     /**
166      * <p>The alias that identifies the property, such as an OPC-UA server data stream
167      * path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For
168      * more information, see <a
169      * href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping
170      * industrial data streams to asset properties</a> in the <i>IoT SiteWise User
171      * Guide</i>.</p>
172      */
SetAlias(const char * value)173     inline void SetAlias(const char* value) { m_aliasHasBeenSet = true; m_alias.assign(value); }
174 
175     /**
176      * <p>The alias that identifies the property, such as an OPC-UA server data stream
177      * path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For
178      * more information, see <a
179      * href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping
180      * industrial data streams to asset properties</a> in the <i>IoT SiteWise User
181      * Guide</i>.</p>
182      */
WithAlias(const Aws::String & value)183     inline Property& WithAlias(const Aws::String& value) { SetAlias(value); return *this;}
184 
185     /**
186      * <p>The alias that identifies the property, such as an OPC-UA server data stream
187      * path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For
188      * more information, see <a
189      * href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping
190      * industrial data streams to asset properties</a> in the <i>IoT SiteWise User
191      * Guide</i>.</p>
192      */
WithAlias(Aws::String && value)193     inline Property& WithAlias(Aws::String&& value) { SetAlias(std::move(value)); return *this;}
194 
195     /**
196      * <p>The alias that identifies the property, such as an OPC-UA server data stream
197      * path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For
198      * more information, see <a
199      * href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping
200      * industrial data streams to asset properties</a> in the <i>IoT SiteWise User
201      * Guide</i>.</p>
202      */
WithAlias(const char * value)203     inline Property& WithAlias(const char* value) { SetAlias(value); return *this;}
204 
205 
206     /**
207      * <p>The asset property's notification topic and state. For more information, see
208      * <a
209      * href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.</p>
210      */
GetNotification()211     inline const PropertyNotification& GetNotification() const{ return m_notification; }
212 
213     /**
214      * <p>The asset property's notification topic and state. For more information, see
215      * <a
216      * href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.</p>
217      */
NotificationHasBeenSet()218     inline bool NotificationHasBeenSet() const { return m_notificationHasBeenSet; }
219 
220     /**
221      * <p>The asset property's notification topic and state. For more information, see
222      * <a
223      * href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.</p>
224      */
SetNotification(const PropertyNotification & value)225     inline void SetNotification(const PropertyNotification& value) { m_notificationHasBeenSet = true; m_notification = value; }
226 
227     /**
228      * <p>The asset property's notification topic and state. For more information, see
229      * <a
230      * href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.</p>
231      */
SetNotification(PropertyNotification && value)232     inline void SetNotification(PropertyNotification&& value) { m_notificationHasBeenSet = true; m_notification = std::move(value); }
233 
234     /**
235      * <p>The asset property's notification topic and state. For more information, see
236      * <a
237      * href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.</p>
238      */
WithNotification(const PropertyNotification & value)239     inline Property& WithNotification(const PropertyNotification& value) { SetNotification(value); return *this;}
240 
241     /**
242      * <p>The asset property's notification topic and state. For more information, see
243      * <a
244      * href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.</p>
245      */
WithNotification(PropertyNotification && value)246     inline Property& WithNotification(PropertyNotification&& value) { SetNotification(std::move(value)); return *this;}
247 
248 
249     /**
250      * <p>The property data type.</p>
251      */
GetDataType()252     inline const PropertyDataType& GetDataType() const{ return m_dataType; }
253 
254     /**
255      * <p>The property data type.</p>
256      */
DataTypeHasBeenSet()257     inline bool DataTypeHasBeenSet() const { return m_dataTypeHasBeenSet; }
258 
259     /**
260      * <p>The property data type.</p>
261      */
SetDataType(const PropertyDataType & value)262     inline void SetDataType(const PropertyDataType& value) { m_dataTypeHasBeenSet = true; m_dataType = value; }
263 
264     /**
265      * <p>The property data type.</p>
266      */
SetDataType(PropertyDataType && value)267     inline void SetDataType(PropertyDataType&& value) { m_dataTypeHasBeenSet = true; m_dataType = std::move(value); }
268 
269     /**
270      * <p>The property data type.</p>
271      */
WithDataType(const PropertyDataType & value)272     inline Property& WithDataType(const PropertyDataType& value) { SetDataType(value); return *this;}
273 
274     /**
275      * <p>The property data type.</p>
276      */
WithDataType(PropertyDataType && value)277     inline Property& WithDataType(PropertyDataType&& value) { SetDataType(std::move(value)); return *this;}
278 
279 
280     /**
281      * <p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset
282      * property.</p>
283      */
GetUnit()284     inline const Aws::String& GetUnit() const{ return m_unit; }
285 
286     /**
287      * <p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset
288      * property.</p>
289      */
UnitHasBeenSet()290     inline bool UnitHasBeenSet() const { return m_unitHasBeenSet; }
291 
292     /**
293      * <p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset
294      * property.</p>
295      */
SetUnit(const Aws::String & value)296     inline void SetUnit(const Aws::String& value) { m_unitHasBeenSet = true; m_unit = value; }
297 
298     /**
299      * <p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset
300      * property.</p>
301      */
SetUnit(Aws::String && value)302     inline void SetUnit(Aws::String&& value) { m_unitHasBeenSet = true; m_unit = std::move(value); }
303 
304     /**
305      * <p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset
306      * property.</p>
307      */
SetUnit(const char * value)308     inline void SetUnit(const char* value) { m_unitHasBeenSet = true; m_unit.assign(value); }
309 
310     /**
311      * <p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset
312      * property.</p>
313      */
WithUnit(const Aws::String & value)314     inline Property& WithUnit(const Aws::String& value) { SetUnit(value); return *this;}
315 
316     /**
317      * <p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset
318      * property.</p>
319      */
WithUnit(Aws::String && value)320     inline Property& WithUnit(Aws::String&& value) { SetUnit(std::move(value)); return *this;}
321 
322     /**
323      * <p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset
324      * property.</p>
325      */
WithUnit(const char * value)326     inline Property& WithUnit(const char* value) { SetUnit(value); return *this;}
327 
328 
329     /**
330      * <p>The property type (see <code>PropertyType</code>). A property contains one
331      * type.</p>
332      */
GetType()333     inline const PropertyType& GetType() const{ return m_type; }
334 
335     /**
336      * <p>The property type (see <code>PropertyType</code>). A property contains one
337      * type.</p>
338      */
TypeHasBeenSet()339     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
340 
341     /**
342      * <p>The property type (see <code>PropertyType</code>). A property contains one
343      * type.</p>
344      */
SetType(const PropertyType & value)345     inline void SetType(const PropertyType& value) { m_typeHasBeenSet = true; m_type = value; }
346 
347     /**
348      * <p>The property type (see <code>PropertyType</code>). A property contains one
349      * type.</p>
350      */
SetType(PropertyType && value)351     inline void SetType(PropertyType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
352 
353     /**
354      * <p>The property type (see <code>PropertyType</code>). A property contains one
355      * type.</p>
356      */
WithType(const PropertyType & value)357     inline Property& WithType(const PropertyType& value) { SetType(value); return *this;}
358 
359     /**
360      * <p>The property type (see <code>PropertyType</code>). A property contains one
361      * type.</p>
362      */
WithType(PropertyType && value)363     inline Property& WithType(PropertyType&& value) { SetType(std::move(value)); return *this;}
364 
365   private:
366 
367     Aws::String m_id;
368     bool m_idHasBeenSet;
369 
370     Aws::String m_name;
371     bool m_nameHasBeenSet;
372 
373     Aws::String m_alias;
374     bool m_aliasHasBeenSet;
375 
376     PropertyNotification m_notification;
377     bool m_notificationHasBeenSet;
378 
379     PropertyDataType m_dataType;
380     bool m_dataTypeHasBeenSet;
381 
382     Aws::String m_unit;
383     bool m_unitHasBeenSet;
384 
385     PropertyType m_type;
386     bool m_typeHasBeenSet;
387   };
388 
389 } // namespace Model
390 } // namespace IoTSiteWise
391 } // namespace Aws
392