7#include <aws/ec2/EC2_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/core/utils/memory/stl/AWSVector.h>
11#include <aws/ec2/model/IamInstanceProfileSpecification.h>
12#include <aws/ec2/model/InstanceType.h>
13#include <aws/ec2/model/SpotPlacement.h>
14#include <aws/ec2/model/RunInstancesMonitoringEnabled.h>
15#include <aws/ec2/model/BlockDeviceMapping.h>
16#include <aws/ec2/model/InstanceNetworkInterfaceSpecification.h>
17#include <aws/ec2/model/GroupIdentifier.h>
58 template<
typename UserDataT = Aws::String>
59 void SetUserData(UserDataT&& value) { m_userDataHasBeenSet =
true; m_userData = std::forward<UserDataT>(value); }
60 template<
typename UserDataT = Aws::String>
70 template<
typename AddressingTypeT = Aws::String>
71 void SetAddressingType(AddressingTypeT&& value) { m_addressingTypeHasBeenSet =
true; m_addressingType = std::forward<AddressingTypeT>(value); }
72 template<
typename AddressingTypeT = Aws::String>
82 template<
typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
83 void SetBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet =
true; m_blockDeviceMappings = std::forward<BlockDeviceMappingsT>(value); }
84 template<
typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
86 template<
typename BlockDeviceMappingsT = BlockDeviceMapping>
100 inline void SetEbsOptimized(
bool value) { m_ebsOptimizedHasBeenSet =
true; m_ebsOptimized = value; }
110 template<
typename IamInstanceProfileT = IamInstanceProfileSpecification>
111 void SetIamInstanceProfile(IamInstanceProfileT&& value) { m_iamInstanceProfileHasBeenSet =
true; m_iamInstanceProfile = std::forward<IamInstanceProfileT>(value); }
112 template<
typename IamInstanceProfileT = IamInstanceProfileSpecification>
122 template<
typename ImageIdT = Aws::String>
123 void SetImageId(ImageIdT&& value) { m_imageIdHasBeenSet =
true; m_imageId = std::forward<ImageIdT>(value); }
124 template<
typename ImageIdT = Aws::String>
144 template<
typename KernelIdT = Aws::String>
145 void SetKernelId(KernelIdT&& value) { m_kernelIdHasBeenSet =
true; m_kernelId = std::forward<KernelIdT>(value); }
146 template<
typename KernelIdT = Aws::String>
156 template<
typename KeyNameT = Aws::String>
157 void SetKeyName(KeyNameT&& value) { m_keyNameHasBeenSet =
true; m_keyName = std::forward<KeyNameT>(value); }
158 template<
typename KeyNameT = Aws::String>
169 template<
typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
170 void SetNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet =
true; m_networkInterfaces = std::forward<NetworkInterfacesT>(value); }
171 template<
typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
173 template<
typename NetworkInterfacesT = InstanceNetworkInterfaceSpecification>
183 template<
typename PlacementT = SpotPlacement>
184 void SetPlacement(PlacementT&& value) { m_placementHasBeenSet =
true; m_placement = std::forward<PlacementT>(value); }
185 template<
typename PlacementT = SpotPlacement>
195 template<
typename RamdiskIdT = Aws::String>
196 void SetRamdiskId(RamdiskIdT&& value) { m_ramdiskIdHasBeenSet =
true; m_ramdiskId = std::forward<RamdiskIdT>(value); }
197 template<
typename RamdiskIdT = Aws::String>
207 template<
typename SubnetIdT = Aws::String>
208 void SetSubnetId(SubnetIdT&& value) { m_subnetIdHasBeenSet =
true; m_subnetId = std::forward<SubnetIdT>(value); }
209 template<
typename SubnetIdT = Aws::String>
219 template<
typename SecurityGroupsT = Aws::Vector<GroupIdentifier>>
220 void SetSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet =
true; m_securityGroups = std::forward<SecurityGroupsT>(value); }
221 template<
typename SecurityGroupsT = Aws::Vector<GroupIdentifier>>
223 template<
typename SecurityGroupsT = GroupIdentifier>
231 template<
typename MonitoringT = RunInstancesMonitoringEnabled>
232 void SetMonitoring(MonitoringT&& value) { m_monitoringHasBeenSet =
true; m_monitoring = std::forward<MonitoringT>(value); }
233 template<
typename MonitoringT = RunInstancesMonitoringEnabled>
239 bool m_userDataHasBeenSet =
false;
242 bool m_addressingTypeHasBeenSet =
false;
245 bool m_blockDeviceMappingsHasBeenSet =
false;
247 bool m_ebsOptimized{
false};
248 bool m_ebsOptimizedHasBeenSet =
false;
250 IamInstanceProfileSpecification m_iamInstanceProfile;
251 bool m_iamInstanceProfileHasBeenSet =
false;
254 bool m_imageIdHasBeenSet =
false;
257 bool m_instanceTypeHasBeenSet =
false;
260 bool m_kernelIdHasBeenSet =
false;
263 bool m_keyNameHasBeenSet =
false;
266 bool m_networkInterfacesHasBeenSet =
false;
268 SpotPlacement m_placement;
269 bool m_placementHasBeenSet =
false;
272 bool m_ramdiskIdHasBeenSet =
false;
275 bool m_subnetIdHasBeenSet =
false;
278 bool m_securityGroupsHasBeenSet =
false;
280 RunInstancesMonitoringEnabled m_monitoring;
281 bool m_monitoringHasBeenSet =
false;
LaunchSpecification & WithUserData(UserDataT &&value)
void SetPlacement(PlacementT &&value)
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
LaunchSpecification & WithKeyName(KeyNameT &&value)
void SetNetworkInterfaces(NetworkInterfacesT &&value)
bool InstanceTypeHasBeenSet() const
bool KernelIdHasBeenSet() const
LaunchSpecification & WithInstanceType(InstanceType value)
void SetUserData(UserDataT &&value)
void SetKernelId(KernelIdT &&value)
void SetAddressingType(AddressingTypeT &&value)
const Aws::String & GetKeyName() const
void SetSecurityGroups(SecurityGroupsT &&value)
const RunInstancesMonitoringEnabled & GetMonitoring() const
void SetMonitoring(MonitoringT &&value)
LaunchSpecification & WithRamdiskId(RamdiskIdT &&value)
const Aws::Vector< InstanceNetworkInterfaceSpecification > & GetNetworkInterfaces() const
AWS_EC2_API LaunchSpecification()=default
LaunchSpecification & WithKernelId(KernelIdT &&value)
LaunchSpecification & AddSecurityGroups(SecurityGroupsT &&value)
bool SubnetIdHasBeenSet() const
const Aws::Vector< GroupIdentifier > & GetSecurityGroups() const
LaunchSpecification & WithBlockDeviceMappings(BlockDeviceMappingsT &&value)
AWS_EC2_API LaunchSpecification & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
bool EbsOptimizedHasBeenSet() const
void SetRamdiskId(RamdiskIdT &&value)
const Aws::String & GetKernelId() const
void SetBlockDeviceMappings(BlockDeviceMappingsT &&value)
bool KeyNameHasBeenSet() const
LaunchSpecification & WithIamInstanceProfile(IamInstanceProfileT &&value)
const Aws::String & GetUserData() const
bool PlacementHasBeenSet() const
LaunchSpecification & AddBlockDeviceMappings(BlockDeviceMappingsT &&value)
bool NetworkInterfacesHasBeenSet() const
void SetEbsOptimized(bool value)
InstanceType GetInstanceType() const
bool SecurityGroupsHasBeenSet() const
void SetInstanceType(InstanceType value)
bool ImageIdHasBeenSet() const
void SetImageId(ImageIdT &&value)
LaunchSpecification & WithNetworkInterfaces(NetworkInterfacesT &&value)
bool AddressingTypeHasBeenSet() const
LaunchSpecification & WithSecurityGroups(SecurityGroupsT &&value)
LaunchSpecification & WithMonitoring(MonitoringT &&value)
LaunchSpecification & AddNetworkInterfaces(NetworkInterfacesT &&value)
bool RamdiskIdHasBeenSet() const
AWS_EC2_API LaunchSpecification(const Aws::Utils::Xml::XmlNode &xmlNode)
bool BlockDeviceMappingsHasBeenSet() const
const Aws::String & GetRamdiskId() const
LaunchSpecification & WithPlacement(PlacementT &&value)
bool GetEbsOptimized() const
void SetIamInstanceProfile(IamInstanceProfileT &&value)
void SetSubnetId(SubnetIdT &&value)
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
LaunchSpecification & WithImageId(ImageIdT &&value)
bool UserDataHasBeenSet() const
const IamInstanceProfileSpecification & GetIamInstanceProfile() const
bool MonitoringHasBeenSet() const
LaunchSpecification & WithSubnetId(SubnetIdT &&value)
const Aws::String & GetSubnetId() const
const Aws::String & GetAddressingType() const
bool IamInstanceProfileHasBeenSet() const
const SpotPlacement & GetPlacement() const
void SetKeyName(KeyNameT &&value)
const Aws::Vector< BlockDeviceMapping > & GetBlockDeviceMappings() const
const Aws::String & GetImageId() const
LaunchSpecification & WithAddressingType(AddressingTypeT &&value)
LaunchSpecification & WithEbsOptimized(bool value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream