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/iot/IoT_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace IoT
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>The ThingTypeProperties contains information about the thing type including:
29    * a thing type description, and a list of searchable thing attribute
30    * names.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/iot-2015-05-28/ThingTypeProperties">AWS
32    * API Reference</a></p>
33    */
34   class AWS_IOT_API ThingTypeProperties
35   {
36   public:
37     ThingTypeProperties();
38     ThingTypeProperties(Aws::Utils::Json::JsonView jsonValue);
39     ThingTypeProperties& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The description of the thing type.</p>
45      */
GetThingTypeDescription()46     inline const Aws::String& GetThingTypeDescription() const{ return m_thingTypeDescription; }
47 
48     /**
49      * <p>The description of the thing type.</p>
50      */
ThingTypeDescriptionHasBeenSet()51     inline bool ThingTypeDescriptionHasBeenSet() const { return m_thingTypeDescriptionHasBeenSet; }
52 
53     /**
54      * <p>The description of the thing type.</p>
55      */
SetThingTypeDescription(const Aws::String & value)56     inline void SetThingTypeDescription(const Aws::String& value) { m_thingTypeDescriptionHasBeenSet = true; m_thingTypeDescription = value; }
57 
58     /**
59      * <p>The description of the thing type.</p>
60      */
SetThingTypeDescription(Aws::String && value)61     inline void SetThingTypeDescription(Aws::String&& value) { m_thingTypeDescriptionHasBeenSet = true; m_thingTypeDescription = std::move(value); }
62 
63     /**
64      * <p>The description of the thing type.</p>
65      */
SetThingTypeDescription(const char * value)66     inline void SetThingTypeDescription(const char* value) { m_thingTypeDescriptionHasBeenSet = true; m_thingTypeDescription.assign(value); }
67 
68     /**
69      * <p>The description of the thing type.</p>
70      */
WithThingTypeDescription(const Aws::String & value)71     inline ThingTypeProperties& WithThingTypeDescription(const Aws::String& value) { SetThingTypeDescription(value); return *this;}
72 
73     /**
74      * <p>The description of the thing type.</p>
75      */
WithThingTypeDescription(Aws::String && value)76     inline ThingTypeProperties& WithThingTypeDescription(Aws::String&& value) { SetThingTypeDescription(std::move(value)); return *this;}
77 
78     /**
79      * <p>The description of the thing type.</p>
80      */
WithThingTypeDescription(const char * value)81     inline ThingTypeProperties& WithThingTypeDescription(const char* value) { SetThingTypeDescription(value); return *this;}
82 
83 
84     /**
85      * <p>A list of searchable thing attribute names.</p>
86      */
GetSearchableAttributes()87     inline const Aws::Vector<Aws::String>& GetSearchableAttributes() const{ return m_searchableAttributes; }
88 
89     /**
90      * <p>A list of searchable thing attribute names.</p>
91      */
SearchableAttributesHasBeenSet()92     inline bool SearchableAttributesHasBeenSet() const { return m_searchableAttributesHasBeenSet; }
93 
94     /**
95      * <p>A list of searchable thing attribute names.</p>
96      */
SetSearchableAttributes(const Aws::Vector<Aws::String> & value)97     inline void SetSearchableAttributes(const Aws::Vector<Aws::String>& value) { m_searchableAttributesHasBeenSet = true; m_searchableAttributes = value; }
98 
99     /**
100      * <p>A list of searchable thing attribute names.</p>
101      */
SetSearchableAttributes(Aws::Vector<Aws::String> && value)102     inline void SetSearchableAttributes(Aws::Vector<Aws::String>&& value) { m_searchableAttributesHasBeenSet = true; m_searchableAttributes = std::move(value); }
103 
104     /**
105      * <p>A list of searchable thing attribute names.</p>
106      */
WithSearchableAttributes(const Aws::Vector<Aws::String> & value)107     inline ThingTypeProperties& WithSearchableAttributes(const Aws::Vector<Aws::String>& value) { SetSearchableAttributes(value); return *this;}
108 
109     /**
110      * <p>A list of searchable thing attribute names.</p>
111      */
WithSearchableAttributes(Aws::Vector<Aws::String> && value)112     inline ThingTypeProperties& WithSearchableAttributes(Aws::Vector<Aws::String>&& value) { SetSearchableAttributes(std::move(value)); return *this;}
113 
114     /**
115      * <p>A list of searchable thing attribute names.</p>
116      */
AddSearchableAttributes(const Aws::String & value)117     inline ThingTypeProperties& AddSearchableAttributes(const Aws::String& value) { m_searchableAttributesHasBeenSet = true; m_searchableAttributes.push_back(value); return *this; }
118 
119     /**
120      * <p>A list of searchable thing attribute names.</p>
121      */
AddSearchableAttributes(Aws::String && value)122     inline ThingTypeProperties& AddSearchableAttributes(Aws::String&& value) { m_searchableAttributesHasBeenSet = true; m_searchableAttributes.push_back(std::move(value)); return *this; }
123 
124     /**
125      * <p>A list of searchable thing attribute names.</p>
126      */
AddSearchableAttributes(const char * value)127     inline ThingTypeProperties& AddSearchableAttributes(const char* value) { m_searchableAttributesHasBeenSet = true; m_searchableAttributes.push_back(value); return *this; }
128 
129   private:
130 
131     Aws::String m_thingTypeDescription;
132     bool m_thingTypeDescriptionHasBeenSet;
133 
134     Aws::Vector<Aws::String> m_searchableAttributes;
135     bool m_searchableAttributesHasBeenSet;
136   };
137 
138 } // namespace Model
139 } // namespace IoT
140 } // namespace Aws
141