AWS SDK for C++

AWS SDK for C++ Version 1.11.606

Loading...
Searching...
No Matches
LaunchSpecification.h
1
6#pragma once
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>
18#include <utility>
19
20namespace Aws
21{
22namespace Utils
23{
24namespace Xml
25{
26 class XmlNode;
27} // namespace Xml
28} // namespace Utils
29namespace EC2
30{
31namespace Model
32{
33
41 {
42 public:
43 AWS_EC2_API LaunchSpecification() = default;
44 AWS_EC2_API LaunchSpecification(const Aws::Utils::Xml::XmlNode& xmlNode);
46
47 AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
48 AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const;
49
50
52
56 inline const Aws::String& GetUserData() const { return m_userData; }
57 inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; }
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>
61 LaunchSpecification& WithUserData(UserDataT&& value) { SetUserData(std::forward<UserDataT>(value)); return *this;}
63
65
68 inline const Aws::String& GetAddressingType() const { return m_addressingType; }
69 inline bool AddressingTypeHasBeenSet() const { return m_addressingTypeHasBeenSet; }
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>
73 LaunchSpecification& WithAddressingType(AddressingTypeT&& value) { SetAddressingType(std::forward<AddressingTypeT>(value)); return *this;}
75
77
80 inline const Aws::Vector<BlockDeviceMapping>& GetBlockDeviceMappings() const { return m_blockDeviceMappings; }
81 inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; }
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>>
85 LaunchSpecification& WithBlockDeviceMappings(BlockDeviceMappingsT&& value) { SetBlockDeviceMappings(std::forward<BlockDeviceMappingsT>(value)); return *this;}
86 template<typename BlockDeviceMappingsT = BlockDeviceMapping>
87 LaunchSpecification& AddBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.emplace_back(std::forward<BlockDeviceMappingsT>(value)); return *this; }
89
91
98 inline bool GetEbsOptimized() const { return m_ebsOptimized; }
99 inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; }
100 inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; }
101 inline LaunchSpecification& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;}
103
105
108 inline const IamInstanceProfileSpecification& GetIamInstanceProfile() const { return m_iamInstanceProfile; }
109 inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; }
110 template<typename IamInstanceProfileT = IamInstanceProfileSpecification>
111 void SetIamInstanceProfile(IamInstanceProfileT&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::forward<IamInstanceProfileT>(value); }
112 template<typename IamInstanceProfileT = IamInstanceProfileSpecification>
113 LaunchSpecification& WithIamInstanceProfile(IamInstanceProfileT&& value) { SetIamInstanceProfile(std::forward<IamInstanceProfileT>(value)); return *this;}
115
117
120 inline const Aws::String& GetImageId() const { return m_imageId; }
121 inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; }
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>
125 LaunchSpecification& WithImageId(ImageIdT&& value) { SetImageId(std::forward<ImageIdT>(value)); return *this;}
127
129
132 inline InstanceType GetInstanceType() const { return m_instanceType; }
133 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
134 inline void SetInstanceType(InstanceType value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
135 inline LaunchSpecification& WithInstanceType(InstanceType value) { SetInstanceType(value); return *this;}
137
139
142 inline const Aws::String& GetKernelId() const { return m_kernelId; }
143 inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; }
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>
147 LaunchSpecification& WithKernelId(KernelIdT&& value) { SetKernelId(std::forward<KernelIdT>(value)); return *this;}
149
151
154 inline const Aws::String& GetKeyName() const { return m_keyName; }
155 inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; }
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>
159 LaunchSpecification& WithKeyName(KeyNameT&& value) { SetKeyName(std::forward<KeyNameT>(value)); return *this;}
161
163
167 inline const Aws::Vector<InstanceNetworkInterfaceSpecification>& GetNetworkInterfaces() const { return m_networkInterfaces; }
168 inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; }
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>>
172 LaunchSpecification& WithNetworkInterfaces(NetworkInterfacesT&& value) { SetNetworkInterfaces(std::forward<NetworkInterfacesT>(value)); return *this;}
173 template<typename NetworkInterfacesT = InstanceNetworkInterfaceSpecification>
174 LaunchSpecification& AddNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.emplace_back(std::forward<NetworkInterfacesT>(value)); return *this; }
176
178
181 inline const SpotPlacement& GetPlacement() const { return m_placement; }
182 inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; }
183 template<typename PlacementT = SpotPlacement>
184 void SetPlacement(PlacementT&& value) { m_placementHasBeenSet = true; m_placement = std::forward<PlacementT>(value); }
185 template<typename PlacementT = SpotPlacement>
186 LaunchSpecification& WithPlacement(PlacementT&& value) { SetPlacement(std::forward<PlacementT>(value)); return *this;}
188
190
193 inline const Aws::String& GetRamdiskId() const { return m_ramdiskId; }
194 inline bool RamdiskIdHasBeenSet() const { return m_ramdiskIdHasBeenSet; }
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>
198 LaunchSpecification& WithRamdiskId(RamdiskIdT&& value) { SetRamdiskId(std::forward<RamdiskIdT>(value)); return *this;}
200
202
205 inline const Aws::String& GetSubnetId() const { return m_subnetId; }
206 inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; }
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>
210 LaunchSpecification& WithSubnetId(SubnetIdT&& value) { SetSubnetId(std::forward<SubnetIdT>(value)); return *this;}
212
214
217 inline const Aws::Vector<GroupIdentifier>& GetSecurityGroups() const { return m_securityGroups; }
218 inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; }
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>>
222 LaunchSpecification& WithSecurityGroups(SecurityGroupsT&& value) { SetSecurityGroups(std::forward<SecurityGroupsT>(value)); return *this;}
223 template<typename SecurityGroupsT = GroupIdentifier>
224 LaunchSpecification& AddSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.emplace_back(std::forward<SecurityGroupsT>(value)); return *this; }
226
228
229 inline const RunInstancesMonitoringEnabled& GetMonitoring() const { return m_monitoring; }
230 inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; }
231 template<typename MonitoringT = RunInstancesMonitoringEnabled>
232 void SetMonitoring(MonitoringT&& value) { m_monitoringHasBeenSet = true; m_monitoring = std::forward<MonitoringT>(value); }
233 template<typename MonitoringT = RunInstancesMonitoringEnabled>
234 LaunchSpecification& WithMonitoring(MonitoringT&& value) { SetMonitoring(std::forward<MonitoringT>(value)); return *this;}
236 private:
237
238 Aws::String m_userData;
239 bool m_userDataHasBeenSet = false;
240
241 Aws::String m_addressingType;
242 bool m_addressingTypeHasBeenSet = false;
243
244 Aws::Vector<BlockDeviceMapping> m_blockDeviceMappings;
245 bool m_blockDeviceMappingsHasBeenSet = false;
246
247 bool m_ebsOptimized{false};
248 bool m_ebsOptimizedHasBeenSet = false;
249
250 IamInstanceProfileSpecification m_iamInstanceProfile;
251 bool m_iamInstanceProfileHasBeenSet = false;
252
253 Aws::String m_imageId;
254 bool m_imageIdHasBeenSet = false;
255
256 InstanceType m_instanceType{InstanceType::NOT_SET};
257 bool m_instanceTypeHasBeenSet = false;
258
259 Aws::String m_kernelId;
260 bool m_kernelIdHasBeenSet = false;
261
262 Aws::String m_keyName;
263 bool m_keyNameHasBeenSet = false;
264
266 bool m_networkInterfacesHasBeenSet = false;
267
268 SpotPlacement m_placement;
269 bool m_placementHasBeenSet = false;
270
271 Aws::String m_ramdiskId;
272 bool m_ramdiskIdHasBeenSet = false;
273
274 Aws::String m_subnetId;
275 bool m_subnetIdHasBeenSet = false;
276
277 Aws::Vector<GroupIdentifier> m_securityGroups;
278 bool m_securityGroupsHasBeenSet = false;
279
280 RunInstancesMonitoringEnabled m_monitoring;
281 bool m_monitoringHasBeenSet = false;
282 };
283
284} // namespace Model
285} // namespace EC2
286} // namespace Aws
LaunchSpecification & WithUserData(UserDataT &&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)
LaunchSpecification & WithInstanceType(InstanceType value)
void SetAddressingType(AddressingTypeT &&value)
const Aws::String & GetKeyName() const
void SetSecurityGroups(SecurityGroupsT &&value)
const RunInstancesMonitoringEnabled & GetMonitoring() const
LaunchSpecification & WithRamdiskId(RamdiskIdT &&value)
const Aws::Vector< InstanceNetworkInterfaceSpecification > & GetNetworkInterfaces() const
AWS_EC2_API LaunchSpecification()=default
LaunchSpecification & WithKernelId(KernelIdT &&value)
LaunchSpecification & AddSecurityGroups(SecurityGroupsT &&value)
const Aws::Vector< GroupIdentifier > & GetSecurityGroups() const
LaunchSpecification & WithBlockDeviceMappings(BlockDeviceMappingsT &&value)
AWS_EC2_API LaunchSpecification & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
const Aws::String & GetKernelId() const
void SetBlockDeviceMappings(BlockDeviceMappingsT &&value)
LaunchSpecification & WithIamInstanceProfile(IamInstanceProfileT &&value)
const Aws::String & GetUserData() const
LaunchSpecification & AddBlockDeviceMappings(BlockDeviceMappingsT &&value)
LaunchSpecification & WithNetworkInterfaces(NetworkInterfacesT &&value)
LaunchSpecification & WithSecurityGroups(SecurityGroupsT &&value)
LaunchSpecification & WithMonitoring(MonitoringT &&value)
LaunchSpecification & AddNetworkInterfaces(NetworkInterfacesT &&value)
AWS_EC2_API LaunchSpecification(const Aws::Utils::Xml::XmlNode &xmlNode)
const Aws::String & GetRamdiskId() const
LaunchSpecification & WithPlacement(PlacementT &&value)
void SetIamInstanceProfile(IamInstanceProfileT &&value)
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
LaunchSpecification & WithImageId(ImageIdT &&value)
const IamInstanceProfileSpecification & GetIamInstanceProfile() const
LaunchSpecification & WithSubnetId(SubnetIdT &&value)
const Aws::String & GetSubnetId() const
const Aws::String & GetAddressingType() const
const SpotPlacement & GetPlacement() const
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