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/servicecatalog-appregistry/AppRegistryRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSMap.h>
11 #include <utility>
12 #include <aws/core/utils/UUID.h>
13 
14 namespace Aws
15 {
16 namespace AppRegistry
17 {
18 namespace Model
19 {
20 
21   /**
22    */
23   class AWS_APPREGISTRY_API CreateApplicationRequest : public AppRegistryRequest
24   {
25   public:
26     CreateApplicationRequest();
27 
28     // Service request name is the Operation name which will send this request out,
29     // each operation should has unique request name, so that we can get operation's name from this request.
30     // Note: this is not true for response, multiple operations may have the same response name,
31     // so we can not get operation's name from response.
GetServiceRequestName()32     inline virtual const char* GetServiceRequestName() const override { return "CreateApplication"; }
33 
34     Aws::String SerializePayload() const override;
35 
36 
37     /**
38      * <p>The name of the application. The name must be unique in the region in which
39      * you are creating the application.</p>
40      */
GetName()41     inline const Aws::String& GetName() const{ return m_name; }
42 
43     /**
44      * <p>The name of the application. The name must be unique in the region in which
45      * you are creating the application.</p>
46      */
NameHasBeenSet()47     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
48 
49     /**
50      * <p>The name of the application. The name must be unique in the region in which
51      * you are creating the application.</p>
52      */
SetName(const Aws::String & value)53     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
54 
55     /**
56      * <p>The name of the application. The name must be unique in the region in which
57      * you are creating the application.</p>
58      */
SetName(Aws::String && value)59     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
60 
61     /**
62      * <p>The name of the application. The name must be unique in the region in which
63      * you are creating the application.</p>
64      */
SetName(const char * value)65     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
66 
67     /**
68      * <p>The name of the application. The name must be unique in the region in which
69      * you are creating the application.</p>
70      */
WithName(const Aws::String & value)71     inline CreateApplicationRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
72 
73     /**
74      * <p>The name of the application. The name must be unique in the region in which
75      * you are creating the application.</p>
76      */
WithName(Aws::String && value)77     inline CreateApplicationRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
78 
79     /**
80      * <p>The name of the application. The name must be unique in the region in which
81      * you are creating the application.</p>
82      */
WithName(const char * value)83     inline CreateApplicationRequest& WithName(const char* value) { SetName(value); return *this;}
84 
85 
86     /**
87      * <p>The description of the application.</p>
88      */
GetDescription()89     inline const Aws::String& GetDescription() const{ return m_description; }
90 
91     /**
92      * <p>The description of the application.</p>
93      */
DescriptionHasBeenSet()94     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
95 
96     /**
97      * <p>The description of the application.</p>
98      */
SetDescription(const Aws::String & value)99     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
100 
101     /**
102      * <p>The description of the application.</p>
103      */
SetDescription(Aws::String && value)104     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
105 
106     /**
107      * <p>The description of the application.</p>
108      */
SetDescription(const char * value)109     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
110 
111     /**
112      * <p>The description of the application.</p>
113      */
WithDescription(const Aws::String & value)114     inline CreateApplicationRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
115 
116     /**
117      * <p>The description of the application.</p>
118      */
WithDescription(Aws::String && value)119     inline CreateApplicationRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
120 
121     /**
122      * <p>The description of the application.</p>
123      */
WithDescription(const char * value)124     inline CreateApplicationRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
125 
126 
127     /**
128      * <p>Key-value pairs you can use to associate with the application.</p>
129      */
GetTags()130     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
131 
132     /**
133      * <p>Key-value pairs you can use to associate with the application.</p>
134      */
TagsHasBeenSet()135     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
136 
137     /**
138      * <p>Key-value pairs you can use to associate with the application.</p>
139      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)140     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
141 
142     /**
143      * <p>Key-value pairs you can use to associate with the application.</p>
144      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)145     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
146 
147     /**
148      * <p>Key-value pairs you can use to associate with the application.</p>
149      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)150     inline CreateApplicationRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
151 
152     /**
153      * <p>Key-value pairs you can use to associate with the application.</p>
154      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)155     inline CreateApplicationRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
156 
157     /**
158      * <p>Key-value pairs you can use to associate with the application.</p>
159      */
AddTags(const Aws::String & key,const Aws::String & value)160     inline CreateApplicationRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
161 
162     /**
163      * <p>Key-value pairs you can use to associate with the application.</p>
164      */
AddTags(Aws::String && key,const Aws::String & value)165     inline CreateApplicationRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
166 
167     /**
168      * <p>Key-value pairs you can use to associate with the application.</p>
169      */
AddTags(const Aws::String & key,Aws::String && value)170     inline CreateApplicationRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
171 
172     /**
173      * <p>Key-value pairs you can use to associate with the application.</p>
174      */
AddTags(Aws::String && key,Aws::String && value)175     inline CreateApplicationRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
176 
177     /**
178      * <p>Key-value pairs you can use to associate with the application.</p>
179      */
AddTags(const char * key,Aws::String && value)180     inline CreateApplicationRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
181 
182     /**
183      * <p>Key-value pairs you can use to associate with the application.</p>
184      */
AddTags(Aws::String && key,const char * value)185     inline CreateApplicationRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
186 
187     /**
188      * <p>Key-value pairs you can use to associate with the application.</p>
189      */
AddTags(const char * key,const char * value)190     inline CreateApplicationRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
191 
192 
193     /**
194      * <p>A unique identifier that you provide to ensure idempotency. If you retry a
195      * request that completed successfully using the same client token and the same
196      * parameters, the retry succeeds without performing any further actions. If you
197      * retry a successful request using the same client token, but one or more of the
198      * parameters are different, the retry fails.</p>
199      */
GetClientToken()200     inline const Aws::String& GetClientToken() const{ return m_clientToken; }
201 
202     /**
203      * <p>A unique identifier that you provide to ensure idempotency. If you retry a
204      * request that completed successfully using the same client token and the same
205      * parameters, the retry succeeds without performing any further actions. If you
206      * retry a successful request using the same client token, but one or more of the
207      * parameters are different, the retry fails.</p>
208      */
ClientTokenHasBeenSet()209     inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
210 
211     /**
212      * <p>A unique identifier that you provide to ensure idempotency. If you retry a
213      * request that completed successfully using the same client token and the same
214      * parameters, the retry succeeds without performing any further actions. If you
215      * retry a successful request using the same client token, but one or more of the
216      * parameters are different, the retry fails.</p>
217      */
SetClientToken(const Aws::String & value)218     inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; }
219 
220     /**
221      * <p>A unique identifier that you provide to ensure idempotency. If you retry a
222      * request that completed successfully using the same client token and the same
223      * parameters, the retry succeeds without performing any further actions. If you
224      * retry a successful request using the same client token, but one or more of the
225      * parameters are different, the retry fails.</p>
226      */
SetClientToken(Aws::String && value)227     inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); }
228 
229     /**
230      * <p>A unique identifier that you provide to ensure idempotency. If you retry a
231      * request that completed successfully using the same client token and the same
232      * parameters, the retry succeeds without performing any further actions. If you
233      * retry a successful request using the same client token, but one or more of the
234      * parameters are different, the retry fails.</p>
235      */
SetClientToken(const char * value)236     inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); }
237 
238     /**
239      * <p>A unique identifier that you provide to ensure idempotency. If you retry a
240      * request that completed successfully using the same client token and the same
241      * parameters, the retry succeeds without performing any further actions. If you
242      * retry a successful request using the same client token, but one or more of the
243      * parameters are different, the retry fails.</p>
244      */
WithClientToken(const Aws::String & value)245     inline CreateApplicationRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;}
246 
247     /**
248      * <p>A unique identifier that you provide to ensure idempotency. If you retry a
249      * request that completed successfully using the same client token and the same
250      * parameters, the retry succeeds without performing any further actions. If you
251      * retry a successful request using the same client token, but one or more of the
252      * parameters are different, the retry fails.</p>
253      */
WithClientToken(Aws::String && value)254     inline CreateApplicationRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;}
255 
256     /**
257      * <p>A unique identifier that you provide to ensure idempotency. If you retry a
258      * request that completed successfully using the same client token and the same
259      * parameters, the retry succeeds without performing any further actions. If you
260      * retry a successful request using the same client token, but one or more of the
261      * parameters are different, the retry fails.</p>
262      */
WithClientToken(const char * value)263     inline CreateApplicationRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;}
264 
265   private:
266 
267     Aws::String m_name;
268     bool m_nameHasBeenSet;
269 
270     Aws::String m_description;
271     bool m_descriptionHasBeenSet;
272 
273     Aws::Map<Aws::String, Aws::String> m_tags;
274     bool m_tagsHasBeenSet;
275 
276     Aws::String m_clientToken;
277     bool m_clientTokenHasBeenSet;
278   };
279 
280 } // namespace Model
281 } // namespace AppRegistry
282 } // namespace Aws
283