1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 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/ec2/model/LaunchTemplateIamInstanceProfileSpecificationRequest.h> 11 #include <aws/core/utils/memory/stl/AWSVector.h> 12 #include <aws/ec2/model/InstanceType.h> 13 #include <aws/ec2/model/LaunchTemplatesMonitoringRequest.h> 14 #include <aws/ec2/model/LaunchTemplatePlacementRequest.h> 15 #include <aws/ec2/model/ShutdownBehavior.h> 16 #include <aws/ec2/model/LaunchTemplateInstanceMarketOptionsRequest.h> 17 #include <aws/ec2/model/CreditSpecificationRequest.h> 18 #include <aws/ec2/model/LaunchTemplateCpuOptionsRequest.h> 19 #include <aws/ec2/model/LaunchTemplateCapacityReservationSpecificationRequest.h> 20 #include <aws/ec2/model/LaunchTemplateHibernationOptionsRequest.h> 21 #include <aws/ec2/model/LaunchTemplateInstanceMetadataOptionsRequest.h> 22 #include <aws/ec2/model/LaunchTemplateEnclaveOptionsRequest.h> 23 #include <aws/ec2/model/LaunchTemplateBlockDeviceMappingRequest.h> 24 #include <aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest.h> 25 #include <aws/ec2/model/LaunchTemplateTagSpecificationRequest.h> 26 #include <aws/ec2/model/ElasticGpuSpecification.h> 27 #include <aws/ec2/model/LaunchTemplateElasticInferenceAccelerator.h> 28 #include <aws/ec2/model/LaunchTemplateLicenseConfigurationRequest.h> 29 #include <utility> 30 31 namespace Aws 32 { 33 namespace Utils 34 { 35 namespace Xml 36 { 37 class XmlNode; 38 } // namespace Xml 39 } // namespace Utils 40 namespace EC2 41 { 42 namespace Model 43 { 44 45 /** 46 * <p>The information to include in the launch template.</p><p><h3>See Also:</h3> 47 * <a 48 * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestLaunchTemplateData">AWS 49 * API Reference</a></p> 50 */ 51 class AWS_EC2_API RequestLaunchTemplateData 52 { 53 public: 54 RequestLaunchTemplateData(); 55 RequestLaunchTemplateData(const Aws::Utils::Xml::XmlNode& xmlNode); 56 RequestLaunchTemplateData& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); 57 58 void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; 59 void OutputToStream(Aws::OStream& oStream, const char* location) const; 60 61 62 /** 63 * <p>The ID of the kernel.</p> <p>We recommend that you use PV-GRUB 64 * instead of kernels and RAM disks. For more information, see <a 65 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 66 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 67 * 68 */ GetKernelId()69 inline const Aws::String& GetKernelId() const{ return m_kernelId; } 70 71 /** 72 * <p>The ID of the kernel.</p> <p>We recommend that you use PV-GRUB 73 * instead of kernels and RAM disks. For more information, see <a 74 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 75 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 76 * 77 */ KernelIdHasBeenSet()78 inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; } 79 80 /** 81 * <p>The ID of the kernel.</p> <p>We recommend that you use PV-GRUB 82 * instead of kernels and RAM disks. For more information, see <a 83 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 84 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 85 * 86 */ SetKernelId(const Aws::String & value)87 inline void SetKernelId(const Aws::String& value) { m_kernelIdHasBeenSet = true; m_kernelId = value; } 88 89 /** 90 * <p>The ID of the kernel.</p> <p>We recommend that you use PV-GRUB 91 * instead of kernels and RAM disks. For more information, see <a 92 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 93 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 94 * 95 */ SetKernelId(Aws::String && value)96 inline void SetKernelId(Aws::String&& value) { m_kernelIdHasBeenSet = true; m_kernelId = std::move(value); } 97 98 /** 99 * <p>The ID of the kernel.</p> <p>We recommend that you use PV-GRUB 100 * instead of kernels and RAM disks. For more information, see <a 101 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 102 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 103 * 104 */ SetKernelId(const char * value)105 inline void SetKernelId(const char* value) { m_kernelIdHasBeenSet = true; m_kernelId.assign(value); } 106 107 /** 108 * <p>The ID of the kernel.</p> <p>We recommend that you use PV-GRUB 109 * instead of kernels and RAM disks. For more information, see <a 110 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 111 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 112 * 113 */ WithKernelId(const Aws::String & value)114 inline RequestLaunchTemplateData& WithKernelId(const Aws::String& value) { SetKernelId(value); return *this;} 115 116 /** 117 * <p>The ID of the kernel.</p> <p>We recommend that you use PV-GRUB 118 * instead of kernels and RAM disks. For more information, see <a 119 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 120 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 121 * 122 */ WithKernelId(Aws::String && value)123 inline RequestLaunchTemplateData& WithKernelId(Aws::String&& value) { SetKernelId(std::move(value)); return *this;} 124 125 /** 126 * <p>The ID of the kernel.</p> <p>We recommend that you use PV-GRUB 127 * instead of kernels and RAM disks. For more information, see <a 128 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 129 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 130 * 131 */ WithKernelId(const char * value)132 inline RequestLaunchTemplateData& WithKernelId(const char* value) { SetKernelId(value); return *this;} 133 134 135 /** 136 * <p>Indicates whether the instance is optimized for Amazon EBS I/O. This 137 * optimization provides dedicated throughput to Amazon EBS and an optimized 138 * configuration stack to provide optimal Amazon EBS I/O performance. This 139 * optimization isn't available with all instance types. Additional usage charges 140 * apply when using an EBS-optimized instance.</p> 141 */ GetEbsOptimized()142 inline bool GetEbsOptimized() const{ return m_ebsOptimized; } 143 144 /** 145 * <p>Indicates whether the instance is optimized for Amazon EBS I/O. This 146 * optimization provides dedicated throughput to Amazon EBS and an optimized 147 * configuration stack to provide optimal Amazon EBS I/O performance. This 148 * optimization isn't available with all instance types. Additional usage charges 149 * apply when using an EBS-optimized instance.</p> 150 */ EbsOptimizedHasBeenSet()151 inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; } 152 153 /** 154 * <p>Indicates whether the instance is optimized for Amazon EBS I/O. This 155 * optimization provides dedicated throughput to Amazon EBS and an optimized 156 * configuration stack to provide optimal Amazon EBS I/O performance. This 157 * optimization isn't available with all instance types. Additional usage charges 158 * apply when using an EBS-optimized instance.</p> 159 */ SetEbsOptimized(bool value)160 inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; } 161 162 /** 163 * <p>Indicates whether the instance is optimized for Amazon EBS I/O. This 164 * optimization provides dedicated throughput to Amazon EBS and an optimized 165 * configuration stack to provide optimal Amazon EBS I/O performance. This 166 * optimization isn't available with all instance types. Additional usage charges 167 * apply when using an EBS-optimized instance.</p> 168 */ WithEbsOptimized(bool value)169 inline RequestLaunchTemplateData& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;} 170 171 172 /** 173 * <p>The name or Amazon Resource Name (ARN) of an IAM instance profile.</p> 174 */ GetIamInstanceProfile()175 inline const LaunchTemplateIamInstanceProfileSpecificationRequest& GetIamInstanceProfile() const{ return m_iamInstanceProfile; } 176 177 /** 178 * <p>The name or Amazon Resource Name (ARN) of an IAM instance profile.</p> 179 */ IamInstanceProfileHasBeenSet()180 inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; } 181 182 /** 183 * <p>The name or Amazon Resource Name (ARN) of an IAM instance profile.</p> 184 */ SetIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecificationRequest & value)185 inline void SetIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecificationRequest& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = value; } 186 187 /** 188 * <p>The name or Amazon Resource Name (ARN) of an IAM instance profile.</p> 189 */ SetIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecificationRequest && value)190 inline void SetIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecificationRequest&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::move(value); } 191 192 /** 193 * <p>The name or Amazon Resource Name (ARN) of an IAM instance profile.</p> 194 */ WithIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecificationRequest & value)195 inline RequestLaunchTemplateData& WithIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecificationRequest& value) { SetIamInstanceProfile(value); return *this;} 196 197 /** 198 * <p>The name or Amazon Resource Name (ARN) of an IAM instance profile.</p> 199 */ WithIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecificationRequest && value)200 inline RequestLaunchTemplateData& WithIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecificationRequest&& value) { SetIamInstanceProfile(std::move(value)); return *this;} 201 202 203 /** 204 * <p>The block device mapping.</p> 205 */ GetBlockDeviceMappings()206 inline const Aws::Vector<LaunchTemplateBlockDeviceMappingRequest>& GetBlockDeviceMappings() const{ return m_blockDeviceMappings; } 207 208 /** 209 * <p>The block device mapping.</p> 210 */ BlockDeviceMappingsHasBeenSet()211 inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; } 212 213 /** 214 * <p>The block device mapping.</p> 215 */ SetBlockDeviceMappings(const Aws::Vector<LaunchTemplateBlockDeviceMappingRequest> & value)216 inline void SetBlockDeviceMappings(const Aws::Vector<LaunchTemplateBlockDeviceMappingRequest>& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = value; } 217 218 /** 219 * <p>The block device mapping.</p> 220 */ SetBlockDeviceMappings(Aws::Vector<LaunchTemplateBlockDeviceMappingRequest> && value)221 inline void SetBlockDeviceMappings(Aws::Vector<LaunchTemplateBlockDeviceMappingRequest>&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = std::move(value); } 222 223 /** 224 * <p>The block device mapping.</p> 225 */ WithBlockDeviceMappings(const Aws::Vector<LaunchTemplateBlockDeviceMappingRequest> & value)226 inline RequestLaunchTemplateData& WithBlockDeviceMappings(const Aws::Vector<LaunchTemplateBlockDeviceMappingRequest>& value) { SetBlockDeviceMappings(value); return *this;} 227 228 /** 229 * <p>The block device mapping.</p> 230 */ WithBlockDeviceMappings(Aws::Vector<LaunchTemplateBlockDeviceMappingRequest> && value)231 inline RequestLaunchTemplateData& WithBlockDeviceMappings(Aws::Vector<LaunchTemplateBlockDeviceMappingRequest>&& value) { SetBlockDeviceMappings(std::move(value)); return *this;} 232 233 /** 234 * <p>The block device mapping.</p> 235 */ AddBlockDeviceMappings(const LaunchTemplateBlockDeviceMappingRequest & value)236 inline RequestLaunchTemplateData& AddBlockDeviceMappings(const LaunchTemplateBlockDeviceMappingRequest& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(value); return *this; } 237 238 /** 239 * <p>The block device mapping.</p> 240 */ AddBlockDeviceMappings(LaunchTemplateBlockDeviceMappingRequest && value)241 inline RequestLaunchTemplateData& AddBlockDeviceMappings(LaunchTemplateBlockDeviceMappingRequest&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(std::move(value)); return *this; } 242 243 244 /** 245 * <p>One or more network interfaces. If you specify a network interface, you must 246 * specify any security groups and subnets as part of the network interface.</p> 247 */ GetNetworkInterfaces()248 inline const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest>& GetNetworkInterfaces() const{ return m_networkInterfaces; } 249 250 /** 251 * <p>One or more network interfaces. If you specify a network interface, you must 252 * specify any security groups and subnets as part of the network interface.</p> 253 */ NetworkInterfacesHasBeenSet()254 inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; } 255 256 /** 257 * <p>One or more network interfaces. If you specify a network interface, you must 258 * specify any security groups and subnets as part of the network interface.</p> 259 */ SetNetworkInterfaces(const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest> & value)260 inline void SetNetworkInterfaces(const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest>& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = value; } 261 262 /** 263 * <p>One or more network interfaces. If you specify a network interface, you must 264 * specify any security groups and subnets as part of the network interface.</p> 265 */ SetNetworkInterfaces(Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest> && value)266 inline void SetNetworkInterfaces(Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest>&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = std::move(value); } 267 268 /** 269 * <p>One or more network interfaces. If you specify a network interface, you must 270 * specify any security groups and subnets as part of the network interface.</p> 271 */ WithNetworkInterfaces(const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest> & value)272 inline RequestLaunchTemplateData& WithNetworkInterfaces(const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest>& value) { SetNetworkInterfaces(value); return *this;} 273 274 /** 275 * <p>One or more network interfaces. If you specify a network interface, you must 276 * specify any security groups and subnets as part of the network interface.</p> 277 */ WithNetworkInterfaces(Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest> && value)278 inline RequestLaunchTemplateData& WithNetworkInterfaces(Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest>&& value) { SetNetworkInterfaces(std::move(value)); return *this;} 279 280 /** 281 * <p>One or more network interfaces. If you specify a network interface, you must 282 * specify any security groups and subnets as part of the network interface.</p> 283 */ AddNetworkInterfaces(const LaunchTemplateInstanceNetworkInterfaceSpecificationRequest & value)284 inline RequestLaunchTemplateData& AddNetworkInterfaces(const LaunchTemplateInstanceNetworkInterfaceSpecificationRequest& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(value); return *this; } 285 286 /** 287 * <p>One or more network interfaces. If you specify a network interface, you must 288 * specify any security groups and subnets as part of the network interface.</p> 289 */ AddNetworkInterfaces(LaunchTemplateInstanceNetworkInterfaceSpecificationRequest && value)290 inline RequestLaunchTemplateData& AddNetworkInterfaces(LaunchTemplateInstanceNetworkInterfaceSpecificationRequest&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(std::move(value)); return *this; } 291 292 293 /** 294 * <p>The ID of the AMI.</p> 295 */ GetImageId()296 inline const Aws::String& GetImageId() const{ return m_imageId; } 297 298 /** 299 * <p>The ID of the AMI.</p> 300 */ ImageIdHasBeenSet()301 inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; } 302 303 /** 304 * <p>The ID of the AMI.</p> 305 */ SetImageId(const Aws::String & value)306 inline void SetImageId(const Aws::String& value) { m_imageIdHasBeenSet = true; m_imageId = value; } 307 308 /** 309 * <p>The ID of the AMI.</p> 310 */ SetImageId(Aws::String && value)311 inline void SetImageId(Aws::String&& value) { m_imageIdHasBeenSet = true; m_imageId = std::move(value); } 312 313 /** 314 * <p>The ID of the AMI.</p> 315 */ SetImageId(const char * value)316 inline void SetImageId(const char* value) { m_imageIdHasBeenSet = true; m_imageId.assign(value); } 317 318 /** 319 * <p>The ID of the AMI.</p> 320 */ WithImageId(const Aws::String & value)321 inline RequestLaunchTemplateData& WithImageId(const Aws::String& value) { SetImageId(value); return *this;} 322 323 /** 324 * <p>The ID of the AMI.</p> 325 */ WithImageId(Aws::String && value)326 inline RequestLaunchTemplateData& WithImageId(Aws::String&& value) { SetImageId(std::move(value)); return *this;} 327 328 /** 329 * <p>The ID of the AMI.</p> 330 */ WithImageId(const char * value)331 inline RequestLaunchTemplateData& WithImageId(const char* value) { SetImageId(value); return *this;} 332 333 334 /** 335 * <p>The instance type. For more information, see <a 336 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance 337 * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 338 */ GetInstanceType()339 inline const InstanceType& GetInstanceType() const{ return m_instanceType; } 340 341 /** 342 * <p>The instance type. For more information, see <a 343 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance 344 * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 345 */ InstanceTypeHasBeenSet()346 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } 347 348 /** 349 * <p>The instance type. For more information, see <a 350 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance 351 * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 352 */ SetInstanceType(const InstanceType & value)353 inline void SetInstanceType(const InstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } 354 355 /** 356 * <p>The instance type. For more information, see <a 357 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance 358 * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 359 */ SetInstanceType(InstanceType && value)360 inline void SetInstanceType(InstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } 361 362 /** 363 * <p>The instance type. For more information, see <a 364 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance 365 * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 366 */ WithInstanceType(const InstanceType & value)367 inline RequestLaunchTemplateData& WithInstanceType(const InstanceType& value) { SetInstanceType(value); return *this;} 368 369 /** 370 * <p>The instance type. For more information, see <a 371 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance 372 * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 373 */ WithInstanceType(InstanceType && value)374 inline RequestLaunchTemplateData& WithInstanceType(InstanceType&& value) { SetInstanceType(std::move(value)); return *this;} 375 376 377 /** 378 * <p>The name of the key pair. You can create a key pair using <a 379 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> 380 * or <a 381 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>.</p> 382 * <p>If you do not specify a key pair, you can't connect to the 383 * instance unless you choose an AMI that is configured to allow users another way 384 * to log in.</p> 385 */ GetKeyName()386 inline const Aws::String& GetKeyName() const{ return m_keyName; } 387 388 /** 389 * <p>The name of the key pair. You can create a key pair using <a 390 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> 391 * or <a 392 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>.</p> 393 * <p>If you do not specify a key pair, you can't connect to the 394 * instance unless you choose an AMI that is configured to allow users another way 395 * to log in.</p> 396 */ KeyNameHasBeenSet()397 inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; } 398 399 /** 400 * <p>The name of the key pair. You can create a key pair using <a 401 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> 402 * or <a 403 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>.</p> 404 * <p>If you do not specify a key pair, you can't connect to the 405 * instance unless you choose an AMI that is configured to allow users another way 406 * to log in.</p> 407 */ SetKeyName(const Aws::String & value)408 inline void SetKeyName(const Aws::String& value) { m_keyNameHasBeenSet = true; m_keyName = value; } 409 410 /** 411 * <p>The name of the key pair. You can create a key pair using <a 412 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> 413 * or <a 414 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>.</p> 415 * <p>If you do not specify a key pair, you can't connect to the 416 * instance unless you choose an AMI that is configured to allow users another way 417 * to log in.</p> 418 */ SetKeyName(Aws::String && value)419 inline void SetKeyName(Aws::String&& value) { m_keyNameHasBeenSet = true; m_keyName = std::move(value); } 420 421 /** 422 * <p>The name of the key pair. You can create a key pair using <a 423 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> 424 * or <a 425 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>.</p> 426 * <p>If you do not specify a key pair, you can't connect to the 427 * instance unless you choose an AMI that is configured to allow users another way 428 * to log in.</p> 429 */ SetKeyName(const char * value)430 inline void SetKeyName(const char* value) { m_keyNameHasBeenSet = true; m_keyName.assign(value); } 431 432 /** 433 * <p>The name of the key pair. You can create a key pair using <a 434 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> 435 * or <a 436 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>.</p> 437 * <p>If you do not specify a key pair, you can't connect to the 438 * instance unless you choose an AMI that is configured to allow users another way 439 * to log in.</p> 440 */ WithKeyName(const Aws::String & value)441 inline RequestLaunchTemplateData& WithKeyName(const Aws::String& value) { SetKeyName(value); return *this;} 442 443 /** 444 * <p>The name of the key pair. You can create a key pair using <a 445 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> 446 * or <a 447 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>.</p> 448 * <p>If you do not specify a key pair, you can't connect to the 449 * instance unless you choose an AMI that is configured to allow users another way 450 * to log in.</p> 451 */ WithKeyName(Aws::String && value)452 inline RequestLaunchTemplateData& WithKeyName(Aws::String&& value) { SetKeyName(std::move(value)); return *this;} 453 454 /** 455 * <p>The name of the key pair. You can create a key pair using <a 456 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> 457 * or <a 458 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>.</p> 459 * <p>If you do not specify a key pair, you can't connect to the 460 * instance unless you choose an AMI that is configured to allow users another way 461 * to log in.</p> 462 */ WithKeyName(const char * value)463 inline RequestLaunchTemplateData& WithKeyName(const char* value) { SetKeyName(value); return *this;} 464 465 466 /** 467 * <p>The monitoring for the instance.</p> 468 */ GetMonitoring()469 inline const LaunchTemplatesMonitoringRequest& GetMonitoring() const{ return m_monitoring; } 470 471 /** 472 * <p>The monitoring for the instance.</p> 473 */ MonitoringHasBeenSet()474 inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; } 475 476 /** 477 * <p>The monitoring for the instance.</p> 478 */ SetMonitoring(const LaunchTemplatesMonitoringRequest & value)479 inline void SetMonitoring(const LaunchTemplatesMonitoringRequest& value) { m_monitoringHasBeenSet = true; m_monitoring = value; } 480 481 /** 482 * <p>The monitoring for the instance.</p> 483 */ SetMonitoring(LaunchTemplatesMonitoringRequest && value)484 inline void SetMonitoring(LaunchTemplatesMonitoringRequest&& value) { m_monitoringHasBeenSet = true; m_monitoring = std::move(value); } 485 486 /** 487 * <p>The monitoring for the instance.</p> 488 */ WithMonitoring(const LaunchTemplatesMonitoringRequest & value)489 inline RequestLaunchTemplateData& WithMonitoring(const LaunchTemplatesMonitoringRequest& value) { SetMonitoring(value); return *this;} 490 491 /** 492 * <p>The monitoring for the instance.</p> 493 */ WithMonitoring(LaunchTemplatesMonitoringRequest && value)494 inline RequestLaunchTemplateData& WithMonitoring(LaunchTemplatesMonitoringRequest&& value) { SetMonitoring(std::move(value)); return *this;} 495 496 497 /** 498 * <p>The placement for the instance.</p> 499 */ GetPlacement()500 inline const LaunchTemplatePlacementRequest& GetPlacement() const{ return m_placement; } 501 502 /** 503 * <p>The placement for the instance.</p> 504 */ PlacementHasBeenSet()505 inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; } 506 507 /** 508 * <p>The placement for the instance.</p> 509 */ SetPlacement(const LaunchTemplatePlacementRequest & value)510 inline void SetPlacement(const LaunchTemplatePlacementRequest& value) { m_placementHasBeenSet = true; m_placement = value; } 511 512 /** 513 * <p>The placement for the instance.</p> 514 */ SetPlacement(LaunchTemplatePlacementRequest && value)515 inline void SetPlacement(LaunchTemplatePlacementRequest&& value) { m_placementHasBeenSet = true; m_placement = std::move(value); } 516 517 /** 518 * <p>The placement for the instance.</p> 519 */ WithPlacement(const LaunchTemplatePlacementRequest & value)520 inline RequestLaunchTemplateData& WithPlacement(const LaunchTemplatePlacementRequest& value) { SetPlacement(value); return *this;} 521 522 /** 523 * <p>The placement for the instance.</p> 524 */ WithPlacement(LaunchTemplatePlacementRequest && value)525 inline RequestLaunchTemplateData& WithPlacement(LaunchTemplatePlacementRequest&& value) { SetPlacement(std::move(value)); return *this;} 526 527 528 /** 529 * <p>The ID of the RAM disk.</p> <p>We recommend that you use PV-GRUB 530 * instead of kernels and RAM disks. For more information, see <a 531 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 532 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 533 * 534 */ GetRamDiskId()535 inline const Aws::String& GetRamDiskId() const{ return m_ramDiskId; } 536 537 /** 538 * <p>The ID of the RAM disk.</p> <p>We recommend that you use PV-GRUB 539 * instead of kernels and RAM disks. For more information, see <a 540 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 541 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 542 * 543 */ RamDiskIdHasBeenSet()544 inline bool RamDiskIdHasBeenSet() const { return m_ramDiskIdHasBeenSet; } 545 546 /** 547 * <p>The ID of the RAM disk.</p> <p>We recommend that you use PV-GRUB 548 * instead of kernels and RAM disks. For more information, see <a 549 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 550 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 551 * 552 */ SetRamDiskId(const Aws::String & value)553 inline void SetRamDiskId(const Aws::String& value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId = value; } 554 555 /** 556 * <p>The ID of the RAM disk.</p> <p>We recommend that you use PV-GRUB 557 * instead of kernels and RAM disks. For more information, see <a 558 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 559 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 560 * 561 */ SetRamDiskId(Aws::String && value)562 inline void SetRamDiskId(Aws::String&& value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId = std::move(value); } 563 564 /** 565 * <p>The ID of the RAM disk.</p> <p>We recommend that you use PV-GRUB 566 * instead of kernels and RAM disks. For more information, see <a 567 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 568 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 569 * 570 */ SetRamDiskId(const char * value)571 inline void SetRamDiskId(const char* value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId.assign(value); } 572 573 /** 574 * <p>The ID of the RAM disk.</p> <p>We recommend that you use PV-GRUB 575 * instead of kernels and RAM disks. For more information, see <a 576 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 577 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 578 * 579 */ WithRamDiskId(const Aws::String & value)580 inline RequestLaunchTemplateData& WithRamDiskId(const Aws::String& value) { SetRamDiskId(value); return *this;} 581 582 /** 583 * <p>The ID of the RAM disk.</p> <p>We recommend that you use PV-GRUB 584 * instead of kernels and RAM disks. For more information, see <a 585 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 586 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 587 * 588 */ WithRamDiskId(Aws::String && value)589 inline RequestLaunchTemplateData& WithRamDiskId(Aws::String&& value) { SetRamDiskId(std::move(value)); return *this;} 590 591 /** 592 * <p>The ID of the RAM disk.</p> <p>We recommend that you use PV-GRUB 593 * instead of kernels and RAM disks. For more information, see <a 594 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User 595 * Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 596 * 597 */ WithRamDiskId(const char * value)598 inline RequestLaunchTemplateData& WithRamDiskId(const char* value) { SetRamDiskId(value); return *this;} 599 600 601 /** 602 * <p>If you set this parameter to <code>true</code>, you can't terminate the 603 * instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To 604 * change this attribute after launch, use <a 605 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html">ModifyInstanceAttribute</a>. 606 * Alternatively, if you set <code>InstanceInitiatedShutdownBehavior</code> to 607 * <code>terminate</code>, you can terminate the instance by running the shutdown 608 * command from the instance.</p> 609 */ GetDisableApiTermination()610 inline bool GetDisableApiTermination() const{ return m_disableApiTermination; } 611 612 /** 613 * <p>If you set this parameter to <code>true</code>, you can't terminate the 614 * instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To 615 * change this attribute after launch, use <a 616 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html">ModifyInstanceAttribute</a>. 617 * Alternatively, if you set <code>InstanceInitiatedShutdownBehavior</code> to 618 * <code>terminate</code>, you can terminate the instance by running the shutdown 619 * command from the instance.</p> 620 */ DisableApiTerminationHasBeenSet()621 inline bool DisableApiTerminationHasBeenSet() const { return m_disableApiTerminationHasBeenSet; } 622 623 /** 624 * <p>If you set this parameter to <code>true</code>, you can't terminate the 625 * instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To 626 * change this attribute after launch, use <a 627 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html">ModifyInstanceAttribute</a>. 628 * Alternatively, if you set <code>InstanceInitiatedShutdownBehavior</code> to 629 * <code>terminate</code>, you can terminate the instance by running the shutdown 630 * command from the instance.</p> 631 */ SetDisableApiTermination(bool value)632 inline void SetDisableApiTermination(bool value) { m_disableApiTerminationHasBeenSet = true; m_disableApiTermination = value; } 633 634 /** 635 * <p>If you set this parameter to <code>true</code>, you can't terminate the 636 * instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To 637 * change this attribute after launch, use <a 638 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html">ModifyInstanceAttribute</a>. 639 * Alternatively, if you set <code>InstanceInitiatedShutdownBehavior</code> to 640 * <code>terminate</code>, you can terminate the instance by running the shutdown 641 * command from the instance.</p> 642 */ WithDisableApiTermination(bool value)643 inline RequestLaunchTemplateData& WithDisableApiTermination(bool value) { SetDisableApiTermination(value); return *this;} 644 645 646 /** 647 * <p>Indicates whether an instance stops or terminates when you initiate shutdown 648 * from the instance (using the operating system command for system shutdown).</p> 649 * <p>Default: <code>stop</code> </p> 650 */ GetInstanceInitiatedShutdownBehavior()651 inline const ShutdownBehavior& GetInstanceInitiatedShutdownBehavior() const{ return m_instanceInitiatedShutdownBehavior; } 652 653 /** 654 * <p>Indicates whether an instance stops or terminates when you initiate shutdown 655 * from the instance (using the operating system command for system shutdown).</p> 656 * <p>Default: <code>stop</code> </p> 657 */ InstanceInitiatedShutdownBehaviorHasBeenSet()658 inline bool InstanceInitiatedShutdownBehaviorHasBeenSet() const { return m_instanceInitiatedShutdownBehaviorHasBeenSet; } 659 660 /** 661 * <p>Indicates whether an instance stops or terminates when you initiate shutdown 662 * from the instance (using the operating system command for system shutdown).</p> 663 * <p>Default: <code>stop</code> </p> 664 */ SetInstanceInitiatedShutdownBehavior(const ShutdownBehavior & value)665 inline void SetInstanceInitiatedShutdownBehavior(const ShutdownBehavior& value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = value; } 666 667 /** 668 * <p>Indicates whether an instance stops or terminates when you initiate shutdown 669 * from the instance (using the operating system command for system shutdown).</p> 670 * <p>Default: <code>stop</code> </p> 671 */ SetInstanceInitiatedShutdownBehavior(ShutdownBehavior && value)672 inline void SetInstanceInitiatedShutdownBehavior(ShutdownBehavior&& value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = std::move(value); } 673 674 /** 675 * <p>Indicates whether an instance stops or terminates when you initiate shutdown 676 * from the instance (using the operating system command for system shutdown).</p> 677 * <p>Default: <code>stop</code> </p> 678 */ WithInstanceInitiatedShutdownBehavior(const ShutdownBehavior & value)679 inline RequestLaunchTemplateData& WithInstanceInitiatedShutdownBehavior(const ShutdownBehavior& value) { SetInstanceInitiatedShutdownBehavior(value); return *this;} 680 681 /** 682 * <p>Indicates whether an instance stops or terminates when you initiate shutdown 683 * from the instance (using the operating system command for system shutdown).</p> 684 * <p>Default: <code>stop</code> </p> 685 */ WithInstanceInitiatedShutdownBehavior(ShutdownBehavior && value)686 inline RequestLaunchTemplateData& WithInstanceInitiatedShutdownBehavior(ShutdownBehavior&& value) { SetInstanceInitiatedShutdownBehavior(std::move(value)); return *this;} 687 688 689 /** 690 * <p>The user data to make available to the instance. You must provide 691 * base64-encoded text. User data is limited to 16 KB. For more information, see <a 692 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running 693 * Commands on Your Linux Instance at Launch</a> (Linux) or <a 694 * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding 695 * User Data</a> (Windows).</p> <p>If you are creating the launch template for use 696 * with Batch, the user data must be provided in the <a 697 * href="https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive"> 698 * MIME multi-part archive format</a>. For more information, see <a 699 * href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Amazon 700 * EC2 user data in launch templates</a> in the <i>Batch User Guide</i>.</p> 701 */ GetUserData()702 inline const Aws::String& GetUserData() const{ return m_userData; } 703 704 /** 705 * <p>The user data to make available to the instance. You must provide 706 * base64-encoded text. User data is limited to 16 KB. For more information, see <a 707 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running 708 * Commands on Your Linux Instance at Launch</a> (Linux) or <a 709 * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding 710 * User Data</a> (Windows).</p> <p>If you are creating the launch template for use 711 * with Batch, the user data must be provided in the <a 712 * href="https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive"> 713 * MIME multi-part archive format</a>. For more information, see <a 714 * href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Amazon 715 * EC2 user data in launch templates</a> in the <i>Batch User Guide</i>.</p> 716 */ UserDataHasBeenSet()717 inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; } 718 719 /** 720 * <p>The user data to make available to the instance. You must provide 721 * base64-encoded text. User data is limited to 16 KB. For more information, see <a 722 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running 723 * Commands on Your Linux Instance at Launch</a> (Linux) or <a 724 * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding 725 * User Data</a> (Windows).</p> <p>If you are creating the launch template for use 726 * with Batch, the user data must be provided in the <a 727 * href="https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive"> 728 * MIME multi-part archive format</a>. For more information, see <a 729 * href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Amazon 730 * EC2 user data in launch templates</a> in the <i>Batch User Guide</i>.</p> 731 */ SetUserData(const Aws::String & value)732 inline void SetUserData(const Aws::String& value) { m_userDataHasBeenSet = true; m_userData = value; } 733 734 /** 735 * <p>The user data to make available to the instance. You must provide 736 * base64-encoded text. User data is limited to 16 KB. For more information, see <a 737 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running 738 * Commands on Your Linux Instance at Launch</a> (Linux) or <a 739 * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding 740 * User Data</a> (Windows).</p> <p>If you are creating the launch template for use 741 * with Batch, the user data must be provided in the <a 742 * href="https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive"> 743 * MIME multi-part archive format</a>. For more information, see <a 744 * href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Amazon 745 * EC2 user data in launch templates</a> in the <i>Batch User Guide</i>.</p> 746 */ SetUserData(Aws::String && value)747 inline void SetUserData(Aws::String&& value) { m_userDataHasBeenSet = true; m_userData = std::move(value); } 748 749 /** 750 * <p>The user data to make available to the instance. You must provide 751 * base64-encoded text. User data is limited to 16 KB. For more information, see <a 752 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running 753 * Commands on Your Linux Instance at Launch</a> (Linux) or <a 754 * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding 755 * User Data</a> (Windows).</p> <p>If you are creating the launch template for use 756 * with Batch, the user data must be provided in the <a 757 * href="https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive"> 758 * MIME multi-part archive format</a>. For more information, see <a 759 * href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Amazon 760 * EC2 user data in launch templates</a> in the <i>Batch User Guide</i>.</p> 761 */ SetUserData(const char * value)762 inline void SetUserData(const char* value) { m_userDataHasBeenSet = true; m_userData.assign(value); } 763 764 /** 765 * <p>The user data to make available to the instance. You must provide 766 * base64-encoded text. User data is limited to 16 KB. For more information, see <a 767 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running 768 * Commands on Your Linux Instance at Launch</a> (Linux) or <a 769 * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding 770 * User Data</a> (Windows).</p> <p>If you are creating the launch template for use 771 * with Batch, the user data must be provided in the <a 772 * href="https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive"> 773 * MIME multi-part archive format</a>. For more information, see <a 774 * href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Amazon 775 * EC2 user data in launch templates</a> in the <i>Batch User Guide</i>.</p> 776 */ WithUserData(const Aws::String & value)777 inline RequestLaunchTemplateData& WithUserData(const Aws::String& value) { SetUserData(value); return *this;} 778 779 /** 780 * <p>The user data to make available to the instance. You must provide 781 * base64-encoded text. User data is limited to 16 KB. For more information, see <a 782 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running 783 * Commands on Your Linux Instance at Launch</a> (Linux) or <a 784 * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding 785 * User Data</a> (Windows).</p> <p>If you are creating the launch template for use 786 * with Batch, the user data must be provided in the <a 787 * href="https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive"> 788 * MIME multi-part archive format</a>. For more information, see <a 789 * href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Amazon 790 * EC2 user data in launch templates</a> in the <i>Batch User Guide</i>.</p> 791 */ WithUserData(Aws::String && value)792 inline RequestLaunchTemplateData& WithUserData(Aws::String&& value) { SetUserData(std::move(value)); return *this;} 793 794 /** 795 * <p>The user data to make available to the instance. You must provide 796 * base64-encoded text. User data is limited to 16 KB. For more information, see <a 797 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running 798 * Commands on Your Linux Instance at Launch</a> (Linux) or <a 799 * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding 800 * User Data</a> (Windows).</p> <p>If you are creating the launch template for use 801 * with Batch, the user data must be provided in the <a 802 * href="https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive"> 803 * MIME multi-part archive format</a>. For more information, see <a 804 * href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Amazon 805 * EC2 user data in launch templates</a> in the <i>Batch User Guide</i>.</p> 806 */ WithUserData(const char * value)807 inline RequestLaunchTemplateData& WithUserData(const char* value) { SetUserData(value); return *this;} 808 809 810 /** 811 * <p>The tags to apply to the resources during launch. You can only tag instances 812 * and volumes on launch. The specified tags are applied to all instances or 813 * volumes that are created during launch. To tag a resource after it has been 814 * created, see <a 815 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p> 816 */ GetTagSpecifications()817 inline const Aws::Vector<LaunchTemplateTagSpecificationRequest>& GetTagSpecifications() const{ return m_tagSpecifications; } 818 819 /** 820 * <p>The tags to apply to the resources during launch. You can only tag instances 821 * and volumes on launch. The specified tags are applied to all instances or 822 * volumes that are created during launch. To tag a resource after it has been 823 * created, see <a 824 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p> 825 */ TagSpecificationsHasBeenSet()826 inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; } 827 828 /** 829 * <p>The tags to apply to the resources during launch. You can only tag instances 830 * and volumes on launch. The specified tags are applied to all instances or 831 * volumes that are created during launch. To tag a resource after it has been 832 * created, see <a 833 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p> 834 */ SetTagSpecifications(const Aws::Vector<LaunchTemplateTagSpecificationRequest> & value)835 inline void SetTagSpecifications(const Aws::Vector<LaunchTemplateTagSpecificationRequest>& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; } 836 837 /** 838 * <p>The tags to apply to the resources during launch. You can only tag instances 839 * and volumes on launch. The specified tags are applied to all instances or 840 * volumes that are created during launch. To tag a resource after it has been 841 * created, see <a 842 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p> 843 */ SetTagSpecifications(Aws::Vector<LaunchTemplateTagSpecificationRequest> && value)844 inline void SetTagSpecifications(Aws::Vector<LaunchTemplateTagSpecificationRequest>&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); } 845 846 /** 847 * <p>The tags to apply to the resources during launch. You can only tag instances 848 * and volumes on launch. The specified tags are applied to all instances or 849 * volumes that are created during launch. To tag a resource after it has been 850 * created, see <a 851 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p> 852 */ WithTagSpecifications(const Aws::Vector<LaunchTemplateTagSpecificationRequest> & value)853 inline RequestLaunchTemplateData& WithTagSpecifications(const Aws::Vector<LaunchTemplateTagSpecificationRequest>& value) { SetTagSpecifications(value); return *this;} 854 855 /** 856 * <p>The tags to apply to the resources during launch. You can only tag instances 857 * and volumes on launch. The specified tags are applied to all instances or 858 * volumes that are created during launch. To tag a resource after it has been 859 * created, see <a 860 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p> 861 */ WithTagSpecifications(Aws::Vector<LaunchTemplateTagSpecificationRequest> && value)862 inline RequestLaunchTemplateData& WithTagSpecifications(Aws::Vector<LaunchTemplateTagSpecificationRequest>&& value) { SetTagSpecifications(std::move(value)); return *this;} 863 864 /** 865 * <p>The tags to apply to the resources during launch. You can only tag instances 866 * and volumes on launch. The specified tags are applied to all instances or 867 * volumes that are created during launch. To tag a resource after it has been 868 * created, see <a 869 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p> 870 */ AddTagSpecifications(const LaunchTemplateTagSpecificationRequest & value)871 inline RequestLaunchTemplateData& AddTagSpecifications(const LaunchTemplateTagSpecificationRequest& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; } 872 873 /** 874 * <p>The tags to apply to the resources during launch. You can only tag instances 875 * and volumes on launch. The specified tags are applied to all instances or 876 * volumes that are created during launch. To tag a resource after it has been 877 * created, see <a 878 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p> 879 */ AddTagSpecifications(LaunchTemplateTagSpecificationRequest && value)880 inline RequestLaunchTemplateData& AddTagSpecifications(LaunchTemplateTagSpecificationRequest&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; } 881 882 883 /** 884 * <p>An elastic GPU to associate with the instance.</p> 885 */ GetElasticGpuSpecifications()886 inline const Aws::Vector<ElasticGpuSpecification>& GetElasticGpuSpecifications() const{ return m_elasticGpuSpecifications; } 887 888 /** 889 * <p>An elastic GPU to associate with the instance.</p> 890 */ ElasticGpuSpecificationsHasBeenSet()891 inline bool ElasticGpuSpecificationsHasBeenSet() const { return m_elasticGpuSpecificationsHasBeenSet; } 892 893 /** 894 * <p>An elastic GPU to associate with the instance.</p> 895 */ SetElasticGpuSpecifications(const Aws::Vector<ElasticGpuSpecification> & value)896 inline void SetElasticGpuSpecifications(const Aws::Vector<ElasticGpuSpecification>& value) { m_elasticGpuSpecificationsHasBeenSet = true; m_elasticGpuSpecifications = value; } 897 898 /** 899 * <p>An elastic GPU to associate with the instance.</p> 900 */ SetElasticGpuSpecifications(Aws::Vector<ElasticGpuSpecification> && value)901 inline void SetElasticGpuSpecifications(Aws::Vector<ElasticGpuSpecification>&& value) { m_elasticGpuSpecificationsHasBeenSet = true; m_elasticGpuSpecifications = std::move(value); } 902 903 /** 904 * <p>An elastic GPU to associate with the instance.</p> 905 */ WithElasticGpuSpecifications(const Aws::Vector<ElasticGpuSpecification> & value)906 inline RequestLaunchTemplateData& WithElasticGpuSpecifications(const Aws::Vector<ElasticGpuSpecification>& value) { SetElasticGpuSpecifications(value); return *this;} 907 908 /** 909 * <p>An elastic GPU to associate with the instance.</p> 910 */ WithElasticGpuSpecifications(Aws::Vector<ElasticGpuSpecification> && value)911 inline RequestLaunchTemplateData& WithElasticGpuSpecifications(Aws::Vector<ElasticGpuSpecification>&& value) { SetElasticGpuSpecifications(std::move(value)); return *this;} 912 913 /** 914 * <p>An elastic GPU to associate with the instance.</p> 915 */ AddElasticGpuSpecifications(const ElasticGpuSpecification & value)916 inline RequestLaunchTemplateData& AddElasticGpuSpecifications(const ElasticGpuSpecification& value) { m_elasticGpuSpecificationsHasBeenSet = true; m_elasticGpuSpecifications.push_back(value); return *this; } 917 918 /** 919 * <p>An elastic GPU to associate with the instance.</p> 920 */ AddElasticGpuSpecifications(ElasticGpuSpecification && value)921 inline RequestLaunchTemplateData& AddElasticGpuSpecifications(ElasticGpuSpecification&& value) { m_elasticGpuSpecificationsHasBeenSet = true; m_elasticGpuSpecifications.push_back(std::move(value)); return *this; } 922 923 924 /** 925 * <p> The elastic inference accelerator for the instance. </p> 926 */ GetElasticInferenceAccelerators()927 inline const Aws::Vector<LaunchTemplateElasticInferenceAccelerator>& GetElasticInferenceAccelerators() const{ return m_elasticInferenceAccelerators; } 928 929 /** 930 * <p> The elastic inference accelerator for the instance. </p> 931 */ ElasticInferenceAcceleratorsHasBeenSet()932 inline bool ElasticInferenceAcceleratorsHasBeenSet() const { return m_elasticInferenceAcceleratorsHasBeenSet; } 933 934 /** 935 * <p> The elastic inference accelerator for the instance. </p> 936 */ SetElasticInferenceAccelerators(const Aws::Vector<LaunchTemplateElasticInferenceAccelerator> & value)937 inline void SetElasticInferenceAccelerators(const Aws::Vector<LaunchTemplateElasticInferenceAccelerator>& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators = value; } 938 939 /** 940 * <p> The elastic inference accelerator for the instance. </p> 941 */ SetElasticInferenceAccelerators(Aws::Vector<LaunchTemplateElasticInferenceAccelerator> && value)942 inline void SetElasticInferenceAccelerators(Aws::Vector<LaunchTemplateElasticInferenceAccelerator>&& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators = std::move(value); } 943 944 /** 945 * <p> The elastic inference accelerator for the instance. </p> 946 */ WithElasticInferenceAccelerators(const Aws::Vector<LaunchTemplateElasticInferenceAccelerator> & value)947 inline RequestLaunchTemplateData& WithElasticInferenceAccelerators(const Aws::Vector<LaunchTemplateElasticInferenceAccelerator>& value) { SetElasticInferenceAccelerators(value); return *this;} 948 949 /** 950 * <p> The elastic inference accelerator for the instance. </p> 951 */ WithElasticInferenceAccelerators(Aws::Vector<LaunchTemplateElasticInferenceAccelerator> && value)952 inline RequestLaunchTemplateData& WithElasticInferenceAccelerators(Aws::Vector<LaunchTemplateElasticInferenceAccelerator>&& value) { SetElasticInferenceAccelerators(std::move(value)); return *this;} 953 954 /** 955 * <p> The elastic inference accelerator for the instance. </p> 956 */ AddElasticInferenceAccelerators(const LaunchTemplateElasticInferenceAccelerator & value)957 inline RequestLaunchTemplateData& AddElasticInferenceAccelerators(const LaunchTemplateElasticInferenceAccelerator& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators.push_back(value); return *this; } 958 959 /** 960 * <p> The elastic inference accelerator for the instance. </p> 961 */ AddElasticInferenceAccelerators(LaunchTemplateElasticInferenceAccelerator && value)962 inline RequestLaunchTemplateData& AddElasticInferenceAccelerators(LaunchTemplateElasticInferenceAccelerator&& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators.push_back(std::move(value)); return *this; } 963 964 965 /** 966 * <p>One or more security group IDs. You can create a security group using <a 967 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 968 * You cannot specify both a security group ID and security name in the same 969 * request.</p> 970 */ GetSecurityGroupIds()971 inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const{ return m_securityGroupIds; } 972 973 /** 974 * <p>One or more security group IDs. You can create a security group using <a 975 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 976 * You cannot specify both a security group ID and security name in the same 977 * request.</p> 978 */ SecurityGroupIdsHasBeenSet()979 inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } 980 981 /** 982 * <p>One or more security group IDs. You can create a security group using <a 983 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 984 * You cannot specify both a security group ID and security name in the same 985 * request.</p> 986 */ SetSecurityGroupIds(const Aws::Vector<Aws::String> & value)987 inline void SetSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } 988 989 /** 990 * <p>One or more security group IDs. You can create a security group using <a 991 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 992 * You cannot specify both a security group ID and security name in the same 993 * request.</p> 994 */ SetSecurityGroupIds(Aws::Vector<Aws::String> && value)995 inline void SetSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } 996 997 /** 998 * <p>One or more security group IDs. You can create a security group using <a 999 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 1000 * You cannot specify both a security group ID and security name in the same 1001 * request.</p> 1002 */ WithSecurityGroupIds(const Aws::Vector<Aws::String> & value)1003 inline RequestLaunchTemplateData& WithSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetSecurityGroupIds(value); return *this;} 1004 1005 /** 1006 * <p>One or more security group IDs. You can create a security group using <a 1007 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 1008 * You cannot specify both a security group ID and security name in the same 1009 * request.</p> 1010 */ WithSecurityGroupIds(Aws::Vector<Aws::String> && value)1011 inline RequestLaunchTemplateData& WithSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetSecurityGroupIds(std::move(value)); return *this;} 1012 1013 /** 1014 * <p>One or more security group IDs. You can create a security group using <a 1015 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 1016 * You cannot specify both a security group ID and security name in the same 1017 * request.</p> 1018 */ AddSecurityGroupIds(const Aws::String & value)1019 inline RequestLaunchTemplateData& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } 1020 1021 /** 1022 * <p>One or more security group IDs. You can create a security group using <a 1023 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 1024 * You cannot specify both a security group ID and security name in the same 1025 * request.</p> 1026 */ AddSecurityGroupIds(Aws::String && value)1027 inline RequestLaunchTemplateData& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } 1028 1029 /** 1030 * <p>One or more security group IDs. You can create a security group using <a 1031 * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. 1032 * You cannot specify both a security group ID and security name in the same 1033 * request.</p> 1034 */ AddSecurityGroupIds(const char * value)1035 inline RequestLaunchTemplateData& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } 1036 1037 1038 /** 1039 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1040 * VPC, you must use security group IDs instead. You cannot specify both a security 1041 * group ID and security name in the same request.</p> 1042 */ GetSecurityGroups()1043 inline const Aws::Vector<Aws::String>& GetSecurityGroups() const{ return m_securityGroups; } 1044 1045 /** 1046 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1047 * VPC, you must use security group IDs instead. You cannot specify both a security 1048 * group ID and security name in the same request.</p> 1049 */ SecurityGroupsHasBeenSet()1050 inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; } 1051 1052 /** 1053 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1054 * VPC, you must use security group IDs instead. You cannot specify both a security 1055 * group ID and security name in the same request.</p> 1056 */ SetSecurityGroups(const Aws::Vector<Aws::String> & value)1057 inline void SetSecurityGroups(const Aws::Vector<Aws::String>& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; } 1058 1059 /** 1060 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1061 * VPC, you must use security group IDs instead. You cannot specify both a security 1062 * group ID and security name in the same request.</p> 1063 */ SetSecurityGroups(Aws::Vector<Aws::String> && value)1064 inline void SetSecurityGroups(Aws::Vector<Aws::String>&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); } 1065 1066 /** 1067 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1068 * VPC, you must use security group IDs instead. You cannot specify both a security 1069 * group ID and security name in the same request.</p> 1070 */ WithSecurityGroups(const Aws::Vector<Aws::String> & value)1071 inline RequestLaunchTemplateData& WithSecurityGroups(const Aws::Vector<Aws::String>& value) { SetSecurityGroups(value); return *this;} 1072 1073 /** 1074 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1075 * VPC, you must use security group IDs instead. You cannot specify both a security 1076 * group ID and security name in the same request.</p> 1077 */ WithSecurityGroups(Aws::Vector<Aws::String> && value)1078 inline RequestLaunchTemplateData& WithSecurityGroups(Aws::Vector<Aws::String>&& value) { SetSecurityGroups(std::move(value)); return *this;} 1079 1080 /** 1081 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1082 * VPC, you must use security group IDs instead. You cannot specify both a security 1083 * group ID and security name in the same request.</p> 1084 */ AddSecurityGroups(const Aws::String & value)1085 inline RequestLaunchTemplateData& AddSecurityGroups(const Aws::String& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } 1086 1087 /** 1088 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1089 * VPC, you must use security group IDs instead. You cannot specify both a security 1090 * group ID and security name in the same request.</p> 1091 */ AddSecurityGroups(Aws::String && value)1092 inline RequestLaunchTemplateData& AddSecurityGroups(Aws::String&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; } 1093 1094 /** 1095 * <p>[EC2-Classic, default VPC] One or more security group names. For a nondefault 1096 * VPC, you must use security group IDs instead. You cannot specify both a security 1097 * group ID and security name in the same request.</p> 1098 */ AddSecurityGroups(const char * value)1099 inline RequestLaunchTemplateData& AddSecurityGroups(const char* value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } 1100 1101 1102 /** 1103 * <p>The market (purchasing) option for the instances.</p> 1104 */ GetInstanceMarketOptions()1105 inline const LaunchTemplateInstanceMarketOptionsRequest& GetInstanceMarketOptions() const{ return m_instanceMarketOptions; } 1106 1107 /** 1108 * <p>The market (purchasing) option for the instances.</p> 1109 */ InstanceMarketOptionsHasBeenSet()1110 inline bool InstanceMarketOptionsHasBeenSet() const { return m_instanceMarketOptionsHasBeenSet; } 1111 1112 /** 1113 * <p>The market (purchasing) option for the instances.</p> 1114 */ SetInstanceMarketOptions(const LaunchTemplateInstanceMarketOptionsRequest & value)1115 inline void SetInstanceMarketOptions(const LaunchTemplateInstanceMarketOptionsRequest& value) { m_instanceMarketOptionsHasBeenSet = true; m_instanceMarketOptions = value; } 1116 1117 /** 1118 * <p>The market (purchasing) option for the instances.</p> 1119 */ SetInstanceMarketOptions(LaunchTemplateInstanceMarketOptionsRequest && value)1120 inline void SetInstanceMarketOptions(LaunchTemplateInstanceMarketOptionsRequest&& value) { m_instanceMarketOptionsHasBeenSet = true; m_instanceMarketOptions = std::move(value); } 1121 1122 /** 1123 * <p>The market (purchasing) option for the instances.</p> 1124 */ WithInstanceMarketOptions(const LaunchTemplateInstanceMarketOptionsRequest & value)1125 inline RequestLaunchTemplateData& WithInstanceMarketOptions(const LaunchTemplateInstanceMarketOptionsRequest& value) { SetInstanceMarketOptions(value); return *this;} 1126 1127 /** 1128 * <p>The market (purchasing) option for the instances.</p> 1129 */ WithInstanceMarketOptions(LaunchTemplateInstanceMarketOptionsRequest && value)1130 inline RequestLaunchTemplateData& WithInstanceMarketOptions(LaunchTemplateInstanceMarketOptionsRequest&& value) { SetInstanceMarketOptions(std::move(value)); return *this;} 1131 1132 1133 /** 1134 * <p>The credit option for CPU usage of the instance. Valid for T2, T3, or T3a 1135 * instances only.</p> 1136 */ GetCreditSpecification()1137 inline const CreditSpecificationRequest& GetCreditSpecification() const{ return m_creditSpecification; } 1138 1139 /** 1140 * <p>The credit option for CPU usage of the instance. Valid for T2, T3, or T3a 1141 * instances only.</p> 1142 */ CreditSpecificationHasBeenSet()1143 inline bool CreditSpecificationHasBeenSet() const { return m_creditSpecificationHasBeenSet; } 1144 1145 /** 1146 * <p>The credit option for CPU usage of the instance. Valid for T2, T3, or T3a 1147 * instances only.</p> 1148 */ SetCreditSpecification(const CreditSpecificationRequest & value)1149 inline void SetCreditSpecification(const CreditSpecificationRequest& value) { m_creditSpecificationHasBeenSet = true; m_creditSpecification = value; } 1150 1151 /** 1152 * <p>The credit option for CPU usage of the instance. Valid for T2, T3, or T3a 1153 * instances only.</p> 1154 */ SetCreditSpecification(CreditSpecificationRequest && value)1155 inline void SetCreditSpecification(CreditSpecificationRequest&& value) { m_creditSpecificationHasBeenSet = true; m_creditSpecification = std::move(value); } 1156 1157 /** 1158 * <p>The credit option for CPU usage of the instance. Valid for T2, T3, or T3a 1159 * instances only.</p> 1160 */ WithCreditSpecification(const CreditSpecificationRequest & value)1161 inline RequestLaunchTemplateData& WithCreditSpecification(const CreditSpecificationRequest& value) { SetCreditSpecification(value); return *this;} 1162 1163 /** 1164 * <p>The credit option for CPU usage of the instance. Valid for T2, T3, or T3a 1165 * instances only.</p> 1166 */ WithCreditSpecification(CreditSpecificationRequest && value)1167 inline RequestLaunchTemplateData& WithCreditSpecification(CreditSpecificationRequest&& value) { SetCreditSpecification(std::move(value)); return *this;} 1168 1169 1170 /** 1171 * <p>The CPU options for the instance. For more information, see <a 1172 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing 1173 * CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1174 */ GetCpuOptions()1175 inline const LaunchTemplateCpuOptionsRequest& GetCpuOptions() const{ return m_cpuOptions; } 1176 1177 /** 1178 * <p>The CPU options for the instance. For more information, see <a 1179 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing 1180 * CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1181 */ CpuOptionsHasBeenSet()1182 inline bool CpuOptionsHasBeenSet() const { return m_cpuOptionsHasBeenSet; } 1183 1184 /** 1185 * <p>The CPU options for the instance. For more information, see <a 1186 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing 1187 * CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1188 */ SetCpuOptions(const LaunchTemplateCpuOptionsRequest & value)1189 inline void SetCpuOptions(const LaunchTemplateCpuOptionsRequest& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = value; } 1190 1191 /** 1192 * <p>The CPU options for the instance. For more information, see <a 1193 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing 1194 * CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1195 */ SetCpuOptions(LaunchTemplateCpuOptionsRequest && value)1196 inline void SetCpuOptions(LaunchTemplateCpuOptionsRequest&& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = std::move(value); } 1197 1198 /** 1199 * <p>The CPU options for the instance. For more information, see <a 1200 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing 1201 * CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1202 */ WithCpuOptions(const LaunchTemplateCpuOptionsRequest & value)1203 inline RequestLaunchTemplateData& WithCpuOptions(const LaunchTemplateCpuOptionsRequest& value) { SetCpuOptions(value); return *this;} 1204 1205 /** 1206 * <p>The CPU options for the instance. For more information, see <a 1207 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing 1208 * CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1209 */ WithCpuOptions(LaunchTemplateCpuOptionsRequest && value)1210 inline RequestLaunchTemplateData& WithCpuOptions(LaunchTemplateCpuOptionsRequest&& value) { SetCpuOptions(std::move(value)); return *this;} 1211 1212 1213 /** 1214 * <p>The Capacity Reservation targeting option. If you do not specify this 1215 * parameter, the instance's Capacity Reservation preference defaults to 1216 * <code>open</code>, which enables it to run in any open Capacity Reservation that 1217 * has matching attributes (instance type, platform, Availability Zone).</p> 1218 */ GetCapacityReservationSpecification()1219 inline const LaunchTemplateCapacityReservationSpecificationRequest& GetCapacityReservationSpecification() const{ return m_capacityReservationSpecification; } 1220 1221 /** 1222 * <p>The Capacity Reservation targeting option. If you do not specify this 1223 * parameter, the instance's Capacity Reservation preference defaults to 1224 * <code>open</code>, which enables it to run in any open Capacity Reservation that 1225 * has matching attributes (instance type, platform, Availability Zone).</p> 1226 */ CapacityReservationSpecificationHasBeenSet()1227 inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; } 1228 1229 /** 1230 * <p>The Capacity Reservation targeting option. If you do not specify this 1231 * parameter, the instance's Capacity Reservation preference defaults to 1232 * <code>open</code>, which enables it to run in any open Capacity Reservation that 1233 * has matching attributes (instance type, platform, Availability Zone).</p> 1234 */ SetCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationRequest & value)1235 inline void SetCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationRequest& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = value; } 1236 1237 /** 1238 * <p>The Capacity Reservation targeting option. If you do not specify this 1239 * parameter, the instance's Capacity Reservation preference defaults to 1240 * <code>open</code>, which enables it to run in any open Capacity Reservation that 1241 * has matching attributes (instance type, platform, Availability Zone).</p> 1242 */ SetCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationRequest && value)1243 inline void SetCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationRequest&& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = std::move(value); } 1244 1245 /** 1246 * <p>The Capacity Reservation targeting option. If you do not specify this 1247 * parameter, the instance's Capacity Reservation preference defaults to 1248 * <code>open</code>, which enables it to run in any open Capacity Reservation that 1249 * has matching attributes (instance type, platform, Availability Zone).</p> 1250 */ WithCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationRequest & value)1251 inline RequestLaunchTemplateData& WithCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationRequest& value) { SetCapacityReservationSpecification(value); return *this;} 1252 1253 /** 1254 * <p>The Capacity Reservation targeting option. If you do not specify this 1255 * parameter, the instance's Capacity Reservation preference defaults to 1256 * <code>open</code>, which enables it to run in any open Capacity Reservation that 1257 * has matching attributes (instance type, platform, Availability Zone).</p> 1258 */ WithCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationRequest && value)1259 inline RequestLaunchTemplateData& WithCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationRequest&& value) { SetCapacityReservationSpecification(std::move(value)); return *this;} 1260 1261 1262 /** 1263 * <p>The license configurations.</p> 1264 */ GetLicenseSpecifications()1265 inline const Aws::Vector<LaunchTemplateLicenseConfigurationRequest>& GetLicenseSpecifications() const{ return m_licenseSpecifications; } 1266 1267 /** 1268 * <p>The license configurations.</p> 1269 */ LicenseSpecificationsHasBeenSet()1270 inline bool LicenseSpecificationsHasBeenSet() const { return m_licenseSpecificationsHasBeenSet; } 1271 1272 /** 1273 * <p>The license configurations.</p> 1274 */ SetLicenseSpecifications(const Aws::Vector<LaunchTemplateLicenseConfigurationRequest> & value)1275 inline void SetLicenseSpecifications(const Aws::Vector<LaunchTemplateLicenseConfigurationRequest>& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications = value; } 1276 1277 /** 1278 * <p>The license configurations.</p> 1279 */ SetLicenseSpecifications(Aws::Vector<LaunchTemplateLicenseConfigurationRequest> && value)1280 inline void SetLicenseSpecifications(Aws::Vector<LaunchTemplateLicenseConfigurationRequest>&& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications = std::move(value); } 1281 1282 /** 1283 * <p>The license configurations.</p> 1284 */ WithLicenseSpecifications(const Aws::Vector<LaunchTemplateLicenseConfigurationRequest> & value)1285 inline RequestLaunchTemplateData& WithLicenseSpecifications(const Aws::Vector<LaunchTemplateLicenseConfigurationRequest>& value) { SetLicenseSpecifications(value); return *this;} 1286 1287 /** 1288 * <p>The license configurations.</p> 1289 */ WithLicenseSpecifications(Aws::Vector<LaunchTemplateLicenseConfigurationRequest> && value)1290 inline RequestLaunchTemplateData& WithLicenseSpecifications(Aws::Vector<LaunchTemplateLicenseConfigurationRequest>&& value) { SetLicenseSpecifications(std::move(value)); return *this;} 1291 1292 /** 1293 * <p>The license configurations.</p> 1294 */ AddLicenseSpecifications(const LaunchTemplateLicenseConfigurationRequest & value)1295 inline RequestLaunchTemplateData& AddLicenseSpecifications(const LaunchTemplateLicenseConfigurationRequest& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications.push_back(value); return *this; } 1296 1297 /** 1298 * <p>The license configurations.</p> 1299 */ AddLicenseSpecifications(LaunchTemplateLicenseConfigurationRequest && value)1300 inline RequestLaunchTemplateData& AddLicenseSpecifications(LaunchTemplateLicenseConfigurationRequest&& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications.push_back(std::move(value)); return *this; } 1301 1302 1303 /** 1304 * <p>Indicates whether an instance is enabled for hibernation. This parameter is 1305 * valid only if the instance meets the <a 1306 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation 1307 * prerequisites</a>. For more information, see <a 1308 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate 1309 * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1310 */ GetHibernationOptions()1311 inline const LaunchTemplateHibernationOptionsRequest& GetHibernationOptions() const{ return m_hibernationOptions; } 1312 1313 /** 1314 * <p>Indicates whether an instance is enabled for hibernation. This parameter is 1315 * valid only if the instance meets the <a 1316 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation 1317 * prerequisites</a>. For more information, see <a 1318 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate 1319 * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1320 */ HibernationOptionsHasBeenSet()1321 inline bool HibernationOptionsHasBeenSet() const { return m_hibernationOptionsHasBeenSet; } 1322 1323 /** 1324 * <p>Indicates whether an instance is enabled for hibernation. This parameter is 1325 * valid only if the instance meets the <a 1326 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation 1327 * prerequisites</a>. For more information, see <a 1328 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate 1329 * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1330 */ SetHibernationOptions(const LaunchTemplateHibernationOptionsRequest & value)1331 inline void SetHibernationOptions(const LaunchTemplateHibernationOptionsRequest& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = value; } 1332 1333 /** 1334 * <p>Indicates whether an instance is enabled for hibernation. This parameter is 1335 * valid only if the instance meets the <a 1336 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation 1337 * prerequisites</a>. For more information, see <a 1338 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate 1339 * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1340 */ SetHibernationOptions(LaunchTemplateHibernationOptionsRequest && value)1341 inline void SetHibernationOptions(LaunchTemplateHibernationOptionsRequest&& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = std::move(value); } 1342 1343 /** 1344 * <p>Indicates whether an instance is enabled for hibernation. This parameter is 1345 * valid only if the instance meets the <a 1346 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation 1347 * prerequisites</a>. For more information, see <a 1348 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate 1349 * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1350 */ WithHibernationOptions(const LaunchTemplateHibernationOptionsRequest & value)1351 inline RequestLaunchTemplateData& WithHibernationOptions(const LaunchTemplateHibernationOptionsRequest& value) { SetHibernationOptions(value); return *this;} 1352 1353 /** 1354 * <p>Indicates whether an instance is enabled for hibernation. This parameter is 1355 * valid only if the instance meets the <a 1356 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation 1357 * prerequisites</a>. For more information, see <a 1358 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate 1359 * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> 1360 */ WithHibernationOptions(LaunchTemplateHibernationOptionsRequest && value)1361 inline RequestLaunchTemplateData& WithHibernationOptions(LaunchTemplateHibernationOptionsRequest&& value) { SetHibernationOptions(std::move(value)); return *this;} 1362 1363 1364 /** 1365 * <p>The metadata options for the instance. For more information, see <a 1366 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance 1367 * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User 1368 * Guide</i>.</p> 1369 */ GetMetadataOptions()1370 inline const LaunchTemplateInstanceMetadataOptionsRequest& GetMetadataOptions() const{ return m_metadataOptions; } 1371 1372 /** 1373 * <p>The metadata options for the instance. For more information, see <a 1374 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance 1375 * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User 1376 * Guide</i>.</p> 1377 */ MetadataOptionsHasBeenSet()1378 inline bool MetadataOptionsHasBeenSet() const { return m_metadataOptionsHasBeenSet; } 1379 1380 /** 1381 * <p>The metadata options for the instance. For more information, see <a 1382 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance 1383 * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User 1384 * Guide</i>.</p> 1385 */ SetMetadataOptions(const LaunchTemplateInstanceMetadataOptionsRequest & value)1386 inline void SetMetadataOptions(const LaunchTemplateInstanceMetadataOptionsRequest& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = value; } 1387 1388 /** 1389 * <p>The metadata options for the instance. For more information, see <a 1390 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance 1391 * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User 1392 * Guide</i>.</p> 1393 */ SetMetadataOptions(LaunchTemplateInstanceMetadataOptionsRequest && value)1394 inline void SetMetadataOptions(LaunchTemplateInstanceMetadataOptionsRequest&& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = std::move(value); } 1395 1396 /** 1397 * <p>The metadata options for the instance. For more information, see <a 1398 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance 1399 * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User 1400 * Guide</i>.</p> 1401 */ WithMetadataOptions(const LaunchTemplateInstanceMetadataOptionsRequest & value)1402 inline RequestLaunchTemplateData& WithMetadataOptions(const LaunchTemplateInstanceMetadataOptionsRequest& value) { SetMetadataOptions(value); return *this;} 1403 1404 /** 1405 * <p>The metadata options for the instance. For more information, see <a 1406 * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance 1407 * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User 1408 * Guide</i>.</p> 1409 */ WithMetadataOptions(LaunchTemplateInstanceMetadataOptionsRequest && value)1410 inline RequestLaunchTemplateData& WithMetadataOptions(LaunchTemplateInstanceMetadataOptionsRequest&& value) { SetMetadataOptions(std::move(value)); return *this;} 1411 1412 1413 /** 1414 * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro 1415 * Enclaves. For more information, see <a 1416 * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What 1417 * is Amazon Web Services Nitro Enclaves?</a> in the <i>Amazon Web Services Nitro 1418 * Enclaves User Guide</i>.</p> <p>You can't enable Amazon Web Services Nitro 1419 * Enclaves and hibernation on the same instance.</p> 1420 */ GetEnclaveOptions()1421 inline const LaunchTemplateEnclaveOptionsRequest& GetEnclaveOptions() const{ return m_enclaveOptions; } 1422 1423 /** 1424 * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro 1425 * Enclaves. For more information, see <a 1426 * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What 1427 * is Amazon Web Services Nitro Enclaves?</a> in the <i>Amazon Web Services Nitro 1428 * Enclaves User Guide</i>.</p> <p>You can't enable Amazon Web Services Nitro 1429 * Enclaves and hibernation on the same instance.</p> 1430 */ EnclaveOptionsHasBeenSet()1431 inline bool EnclaveOptionsHasBeenSet() const { return m_enclaveOptionsHasBeenSet; } 1432 1433 /** 1434 * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro 1435 * Enclaves. For more information, see <a 1436 * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What 1437 * is Amazon Web Services Nitro Enclaves?</a> in the <i>Amazon Web Services Nitro 1438 * Enclaves User Guide</i>.</p> <p>You can't enable Amazon Web Services Nitro 1439 * Enclaves and hibernation on the same instance.</p> 1440 */ SetEnclaveOptions(const LaunchTemplateEnclaveOptionsRequest & value)1441 inline void SetEnclaveOptions(const LaunchTemplateEnclaveOptionsRequest& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = value; } 1442 1443 /** 1444 * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro 1445 * Enclaves. For more information, see <a 1446 * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What 1447 * is Amazon Web Services Nitro Enclaves?</a> in the <i>Amazon Web Services Nitro 1448 * Enclaves User Guide</i>.</p> <p>You can't enable Amazon Web Services Nitro 1449 * Enclaves and hibernation on the same instance.</p> 1450 */ SetEnclaveOptions(LaunchTemplateEnclaveOptionsRequest && value)1451 inline void SetEnclaveOptions(LaunchTemplateEnclaveOptionsRequest&& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = std::move(value); } 1452 1453 /** 1454 * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro 1455 * Enclaves. For more information, see <a 1456 * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What 1457 * is Amazon Web Services Nitro Enclaves?</a> in the <i>Amazon Web Services Nitro 1458 * Enclaves User Guide</i>.</p> <p>You can't enable Amazon Web Services Nitro 1459 * Enclaves and hibernation on the same instance.</p> 1460 */ WithEnclaveOptions(const LaunchTemplateEnclaveOptionsRequest & value)1461 inline RequestLaunchTemplateData& WithEnclaveOptions(const LaunchTemplateEnclaveOptionsRequest& value) { SetEnclaveOptions(value); return *this;} 1462 1463 /** 1464 * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro 1465 * Enclaves. For more information, see <a 1466 * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What 1467 * is Amazon Web Services Nitro Enclaves?</a> in the <i>Amazon Web Services Nitro 1468 * Enclaves User Guide</i>.</p> <p>You can't enable Amazon Web Services Nitro 1469 * Enclaves and hibernation on the same instance.</p> 1470 */ WithEnclaveOptions(LaunchTemplateEnclaveOptionsRequest && value)1471 inline RequestLaunchTemplateData& WithEnclaveOptions(LaunchTemplateEnclaveOptionsRequest&& value) { SetEnclaveOptions(std::move(value)); return *this;} 1472 1473 private: 1474 1475 Aws::String m_kernelId; 1476 bool m_kernelIdHasBeenSet; 1477 1478 bool m_ebsOptimized; 1479 bool m_ebsOptimizedHasBeenSet; 1480 1481 LaunchTemplateIamInstanceProfileSpecificationRequest m_iamInstanceProfile; 1482 bool m_iamInstanceProfileHasBeenSet; 1483 1484 Aws::Vector<LaunchTemplateBlockDeviceMappingRequest> m_blockDeviceMappings; 1485 bool m_blockDeviceMappingsHasBeenSet; 1486 1487 Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecificationRequest> m_networkInterfaces; 1488 bool m_networkInterfacesHasBeenSet; 1489 1490 Aws::String m_imageId; 1491 bool m_imageIdHasBeenSet; 1492 1493 InstanceType m_instanceType; 1494 bool m_instanceTypeHasBeenSet; 1495 1496 Aws::String m_keyName; 1497 bool m_keyNameHasBeenSet; 1498 1499 LaunchTemplatesMonitoringRequest m_monitoring; 1500 bool m_monitoringHasBeenSet; 1501 1502 LaunchTemplatePlacementRequest m_placement; 1503 bool m_placementHasBeenSet; 1504 1505 Aws::String m_ramDiskId; 1506 bool m_ramDiskIdHasBeenSet; 1507 1508 bool m_disableApiTermination; 1509 bool m_disableApiTerminationHasBeenSet; 1510 1511 ShutdownBehavior m_instanceInitiatedShutdownBehavior; 1512 bool m_instanceInitiatedShutdownBehaviorHasBeenSet; 1513 1514 Aws::String m_userData; 1515 bool m_userDataHasBeenSet; 1516 1517 Aws::Vector<LaunchTemplateTagSpecificationRequest> m_tagSpecifications; 1518 bool m_tagSpecificationsHasBeenSet; 1519 1520 Aws::Vector<ElasticGpuSpecification> m_elasticGpuSpecifications; 1521 bool m_elasticGpuSpecificationsHasBeenSet; 1522 1523 Aws::Vector<LaunchTemplateElasticInferenceAccelerator> m_elasticInferenceAccelerators; 1524 bool m_elasticInferenceAcceleratorsHasBeenSet; 1525 1526 Aws::Vector<Aws::String> m_securityGroupIds; 1527 bool m_securityGroupIdsHasBeenSet; 1528 1529 Aws::Vector<Aws::String> m_securityGroups; 1530 bool m_securityGroupsHasBeenSet; 1531 1532 LaunchTemplateInstanceMarketOptionsRequest m_instanceMarketOptions; 1533 bool m_instanceMarketOptionsHasBeenSet; 1534 1535 CreditSpecificationRequest m_creditSpecification; 1536 bool m_creditSpecificationHasBeenSet; 1537 1538 LaunchTemplateCpuOptionsRequest m_cpuOptions; 1539 bool m_cpuOptionsHasBeenSet; 1540 1541 LaunchTemplateCapacityReservationSpecificationRequest m_capacityReservationSpecification; 1542 bool m_capacityReservationSpecificationHasBeenSet; 1543 1544 Aws::Vector<LaunchTemplateLicenseConfigurationRequest> m_licenseSpecifications; 1545 bool m_licenseSpecificationsHasBeenSet; 1546 1547 LaunchTemplateHibernationOptionsRequest m_hibernationOptions; 1548 bool m_hibernationOptionsHasBeenSet; 1549 1550 LaunchTemplateInstanceMetadataOptionsRequest m_metadataOptions; 1551 bool m_metadataOptionsHasBeenSet; 1552 1553 LaunchTemplateEnclaveOptionsRequest m_enclaveOptions; 1554 bool m_enclaveOptionsHasBeenSet; 1555 }; 1556 1557 } // namespace Model 1558 } // namespace EC2 1559 } // namespace Aws 1560