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/iot1click-projects/IoT1ClickProjects_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSMap.h>
10 #include <aws/core/utils/DateTime.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 IoT1ClickProjects
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>An object describing a project's placement.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/iot1click-projects-2018-05-14/PlacementDescription">AWS
31    * API Reference</a></p>
32    */
33   class AWS_IOT1CLICKPROJECTS_API PlacementDescription
34   {
35   public:
36     PlacementDescription();
37     PlacementDescription(Aws::Utils::Json::JsonView jsonValue);
38     PlacementDescription& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The name of the project containing the placement.</p>
44      */
GetProjectName()45     inline const Aws::String& GetProjectName() const{ return m_projectName; }
46 
47     /**
48      * <p>The name of the project containing the placement.</p>
49      */
ProjectNameHasBeenSet()50     inline bool ProjectNameHasBeenSet() const { return m_projectNameHasBeenSet; }
51 
52     /**
53      * <p>The name of the project containing the placement.</p>
54      */
SetProjectName(const Aws::String & value)55     inline void SetProjectName(const Aws::String& value) { m_projectNameHasBeenSet = true; m_projectName = value; }
56 
57     /**
58      * <p>The name of the project containing the placement.</p>
59      */
SetProjectName(Aws::String && value)60     inline void SetProjectName(Aws::String&& value) { m_projectNameHasBeenSet = true; m_projectName = std::move(value); }
61 
62     /**
63      * <p>The name of the project containing the placement.</p>
64      */
SetProjectName(const char * value)65     inline void SetProjectName(const char* value) { m_projectNameHasBeenSet = true; m_projectName.assign(value); }
66 
67     /**
68      * <p>The name of the project containing the placement.</p>
69      */
WithProjectName(const Aws::String & value)70     inline PlacementDescription& WithProjectName(const Aws::String& value) { SetProjectName(value); return *this;}
71 
72     /**
73      * <p>The name of the project containing the placement.</p>
74      */
WithProjectName(Aws::String && value)75     inline PlacementDescription& WithProjectName(Aws::String&& value) { SetProjectName(std::move(value)); return *this;}
76 
77     /**
78      * <p>The name of the project containing the placement.</p>
79      */
WithProjectName(const char * value)80     inline PlacementDescription& WithProjectName(const char* value) { SetProjectName(value); return *this;}
81 
82 
83     /**
84      * <p>The name of the placement.</p>
85      */
GetPlacementName()86     inline const Aws::String& GetPlacementName() const{ return m_placementName; }
87 
88     /**
89      * <p>The name of the placement.</p>
90      */
PlacementNameHasBeenSet()91     inline bool PlacementNameHasBeenSet() const { return m_placementNameHasBeenSet; }
92 
93     /**
94      * <p>The name of the placement.</p>
95      */
SetPlacementName(const Aws::String & value)96     inline void SetPlacementName(const Aws::String& value) { m_placementNameHasBeenSet = true; m_placementName = value; }
97 
98     /**
99      * <p>The name of the placement.</p>
100      */
SetPlacementName(Aws::String && value)101     inline void SetPlacementName(Aws::String&& value) { m_placementNameHasBeenSet = true; m_placementName = std::move(value); }
102 
103     /**
104      * <p>The name of the placement.</p>
105      */
SetPlacementName(const char * value)106     inline void SetPlacementName(const char* value) { m_placementNameHasBeenSet = true; m_placementName.assign(value); }
107 
108     /**
109      * <p>The name of the placement.</p>
110      */
WithPlacementName(const Aws::String & value)111     inline PlacementDescription& WithPlacementName(const Aws::String& value) { SetPlacementName(value); return *this;}
112 
113     /**
114      * <p>The name of the placement.</p>
115      */
WithPlacementName(Aws::String && value)116     inline PlacementDescription& WithPlacementName(Aws::String&& value) { SetPlacementName(std::move(value)); return *this;}
117 
118     /**
119      * <p>The name of the placement.</p>
120      */
WithPlacementName(const char * value)121     inline PlacementDescription& WithPlacementName(const char* value) { SetPlacementName(value); return *this;}
122 
123 
124     /**
125      * <p>The user-defined attributes associated with the placement.</p>
126      */
GetAttributes()127     inline const Aws::Map<Aws::String, Aws::String>& GetAttributes() const{ return m_attributes; }
128 
129     /**
130      * <p>The user-defined attributes associated with the placement.</p>
131      */
AttributesHasBeenSet()132     inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; }
133 
134     /**
135      * <p>The user-defined attributes associated with the placement.</p>
136      */
SetAttributes(const Aws::Map<Aws::String,Aws::String> & value)137     inline void SetAttributes(const Aws::Map<Aws::String, Aws::String>& value) { m_attributesHasBeenSet = true; m_attributes = value; }
138 
139     /**
140      * <p>The user-defined attributes associated with the placement.</p>
141      */
SetAttributes(Aws::Map<Aws::String,Aws::String> && value)142     inline void SetAttributes(Aws::Map<Aws::String, Aws::String>&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); }
143 
144     /**
145      * <p>The user-defined attributes associated with the placement.</p>
146      */
WithAttributes(const Aws::Map<Aws::String,Aws::String> & value)147     inline PlacementDescription& WithAttributes(const Aws::Map<Aws::String, Aws::String>& value) { SetAttributes(value); return *this;}
148 
149     /**
150      * <p>The user-defined attributes associated with the placement.</p>
151      */
WithAttributes(Aws::Map<Aws::String,Aws::String> && value)152     inline PlacementDescription& WithAttributes(Aws::Map<Aws::String, Aws::String>&& value) { SetAttributes(std::move(value)); return *this;}
153 
154     /**
155      * <p>The user-defined attributes associated with the placement.</p>
156      */
AddAttributes(const Aws::String & key,const Aws::String & value)157     inline PlacementDescription& AddAttributes(const Aws::String& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; }
158 
159     /**
160      * <p>The user-defined attributes associated with the placement.</p>
161      */
AddAttributes(Aws::String && key,const Aws::String & value)162     inline PlacementDescription& AddAttributes(Aws::String&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; }
163 
164     /**
165      * <p>The user-defined attributes associated with the placement.</p>
166      */
AddAttributes(const Aws::String & key,Aws::String && value)167     inline PlacementDescription& AddAttributes(const Aws::String& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; }
168 
169     /**
170      * <p>The user-defined attributes associated with the placement.</p>
171      */
AddAttributes(Aws::String && key,Aws::String && value)172     inline PlacementDescription& AddAttributes(Aws::String&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; }
173 
174     /**
175      * <p>The user-defined attributes associated with the placement.</p>
176      */
AddAttributes(const char * key,Aws::String && value)177     inline PlacementDescription& AddAttributes(const char* key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; }
178 
179     /**
180      * <p>The user-defined attributes associated with the placement.</p>
181      */
AddAttributes(Aws::String && key,const char * value)182     inline PlacementDescription& AddAttributes(Aws::String&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; }
183 
184     /**
185      * <p>The user-defined attributes associated with the placement.</p>
186      */
AddAttributes(const char * key,const char * value)187     inline PlacementDescription& AddAttributes(const char* key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; }
188 
189 
190     /**
191      * <p>The date when the placement was initially created, in UNIX epoch time
192      * format.</p>
193      */
GetCreatedDate()194     inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; }
195 
196     /**
197      * <p>The date when the placement was initially created, in UNIX epoch time
198      * format.</p>
199      */
CreatedDateHasBeenSet()200     inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; }
201 
202     /**
203      * <p>The date when the placement was initially created, in UNIX epoch time
204      * format.</p>
205      */
SetCreatedDate(const Aws::Utils::DateTime & value)206     inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; }
207 
208     /**
209      * <p>The date when the placement was initially created, in UNIX epoch time
210      * format.</p>
211      */
SetCreatedDate(Aws::Utils::DateTime && value)212     inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); }
213 
214     /**
215      * <p>The date when the placement was initially created, in UNIX epoch time
216      * format.</p>
217      */
WithCreatedDate(const Aws::Utils::DateTime & value)218     inline PlacementDescription& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;}
219 
220     /**
221      * <p>The date when the placement was initially created, in UNIX epoch time
222      * format.</p>
223      */
WithCreatedDate(Aws::Utils::DateTime && value)224     inline PlacementDescription& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;}
225 
226 
227     /**
228      * <p>The date when the placement was last updated, in UNIX epoch time format. If
229      * the placement was not updated, then <code>createdDate</code> and
230      * <code>updatedDate</code> are the same.</p>
231      */
GetUpdatedDate()232     inline const Aws::Utils::DateTime& GetUpdatedDate() const{ return m_updatedDate; }
233 
234     /**
235      * <p>The date when the placement was last updated, in UNIX epoch time format. If
236      * the placement was not updated, then <code>createdDate</code> and
237      * <code>updatedDate</code> are the same.</p>
238      */
UpdatedDateHasBeenSet()239     inline bool UpdatedDateHasBeenSet() const { return m_updatedDateHasBeenSet; }
240 
241     /**
242      * <p>The date when the placement was last updated, in UNIX epoch time format. If
243      * the placement was not updated, then <code>createdDate</code> and
244      * <code>updatedDate</code> are the same.</p>
245      */
SetUpdatedDate(const Aws::Utils::DateTime & value)246     inline void SetUpdatedDate(const Aws::Utils::DateTime& value) { m_updatedDateHasBeenSet = true; m_updatedDate = value; }
247 
248     /**
249      * <p>The date when the placement was last updated, in UNIX epoch time format. If
250      * the placement was not updated, then <code>createdDate</code> and
251      * <code>updatedDate</code> are the same.</p>
252      */
SetUpdatedDate(Aws::Utils::DateTime && value)253     inline void SetUpdatedDate(Aws::Utils::DateTime&& value) { m_updatedDateHasBeenSet = true; m_updatedDate = std::move(value); }
254 
255     /**
256      * <p>The date when the placement was last updated, in UNIX epoch time format. If
257      * the placement was not updated, then <code>createdDate</code> and
258      * <code>updatedDate</code> are the same.</p>
259      */
WithUpdatedDate(const Aws::Utils::DateTime & value)260     inline PlacementDescription& WithUpdatedDate(const Aws::Utils::DateTime& value) { SetUpdatedDate(value); return *this;}
261 
262     /**
263      * <p>The date when the placement was last updated, in UNIX epoch time format. If
264      * the placement was not updated, then <code>createdDate</code> and
265      * <code>updatedDate</code> are the same.</p>
266      */
WithUpdatedDate(Aws::Utils::DateTime && value)267     inline PlacementDescription& WithUpdatedDate(Aws::Utils::DateTime&& value) { SetUpdatedDate(std::move(value)); return *this;}
268 
269   private:
270 
271     Aws::String m_projectName;
272     bool m_projectNameHasBeenSet;
273 
274     Aws::String m_placementName;
275     bool m_placementNameHasBeenSet;
276 
277     Aws::Map<Aws::String, Aws::String> m_attributes;
278     bool m_attributesHasBeenSet;
279 
280     Aws::Utils::DateTime m_createdDate;
281     bool m_createdDateHasBeenSet;
282 
283     Aws::Utils::DateTime m_updatedDate;
284     bool m_updatedDateHasBeenSet;
285   };
286 
287 } // namespace Model
288 } // namespace IoT1ClickProjects
289 } // namespace Aws
290