/** * 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 #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes the launch specification for VM import.

See Also:

* AWS * API Reference

*/ class ImportInstanceLaunchSpecification { public: AWS_EC2_API ImportInstanceLaunchSpecification(); AWS_EC2_API ImportInstanceLaunchSpecification(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API ImportInstanceLaunchSpecification& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

Reserved.

*/ inline const Aws::String& GetAdditionalInfo() const{ return m_additionalInfo; } /** *

Reserved.

*/ inline bool AdditionalInfoHasBeenSet() const { return m_additionalInfoHasBeenSet; } /** *

Reserved.

*/ inline void SetAdditionalInfo(const Aws::String& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = value; } /** *

Reserved.

*/ inline void SetAdditionalInfo(Aws::String&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = std::move(value); } /** *

Reserved.

*/ inline void SetAdditionalInfo(const char* value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.assign(value); } /** *

Reserved.

*/ inline ImportInstanceLaunchSpecification& WithAdditionalInfo(const Aws::String& value) { SetAdditionalInfo(value); return *this;} /** *

Reserved.

*/ inline ImportInstanceLaunchSpecification& WithAdditionalInfo(Aws::String&& value) { SetAdditionalInfo(std::move(value)); return *this;} /** *

Reserved.

*/ inline ImportInstanceLaunchSpecification& WithAdditionalInfo(const char* value) { SetAdditionalInfo(value); return *this;} /** *

The architecture of the instance.

*/ inline const ArchitectureValues& GetArchitecture() const{ return m_architecture; } /** *

The architecture of the instance.

*/ inline bool ArchitectureHasBeenSet() const { return m_architectureHasBeenSet; } /** *

The architecture of the instance.

*/ inline void SetArchitecture(const ArchitectureValues& value) { m_architectureHasBeenSet = true; m_architecture = value; } /** *

The architecture of the instance.

*/ inline void SetArchitecture(ArchitectureValues&& value) { m_architectureHasBeenSet = true; m_architecture = std::move(value); } /** *

The architecture of the instance.

*/ inline ImportInstanceLaunchSpecification& WithArchitecture(const ArchitectureValues& value) { SetArchitecture(value); return *this;} /** *

The architecture of the instance.

*/ inline ImportInstanceLaunchSpecification& WithArchitecture(ArchitectureValues&& value) { SetArchitecture(std::move(value)); return *this;} /** *

The security group IDs.

*/ inline const Aws::Vector& GetGroupIds() const{ return m_groupIds; } /** *

The security group IDs.

*/ inline bool GroupIdsHasBeenSet() const { return m_groupIdsHasBeenSet; } /** *

The security group IDs.

*/ inline void SetGroupIds(const Aws::Vector& value) { m_groupIdsHasBeenSet = true; m_groupIds = value; } /** *

The security group IDs.

*/ inline void SetGroupIds(Aws::Vector&& value) { m_groupIdsHasBeenSet = true; m_groupIds = std::move(value); } /** *

The security group IDs.

*/ inline ImportInstanceLaunchSpecification& WithGroupIds(const Aws::Vector& value) { SetGroupIds(value); return *this;} /** *

The security group IDs.

*/ inline ImportInstanceLaunchSpecification& WithGroupIds(Aws::Vector&& value) { SetGroupIds(std::move(value)); return *this;} /** *

The security group IDs.

*/ inline ImportInstanceLaunchSpecification& AddGroupIds(const Aws::String& value) { m_groupIdsHasBeenSet = true; m_groupIds.push_back(value); return *this; } /** *

The security group IDs.

*/ inline ImportInstanceLaunchSpecification& AddGroupIds(Aws::String&& value) { m_groupIdsHasBeenSet = true; m_groupIds.push_back(std::move(value)); return *this; } /** *

The security group IDs.

*/ inline ImportInstanceLaunchSpecification& AddGroupIds(const char* value) { m_groupIdsHasBeenSet = true; m_groupIds.push_back(value); return *this; } /** *

The security group names.

*/ inline const Aws::Vector& GetGroupNames() const{ return m_groupNames; } /** *

The security group names.

*/ inline bool GroupNamesHasBeenSet() const { return m_groupNamesHasBeenSet; } /** *

The security group names.

*/ inline void SetGroupNames(const Aws::Vector& value) { m_groupNamesHasBeenSet = true; m_groupNames = value; } /** *

The security group names.

*/ inline void SetGroupNames(Aws::Vector&& value) { m_groupNamesHasBeenSet = true; m_groupNames = std::move(value); } /** *

The security group names.

*/ inline ImportInstanceLaunchSpecification& WithGroupNames(const Aws::Vector& value) { SetGroupNames(value); return *this;} /** *

The security group names.

*/ inline ImportInstanceLaunchSpecification& WithGroupNames(Aws::Vector&& value) { SetGroupNames(std::move(value)); return *this;} /** *

The security group names.

*/ inline ImportInstanceLaunchSpecification& AddGroupNames(const Aws::String& value) { m_groupNamesHasBeenSet = true; m_groupNames.push_back(value); return *this; } /** *

The security group names.

*/ inline ImportInstanceLaunchSpecification& AddGroupNames(Aws::String&& value) { m_groupNamesHasBeenSet = true; m_groupNames.push_back(std::move(value)); return *this; } /** *

The security group names.

*/ inline ImportInstanceLaunchSpecification& AddGroupNames(const char* value) { m_groupNamesHasBeenSet = true; m_groupNames.push_back(value); return *this; } /** *

Indicates whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline const ShutdownBehavior& GetInstanceInitiatedShutdownBehavior() const{ return m_instanceInitiatedShutdownBehavior; } /** *

Indicates whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline bool InstanceInitiatedShutdownBehaviorHasBeenSet() const { return m_instanceInitiatedShutdownBehaviorHasBeenSet; } /** *

Indicates whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline void SetInstanceInitiatedShutdownBehavior(const ShutdownBehavior& value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = value; } /** *

Indicates whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline void SetInstanceInitiatedShutdownBehavior(ShutdownBehavior&& value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = std::move(value); } /** *

Indicates whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline ImportInstanceLaunchSpecification& WithInstanceInitiatedShutdownBehavior(const ShutdownBehavior& value) { SetInstanceInitiatedShutdownBehavior(value); return *this;} /** *

Indicates whether an instance stops or terminates when you initiate shutdown * from the instance (using the operating system command for system shutdown).

*/ inline ImportInstanceLaunchSpecification& WithInstanceInitiatedShutdownBehavior(ShutdownBehavior&& value) { SetInstanceInitiatedShutdownBehavior(std::move(value)); return *this;} /** *

The instance type. For more information about the instance types that you can * import, see Instance * Types in the VM Import/Export User Guide.

*/ inline const InstanceType& GetInstanceType() const{ return m_instanceType; } /** *

The instance type. For more information about the instance types that you can * import, see Instance * Types in the VM Import/Export User Guide.

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

The instance type. For more information about the instance types that you can * import, see Instance * Types in the VM Import/Export User Guide.

*/ inline void SetInstanceType(const InstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

The instance type. For more information about the instance types that you can * import, see Instance * Types in the VM Import/Export User Guide.

*/ inline void SetInstanceType(InstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

The instance type. For more information about the instance types that you can * import, see Instance * Types in the VM Import/Export User Guide.

*/ inline ImportInstanceLaunchSpecification& WithInstanceType(const InstanceType& value) { SetInstanceType(value); return *this;} /** *

The instance type. For more information about the instance types that you can * import, see Instance * Types in the VM Import/Export User Guide.

*/ inline ImportInstanceLaunchSpecification& WithInstanceType(InstanceType&& value) { SetInstanceType(std::move(value)); return *this;} /** *

Indicates whether monitoring is enabled.

*/ inline bool GetMonitoring() const{ return m_monitoring; } /** *

Indicates whether monitoring is enabled.

*/ inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; } /** *

Indicates whether monitoring is enabled.

*/ inline void SetMonitoring(bool value) { m_monitoringHasBeenSet = true; m_monitoring = value; } /** *

Indicates whether monitoring is enabled.

*/ inline ImportInstanceLaunchSpecification& WithMonitoring(bool value) { SetMonitoring(value); return *this;} /** *

The placement information for the instance.

*/ inline const Placement& GetPlacement() const{ return m_placement; } /** *

The placement information for the instance.

*/ inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; } /** *

The placement information for the instance.

*/ inline void SetPlacement(const Placement& value) { m_placementHasBeenSet = true; m_placement = value; } /** *

The placement information for the instance.

*/ inline void SetPlacement(Placement&& value) { m_placementHasBeenSet = true; m_placement = std::move(value); } /** *

The placement information for the instance.

*/ inline ImportInstanceLaunchSpecification& WithPlacement(const Placement& value) { SetPlacement(value); return *this;} /** *

The placement information for the instance.

*/ inline ImportInstanceLaunchSpecification& WithPlacement(Placement&& value) { SetPlacement(std::move(value)); return *this;} /** *

[EC2-VPC] An available IP address from the IP address range of the * subnet.

*/ inline const Aws::String& GetPrivateIpAddress() const{ return m_privateIpAddress; } /** *

[EC2-VPC] An available IP address from the IP address range of the * subnet.

*/ inline bool PrivateIpAddressHasBeenSet() const { return m_privateIpAddressHasBeenSet; } /** *

[EC2-VPC] An available IP address from the IP address range of the * subnet.

*/ inline void SetPrivateIpAddress(const Aws::String& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = value; } /** *

[EC2-VPC] An available IP address from the IP address range of the * subnet.

*/ inline void SetPrivateIpAddress(Aws::String&& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = std::move(value); } /** *

[EC2-VPC] An available IP address from the IP address range of the * subnet.

*/ inline void SetPrivateIpAddress(const char* value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress.assign(value); } /** *

[EC2-VPC] An available IP address from the IP address range of the * subnet.

*/ inline ImportInstanceLaunchSpecification& WithPrivateIpAddress(const Aws::String& value) { SetPrivateIpAddress(value); return *this;} /** *

[EC2-VPC] An available IP address from the IP address range of the * subnet.

*/ inline ImportInstanceLaunchSpecification& WithPrivateIpAddress(Aws::String&& value) { SetPrivateIpAddress(std::move(value)); return *this;} /** *

[EC2-VPC] An available IP address from the IP address range of the * subnet.

*/ inline ImportInstanceLaunchSpecification& WithPrivateIpAddress(const char* value) { SetPrivateIpAddress(value); return *this;} /** *

[EC2-VPC] The ID of the subnet in which to launch the instance.

*/ inline const Aws::String& GetSubnetId() const{ return m_subnetId; } /** *

[EC2-VPC] The ID of the subnet in which to launch the instance.

*/ inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; } /** *

[EC2-VPC] The ID of the subnet in which to launch the instance.

*/ inline void SetSubnetId(const Aws::String& value) { m_subnetIdHasBeenSet = true; m_subnetId = value; } /** *

[EC2-VPC] The ID of the subnet in which to launch the instance.

*/ inline void SetSubnetId(Aws::String&& value) { m_subnetIdHasBeenSet = true; m_subnetId = std::move(value); } /** *

[EC2-VPC] The ID of the subnet in which to launch the instance.

*/ inline void SetSubnetId(const char* value) { m_subnetIdHasBeenSet = true; m_subnetId.assign(value); } /** *

[EC2-VPC] The ID of the subnet in which to launch the instance.

*/ inline ImportInstanceLaunchSpecification& WithSubnetId(const Aws::String& value) { SetSubnetId(value); return *this;} /** *

[EC2-VPC] The ID of the subnet in which to launch the instance.

*/ inline ImportInstanceLaunchSpecification& WithSubnetId(Aws::String&& value) { SetSubnetId(std::move(value)); return *this;} /** *

[EC2-VPC] The ID of the subnet in which to launch the instance.

*/ inline ImportInstanceLaunchSpecification& WithSubnetId(const char* value) { SetSubnetId(value); return *this;} /** *

The Base64-encoded user data to make available to the instance.

*/ inline const UserData& GetUserData() const{ return m_userData; } /** *

The Base64-encoded user data to make available to the instance.

*/ inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; } /** *

The Base64-encoded user data to make available to the instance.

*/ inline void SetUserData(const UserData& value) { m_userDataHasBeenSet = true; m_userData = value; } /** *

The Base64-encoded user data to make available to the instance.

*/ inline void SetUserData(UserData&& value) { m_userDataHasBeenSet = true; m_userData = std::move(value); } /** *

The Base64-encoded user data to make available to the instance.

*/ inline ImportInstanceLaunchSpecification& WithUserData(const UserData& value) { SetUserData(value); return *this;} /** *

The Base64-encoded user data to make available to the instance.

*/ inline ImportInstanceLaunchSpecification& WithUserData(UserData&& value) { SetUserData(std::move(value)); return *this;} private: Aws::String m_additionalInfo; bool m_additionalInfoHasBeenSet = false; ArchitectureValues m_architecture; bool m_architectureHasBeenSet = false; Aws::Vector m_groupIds; bool m_groupIdsHasBeenSet = false; Aws::Vector m_groupNames; bool m_groupNamesHasBeenSet = false; ShutdownBehavior m_instanceInitiatedShutdownBehavior; bool m_instanceInitiatedShutdownBehaviorHasBeenSet = false; InstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; bool m_monitoring; bool m_monitoringHasBeenSet = false; Placement m_placement; bool m_placementHasBeenSet = false; Aws::String m_privateIpAddress; bool m_privateIpAddressHasBeenSet = false; Aws::String m_subnetId; bool m_subnetIdHasBeenSet = false; UserData m_userData; bool m_userDataHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws