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/model/LaunchProfileInitializationActiveDirectory.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/nimble/model/LaunchProfilePlatform.h>
12 #include <aws/nimble/model/LaunchProfileInitializationScript.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace NimbleStudio
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/nimble-2020-08-01/LaunchProfileInitialization">AWS
33    * API Reference</a></p>
34    */
35   class AWS_NIMBLESTUDIO_API LaunchProfileInitialization
36   {
37   public:
38     LaunchProfileInitialization();
39     LaunchProfileInitialization(Aws::Utils::Json::JsonView jsonValue);
40     LaunchProfileInitialization& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>A LaunchProfileInitializationActiveDirectory resource.</p>
46      */
GetActiveDirectory()47     inline const LaunchProfileInitializationActiveDirectory& GetActiveDirectory() const{ return m_activeDirectory; }
48 
49     /**
50      * <p>A LaunchProfileInitializationActiveDirectory resource.</p>
51      */
ActiveDirectoryHasBeenSet()52     inline bool ActiveDirectoryHasBeenSet() const { return m_activeDirectoryHasBeenSet; }
53 
54     /**
55      * <p>A LaunchProfileInitializationActiveDirectory resource.</p>
56      */
SetActiveDirectory(const LaunchProfileInitializationActiveDirectory & value)57     inline void SetActiveDirectory(const LaunchProfileInitializationActiveDirectory& value) { m_activeDirectoryHasBeenSet = true; m_activeDirectory = value; }
58 
59     /**
60      * <p>A LaunchProfileInitializationActiveDirectory resource.</p>
61      */
SetActiveDirectory(LaunchProfileInitializationActiveDirectory && value)62     inline void SetActiveDirectory(LaunchProfileInitializationActiveDirectory&& value) { m_activeDirectoryHasBeenSet = true; m_activeDirectory = std::move(value); }
63 
64     /**
65      * <p>A LaunchProfileInitializationActiveDirectory resource.</p>
66      */
WithActiveDirectory(const LaunchProfileInitializationActiveDirectory & value)67     inline LaunchProfileInitialization& WithActiveDirectory(const LaunchProfileInitializationActiveDirectory& value) { SetActiveDirectory(value); return *this;}
68 
69     /**
70      * <p>A LaunchProfileInitializationActiveDirectory resource.</p>
71      */
WithActiveDirectory(LaunchProfileInitializationActiveDirectory && value)72     inline LaunchProfileInitialization& WithActiveDirectory(LaunchProfileInitializationActiveDirectory&& value) { SetActiveDirectory(std::move(value)); return *this;}
73 
74 
75     /**
76      * <p>The EC2 security groups that control access to the studio component.</p>
77      */
GetEc2SecurityGroupIds()78     inline const Aws::Vector<Aws::String>& GetEc2SecurityGroupIds() const{ return m_ec2SecurityGroupIds; }
79 
80     /**
81      * <p>The EC2 security groups that control access to the studio component.</p>
82      */
Ec2SecurityGroupIdsHasBeenSet()83     inline bool Ec2SecurityGroupIdsHasBeenSet() const { return m_ec2SecurityGroupIdsHasBeenSet; }
84 
85     /**
86      * <p>The EC2 security groups that control access to the studio component.</p>
87      */
SetEc2SecurityGroupIds(const Aws::Vector<Aws::String> & value)88     inline void SetEc2SecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = value; }
89 
90     /**
91      * <p>The EC2 security groups that control access to the studio component.</p>
92      */
SetEc2SecurityGroupIds(Aws::Vector<Aws::String> && value)93     inline void SetEc2SecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = std::move(value); }
94 
95     /**
96      * <p>The EC2 security groups that control access to the studio component.</p>
97      */
WithEc2SecurityGroupIds(const Aws::Vector<Aws::String> & value)98     inline LaunchProfileInitialization& WithEc2SecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetEc2SecurityGroupIds(value); return *this;}
99 
100     /**
101      * <p>The EC2 security groups that control access to the studio component.</p>
102      */
WithEc2SecurityGroupIds(Aws::Vector<Aws::String> && value)103     inline LaunchProfileInitialization& WithEc2SecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetEc2SecurityGroupIds(std::move(value)); return *this;}
104 
105     /**
106      * <p>The EC2 security groups that control access to the studio component.</p>
107      */
AddEc2SecurityGroupIds(const Aws::String & value)108     inline LaunchProfileInitialization& AddEc2SecurityGroupIds(const Aws::String& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; }
109 
110     /**
111      * <p>The EC2 security groups that control access to the studio component.</p>
112      */
AddEc2SecurityGroupIds(Aws::String && value)113     inline LaunchProfileInitialization& AddEc2SecurityGroupIds(Aws::String&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(std::move(value)); return *this; }
114 
115     /**
116      * <p>The EC2 security groups that control access to the studio component.</p>
117      */
AddEc2SecurityGroupIds(const char * value)118     inline LaunchProfileInitialization& AddEc2SecurityGroupIds(const char* value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; }
119 
120 
121     /**
122      * <p>The launch profile ID.</p>
123      */
GetLaunchProfileId()124     inline const Aws::String& GetLaunchProfileId() const{ return m_launchProfileId; }
125 
126     /**
127      * <p>The launch profile ID.</p>
128      */
LaunchProfileIdHasBeenSet()129     inline bool LaunchProfileIdHasBeenSet() const { return m_launchProfileIdHasBeenSet; }
130 
131     /**
132      * <p>The launch profile ID.</p>
133      */
SetLaunchProfileId(const Aws::String & value)134     inline void SetLaunchProfileId(const Aws::String& value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId = value; }
135 
136     /**
137      * <p>The launch profile ID.</p>
138      */
SetLaunchProfileId(Aws::String && value)139     inline void SetLaunchProfileId(Aws::String&& value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId = std::move(value); }
140 
141     /**
142      * <p>The launch profile ID.</p>
143      */
SetLaunchProfileId(const char * value)144     inline void SetLaunchProfileId(const char* value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId.assign(value); }
145 
146     /**
147      * <p>The launch profile ID.</p>
148      */
WithLaunchProfileId(const Aws::String & value)149     inline LaunchProfileInitialization& WithLaunchProfileId(const Aws::String& value) { SetLaunchProfileId(value); return *this;}
150 
151     /**
152      * <p>The launch profile ID.</p>
153      */
WithLaunchProfileId(Aws::String && value)154     inline LaunchProfileInitialization& WithLaunchProfileId(Aws::String&& value) { SetLaunchProfileId(std::move(value)); return *this;}
155 
156     /**
157      * <p>The launch profile ID.</p>
158      */
WithLaunchProfileId(const char * value)159     inline LaunchProfileInitialization& WithLaunchProfileId(const char* value) { SetLaunchProfileId(value); return *this;}
160 
161 
162     /**
163      * <p>The version number of the protocol that is used by the launch profile. The
164      * only valid version is "2021-03-31".</p>
165      */
GetLaunchProfileProtocolVersion()166     inline const Aws::String& GetLaunchProfileProtocolVersion() const{ return m_launchProfileProtocolVersion; }
167 
168     /**
169      * <p>The version number of the protocol that is used by the launch profile. The
170      * only valid version is "2021-03-31".</p>
171      */
LaunchProfileProtocolVersionHasBeenSet()172     inline bool LaunchProfileProtocolVersionHasBeenSet() const { return m_launchProfileProtocolVersionHasBeenSet; }
173 
174     /**
175      * <p>The version number of the protocol that is used by the launch profile. The
176      * only valid version is "2021-03-31".</p>
177      */
SetLaunchProfileProtocolVersion(const Aws::String & value)178     inline void SetLaunchProfileProtocolVersion(const Aws::String& value) { m_launchProfileProtocolVersionHasBeenSet = true; m_launchProfileProtocolVersion = value; }
179 
180     /**
181      * <p>The version number of the protocol that is used by the launch profile. The
182      * only valid version is "2021-03-31".</p>
183      */
SetLaunchProfileProtocolVersion(Aws::String && value)184     inline void SetLaunchProfileProtocolVersion(Aws::String&& value) { m_launchProfileProtocolVersionHasBeenSet = true; m_launchProfileProtocolVersion = std::move(value); }
185 
186     /**
187      * <p>The version number of the protocol that is used by the launch profile. The
188      * only valid version is "2021-03-31".</p>
189      */
SetLaunchProfileProtocolVersion(const char * value)190     inline void SetLaunchProfileProtocolVersion(const char* value) { m_launchProfileProtocolVersionHasBeenSet = true; m_launchProfileProtocolVersion.assign(value); }
191 
192     /**
193      * <p>The version number of the protocol that is used by the launch profile. The
194      * only valid version is "2021-03-31".</p>
195      */
WithLaunchProfileProtocolVersion(const Aws::String & value)196     inline LaunchProfileInitialization& WithLaunchProfileProtocolVersion(const Aws::String& value) { SetLaunchProfileProtocolVersion(value); return *this;}
197 
198     /**
199      * <p>The version number of the protocol that is used by the launch profile. The
200      * only valid version is "2021-03-31".</p>
201      */
WithLaunchProfileProtocolVersion(Aws::String && value)202     inline LaunchProfileInitialization& WithLaunchProfileProtocolVersion(Aws::String&& value) { SetLaunchProfileProtocolVersion(std::move(value)); return *this;}
203 
204     /**
205      * <p>The version number of the protocol that is used by the launch profile. The
206      * only valid version is "2021-03-31".</p>
207      */
WithLaunchProfileProtocolVersion(const char * value)208     inline LaunchProfileInitialization& WithLaunchProfileProtocolVersion(const char* value) { SetLaunchProfileProtocolVersion(value); return *this;}
209 
210 
211     /**
212      * <p>The launch purpose.</p>
213      */
GetLaunchPurpose()214     inline const Aws::String& GetLaunchPurpose() const{ return m_launchPurpose; }
215 
216     /**
217      * <p>The launch purpose.</p>
218      */
LaunchPurposeHasBeenSet()219     inline bool LaunchPurposeHasBeenSet() const { return m_launchPurposeHasBeenSet; }
220 
221     /**
222      * <p>The launch purpose.</p>
223      */
SetLaunchPurpose(const Aws::String & value)224     inline void SetLaunchPurpose(const Aws::String& value) { m_launchPurposeHasBeenSet = true; m_launchPurpose = value; }
225 
226     /**
227      * <p>The launch purpose.</p>
228      */
SetLaunchPurpose(Aws::String && value)229     inline void SetLaunchPurpose(Aws::String&& value) { m_launchPurposeHasBeenSet = true; m_launchPurpose = std::move(value); }
230 
231     /**
232      * <p>The launch purpose.</p>
233      */
SetLaunchPurpose(const char * value)234     inline void SetLaunchPurpose(const char* value) { m_launchPurposeHasBeenSet = true; m_launchPurpose.assign(value); }
235 
236     /**
237      * <p>The launch purpose.</p>
238      */
WithLaunchPurpose(const Aws::String & value)239     inline LaunchProfileInitialization& WithLaunchPurpose(const Aws::String& value) { SetLaunchPurpose(value); return *this;}
240 
241     /**
242      * <p>The launch purpose.</p>
243      */
WithLaunchPurpose(Aws::String && value)244     inline LaunchProfileInitialization& WithLaunchPurpose(Aws::String&& value) { SetLaunchPurpose(std::move(value)); return *this;}
245 
246     /**
247      * <p>The launch purpose.</p>
248      */
WithLaunchPurpose(const char * value)249     inline LaunchProfileInitialization& WithLaunchPurpose(const char* value) { SetLaunchPurpose(value); return *this;}
250 
251 
252     /**
253      * <p>The name for the launch profile.</p>
254      */
GetName()255     inline const Aws::String& GetName() const{ return m_name; }
256 
257     /**
258      * <p>The name for the launch profile.</p>
259      */
NameHasBeenSet()260     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
261 
262     /**
263      * <p>The name for the launch profile.</p>
264      */
SetName(const Aws::String & value)265     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
266 
267     /**
268      * <p>The name for the launch profile.</p>
269      */
SetName(Aws::String && value)270     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
271 
272     /**
273      * <p>The name for the launch profile.</p>
274      */
SetName(const char * value)275     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
276 
277     /**
278      * <p>The name for the launch profile.</p>
279      */
WithName(const Aws::String & value)280     inline LaunchProfileInitialization& WithName(const Aws::String& value) { SetName(value); return *this;}
281 
282     /**
283      * <p>The name for the launch profile.</p>
284      */
WithName(Aws::String && value)285     inline LaunchProfileInitialization& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
286 
287     /**
288      * <p>The name for the launch profile.</p>
289      */
WithName(const char * value)290     inline LaunchProfileInitialization& WithName(const char* value) { SetName(value); return *this;}
291 
292 
293     /**
294      * <p>The platform of the launch platform, either WINDOWS or LINUX.</p>
295      */
GetPlatform()296     inline const LaunchProfilePlatform& GetPlatform() const{ return m_platform; }
297 
298     /**
299      * <p>The platform of the launch platform, either WINDOWS or LINUX.</p>
300      */
PlatformHasBeenSet()301     inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; }
302 
303     /**
304      * <p>The platform of the launch platform, either WINDOWS or LINUX.</p>
305      */
SetPlatform(const LaunchProfilePlatform & value)306     inline void SetPlatform(const LaunchProfilePlatform& value) { m_platformHasBeenSet = true; m_platform = value; }
307 
308     /**
309      * <p>The platform of the launch platform, either WINDOWS or LINUX.</p>
310      */
SetPlatform(LaunchProfilePlatform && value)311     inline void SetPlatform(LaunchProfilePlatform&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); }
312 
313     /**
314      * <p>The platform of the launch platform, either WINDOWS or LINUX.</p>
315      */
WithPlatform(const LaunchProfilePlatform & value)316     inline LaunchProfileInitialization& WithPlatform(const LaunchProfilePlatform& value) { SetPlatform(value); return *this;}
317 
318     /**
319      * <p>The platform of the launch platform, either WINDOWS or LINUX.</p>
320      */
WithPlatform(LaunchProfilePlatform && value)321     inline LaunchProfileInitialization& WithPlatform(LaunchProfilePlatform&& value) { SetPlatform(std::move(value)); return *this;}
322 
323 
324     /**
325      * <p>The system initializtion scripts.</p>
326      */
GetSystemInitializationScripts()327     inline const Aws::Vector<LaunchProfileInitializationScript>& GetSystemInitializationScripts() const{ return m_systemInitializationScripts; }
328 
329     /**
330      * <p>The system initializtion scripts.</p>
331      */
SystemInitializationScriptsHasBeenSet()332     inline bool SystemInitializationScriptsHasBeenSet() const { return m_systemInitializationScriptsHasBeenSet; }
333 
334     /**
335      * <p>The system initializtion scripts.</p>
336      */
SetSystemInitializationScripts(const Aws::Vector<LaunchProfileInitializationScript> & value)337     inline void SetSystemInitializationScripts(const Aws::Vector<LaunchProfileInitializationScript>& value) { m_systemInitializationScriptsHasBeenSet = true; m_systemInitializationScripts = value; }
338 
339     /**
340      * <p>The system initializtion scripts.</p>
341      */
SetSystemInitializationScripts(Aws::Vector<LaunchProfileInitializationScript> && value)342     inline void SetSystemInitializationScripts(Aws::Vector<LaunchProfileInitializationScript>&& value) { m_systemInitializationScriptsHasBeenSet = true; m_systemInitializationScripts = std::move(value); }
343 
344     /**
345      * <p>The system initializtion scripts.</p>
346      */
WithSystemInitializationScripts(const Aws::Vector<LaunchProfileInitializationScript> & value)347     inline LaunchProfileInitialization& WithSystemInitializationScripts(const Aws::Vector<LaunchProfileInitializationScript>& value) { SetSystemInitializationScripts(value); return *this;}
348 
349     /**
350      * <p>The system initializtion scripts.</p>
351      */
WithSystemInitializationScripts(Aws::Vector<LaunchProfileInitializationScript> && value)352     inline LaunchProfileInitialization& WithSystemInitializationScripts(Aws::Vector<LaunchProfileInitializationScript>&& value) { SetSystemInitializationScripts(std::move(value)); return *this;}
353 
354     /**
355      * <p>The system initializtion scripts.</p>
356      */
AddSystemInitializationScripts(const LaunchProfileInitializationScript & value)357     inline LaunchProfileInitialization& AddSystemInitializationScripts(const LaunchProfileInitializationScript& value) { m_systemInitializationScriptsHasBeenSet = true; m_systemInitializationScripts.push_back(value); return *this; }
358 
359     /**
360      * <p>The system initializtion scripts.</p>
361      */
AddSystemInitializationScripts(LaunchProfileInitializationScript && value)362     inline LaunchProfileInitialization& AddSystemInitializationScripts(LaunchProfileInitializationScript&& value) { m_systemInitializationScriptsHasBeenSet = true; m_systemInitializationScripts.push_back(std::move(value)); return *this; }
363 
364 
365     /**
366      * <p>The user initializtion scripts.</p>
367      */
GetUserInitializationScripts()368     inline const Aws::Vector<LaunchProfileInitializationScript>& GetUserInitializationScripts() const{ return m_userInitializationScripts; }
369 
370     /**
371      * <p>The user initializtion scripts.</p>
372      */
UserInitializationScriptsHasBeenSet()373     inline bool UserInitializationScriptsHasBeenSet() const { return m_userInitializationScriptsHasBeenSet; }
374 
375     /**
376      * <p>The user initializtion scripts.</p>
377      */
SetUserInitializationScripts(const Aws::Vector<LaunchProfileInitializationScript> & value)378     inline void SetUserInitializationScripts(const Aws::Vector<LaunchProfileInitializationScript>& value) { m_userInitializationScriptsHasBeenSet = true; m_userInitializationScripts = value; }
379 
380     /**
381      * <p>The user initializtion scripts.</p>
382      */
SetUserInitializationScripts(Aws::Vector<LaunchProfileInitializationScript> && value)383     inline void SetUserInitializationScripts(Aws::Vector<LaunchProfileInitializationScript>&& value) { m_userInitializationScriptsHasBeenSet = true; m_userInitializationScripts = std::move(value); }
384 
385     /**
386      * <p>The user initializtion scripts.</p>
387      */
WithUserInitializationScripts(const Aws::Vector<LaunchProfileInitializationScript> & value)388     inline LaunchProfileInitialization& WithUserInitializationScripts(const Aws::Vector<LaunchProfileInitializationScript>& value) { SetUserInitializationScripts(value); return *this;}
389 
390     /**
391      * <p>The user initializtion scripts.</p>
392      */
WithUserInitializationScripts(Aws::Vector<LaunchProfileInitializationScript> && value)393     inline LaunchProfileInitialization& WithUserInitializationScripts(Aws::Vector<LaunchProfileInitializationScript>&& value) { SetUserInitializationScripts(std::move(value)); return *this;}
394 
395     /**
396      * <p>The user initializtion scripts.</p>
397      */
AddUserInitializationScripts(const LaunchProfileInitializationScript & value)398     inline LaunchProfileInitialization& AddUserInitializationScripts(const LaunchProfileInitializationScript& value) { m_userInitializationScriptsHasBeenSet = true; m_userInitializationScripts.push_back(value); return *this; }
399 
400     /**
401      * <p>The user initializtion scripts.</p>
402      */
AddUserInitializationScripts(LaunchProfileInitializationScript && value)403     inline LaunchProfileInitialization& AddUserInitializationScripts(LaunchProfileInitializationScript&& value) { m_userInitializationScriptsHasBeenSet = true; m_userInitializationScripts.push_back(std::move(value)); return *this; }
404 
405   private:
406 
407     LaunchProfileInitializationActiveDirectory m_activeDirectory;
408     bool m_activeDirectoryHasBeenSet;
409 
410     Aws::Vector<Aws::String> m_ec2SecurityGroupIds;
411     bool m_ec2SecurityGroupIdsHasBeenSet;
412 
413     Aws::String m_launchProfileId;
414     bool m_launchProfileIdHasBeenSet;
415 
416     Aws::String m_launchProfileProtocolVersion;
417     bool m_launchProfileProtocolVersionHasBeenSet;
418 
419     Aws::String m_launchPurpose;
420     bool m_launchPurposeHasBeenSet;
421 
422     Aws::String m_name;
423     bool m_nameHasBeenSet;
424 
425     LaunchProfilePlatform m_platform;
426     bool m_platformHasBeenSet;
427 
428     Aws::Vector<LaunchProfileInitializationScript> m_systemInitializationScripts;
429     bool m_systemInitializationScriptsHasBeenSet;
430 
431     Aws::Vector<LaunchProfileInitializationScript> m_userInitializationScripts;
432     bool m_userInitializationScriptsHasBeenSet;
433   };
434 
435 } // namespace Model
436 } // namespace NimbleStudio
437 } // namespace Aws
438