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/nimble/NimbleStudio_EXPORTS.h>
8 #include <aws/nimble/NimbleStudioRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/nimble/model/StudioComponentConfiguration.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/nimble/model/StudioComponentSubtype.h>
13 #include <aws/core/utils/memory/stl/AWSMap.h>
14 #include <aws/nimble/model/StudioComponentType.h>
15 #include <aws/nimble/model/StudioComponentInitializationScript.h>
16 #include <aws/nimble/model/ScriptParameterKeyValue.h>
17 #include <utility>
18 #include <aws/core/utils/UUID.h>
19 
20 namespace Aws
21 {
22 namespace NimbleStudio
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>The studio components.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/nimble-2020-08-01/CreateStudioComponentRequest">AWS
30    * API Reference</a></p>
31    */
32   class AWS_NIMBLESTUDIO_API CreateStudioComponentRequest : public NimbleStudioRequest
33   {
34   public:
35     CreateStudioComponentRequest();
36 
37     // Service request name is the Operation name which will send this request out,
38     // each operation should has unique request name, so that we can get operation's name from this request.
39     // Note: this is not true for response, multiple operations may have the same response name,
40     // so we can not get operation's name from response.
GetServiceRequestName()41     inline virtual const char* GetServiceRequestName() const override { return "CreateStudioComponent"; }
42 
43     Aws::String SerializePayload() const override;
44 
45     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
46 
47 
48     /**
49      * <p>To make an idempotent API request using one of these actions, specify a
50      * client token in the request. You should not reuse the same client token for
51      * other API requests. If you retry a request that completed successfully using the
52      * same client token and the same parameters, the retry succeeds without performing
53      * any further actions. If you retry a successful request using the same client
54      * token, but one or more of the parameters are different, the retry fails with a
55      * ValidationException error.</p>
56      */
GetClientToken()57     inline const Aws::String& GetClientToken() const{ return m_clientToken; }
58 
59     /**
60      * <p>To make an idempotent API request using one of these actions, specify a
61      * client token in the request. You should not reuse the same client token for
62      * other API requests. If you retry a request that completed successfully using the
63      * same client token and the same parameters, the retry succeeds without performing
64      * any further actions. If you retry a successful request using the same client
65      * token, but one or more of the parameters are different, the retry fails with a
66      * ValidationException error.</p>
67      */
ClientTokenHasBeenSet()68     inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
69 
70     /**
71      * <p>To make an idempotent API request using one of these actions, specify a
72      * client token in the request. You should not reuse the same client token for
73      * other API requests. If you retry a request that completed successfully using the
74      * same client token and the same parameters, the retry succeeds without performing
75      * any further actions. If you retry a successful request using the same client
76      * token, but one or more of the parameters are different, the retry fails with a
77      * ValidationException error.</p>
78      */
SetClientToken(const Aws::String & value)79     inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; }
80 
81     /**
82      * <p>To make an idempotent API request using one of these actions, specify a
83      * client token in the request. You should not reuse the same client token for
84      * other API requests. If you retry a request that completed successfully using the
85      * same client token and the same parameters, the retry succeeds without performing
86      * any further actions. If you retry a successful request using the same client
87      * token, but one or more of the parameters are different, the retry fails with a
88      * ValidationException error.</p>
89      */
SetClientToken(Aws::String && value)90     inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); }
91 
92     /**
93      * <p>To make an idempotent API request using one of these actions, specify a
94      * client token in the request. You should not reuse the same client token for
95      * other API requests. If you retry a request that completed successfully using the
96      * same client token and the same parameters, the retry succeeds without performing
97      * any further actions. If you retry a successful request using the same client
98      * token, but one or more of the parameters are different, the retry fails with a
99      * ValidationException error.</p>
100      */
SetClientToken(const char * value)101     inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); }
102 
103     /**
104      * <p>To make an idempotent API request using one of these actions, specify a
105      * client token in the request. You should not reuse the same client token for
106      * other API requests. If you retry a request that completed successfully using the
107      * same client token and the same parameters, the retry succeeds without performing
108      * any further actions. If you retry a successful request using the same client
109      * token, but one or more of the parameters are different, the retry fails with a
110      * ValidationException error.</p>
111      */
WithClientToken(const Aws::String & value)112     inline CreateStudioComponentRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;}
113 
114     /**
115      * <p>To make an idempotent API request using one of these actions, specify a
116      * client token in the request. You should not reuse the same client token for
117      * other API requests. If you retry a request that completed successfully using the
118      * same client token and the same parameters, the retry succeeds without performing
119      * any further actions. If you retry a successful request using the same client
120      * token, but one or more of the parameters are different, the retry fails with a
121      * ValidationException error.</p>
122      */
WithClientToken(Aws::String && value)123     inline CreateStudioComponentRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;}
124 
125     /**
126      * <p>To make an idempotent API request using one of these actions, specify a
127      * client token in the request. You should not reuse the same client token for
128      * other API requests. If you retry a request that completed successfully using the
129      * same client token and the same parameters, the retry succeeds without performing
130      * any further actions. If you retry a successful request using the same client
131      * token, but one or more of the parameters are different, the retry fails with a
132      * ValidationException error.</p>
133      */
WithClientToken(const char * value)134     inline CreateStudioComponentRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;}
135 
136 
137     /**
138      * <p>The configuration of the studio component, based on component type.</p>
139      */
GetConfiguration()140     inline const StudioComponentConfiguration& GetConfiguration() const{ return m_configuration; }
141 
142     /**
143      * <p>The configuration of the studio component, based on component type.</p>
144      */
ConfigurationHasBeenSet()145     inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; }
146 
147     /**
148      * <p>The configuration of the studio component, based on component type.</p>
149      */
SetConfiguration(const StudioComponentConfiguration & value)150     inline void SetConfiguration(const StudioComponentConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; }
151 
152     /**
153      * <p>The configuration of the studio component, based on component type.</p>
154      */
SetConfiguration(StudioComponentConfiguration && value)155     inline void SetConfiguration(StudioComponentConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); }
156 
157     /**
158      * <p>The configuration of the studio component, based on component type.</p>
159      */
WithConfiguration(const StudioComponentConfiguration & value)160     inline CreateStudioComponentRequest& WithConfiguration(const StudioComponentConfiguration& value) { SetConfiguration(value); return *this;}
161 
162     /**
163      * <p>The configuration of the studio component, based on component type.</p>
164      */
WithConfiguration(StudioComponentConfiguration && value)165     inline CreateStudioComponentRequest& WithConfiguration(StudioComponentConfiguration&& value) { SetConfiguration(std::move(value)); return *this;}
166 
167 
168     /**
169      * <p>The description.</p>
170      */
GetDescription()171     inline const Aws::String& GetDescription() const{ return m_description; }
172 
173     /**
174      * <p>The description.</p>
175      */
DescriptionHasBeenSet()176     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
177 
178     /**
179      * <p>The description.</p>
180      */
SetDescription(const Aws::String & value)181     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
182 
183     /**
184      * <p>The description.</p>
185      */
SetDescription(Aws::String && value)186     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
187 
188     /**
189      * <p>The description.</p>
190      */
SetDescription(const char * value)191     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
192 
193     /**
194      * <p>The description.</p>
195      */
WithDescription(const Aws::String & value)196     inline CreateStudioComponentRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
197 
198     /**
199      * <p>The description.</p>
200      */
WithDescription(Aws::String && value)201     inline CreateStudioComponentRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
202 
203     /**
204      * <p>The description.</p>
205      */
WithDescription(const char * value)206     inline CreateStudioComponentRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
207 
208 
209     /**
210      * <p>The EC2 security groups that control access to the studio component.</p>
211      */
GetEc2SecurityGroupIds()212     inline const Aws::Vector<Aws::String>& GetEc2SecurityGroupIds() const{ return m_ec2SecurityGroupIds; }
213 
214     /**
215      * <p>The EC2 security groups that control access to the studio component.</p>
216      */
Ec2SecurityGroupIdsHasBeenSet()217     inline bool Ec2SecurityGroupIdsHasBeenSet() const { return m_ec2SecurityGroupIdsHasBeenSet; }
218 
219     /**
220      * <p>The EC2 security groups that control access to the studio component.</p>
221      */
SetEc2SecurityGroupIds(const Aws::Vector<Aws::String> & value)222     inline void SetEc2SecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = value; }
223 
224     /**
225      * <p>The EC2 security groups that control access to the studio component.</p>
226      */
SetEc2SecurityGroupIds(Aws::Vector<Aws::String> && value)227     inline void SetEc2SecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = std::move(value); }
228 
229     /**
230      * <p>The EC2 security groups that control access to the studio component.</p>
231      */
WithEc2SecurityGroupIds(const Aws::Vector<Aws::String> & value)232     inline CreateStudioComponentRequest& WithEc2SecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetEc2SecurityGroupIds(value); return *this;}
233 
234     /**
235      * <p>The EC2 security groups that control access to the studio component.</p>
236      */
WithEc2SecurityGroupIds(Aws::Vector<Aws::String> && value)237     inline CreateStudioComponentRequest& WithEc2SecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetEc2SecurityGroupIds(std::move(value)); return *this;}
238 
239     /**
240      * <p>The EC2 security groups that control access to the studio component.</p>
241      */
AddEc2SecurityGroupIds(const Aws::String & value)242     inline CreateStudioComponentRequest& AddEc2SecurityGroupIds(const Aws::String& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; }
243 
244     /**
245      * <p>The EC2 security groups that control access to the studio component.</p>
246      */
AddEc2SecurityGroupIds(Aws::String && value)247     inline CreateStudioComponentRequest& AddEc2SecurityGroupIds(Aws::String&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(std::move(value)); return *this; }
248 
249     /**
250      * <p>The EC2 security groups that control access to the studio component.</p>
251      */
AddEc2SecurityGroupIds(const char * value)252     inline CreateStudioComponentRequest& AddEc2SecurityGroupIds(const char* value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; }
253 
254 
255     /**
256      * <p>Initialization scripts for studio components.</p>
257      */
GetInitializationScripts()258     inline const Aws::Vector<StudioComponentInitializationScript>& GetInitializationScripts() const{ return m_initializationScripts; }
259 
260     /**
261      * <p>Initialization scripts for studio components.</p>
262      */
InitializationScriptsHasBeenSet()263     inline bool InitializationScriptsHasBeenSet() const { return m_initializationScriptsHasBeenSet; }
264 
265     /**
266      * <p>Initialization scripts for studio components.</p>
267      */
SetInitializationScripts(const Aws::Vector<StudioComponentInitializationScript> & value)268     inline void SetInitializationScripts(const Aws::Vector<StudioComponentInitializationScript>& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts = value; }
269 
270     /**
271      * <p>Initialization scripts for studio components.</p>
272      */
SetInitializationScripts(Aws::Vector<StudioComponentInitializationScript> && value)273     inline void SetInitializationScripts(Aws::Vector<StudioComponentInitializationScript>&& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts = std::move(value); }
274 
275     /**
276      * <p>Initialization scripts for studio components.</p>
277      */
WithInitializationScripts(const Aws::Vector<StudioComponentInitializationScript> & value)278     inline CreateStudioComponentRequest& WithInitializationScripts(const Aws::Vector<StudioComponentInitializationScript>& value) { SetInitializationScripts(value); return *this;}
279 
280     /**
281      * <p>Initialization scripts for studio components.</p>
282      */
WithInitializationScripts(Aws::Vector<StudioComponentInitializationScript> && value)283     inline CreateStudioComponentRequest& WithInitializationScripts(Aws::Vector<StudioComponentInitializationScript>&& value) { SetInitializationScripts(std::move(value)); return *this;}
284 
285     /**
286      * <p>Initialization scripts for studio components.</p>
287      */
AddInitializationScripts(const StudioComponentInitializationScript & value)288     inline CreateStudioComponentRequest& AddInitializationScripts(const StudioComponentInitializationScript& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts.push_back(value); return *this; }
289 
290     /**
291      * <p>Initialization scripts for studio components.</p>
292      */
AddInitializationScripts(StudioComponentInitializationScript && value)293     inline CreateStudioComponentRequest& AddInitializationScripts(StudioComponentInitializationScript&& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts.push_back(std::move(value)); return *this; }
294 
295 
296     /**
297      * <p>The name for the studio component.</p>
298      */
GetName()299     inline const Aws::String& GetName() const{ return m_name; }
300 
301     /**
302      * <p>The name for the studio component.</p>
303      */
NameHasBeenSet()304     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
305 
306     /**
307      * <p>The name for the studio component.</p>
308      */
SetName(const Aws::String & value)309     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
310 
311     /**
312      * <p>The name for the studio component.</p>
313      */
SetName(Aws::String && value)314     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
315 
316     /**
317      * <p>The name for the studio component.</p>
318      */
SetName(const char * value)319     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
320 
321     /**
322      * <p>The name for the studio component.</p>
323      */
WithName(const Aws::String & value)324     inline CreateStudioComponentRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
325 
326     /**
327      * <p>The name for the studio component.</p>
328      */
WithName(Aws::String && value)329     inline CreateStudioComponentRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
330 
331     /**
332      * <p>The name for the studio component.</p>
333      */
WithName(const char * value)334     inline CreateStudioComponentRequest& WithName(const char* value) { SetName(value); return *this;}
335 
336 
337     /**
338      * <p>Parameters for the studio component scripts.</p>
339      */
GetScriptParameters()340     inline const Aws::Vector<ScriptParameterKeyValue>& GetScriptParameters() const{ return m_scriptParameters; }
341 
342     /**
343      * <p>Parameters for the studio component scripts.</p>
344      */
ScriptParametersHasBeenSet()345     inline bool ScriptParametersHasBeenSet() const { return m_scriptParametersHasBeenSet; }
346 
347     /**
348      * <p>Parameters for the studio component scripts.</p>
349      */
SetScriptParameters(const Aws::Vector<ScriptParameterKeyValue> & value)350     inline void SetScriptParameters(const Aws::Vector<ScriptParameterKeyValue>& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters = value; }
351 
352     /**
353      * <p>Parameters for the studio component scripts.</p>
354      */
SetScriptParameters(Aws::Vector<ScriptParameterKeyValue> && value)355     inline void SetScriptParameters(Aws::Vector<ScriptParameterKeyValue>&& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters = std::move(value); }
356 
357     /**
358      * <p>Parameters for the studio component scripts.</p>
359      */
WithScriptParameters(const Aws::Vector<ScriptParameterKeyValue> & value)360     inline CreateStudioComponentRequest& WithScriptParameters(const Aws::Vector<ScriptParameterKeyValue>& value) { SetScriptParameters(value); return *this;}
361 
362     /**
363      * <p>Parameters for the studio component scripts.</p>
364      */
WithScriptParameters(Aws::Vector<ScriptParameterKeyValue> && value)365     inline CreateStudioComponentRequest& WithScriptParameters(Aws::Vector<ScriptParameterKeyValue>&& value) { SetScriptParameters(std::move(value)); return *this;}
366 
367     /**
368      * <p>Parameters for the studio component scripts.</p>
369      */
AddScriptParameters(const ScriptParameterKeyValue & value)370     inline CreateStudioComponentRequest& AddScriptParameters(const ScriptParameterKeyValue& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters.push_back(value); return *this; }
371 
372     /**
373      * <p>Parameters for the studio component scripts.</p>
374      */
AddScriptParameters(ScriptParameterKeyValue && value)375     inline CreateStudioComponentRequest& AddScriptParameters(ScriptParameterKeyValue&& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters.push_back(std::move(value)); return *this; }
376 
377 
378     /**
379      * <p>The studio ID.</p>
380      */
GetStudioId()381     inline const Aws::String& GetStudioId() const{ return m_studioId; }
382 
383     /**
384      * <p>The studio ID.</p>
385      */
StudioIdHasBeenSet()386     inline bool StudioIdHasBeenSet() const { return m_studioIdHasBeenSet; }
387 
388     /**
389      * <p>The studio ID.</p>
390      */
SetStudioId(const Aws::String & value)391     inline void SetStudioId(const Aws::String& value) { m_studioIdHasBeenSet = true; m_studioId = value; }
392 
393     /**
394      * <p>The studio ID.</p>
395      */
SetStudioId(Aws::String && value)396     inline void SetStudioId(Aws::String&& value) { m_studioIdHasBeenSet = true; m_studioId = std::move(value); }
397 
398     /**
399      * <p>The studio ID.</p>
400      */
SetStudioId(const char * value)401     inline void SetStudioId(const char* value) { m_studioIdHasBeenSet = true; m_studioId.assign(value); }
402 
403     /**
404      * <p>The studio ID.</p>
405      */
WithStudioId(const Aws::String & value)406     inline CreateStudioComponentRequest& WithStudioId(const Aws::String& value) { SetStudioId(value); return *this;}
407 
408     /**
409      * <p>The studio ID.</p>
410      */
WithStudioId(Aws::String && value)411     inline CreateStudioComponentRequest& WithStudioId(Aws::String&& value) { SetStudioId(std::move(value)); return *this;}
412 
413     /**
414      * <p>The studio ID.</p>
415      */
WithStudioId(const char * value)416     inline CreateStudioComponentRequest& WithStudioId(const char* value) { SetStudioId(value); return *this;}
417 
418 
419     /**
420      * <p>The specific subtype of a studio component.</p>
421      */
GetSubtype()422     inline const StudioComponentSubtype& GetSubtype() const{ return m_subtype; }
423 
424     /**
425      * <p>The specific subtype of a studio component.</p>
426      */
SubtypeHasBeenSet()427     inline bool SubtypeHasBeenSet() const { return m_subtypeHasBeenSet; }
428 
429     /**
430      * <p>The specific subtype of a studio component.</p>
431      */
SetSubtype(const StudioComponentSubtype & value)432     inline void SetSubtype(const StudioComponentSubtype& value) { m_subtypeHasBeenSet = true; m_subtype = value; }
433 
434     /**
435      * <p>The specific subtype of a studio component.</p>
436      */
SetSubtype(StudioComponentSubtype && value)437     inline void SetSubtype(StudioComponentSubtype&& value) { m_subtypeHasBeenSet = true; m_subtype = std::move(value); }
438 
439     /**
440      * <p>The specific subtype of a studio component.</p>
441      */
WithSubtype(const StudioComponentSubtype & value)442     inline CreateStudioComponentRequest& WithSubtype(const StudioComponentSubtype& value) { SetSubtype(value); return *this;}
443 
444     /**
445      * <p>The specific subtype of a studio component.</p>
446      */
WithSubtype(StudioComponentSubtype && value)447     inline CreateStudioComponentRequest& WithSubtype(StudioComponentSubtype&& value) { SetSubtype(std::move(value)); return *this;}
448 
449 
450     /**
451      * <p>A collection of labels, in the form of key:value pairs, that apply to this
452      * resource.</p>
453      */
GetTags()454     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
455 
456     /**
457      * <p>A collection of labels, in the form of key:value pairs, that apply to this
458      * resource.</p>
459      */
TagsHasBeenSet()460     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
461 
462     /**
463      * <p>A collection of labels, in the form of key:value pairs, that apply to this
464      * resource.</p>
465      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)466     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
467 
468     /**
469      * <p>A collection of labels, in the form of key:value pairs, that apply to this
470      * resource.</p>
471      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)472     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
473 
474     /**
475      * <p>A collection of labels, in the form of key:value pairs, that apply to this
476      * resource.</p>
477      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)478     inline CreateStudioComponentRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
479 
480     /**
481      * <p>A collection of labels, in the form of key:value pairs, that apply to this
482      * resource.</p>
483      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)484     inline CreateStudioComponentRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
485 
486     /**
487      * <p>A collection of labels, in the form of key:value pairs, that apply to this
488      * resource.</p>
489      */
AddTags(const Aws::String & key,const Aws::String & value)490     inline CreateStudioComponentRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
491 
492     /**
493      * <p>A collection of labels, in the form of key:value pairs, that apply to this
494      * resource.</p>
495      */
AddTags(Aws::String && key,const Aws::String & value)496     inline CreateStudioComponentRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
497 
498     /**
499      * <p>A collection of labels, in the form of key:value pairs, that apply to this
500      * resource.</p>
501      */
AddTags(const Aws::String & key,Aws::String && value)502     inline CreateStudioComponentRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
503 
504     /**
505      * <p>A collection of labels, in the form of key:value pairs, that apply to this
506      * resource.</p>
507      */
AddTags(Aws::String && key,Aws::String && value)508     inline CreateStudioComponentRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
509 
510     /**
511      * <p>A collection of labels, in the form of key:value pairs, that apply to this
512      * resource.</p>
513      */
AddTags(const char * key,Aws::String && value)514     inline CreateStudioComponentRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
515 
516     /**
517      * <p>A collection of labels, in the form of key:value pairs, that apply to this
518      * resource.</p>
519      */
AddTags(Aws::String && key,const char * value)520     inline CreateStudioComponentRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
521 
522     /**
523      * <p>A collection of labels, in the form of key:value pairs, that apply to this
524      * resource.</p>
525      */
AddTags(const char * key,const char * value)526     inline CreateStudioComponentRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
527 
528 
529     /**
530      * <p>The type of the studio component.</p>
531      */
GetType()532     inline const StudioComponentType& GetType() const{ return m_type; }
533 
534     /**
535      * <p>The type of the studio component.</p>
536      */
TypeHasBeenSet()537     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
538 
539     /**
540      * <p>The type of the studio component.</p>
541      */
SetType(const StudioComponentType & value)542     inline void SetType(const StudioComponentType& value) { m_typeHasBeenSet = true; m_type = value; }
543 
544     /**
545      * <p>The type of the studio component.</p>
546      */
SetType(StudioComponentType && value)547     inline void SetType(StudioComponentType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
548 
549     /**
550      * <p>The type of the studio component.</p>
551      */
WithType(const StudioComponentType & value)552     inline CreateStudioComponentRequest& WithType(const StudioComponentType& value) { SetType(value); return *this;}
553 
554     /**
555      * <p>The type of the studio component.</p>
556      */
WithType(StudioComponentType && value)557     inline CreateStudioComponentRequest& WithType(StudioComponentType&& value) { SetType(std::move(value)); return *this;}
558 
559   private:
560 
561     Aws::String m_clientToken;
562     bool m_clientTokenHasBeenSet;
563 
564     StudioComponentConfiguration m_configuration;
565     bool m_configurationHasBeenSet;
566 
567     Aws::String m_description;
568     bool m_descriptionHasBeenSet;
569 
570     Aws::Vector<Aws::String> m_ec2SecurityGroupIds;
571     bool m_ec2SecurityGroupIdsHasBeenSet;
572 
573     Aws::Vector<StudioComponentInitializationScript> m_initializationScripts;
574     bool m_initializationScriptsHasBeenSet;
575 
576     Aws::String m_name;
577     bool m_nameHasBeenSet;
578 
579     Aws::Vector<ScriptParameterKeyValue> m_scriptParameters;
580     bool m_scriptParametersHasBeenSet;
581 
582     Aws::String m_studioId;
583     bool m_studioIdHasBeenSet;
584 
585     StudioComponentSubtype m_subtype;
586     bool m_subtypeHasBeenSet;
587 
588     Aws::Map<Aws::String, Aws::String> m_tags;
589     bool m_tagsHasBeenSet;
590 
591     StudioComponentType m_type;
592     bool m_typeHasBeenSet;
593   };
594 
595 } // namespace Model
596 } // namespace NimbleStudio
597 } // namespace Aws
598