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/robomaker/RoboMaker_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSMap.h>
10 #include <aws/robomaker/model/PortForwardingConfig.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace RoboMaker
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Information about a launch configuration.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/robomaker-2018-06-29/LaunchConfig">AWS
32    * API Reference</a></p>
33    */
34   class AWS_ROBOMAKER_API LaunchConfig
35   {
36   public:
37     LaunchConfig();
38     LaunchConfig(Aws::Utils::Json::JsonView jsonValue);
39     LaunchConfig& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The package name.</p>
45      */
GetPackageName()46     inline const Aws::String& GetPackageName() const{ return m_packageName; }
47 
48     /**
49      * <p>The package name.</p>
50      */
PackageNameHasBeenSet()51     inline bool PackageNameHasBeenSet() const { return m_packageNameHasBeenSet; }
52 
53     /**
54      * <p>The package name.</p>
55      */
SetPackageName(const Aws::String & value)56     inline void SetPackageName(const Aws::String& value) { m_packageNameHasBeenSet = true; m_packageName = value; }
57 
58     /**
59      * <p>The package name.</p>
60      */
SetPackageName(Aws::String && value)61     inline void SetPackageName(Aws::String&& value) { m_packageNameHasBeenSet = true; m_packageName = std::move(value); }
62 
63     /**
64      * <p>The package name.</p>
65      */
SetPackageName(const char * value)66     inline void SetPackageName(const char* value) { m_packageNameHasBeenSet = true; m_packageName.assign(value); }
67 
68     /**
69      * <p>The package name.</p>
70      */
WithPackageName(const Aws::String & value)71     inline LaunchConfig& WithPackageName(const Aws::String& value) { SetPackageName(value); return *this;}
72 
73     /**
74      * <p>The package name.</p>
75      */
WithPackageName(Aws::String && value)76     inline LaunchConfig& WithPackageName(Aws::String&& value) { SetPackageName(std::move(value)); return *this;}
77 
78     /**
79      * <p>The package name.</p>
80      */
WithPackageName(const char * value)81     inline LaunchConfig& WithPackageName(const char* value) { SetPackageName(value); return *this;}
82 
83 
84     /**
85      * <p>The launch file name.</p>
86      */
GetLaunchFile()87     inline const Aws::String& GetLaunchFile() const{ return m_launchFile; }
88 
89     /**
90      * <p>The launch file name.</p>
91      */
LaunchFileHasBeenSet()92     inline bool LaunchFileHasBeenSet() const { return m_launchFileHasBeenSet; }
93 
94     /**
95      * <p>The launch file name.</p>
96      */
SetLaunchFile(const Aws::String & value)97     inline void SetLaunchFile(const Aws::String& value) { m_launchFileHasBeenSet = true; m_launchFile = value; }
98 
99     /**
100      * <p>The launch file name.</p>
101      */
SetLaunchFile(Aws::String && value)102     inline void SetLaunchFile(Aws::String&& value) { m_launchFileHasBeenSet = true; m_launchFile = std::move(value); }
103 
104     /**
105      * <p>The launch file name.</p>
106      */
SetLaunchFile(const char * value)107     inline void SetLaunchFile(const char* value) { m_launchFileHasBeenSet = true; m_launchFile.assign(value); }
108 
109     /**
110      * <p>The launch file name.</p>
111      */
WithLaunchFile(const Aws::String & value)112     inline LaunchConfig& WithLaunchFile(const Aws::String& value) { SetLaunchFile(value); return *this;}
113 
114     /**
115      * <p>The launch file name.</p>
116      */
WithLaunchFile(Aws::String && value)117     inline LaunchConfig& WithLaunchFile(Aws::String&& value) { SetLaunchFile(std::move(value)); return *this;}
118 
119     /**
120      * <p>The launch file name.</p>
121      */
WithLaunchFile(const char * value)122     inline LaunchConfig& WithLaunchFile(const char* value) { SetLaunchFile(value); return *this;}
123 
124 
125     /**
126      * <p>The environment variables for the application launch.</p>
127      */
GetEnvironmentVariables()128     inline const Aws::Map<Aws::String, Aws::String>& GetEnvironmentVariables() const{ return m_environmentVariables; }
129 
130     /**
131      * <p>The environment variables for the application launch.</p>
132      */
EnvironmentVariablesHasBeenSet()133     inline bool EnvironmentVariablesHasBeenSet() const { return m_environmentVariablesHasBeenSet; }
134 
135     /**
136      * <p>The environment variables for the application launch.</p>
137      */
SetEnvironmentVariables(const Aws::Map<Aws::String,Aws::String> & value)138     inline void SetEnvironmentVariables(const Aws::Map<Aws::String, Aws::String>& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables = value; }
139 
140     /**
141      * <p>The environment variables for the application launch.</p>
142      */
SetEnvironmentVariables(Aws::Map<Aws::String,Aws::String> && value)143     inline void SetEnvironmentVariables(Aws::Map<Aws::String, Aws::String>&& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables = std::move(value); }
144 
145     /**
146      * <p>The environment variables for the application launch.</p>
147      */
WithEnvironmentVariables(const Aws::Map<Aws::String,Aws::String> & value)148     inline LaunchConfig& WithEnvironmentVariables(const Aws::Map<Aws::String, Aws::String>& value) { SetEnvironmentVariables(value); return *this;}
149 
150     /**
151      * <p>The environment variables for the application launch.</p>
152      */
WithEnvironmentVariables(Aws::Map<Aws::String,Aws::String> && value)153     inline LaunchConfig& WithEnvironmentVariables(Aws::Map<Aws::String, Aws::String>&& value) { SetEnvironmentVariables(std::move(value)); return *this;}
154 
155     /**
156      * <p>The environment variables for the application launch.</p>
157      */
AddEnvironmentVariables(const Aws::String & key,const Aws::String & value)158     inline LaunchConfig& AddEnvironmentVariables(const Aws::String& key, const Aws::String& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.emplace(key, value); return *this; }
159 
160     /**
161      * <p>The environment variables for the application launch.</p>
162      */
AddEnvironmentVariables(Aws::String && key,const Aws::String & value)163     inline LaunchConfig& AddEnvironmentVariables(Aws::String&& key, const Aws::String& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.emplace(std::move(key), value); return *this; }
164 
165     /**
166      * <p>The environment variables for the application launch.</p>
167      */
AddEnvironmentVariables(const Aws::String & key,Aws::String && value)168     inline LaunchConfig& AddEnvironmentVariables(const Aws::String& key, Aws::String&& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.emplace(key, std::move(value)); return *this; }
169 
170     /**
171      * <p>The environment variables for the application launch.</p>
172      */
AddEnvironmentVariables(Aws::String && key,Aws::String && value)173     inline LaunchConfig& AddEnvironmentVariables(Aws::String&& key, Aws::String&& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.emplace(std::move(key), std::move(value)); return *this; }
174 
175     /**
176      * <p>The environment variables for the application launch.</p>
177      */
AddEnvironmentVariables(const char * key,Aws::String && value)178     inline LaunchConfig& AddEnvironmentVariables(const char* key, Aws::String&& value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.emplace(key, std::move(value)); return *this; }
179 
180     /**
181      * <p>The environment variables for the application launch.</p>
182      */
AddEnvironmentVariables(Aws::String && key,const char * value)183     inline LaunchConfig& AddEnvironmentVariables(Aws::String&& key, const char* value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.emplace(std::move(key), value); return *this; }
184 
185     /**
186      * <p>The environment variables for the application launch.</p>
187      */
AddEnvironmentVariables(const char * key,const char * value)188     inline LaunchConfig& AddEnvironmentVariables(const char* key, const char* value) { m_environmentVariablesHasBeenSet = true; m_environmentVariables.emplace(key, value); return *this; }
189 
190 
191     /**
192      * <p>The port forwarding configuration.</p>
193      */
GetPortForwardingConfig()194     inline const PortForwardingConfig& GetPortForwardingConfig() const{ return m_portForwardingConfig; }
195 
196     /**
197      * <p>The port forwarding configuration.</p>
198      */
PortForwardingConfigHasBeenSet()199     inline bool PortForwardingConfigHasBeenSet() const { return m_portForwardingConfigHasBeenSet; }
200 
201     /**
202      * <p>The port forwarding configuration.</p>
203      */
SetPortForwardingConfig(const PortForwardingConfig & value)204     inline void SetPortForwardingConfig(const PortForwardingConfig& value) { m_portForwardingConfigHasBeenSet = true; m_portForwardingConfig = value; }
205 
206     /**
207      * <p>The port forwarding configuration.</p>
208      */
SetPortForwardingConfig(PortForwardingConfig && value)209     inline void SetPortForwardingConfig(PortForwardingConfig&& value) { m_portForwardingConfigHasBeenSet = true; m_portForwardingConfig = std::move(value); }
210 
211     /**
212      * <p>The port forwarding configuration.</p>
213      */
WithPortForwardingConfig(const PortForwardingConfig & value)214     inline LaunchConfig& WithPortForwardingConfig(const PortForwardingConfig& value) { SetPortForwardingConfig(value); return *this;}
215 
216     /**
217      * <p>The port forwarding configuration.</p>
218      */
WithPortForwardingConfig(PortForwardingConfig && value)219     inline LaunchConfig& WithPortForwardingConfig(PortForwardingConfig&& value) { SetPortForwardingConfig(std::move(value)); return *this;}
220 
221 
222     /**
223      * <p>Boolean indicating whether a streaming session will be configured for the
224      * application. If <code>True</code>, AWS RoboMaker will configure a connection so
225      * you can interact with your application as it is running in the simulation. You
226      * must configure and launch the component. It must have a graphical user
227      * interface. </p>
228      */
GetStreamUI()229     inline bool GetStreamUI() const{ return m_streamUI; }
230 
231     /**
232      * <p>Boolean indicating whether a streaming session will be configured for the
233      * application. If <code>True</code>, AWS RoboMaker will configure a connection so
234      * you can interact with your application as it is running in the simulation. You
235      * must configure and launch the component. It must have a graphical user
236      * interface. </p>
237      */
StreamUIHasBeenSet()238     inline bool StreamUIHasBeenSet() const { return m_streamUIHasBeenSet; }
239 
240     /**
241      * <p>Boolean indicating whether a streaming session will be configured for the
242      * application. If <code>True</code>, AWS RoboMaker will configure a connection so
243      * you can interact with your application as it is running in the simulation. You
244      * must configure and launch the component. It must have a graphical user
245      * interface. </p>
246      */
SetStreamUI(bool value)247     inline void SetStreamUI(bool value) { m_streamUIHasBeenSet = true; m_streamUI = value; }
248 
249     /**
250      * <p>Boolean indicating whether a streaming session will be configured for the
251      * application. If <code>True</code>, AWS RoboMaker will configure a connection so
252      * you can interact with your application as it is running in the simulation. You
253      * must configure and launch the component. It must have a graphical user
254      * interface. </p>
255      */
WithStreamUI(bool value)256     inline LaunchConfig& WithStreamUI(bool value) { SetStreamUI(value); return *this;}
257 
258 
259     /**
260      * <p>If you've specified <code>General</code> as the value for your
261      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
262      * commands for your container image.</p> <p>If you've specified
263      * <code>SimulationRuntime</code> as the value for your
264      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
265      * of commands for your container image.</p>
266      */
GetCommand()267     inline const Aws::Vector<Aws::String>& GetCommand() const{ return m_command; }
268 
269     /**
270      * <p>If you've specified <code>General</code> as the value for your
271      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
272      * commands for your container image.</p> <p>If you've specified
273      * <code>SimulationRuntime</code> as the value for your
274      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
275      * of commands for your container image.</p>
276      */
CommandHasBeenSet()277     inline bool CommandHasBeenSet() const { return m_commandHasBeenSet; }
278 
279     /**
280      * <p>If you've specified <code>General</code> as the value for your
281      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
282      * commands for your container image.</p> <p>If you've specified
283      * <code>SimulationRuntime</code> as the value for your
284      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
285      * of commands for your container image.</p>
286      */
SetCommand(const Aws::Vector<Aws::String> & value)287     inline void SetCommand(const Aws::Vector<Aws::String>& value) { m_commandHasBeenSet = true; m_command = value; }
288 
289     /**
290      * <p>If you've specified <code>General</code> as the value for your
291      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
292      * commands for your container image.</p> <p>If you've specified
293      * <code>SimulationRuntime</code> as the value for your
294      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
295      * of commands for your container image.</p>
296      */
SetCommand(Aws::Vector<Aws::String> && value)297     inline void SetCommand(Aws::Vector<Aws::String>&& value) { m_commandHasBeenSet = true; m_command = std::move(value); }
298 
299     /**
300      * <p>If you've specified <code>General</code> as the value for your
301      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
302      * commands for your container image.</p> <p>If you've specified
303      * <code>SimulationRuntime</code> as the value for your
304      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
305      * of commands for your container image.</p>
306      */
WithCommand(const Aws::Vector<Aws::String> & value)307     inline LaunchConfig& WithCommand(const Aws::Vector<Aws::String>& value) { SetCommand(value); return *this;}
308 
309     /**
310      * <p>If you've specified <code>General</code> as the value for your
311      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
312      * commands for your container image.</p> <p>If you've specified
313      * <code>SimulationRuntime</code> as the value for your
314      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
315      * of commands for your container image.</p>
316      */
WithCommand(Aws::Vector<Aws::String> && value)317     inline LaunchConfig& WithCommand(Aws::Vector<Aws::String>&& value) { SetCommand(std::move(value)); return *this;}
318 
319     /**
320      * <p>If you've specified <code>General</code> as the value for your
321      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
322      * commands for your container image.</p> <p>If you've specified
323      * <code>SimulationRuntime</code> as the value for your
324      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
325      * of commands for your container image.</p>
326      */
AddCommand(const Aws::String & value)327     inline LaunchConfig& AddCommand(const Aws::String& value) { m_commandHasBeenSet = true; m_command.push_back(value); return *this; }
328 
329     /**
330      * <p>If you've specified <code>General</code> as the value for your
331      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
332      * commands for your container image.</p> <p>If you've specified
333      * <code>SimulationRuntime</code> as the value for your
334      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
335      * of commands for your container image.</p>
336      */
AddCommand(Aws::String && value)337     inline LaunchConfig& AddCommand(Aws::String&& value) { m_commandHasBeenSet = true; m_command.push_back(std::move(value)); return *this; }
338 
339     /**
340      * <p>If you've specified <code>General</code> as the value for your
341      * <code>RobotSoftwareSuite</code>, you can use this field to specify a list of
342      * commands for your container image.</p> <p>If you've specified
343      * <code>SimulationRuntime</code> as the value for your
344      * <code>SimulationSoftwareSuite</code>, you can use this field to specify a list
345      * of commands for your container image.</p>
346      */
AddCommand(const char * value)347     inline LaunchConfig& AddCommand(const char* value) { m_commandHasBeenSet = true; m_command.push_back(value); return *this; }
348 
349   private:
350 
351     Aws::String m_packageName;
352     bool m_packageNameHasBeenSet;
353 
354     Aws::String m_launchFile;
355     bool m_launchFileHasBeenSet;
356 
357     Aws::Map<Aws::String, Aws::String> m_environmentVariables;
358     bool m_environmentVariablesHasBeenSet;
359 
360     PortForwardingConfig m_portForwardingConfig;
361     bool m_portForwardingConfigHasBeenSet;
362 
363     bool m_streamUI;
364     bool m_streamUIHasBeenSet;
365 
366     Aws::Vector<Aws::String> m_command;
367     bool m_commandHasBeenSet;
368   };
369 
370 } // namespace Model
371 } // namespace RoboMaker
372 } // namespace Aws
373