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