AWS SDK for C++

AWS SDK for C++ Version 1.11.606

Loading...
Searching...
No Matches
RequestSpotLaunchSpecification.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/AWSVector.h>
10#include <aws/core/utils/memory/stl/AWSString.h>
11#include <aws/ec2/model/IamInstanceProfileSpecification.h>
12#include <aws/ec2/model/InstanceType.h>
13#include <aws/ec2/model/RunInstancesMonitoringEnabled.h>
14#include <aws/ec2/model/SpotPlacement.h>
15#include <aws/ec2/model/BlockDeviceMapping.h>
16#include <aws/ec2/model/InstanceNetworkInterfaceSpecification.h>
17#include <utility>
18
19namespace Aws
20{
21namespace Utils
22{
23namespace Xml
24{
25 class XmlNode;
26} // namespace Xml
27} // namespace Utils
28namespace EC2
29{
30namespace Model
31{
32
40 {
41 public:
42 AWS_EC2_API RequestSpotLaunchSpecification() = default;
45
46 AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
47 AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const;
48
49
51
54 inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const { return m_securityGroupIds; }
55 inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
56 template<typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
57 void SetSecurityGroupIds(SecurityGroupIdsT&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::forward<SecurityGroupIdsT>(value); }
58 template<typename SecurityGroupIdsT = Aws::Vector<Aws::String>>
59 RequestSpotLaunchSpecification& WithSecurityGroupIds(SecurityGroupIdsT&& value) { SetSecurityGroupIds(std::forward<SecurityGroupIdsT>(value)); return *this;}
60 template<typename SecurityGroupIdsT = Aws::String>
61 RequestSpotLaunchSpecification& AddSecurityGroupIds(SecurityGroupIdsT&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.emplace_back(std::forward<SecurityGroupIdsT>(value)); return *this; }
63
65
68 inline const Aws::Vector<Aws::String>& GetSecurityGroups() const { return m_securityGroups; }
69 inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; }
70 template<typename SecurityGroupsT = Aws::Vector<Aws::String>>
71 void SetSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::forward<SecurityGroupsT>(value); }
72 template<typename SecurityGroupsT = Aws::Vector<Aws::String>>
73 RequestSpotLaunchSpecification& WithSecurityGroups(SecurityGroupsT&& value) { SetSecurityGroups(std::forward<SecurityGroupsT>(value)); return *this;}
74 template<typename SecurityGroupsT = Aws::String>
75 RequestSpotLaunchSpecification& AddSecurityGroups(SecurityGroupsT&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.emplace_back(std::forward<SecurityGroupsT>(value)); return *this; }
77
79
82 inline const Aws::String& GetAddressingType() const { return m_addressingType; }
83 inline bool AddressingTypeHasBeenSet() const { return m_addressingTypeHasBeenSet; }
84 template<typename AddressingTypeT = Aws::String>
85 void SetAddressingType(AddressingTypeT&& value) { m_addressingTypeHasBeenSet = true; m_addressingType = std::forward<AddressingTypeT>(value); }
86 template<typename AddressingTypeT = Aws::String>
87 RequestSpotLaunchSpecification& WithAddressingType(AddressingTypeT&& value) { SetAddressingType(std::forward<AddressingTypeT>(value)); return *this;}
89
91
97 inline const Aws::Vector<BlockDeviceMapping>& GetBlockDeviceMappings() const { return m_blockDeviceMappings; }
98 inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; }
99 template<typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
100 void SetBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = std::forward<BlockDeviceMappingsT>(value); }
101 template<typename BlockDeviceMappingsT = Aws::Vector<BlockDeviceMapping>>
102 RequestSpotLaunchSpecification& WithBlockDeviceMappings(BlockDeviceMappingsT&& value) { SetBlockDeviceMappings(std::forward<BlockDeviceMappingsT>(value)); return *this;}
103 template<typename BlockDeviceMappingsT = BlockDeviceMapping>
104 RequestSpotLaunchSpecification& AddBlockDeviceMappings(BlockDeviceMappingsT&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.emplace_back(std::forward<BlockDeviceMappingsT>(value)); return *this; }
106
108
115 inline bool GetEbsOptimized() const { return m_ebsOptimized; }
116 inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; }
117 inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; }
118 inline RequestSpotLaunchSpecification& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;}
120
122
125 inline const IamInstanceProfileSpecification& GetIamInstanceProfile() const { return m_iamInstanceProfile; }
126 inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; }
127 template<typename IamInstanceProfileT = IamInstanceProfileSpecification>
128 void SetIamInstanceProfile(IamInstanceProfileT&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::forward<IamInstanceProfileT>(value); }
129 template<typename IamInstanceProfileT = IamInstanceProfileSpecification>
130 RequestSpotLaunchSpecification& WithIamInstanceProfile(IamInstanceProfileT&& value) { SetIamInstanceProfile(std::forward<IamInstanceProfileT>(value)); return *this;}
132
134
137 inline const Aws::String& GetImageId() const { return m_imageId; }
138 inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; }
139 template<typename ImageIdT = Aws::String>
140 void SetImageId(ImageIdT&& value) { m_imageIdHasBeenSet = true; m_imageId = std::forward<ImageIdT>(value); }
141 template<typename ImageIdT = Aws::String>
142 RequestSpotLaunchSpecification& WithImageId(ImageIdT&& value) { SetImageId(std::forward<ImageIdT>(value)); return *this;}
144
146
149 inline InstanceType GetInstanceType() const { return m_instanceType; }
150 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
151 inline void SetInstanceType(InstanceType value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
154
156
159 inline const Aws::String& GetKernelId() const { return m_kernelId; }
160 inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; }
161 template<typename KernelIdT = Aws::String>
162 void SetKernelId(KernelIdT&& value) { m_kernelIdHasBeenSet = true; m_kernelId = std::forward<KernelIdT>(value); }
163 template<typename KernelIdT = Aws::String>
164 RequestSpotLaunchSpecification& WithKernelId(KernelIdT&& value) { SetKernelId(std::forward<KernelIdT>(value)); return *this;}
166
168
171 inline const Aws::String& GetKeyName() const { return m_keyName; }
172 inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; }
173 template<typename KeyNameT = Aws::String>
174 void SetKeyName(KeyNameT&& value) { m_keyNameHasBeenSet = true; m_keyName = std::forward<KeyNameT>(value); }
175 template<typename KeyNameT = Aws::String>
176 RequestSpotLaunchSpecification& WithKeyName(KeyNameT&& value) { SetKeyName(std::forward<KeyNameT>(value)); return *this;}
178
180
184 inline const RunInstancesMonitoringEnabled& GetMonitoring() const { return m_monitoring; }
185 inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; }
186 template<typename MonitoringT = RunInstancesMonitoringEnabled>
187 void SetMonitoring(MonitoringT&& value) { m_monitoringHasBeenSet = true; m_monitoring = std::forward<MonitoringT>(value); }
188 template<typename MonitoringT = RunInstancesMonitoringEnabled>
189 RequestSpotLaunchSpecification& WithMonitoring(MonitoringT&& value) { SetMonitoring(std::forward<MonitoringT>(value)); return *this;}
191
193
197 inline const Aws::Vector<InstanceNetworkInterfaceSpecification>& GetNetworkInterfaces() const { return m_networkInterfaces; }
198 inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; }
199 template<typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
200 void SetNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = std::forward<NetworkInterfacesT>(value); }
201 template<typename NetworkInterfacesT = Aws::Vector<InstanceNetworkInterfaceSpecification>>
202 RequestSpotLaunchSpecification& WithNetworkInterfaces(NetworkInterfacesT&& value) { SetNetworkInterfaces(std::forward<NetworkInterfacesT>(value)); return *this;}
203 template<typename NetworkInterfacesT = InstanceNetworkInterfaceSpecification>
204 RequestSpotLaunchSpecification& AddNetworkInterfaces(NetworkInterfacesT&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.emplace_back(std::forward<NetworkInterfacesT>(value)); return *this; }
206
208
211 inline const SpotPlacement& GetPlacement() const { return m_placement; }
212 inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; }
213 template<typename PlacementT = SpotPlacement>
214 void SetPlacement(PlacementT&& value) { m_placementHasBeenSet = true; m_placement = std::forward<PlacementT>(value); }
215 template<typename PlacementT = SpotPlacement>
216 RequestSpotLaunchSpecification& WithPlacement(PlacementT&& value) { SetPlacement(std::forward<PlacementT>(value)); return *this;}
218
220
223 inline const Aws::String& GetRamdiskId() const { return m_ramdiskId; }
224 inline bool RamdiskIdHasBeenSet() const { return m_ramdiskIdHasBeenSet; }
225 template<typename RamdiskIdT = Aws::String>
226 void SetRamdiskId(RamdiskIdT&& value) { m_ramdiskIdHasBeenSet = true; m_ramdiskId = std::forward<RamdiskIdT>(value); }
227 template<typename RamdiskIdT = Aws::String>
228 RequestSpotLaunchSpecification& WithRamdiskId(RamdiskIdT&& value) { SetRamdiskId(std::forward<RamdiskIdT>(value)); return *this;}
230
232
235 inline const Aws::String& GetSubnetId() const { return m_subnetId; }
236 inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; }
237 template<typename SubnetIdT = Aws::String>
238 void SetSubnetId(SubnetIdT&& value) { m_subnetIdHasBeenSet = true; m_subnetId = std::forward<SubnetIdT>(value); }
239 template<typename SubnetIdT = Aws::String>
240 RequestSpotLaunchSpecification& WithSubnetId(SubnetIdT&& value) { SetSubnetId(std::forward<SubnetIdT>(value)); return *this;}
242
244
248 inline const Aws::String& GetUserData() const { return m_userData; }
249 inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; }
250 template<typename UserDataT = Aws::String>
251 void SetUserData(UserDataT&& value) { m_userDataHasBeenSet = true; m_userData = std::forward<UserDataT>(value); }
252 template<typename UserDataT = Aws::String>
253 RequestSpotLaunchSpecification& WithUserData(UserDataT&& value) { SetUserData(std::forward<UserDataT>(value)); return *this;}
255 private:
256
257 Aws::Vector<Aws::String> m_securityGroupIds;
258 bool m_securityGroupIdsHasBeenSet = false;
259
260 Aws::Vector<Aws::String> m_securityGroups;
261 bool m_securityGroupsHasBeenSet = false;
262
263 Aws::String m_addressingType;
264 bool m_addressingTypeHasBeenSet = false;
265
266 Aws::Vector<BlockDeviceMapping> m_blockDeviceMappings;
267 bool m_blockDeviceMappingsHasBeenSet = false;
268
269 bool m_ebsOptimized{false};
270 bool m_ebsOptimizedHasBeenSet = false;
271
272 IamInstanceProfileSpecification m_iamInstanceProfile;
273 bool m_iamInstanceProfileHasBeenSet = false;
274
275 Aws::String m_imageId;
276 bool m_imageIdHasBeenSet = false;
277
278 InstanceType m_instanceType{InstanceType::NOT_SET};
279 bool m_instanceTypeHasBeenSet = false;
280
281 Aws::String m_kernelId;
282 bool m_kernelIdHasBeenSet = false;
283
284 Aws::String m_keyName;
285 bool m_keyNameHasBeenSet = false;
286
287 RunInstancesMonitoringEnabled m_monitoring;
288 bool m_monitoringHasBeenSet = false;
289
291 bool m_networkInterfacesHasBeenSet = false;
292
293 SpotPlacement m_placement;
294 bool m_placementHasBeenSet = false;
295
296 Aws::String m_ramdiskId;
297 bool m_ramdiskIdHasBeenSet = false;
298
299 Aws::String m_subnetId;
300 bool m_subnetIdHasBeenSet = false;
301
302 Aws::String m_userData;
303 bool m_userDataHasBeenSet = false;
304 };
305
306} // namespace Model
307} // namespace EC2
308} // namespace Aws
RequestSpotLaunchSpecification & WithMonitoring(MonitoringT &&value)
RequestSpotLaunchSpecification & WithEbsOptimized(bool value)
RequestSpotLaunchSpecification & AddBlockDeviceMappings(BlockDeviceMappingsT &&value)
RequestSpotLaunchSpecification & WithBlockDeviceMappings(BlockDeviceMappingsT &&value)
RequestSpotLaunchSpecification & WithRamdiskId(RamdiskIdT &&value)
const IamInstanceProfileSpecification & GetIamInstanceProfile() const
RequestSpotLaunchSpecification & WithSecurityGroups(SecurityGroupsT &&value)
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
RequestSpotLaunchSpecification & AddSecurityGroups(SecurityGroupsT &&value)
RequestSpotLaunchSpecification & WithSubnetId(SubnetIdT &&value)
RequestSpotLaunchSpecification & AddNetworkInterfaces(NetworkInterfacesT &&value)
RequestSpotLaunchSpecification & WithAddressingType(AddressingTypeT &&value)
const Aws::Vector< BlockDeviceMapping > & GetBlockDeviceMappings() const
RequestSpotLaunchSpecification & WithUserData(UserDataT &&value)
const Aws::Vector< Aws::String > & GetSecurityGroups() const
RequestSpotLaunchSpecification & AddSecurityGroupIds(SecurityGroupIdsT &&value)
RequestSpotLaunchSpecification & WithPlacement(PlacementT &&value)
AWS_EC2_API RequestSpotLaunchSpecification & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
RequestSpotLaunchSpecification & WithSecurityGroupIds(SecurityGroupIdsT &&value)
const Aws::Vector< InstanceNetworkInterfaceSpecification > & GetNetworkInterfaces() const
RequestSpotLaunchSpecification & WithInstanceType(InstanceType value)
const Aws::Vector< Aws::String > & GetSecurityGroupIds() const
RequestSpotLaunchSpecification & WithIamInstanceProfile(IamInstanceProfileT &&value)
RequestSpotLaunchSpecification & WithKeyName(KeyNameT &&value)
AWS_EC2_API RequestSpotLaunchSpecification(const Aws::Utils::Xml::XmlNode &xmlNode)
RequestSpotLaunchSpecification & WithKernelId(KernelIdT &&value)
RequestSpotLaunchSpecification & WithImageId(ImageIdT &&value)
const RunInstancesMonitoringEnabled & GetMonitoring() const
RequestSpotLaunchSpecification & WithNetworkInterfaces(NetworkInterfacesT &&value)
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
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