/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace NimbleStudio { namespace Model { /** *

A launch profile initialization contains information required for a * workstation or server to connect to a launch profile.

This includes * scripts, endpoints, security groups, subnets, and other * configuration.

See Also:

AWS * API Reference

*/ class LaunchProfileInitialization { public: AWS_NIMBLESTUDIO_API LaunchProfileInitialization(); AWS_NIMBLESTUDIO_API LaunchProfileInitialization(Aws::Utils::Json::JsonView jsonValue); AWS_NIMBLESTUDIO_API LaunchProfileInitialization& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_NIMBLESTUDIO_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

A LaunchProfileInitializationActiveDirectory resource.

*/ inline const LaunchProfileInitializationActiveDirectory& GetActiveDirectory() const{ return m_activeDirectory; } /** *

A LaunchProfileInitializationActiveDirectory resource.

*/ inline bool ActiveDirectoryHasBeenSet() const { return m_activeDirectoryHasBeenSet; } /** *

A LaunchProfileInitializationActiveDirectory resource.

*/ inline void SetActiveDirectory(const LaunchProfileInitializationActiveDirectory& value) { m_activeDirectoryHasBeenSet = true; m_activeDirectory = value; } /** *

A LaunchProfileInitializationActiveDirectory resource.

*/ inline void SetActiveDirectory(LaunchProfileInitializationActiveDirectory&& value) { m_activeDirectoryHasBeenSet = true; m_activeDirectory = std::move(value); } /** *

A LaunchProfileInitializationActiveDirectory resource.

*/ inline LaunchProfileInitialization& WithActiveDirectory(const LaunchProfileInitializationActiveDirectory& value) { SetActiveDirectory(value); return *this;} /** *

A LaunchProfileInitializationActiveDirectory resource.

*/ inline LaunchProfileInitialization& WithActiveDirectory(LaunchProfileInitializationActiveDirectory&& value) { SetActiveDirectory(std::move(value)); return *this;} /** *

The EC2 security groups that control access to the studio component.

*/ inline const Aws::Vector& GetEc2SecurityGroupIds() const{ return m_ec2SecurityGroupIds; } /** *

The EC2 security groups that control access to the studio component.

*/ inline bool Ec2SecurityGroupIdsHasBeenSet() const { return m_ec2SecurityGroupIdsHasBeenSet; } /** *

The EC2 security groups that control access to the studio component.

*/ inline void SetEc2SecurityGroupIds(const Aws::Vector& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = value; } /** *

The EC2 security groups that control access to the studio component.

*/ inline void SetEc2SecurityGroupIds(Aws::Vector&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = std::move(value); } /** *

The EC2 security groups that control access to the studio component.

*/ inline LaunchProfileInitialization& WithEc2SecurityGroupIds(const Aws::Vector& value) { SetEc2SecurityGroupIds(value); return *this;} /** *

The EC2 security groups that control access to the studio component.

*/ inline LaunchProfileInitialization& WithEc2SecurityGroupIds(Aws::Vector&& value) { SetEc2SecurityGroupIds(std::move(value)); return *this;} /** *

The EC2 security groups that control access to the studio component.

*/ inline LaunchProfileInitialization& AddEc2SecurityGroupIds(const Aws::String& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; } /** *

The EC2 security groups that control access to the studio component.

*/ inline LaunchProfileInitialization& AddEc2SecurityGroupIds(Aws::String&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(std::move(value)); return *this; } /** *

The EC2 security groups that control access to the studio component.

*/ inline LaunchProfileInitialization& AddEc2SecurityGroupIds(const char* value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline const Aws::String& GetLaunchProfileId() const{ return m_launchProfileId; } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline bool LaunchProfileIdHasBeenSet() const { return m_launchProfileIdHasBeenSet; } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline void SetLaunchProfileId(const Aws::String& value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId = value; } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline void SetLaunchProfileId(Aws::String&& value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId = std::move(value); } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline void SetLaunchProfileId(const char* value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId.assign(value); } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline LaunchProfileInitialization& WithLaunchProfileId(const Aws::String& value) { SetLaunchProfileId(value); return *this;} /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline LaunchProfileInitialization& WithLaunchProfileId(Aws::String&& value) { SetLaunchProfileId(std::move(value)); return *this;} /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline LaunchProfileInitialization& WithLaunchProfileId(const char* value) { SetLaunchProfileId(value); return *this;} /** *

The version number of the protocol that is used by the launch profile. The * only valid version is "2021-03-31".

*/ inline const Aws::String& GetLaunchProfileProtocolVersion() const{ return m_launchProfileProtocolVersion; } /** *

The version number of the protocol that is used by the launch profile. The * only valid version is "2021-03-31".

*/ inline bool LaunchProfileProtocolVersionHasBeenSet() const { return m_launchProfileProtocolVersionHasBeenSet; } /** *

The version number of the protocol that is used by the launch profile. The * only valid version is "2021-03-31".

*/ inline void SetLaunchProfileProtocolVersion(const Aws::String& value) { m_launchProfileProtocolVersionHasBeenSet = true; m_launchProfileProtocolVersion = value; } /** *

The version number of the protocol that is used by the launch profile. The * only valid version is "2021-03-31".

*/ inline void SetLaunchProfileProtocolVersion(Aws::String&& value) { m_launchProfileProtocolVersionHasBeenSet = true; m_launchProfileProtocolVersion = std::move(value); } /** *

The version number of the protocol that is used by the launch profile. The * only valid version is "2021-03-31".

*/ inline void SetLaunchProfileProtocolVersion(const char* value) { m_launchProfileProtocolVersionHasBeenSet = true; m_launchProfileProtocolVersion.assign(value); } /** *

The version number of the protocol that is used by the launch profile. The * only valid version is "2021-03-31".

*/ inline LaunchProfileInitialization& WithLaunchProfileProtocolVersion(const Aws::String& value) { SetLaunchProfileProtocolVersion(value); return *this;} /** *

The version number of the protocol that is used by the launch profile. The * only valid version is "2021-03-31".

*/ inline LaunchProfileInitialization& WithLaunchProfileProtocolVersion(Aws::String&& value) { SetLaunchProfileProtocolVersion(std::move(value)); return *this;} /** *

The version number of the protocol that is used by the launch profile. The * only valid version is "2021-03-31".

*/ inline LaunchProfileInitialization& WithLaunchProfileProtocolVersion(const char* value) { SetLaunchProfileProtocolVersion(value); return *this;} /** *

The launch purpose.

*/ inline const Aws::String& GetLaunchPurpose() const{ return m_launchPurpose; } /** *

The launch purpose.

*/ inline bool LaunchPurposeHasBeenSet() const { return m_launchPurposeHasBeenSet; } /** *

The launch purpose.

*/ inline void SetLaunchPurpose(const Aws::String& value) { m_launchPurposeHasBeenSet = true; m_launchPurpose = value; } /** *

The launch purpose.

*/ inline void SetLaunchPurpose(Aws::String&& value) { m_launchPurposeHasBeenSet = true; m_launchPurpose = std::move(value); } /** *

The launch purpose.

*/ inline void SetLaunchPurpose(const char* value) { m_launchPurposeHasBeenSet = true; m_launchPurpose.assign(value); } /** *

The launch purpose.

*/ inline LaunchProfileInitialization& WithLaunchPurpose(const Aws::String& value) { SetLaunchPurpose(value); return *this;} /** *

The launch purpose.

*/ inline LaunchProfileInitialization& WithLaunchPurpose(Aws::String&& value) { SetLaunchPurpose(std::move(value)); return *this;} /** *

The launch purpose.

*/ inline LaunchProfileInitialization& WithLaunchPurpose(const char* value) { SetLaunchPurpose(value); return *this;} /** *

The name for the launch profile.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name for the launch profile.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name for the launch profile.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name for the launch profile.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name for the launch profile.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name for the launch profile.

*/ inline LaunchProfileInitialization& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name for the launch profile.

*/ inline LaunchProfileInitialization& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name for the launch profile.

*/ inline LaunchProfileInitialization& WithName(const char* value) { SetName(value); return *this;} /** *

The platform of the launch platform, either Windows or Linux.

*/ inline const LaunchProfilePlatform& GetPlatform() const{ return m_platform; } /** *

The platform of the launch platform, either Windows or Linux.

*/ inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; } /** *

The platform of the launch platform, either Windows or Linux.

*/ inline void SetPlatform(const LaunchProfilePlatform& value) { m_platformHasBeenSet = true; m_platform = value; } /** *

The platform of the launch platform, either Windows or Linux.

*/ inline void SetPlatform(LaunchProfilePlatform&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); } /** *

The platform of the launch platform, either Windows or Linux.

*/ inline LaunchProfileInitialization& WithPlatform(const LaunchProfilePlatform& value) { SetPlatform(value); return *this;} /** *

The platform of the launch platform, either Windows or Linux.

*/ inline LaunchProfileInitialization& WithPlatform(LaunchProfilePlatform&& value) { SetPlatform(std::move(value)); return *this;} /** *

The system initializtion scripts.

*/ inline const Aws::Vector& GetSystemInitializationScripts() const{ return m_systemInitializationScripts; } /** *

The system initializtion scripts.

*/ inline bool SystemInitializationScriptsHasBeenSet() const { return m_systemInitializationScriptsHasBeenSet; } /** *

The system initializtion scripts.

*/ inline void SetSystemInitializationScripts(const Aws::Vector& value) { m_systemInitializationScriptsHasBeenSet = true; m_systemInitializationScripts = value; } /** *

The system initializtion scripts.

*/ inline void SetSystemInitializationScripts(Aws::Vector&& value) { m_systemInitializationScriptsHasBeenSet = true; m_systemInitializationScripts = std::move(value); } /** *

The system initializtion scripts.

*/ inline LaunchProfileInitialization& WithSystemInitializationScripts(const Aws::Vector& value) { SetSystemInitializationScripts(value); return *this;} /** *

The system initializtion scripts.

*/ inline LaunchProfileInitialization& WithSystemInitializationScripts(Aws::Vector&& value) { SetSystemInitializationScripts(std::move(value)); return *this;} /** *

The system initializtion scripts.

*/ inline LaunchProfileInitialization& AddSystemInitializationScripts(const LaunchProfileInitializationScript& value) { m_systemInitializationScriptsHasBeenSet = true; m_systemInitializationScripts.push_back(value); return *this; } /** *

The system initializtion scripts.

*/ inline LaunchProfileInitialization& AddSystemInitializationScripts(LaunchProfileInitializationScript&& value) { m_systemInitializationScriptsHasBeenSet = true; m_systemInitializationScripts.push_back(std::move(value)); return *this; } /** *

The user initializtion scripts.

*/ inline const Aws::Vector& GetUserInitializationScripts() const{ return m_userInitializationScripts; } /** *

The user initializtion scripts.

*/ inline bool UserInitializationScriptsHasBeenSet() const { return m_userInitializationScriptsHasBeenSet; } /** *

The user initializtion scripts.

*/ inline void SetUserInitializationScripts(const Aws::Vector& value) { m_userInitializationScriptsHasBeenSet = true; m_userInitializationScripts = value; } /** *

The user initializtion scripts.

*/ inline void SetUserInitializationScripts(Aws::Vector&& value) { m_userInitializationScriptsHasBeenSet = true; m_userInitializationScripts = std::move(value); } /** *

The user initializtion scripts.

*/ inline LaunchProfileInitialization& WithUserInitializationScripts(const Aws::Vector& value) { SetUserInitializationScripts(value); return *this;} /** *

The user initializtion scripts.

*/ inline LaunchProfileInitialization& WithUserInitializationScripts(Aws::Vector&& value) { SetUserInitializationScripts(std::move(value)); return *this;} /** *

The user initializtion scripts.

*/ inline LaunchProfileInitialization& AddUserInitializationScripts(const LaunchProfileInitializationScript& value) { m_userInitializationScriptsHasBeenSet = true; m_userInitializationScripts.push_back(value); return *this; } /** *

The user initializtion scripts.

*/ inline LaunchProfileInitialization& AddUserInitializationScripts(LaunchProfileInitializationScript&& value) { m_userInitializationScriptsHasBeenSet = true; m_userInitializationScripts.push_back(std::move(value)); return *this; } private: LaunchProfileInitializationActiveDirectory m_activeDirectory; bool m_activeDirectoryHasBeenSet = false; Aws::Vector m_ec2SecurityGroupIds; bool m_ec2SecurityGroupIdsHasBeenSet = false; Aws::String m_launchProfileId; bool m_launchProfileIdHasBeenSet = false; Aws::String m_launchProfileProtocolVersion; bool m_launchProfileProtocolVersionHasBeenSet = false; Aws::String m_launchPurpose; bool m_launchPurposeHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; LaunchProfilePlatform m_platform; bool m_platformHasBeenSet = false; Aws::Vector m_systemInitializationScripts; bool m_systemInitializationScriptsHasBeenSet = false; Aws::Vector m_userInitializationScripts; bool m_userInitializationScriptsHasBeenSet = false; }; } // namespace Model } // namespace NimbleStudio } // namespace Aws