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/servicecatalog-appregistry/AppRegistry_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/DateTime.h>
10 #include <aws/core/utils/memory/stl/AWSMap.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 AppRegistry
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Represents a Amazon Web Services Service Catalog AppRegistry application that
30    * is the top-level node in a hierarchy of related cloud resource
31    * abstractions.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/AWS242AppRegistry-2020-06-24/Application">AWS
33    * API Reference</a></p>
34    */
35   class AWS_APPREGISTRY_API Application
36   {
37   public:
38     Application();
39     Application(Aws::Utils::Json::JsonView jsonValue);
40     Application& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The identifier of the application.</p>
46      */
GetId()47     inline const Aws::String& GetId() const{ return m_id; }
48 
49     /**
50      * <p>The identifier of the application.</p>
51      */
IdHasBeenSet()52     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
53 
54     /**
55      * <p>The identifier of the application.</p>
56      */
SetId(const Aws::String & value)57     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
58 
59     /**
60      * <p>The identifier of the application.</p>
61      */
SetId(Aws::String && value)62     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
63 
64     /**
65      * <p>The identifier of the application.</p>
66      */
SetId(const char * value)67     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
68 
69     /**
70      * <p>The identifier of the application.</p>
71      */
WithId(const Aws::String & value)72     inline Application& WithId(const Aws::String& value) { SetId(value); return *this;}
73 
74     /**
75      * <p>The identifier of the application.</p>
76      */
WithId(Aws::String && value)77     inline Application& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
78 
79     /**
80      * <p>The identifier of the application.</p>
81      */
WithId(const char * value)82     inline Application& WithId(const char* value) { SetId(value); return *this;}
83 
84 
85     /**
86      * <p>The Amazon resource name (ARN) that specifies the application across
87      * services.</p>
88      */
GetArn()89     inline const Aws::String& GetArn() const{ return m_arn; }
90 
91     /**
92      * <p>The Amazon resource name (ARN) that specifies the application across
93      * services.</p>
94      */
ArnHasBeenSet()95     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
96 
97     /**
98      * <p>The Amazon resource name (ARN) that specifies the application across
99      * services.</p>
100      */
SetArn(const Aws::String & value)101     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
102 
103     /**
104      * <p>The Amazon resource name (ARN) that specifies the application across
105      * services.</p>
106      */
SetArn(Aws::String && value)107     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
108 
109     /**
110      * <p>The Amazon resource name (ARN) that specifies the application across
111      * services.</p>
112      */
SetArn(const char * value)113     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
114 
115     /**
116      * <p>The Amazon resource name (ARN) that specifies the application across
117      * services.</p>
118      */
WithArn(const Aws::String & value)119     inline Application& WithArn(const Aws::String& value) { SetArn(value); return *this;}
120 
121     /**
122      * <p>The Amazon resource name (ARN) that specifies the application across
123      * services.</p>
124      */
WithArn(Aws::String && value)125     inline Application& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
126 
127     /**
128      * <p>The Amazon resource name (ARN) that specifies the application across
129      * services.</p>
130      */
WithArn(const char * value)131     inline Application& WithArn(const char* value) { SetArn(value); return *this;}
132 
133 
134     /**
135      * <p>The name of the application. The name must be unique in the region in which
136      * you are creating the application.</p>
137      */
GetName()138     inline const Aws::String& GetName() const{ return m_name; }
139 
140     /**
141      * <p>The name of the application. The name must be unique in the region in which
142      * you are creating the application.</p>
143      */
NameHasBeenSet()144     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
145 
146     /**
147      * <p>The name of the application. The name must be unique in the region in which
148      * you are creating the application.</p>
149      */
SetName(const Aws::String & value)150     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
151 
152     /**
153      * <p>The name of the application. The name must be unique in the region in which
154      * you are creating the application.</p>
155      */
SetName(Aws::String && value)156     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
157 
158     /**
159      * <p>The name of the application. The name must be unique in the region in which
160      * you are creating the application.</p>
161      */
SetName(const char * value)162     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
163 
164     /**
165      * <p>The name of the application. The name must be unique in the region in which
166      * you are creating the application.</p>
167      */
WithName(const Aws::String & value)168     inline Application& WithName(const Aws::String& value) { SetName(value); return *this;}
169 
170     /**
171      * <p>The name of the application. The name must be unique in the region in which
172      * you are creating the application.</p>
173      */
WithName(Aws::String && value)174     inline Application& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
175 
176     /**
177      * <p>The name of the application. The name must be unique in the region in which
178      * you are creating the application.</p>
179      */
WithName(const char * value)180     inline Application& WithName(const char* value) { SetName(value); return *this;}
181 
182 
183     /**
184      * <p>The description of the application.</p>
185      */
GetDescription()186     inline const Aws::String& GetDescription() const{ return m_description; }
187 
188     /**
189      * <p>The description of the application.</p>
190      */
DescriptionHasBeenSet()191     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
192 
193     /**
194      * <p>The description of the application.</p>
195      */
SetDescription(const Aws::String & value)196     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
197 
198     /**
199      * <p>The description of the application.</p>
200      */
SetDescription(Aws::String && value)201     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
202 
203     /**
204      * <p>The description of the application.</p>
205      */
SetDescription(const char * value)206     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
207 
208     /**
209      * <p>The description of the application.</p>
210      */
WithDescription(const Aws::String & value)211     inline Application& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
212 
213     /**
214      * <p>The description of the application.</p>
215      */
WithDescription(Aws::String && value)216     inline Application& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
217 
218     /**
219      * <p>The description of the application.</p>
220      */
WithDescription(const char * value)221     inline Application& WithDescription(const char* value) { SetDescription(value); return *this;}
222 
223 
224     /**
225      * <p>The ISO-8601 formatted timestamp of the moment when the application was
226      * created.</p>
227      */
GetCreationTime()228     inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; }
229 
230     /**
231      * <p>The ISO-8601 formatted timestamp of the moment when the application was
232      * created.</p>
233      */
CreationTimeHasBeenSet()234     inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; }
235 
236     /**
237      * <p>The ISO-8601 formatted timestamp of the moment when the application was
238      * created.</p>
239      */
SetCreationTime(const Aws::Utils::DateTime & value)240     inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; }
241 
242     /**
243      * <p>The ISO-8601 formatted timestamp of the moment when the application was
244      * created.</p>
245      */
SetCreationTime(Aws::Utils::DateTime && value)246     inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); }
247 
248     /**
249      * <p>The ISO-8601 formatted timestamp of the moment when the application was
250      * created.</p>
251      */
WithCreationTime(const Aws::Utils::DateTime & value)252     inline Application& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;}
253 
254     /**
255      * <p>The ISO-8601 formatted timestamp of the moment when the application was
256      * created.</p>
257      */
WithCreationTime(Aws::Utils::DateTime && value)258     inline Application& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;}
259 
260 
261     /**
262      * <p> The ISO-8601 formatted timestamp of the moment when the application was last
263      * updated.</p>
264      */
GetLastUpdateTime()265     inline const Aws::Utils::DateTime& GetLastUpdateTime() const{ return m_lastUpdateTime; }
266 
267     /**
268      * <p> The ISO-8601 formatted timestamp of the moment when the application was last
269      * updated.</p>
270      */
LastUpdateTimeHasBeenSet()271     inline bool LastUpdateTimeHasBeenSet() const { return m_lastUpdateTimeHasBeenSet; }
272 
273     /**
274      * <p> The ISO-8601 formatted timestamp of the moment when the application was last
275      * updated.</p>
276      */
SetLastUpdateTime(const Aws::Utils::DateTime & value)277     inline void SetLastUpdateTime(const Aws::Utils::DateTime& value) { m_lastUpdateTimeHasBeenSet = true; m_lastUpdateTime = value; }
278 
279     /**
280      * <p> The ISO-8601 formatted timestamp of the moment when the application was last
281      * updated.</p>
282      */
SetLastUpdateTime(Aws::Utils::DateTime && value)283     inline void SetLastUpdateTime(Aws::Utils::DateTime&& value) { m_lastUpdateTimeHasBeenSet = true; m_lastUpdateTime = std::move(value); }
284 
285     /**
286      * <p> The ISO-8601 formatted timestamp of the moment when the application was last
287      * updated.</p>
288      */
WithLastUpdateTime(const Aws::Utils::DateTime & value)289     inline Application& WithLastUpdateTime(const Aws::Utils::DateTime& value) { SetLastUpdateTime(value); return *this;}
290 
291     /**
292      * <p> The ISO-8601 formatted timestamp of the moment when the application was last
293      * updated.</p>
294      */
WithLastUpdateTime(Aws::Utils::DateTime && value)295     inline Application& WithLastUpdateTime(Aws::Utils::DateTime&& value) { SetLastUpdateTime(std::move(value)); return *this;}
296 
297 
298     /**
299      * <p>Key-value pairs you can use to associate with the application.</p>
300      */
GetTags()301     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
302 
303     /**
304      * <p>Key-value pairs you can use to associate with the application.</p>
305      */
TagsHasBeenSet()306     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
307 
308     /**
309      * <p>Key-value pairs you can use to associate with the application.</p>
310      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)311     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
312 
313     /**
314      * <p>Key-value pairs you can use to associate with the application.</p>
315      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)316     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
317 
318     /**
319      * <p>Key-value pairs you can use to associate with the application.</p>
320      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)321     inline Application& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
322 
323     /**
324      * <p>Key-value pairs you can use to associate with the application.</p>
325      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)326     inline Application& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
327 
328     /**
329      * <p>Key-value pairs you can use to associate with the application.</p>
330      */
AddTags(const Aws::String & key,const Aws::String & value)331     inline Application& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
332 
333     /**
334      * <p>Key-value pairs you can use to associate with the application.</p>
335      */
AddTags(Aws::String && key,const Aws::String & value)336     inline Application& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
337 
338     /**
339      * <p>Key-value pairs you can use to associate with the application.</p>
340      */
AddTags(const Aws::String & key,Aws::String && value)341     inline Application& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
342 
343     /**
344      * <p>Key-value pairs you can use to associate with the application.</p>
345      */
AddTags(Aws::String && key,Aws::String && value)346     inline Application& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
347 
348     /**
349      * <p>Key-value pairs you can use to associate with the application.</p>
350      */
AddTags(const char * key,Aws::String && value)351     inline Application& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
352 
353     /**
354      * <p>Key-value pairs you can use to associate with the application.</p>
355      */
AddTags(Aws::String && key,const char * value)356     inline Application& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
357 
358     /**
359      * <p>Key-value pairs you can use to associate with the application.</p>
360      */
AddTags(const char * key,const char * value)361     inline Application& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
362 
363   private:
364 
365     Aws::String m_id;
366     bool m_idHasBeenSet;
367 
368     Aws::String m_arn;
369     bool m_arnHasBeenSet;
370 
371     Aws::String m_name;
372     bool m_nameHasBeenSet;
373 
374     Aws::String m_description;
375     bool m_descriptionHasBeenSet;
376 
377     Aws::Utils::DateTime m_creationTime;
378     bool m_creationTimeHasBeenSet;
379 
380     Aws::Utils::DateTime m_lastUpdateTime;
381     bool m_lastUpdateTimeHasBeenSet;
382 
383     Aws::Map<Aws::String, Aws::String> m_tags;
384     bool m_tagsHasBeenSet;
385   };
386 
387 } // namespace Model
388 } // namespace AppRegistry
389 } // namespace Aws
390