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/LaunchTemplateIamInstanceProfileSpecification.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/ec2/model/InstanceType.h>
13 #include <aws/ec2/model/LaunchTemplatesMonitoring.h>
14 #include <aws/ec2/model/LaunchTemplatePlacement.h>
15 #include <aws/ec2/model/ShutdownBehavior.h>
16 #include <aws/ec2/model/LaunchTemplateInstanceMarketOptions.h>
17 #include <aws/ec2/model/CreditSpecification.h>
18 #include <aws/ec2/model/LaunchTemplateCpuOptions.h>
19 #include <aws/ec2/model/LaunchTemplateCapacityReservationSpecificationResponse.h>
20 #include <aws/ec2/model/LaunchTemplateHibernationOptions.h>
21 #include <aws/ec2/model/LaunchTemplateInstanceMetadataOptions.h>
22 #include <aws/ec2/model/LaunchTemplateEnclaveOptions.h>
23 #include <aws/ec2/model/LaunchTemplateBlockDeviceMapping.h>
24 #include <aws/ec2/model/LaunchTemplateInstanceNetworkInterfaceSpecification.h>
25 #include <aws/ec2/model/LaunchTemplateTagSpecification.h>
26 #include <aws/ec2/model/ElasticGpuSpecificationResponse.h>
27 #include <aws/ec2/model/LaunchTemplateElasticInferenceAcceleratorResponse.h>
28 #include <aws/ec2/model/LaunchTemplateLicenseConfiguration.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 for a launch template. </p><p><h3>See Also:</h3>   <a
47    * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResponseLaunchTemplateData">AWS
48    * API Reference</a></p>
49    */
50   class AWS_EC2_API ResponseLaunchTemplateData
51   {
52   public:
53     ResponseLaunchTemplateData();
54     ResponseLaunchTemplateData(const Aws::Utils::Xml::XmlNode& xmlNode);
55     ResponseLaunchTemplateData& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
56 
57     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
58     void OutputToStream(Aws::OStream& oStream, const char* location) const;
59 
60 
61     /**
62      * <p>The ID of the kernel, if applicable.</p>
63      */
GetKernelId()64     inline const Aws::String& GetKernelId() const{ return m_kernelId; }
65 
66     /**
67      * <p>The ID of the kernel, if applicable.</p>
68      */
KernelIdHasBeenSet()69     inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; }
70 
71     /**
72      * <p>The ID of the kernel, if applicable.</p>
73      */
SetKernelId(const Aws::String & value)74     inline void SetKernelId(const Aws::String& value) { m_kernelIdHasBeenSet = true; m_kernelId = value; }
75 
76     /**
77      * <p>The ID of the kernel, if applicable.</p>
78      */
SetKernelId(Aws::String && value)79     inline void SetKernelId(Aws::String&& value) { m_kernelIdHasBeenSet = true; m_kernelId = std::move(value); }
80 
81     /**
82      * <p>The ID of the kernel, if applicable.</p>
83      */
SetKernelId(const char * value)84     inline void SetKernelId(const char* value) { m_kernelIdHasBeenSet = true; m_kernelId.assign(value); }
85 
86     /**
87      * <p>The ID of the kernel, if applicable.</p>
88      */
WithKernelId(const Aws::String & value)89     inline ResponseLaunchTemplateData& WithKernelId(const Aws::String& value) { SetKernelId(value); return *this;}
90 
91     /**
92      * <p>The ID of the kernel, if applicable.</p>
93      */
WithKernelId(Aws::String && value)94     inline ResponseLaunchTemplateData& WithKernelId(Aws::String&& value) { SetKernelId(std::move(value)); return *this;}
95 
96     /**
97      * <p>The ID of the kernel, if applicable.</p>
98      */
WithKernelId(const char * value)99     inline ResponseLaunchTemplateData& WithKernelId(const char* value) { SetKernelId(value); return *this;}
100 
101 
102     /**
103      * <p>Indicates whether the instance is optimized for Amazon EBS I/O. </p>
104      */
GetEbsOptimized()105     inline bool GetEbsOptimized() const{ return m_ebsOptimized; }
106 
107     /**
108      * <p>Indicates whether the instance is optimized for Amazon EBS I/O. </p>
109      */
EbsOptimizedHasBeenSet()110     inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; }
111 
112     /**
113      * <p>Indicates whether the instance is optimized for Amazon EBS I/O. </p>
114      */
SetEbsOptimized(bool value)115     inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; }
116 
117     /**
118      * <p>Indicates whether the instance is optimized for Amazon EBS I/O. </p>
119      */
WithEbsOptimized(bool value)120     inline ResponseLaunchTemplateData& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;}
121 
122 
123     /**
124      * <p>The IAM instance profile.</p>
125      */
GetIamInstanceProfile()126     inline const LaunchTemplateIamInstanceProfileSpecification& GetIamInstanceProfile() const{ return m_iamInstanceProfile; }
127 
128     /**
129      * <p>The IAM instance profile.</p>
130      */
IamInstanceProfileHasBeenSet()131     inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; }
132 
133     /**
134      * <p>The IAM instance profile.</p>
135      */
SetIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecification & value)136     inline void SetIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecification& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = value; }
137 
138     /**
139      * <p>The IAM instance profile.</p>
140      */
SetIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecification && value)141     inline void SetIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecification&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::move(value); }
142 
143     /**
144      * <p>The IAM instance profile.</p>
145      */
WithIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecification & value)146     inline ResponseLaunchTemplateData& WithIamInstanceProfile(const LaunchTemplateIamInstanceProfileSpecification& value) { SetIamInstanceProfile(value); return *this;}
147 
148     /**
149      * <p>The IAM instance profile.</p>
150      */
WithIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecification && value)151     inline ResponseLaunchTemplateData& WithIamInstanceProfile(LaunchTemplateIamInstanceProfileSpecification&& value) { SetIamInstanceProfile(std::move(value)); return *this;}
152 
153 
154     /**
155      * <p>The block device mappings.</p>
156      */
GetBlockDeviceMappings()157     inline const Aws::Vector<LaunchTemplateBlockDeviceMapping>& GetBlockDeviceMappings() const{ return m_blockDeviceMappings; }
158 
159     /**
160      * <p>The block device mappings.</p>
161      */
BlockDeviceMappingsHasBeenSet()162     inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; }
163 
164     /**
165      * <p>The block device mappings.</p>
166      */
SetBlockDeviceMappings(const Aws::Vector<LaunchTemplateBlockDeviceMapping> & value)167     inline void SetBlockDeviceMappings(const Aws::Vector<LaunchTemplateBlockDeviceMapping>& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = value; }
168 
169     /**
170      * <p>The block device mappings.</p>
171      */
SetBlockDeviceMappings(Aws::Vector<LaunchTemplateBlockDeviceMapping> && value)172     inline void SetBlockDeviceMappings(Aws::Vector<LaunchTemplateBlockDeviceMapping>&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = std::move(value); }
173 
174     /**
175      * <p>The block device mappings.</p>
176      */
WithBlockDeviceMappings(const Aws::Vector<LaunchTemplateBlockDeviceMapping> & value)177     inline ResponseLaunchTemplateData& WithBlockDeviceMappings(const Aws::Vector<LaunchTemplateBlockDeviceMapping>& value) { SetBlockDeviceMappings(value); return *this;}
178 
179     /**
180      * <p>The block device mappings.</p>
181      */
WithBlockDeviceMappings(Aws::Vector<LaunchTemplateBlockDeviceMapping> && value)182     inline ResponseLaunchTemplateData& WithBlockDeviceMappings(Aws::Vector<LaunchTemplateBlockDeviceMapping>&& value) { SetBlockDeviceMappings(std::move(value)); return *this;}
183 
184     /**
185      * <p>The block device mappings.</p>
186      */
AddBlockDeviceMappings(const LaunchTemplateBlockDeviceMapping & value)187     inline ResponseLaunchTemplateData& AddBlockDeviceMappings(const LaunchTemplateBlockDeviceMapping& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(value); return *this; }
188 
189     /**
190      * <p>The block device mappings.</p>
191      */
AddBlockDeviceMappings(LaunchTemplateBlockDeviceMapping && value)192     inline ResponseLaunchTemplateData& AddBlockDeviceMappings(LaunchTemplateBlockDeviceMapping&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(std::move(value)); return *this; }
193 
194 
195     /**
196      * <p>The network interfaces.</p>
197      */
GetNetworkInterfaces()198     inline const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification>& GetNetworkInterfaces() const{ return m_networkInterfaces; }
199 
200     /**
201      * <p>The network interfaces.</p>
202      */
NetworkInterfacesHasBeenSet()203     inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; }
204 
205     /**
206      * <p>The network interfaces.</p>
207      */
SetNetworkInterfaces(const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification> & value)208     inline void SetNetworkInterfaces(const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification>& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = value; }
209 
210     /**
211      * <p>The network interfaces.</p>
212      */
SetNetworkInterfaces(Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification> && value)213     inline void SetNetworkInterfaces(Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification>&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = std::move(value); }
214 
215     /**
216      * <p>The network interfaces.</p>
217      */
WithNetworkInterfaces(const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification> & value)218     inline ResponseLaunchTemplateData& WithNetworkInterfaces(const Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification>& value) { SetNetworkInterfaces(value); return *this;}
219 
220     /**
221      * <p>The network interfaces.</p>
222      */
WithNetworkInterfaces(Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification> && value)223     inline ResponseLaunchTemplateData& WithNetworkInterfaces(Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification>&& value) { SetNetworkInterfaces(std::move(value)); return *this;}
224 
225     /**
226      * <p>The network interfaces.</p>
227      */
AddNetworkInterfaces(const LaunchTemplateInstanceNetworkInterfaceSpecification & value)228     inline ResponseLaunchTemplateData& AddNetworkInterfaces(const LaunchTemplateInstanceNetworkInterfaceSpecification& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(value); return *this; }
229 
230     /**
231      * <p>The network interfaces.</p>
232      */
AddNetworkInterfaces(LaunchTemplateInstanceNetworkInterfaceSpecification && value)233     inline ResponseLaunchTemplateData& AddNetworkInterfaces(LaunchTemplateInstanceNetworkInterfaceSpecification&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(std::move(value)); return *this; }
234 
235 
236     /**
237      * <p>The ID of the AMI that was used to launch the instance.</p>
238      */
GetImageId()239     inline const Aws::String& GetImageId() const{ return m_imageId; }
240 
241     /**
242      * <p>The ID of the AMI that was used to launch the instance.</p>
243      */
ImageIdHasBeenSet()244     inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; }
245 
246     /**
247      * <p>The ID of the AMI that was used to launch the instance.</p>
248      */
SetImageId(const Aws::String & value)249     inline void SetImageId(const Aws::String& value) { m_imageIdHasBeenSet = true; m_imageId = value; }
250 
251     /**
252      * <p>The ID of the AMI that was used to launch the instance.</p>
253      */
SetImageId(Aws::String && value)254     inline void SetImageId(Aws::String&& value) { m_imageIdHasBeenSet = true; m_imageId = std::move(value); }
255 
256     /**
257      * <p>The ID of the AMI that was used to launch the instance.</p>
258      */
SetImageId(const char * value)259     inline void SetImageId(const char* value) { m_imageIdHasBeenSet = true; m_imageId.assign(value); }
260 
261     /**
262      * <p>The ID of the AMI that was used to launch the instance.</p>
263      */
WithImageId(const Aws::String & value)264     inline ResponseLaunchTemplateData& WithImageId(const Aws::String& value) { SetImageId(value); return *this;}
265 
266     /**
267      * <p>The ID of the AMI that was used to launch the instance.</p>
268      */
WithImageId(Aws::String && value)269     inline ResponseLaunchTemplateData& WithImageId(Aws::String&& value) { SetImageId(std::move(value)); return *this;}
270 
271     /**
272      * <p>The ID of the AMI that was used to launch the instance.</p>
273      */
WithImageId(const char * value)274     inline ResponseLaunchTemplateData& WithImageId(const char* value) { SetImageId(value); return *this;}
275 
276 
277     /**
278      * <p>The instance type.</p>
279      */
GetInstanceType()280     inline const InstanceType& GetInstanceType() const{ return m_instanceType; }
281 
282     /**
283      * <p>The instance type.</p>
284      */
InstanceTypeHasBeenSet()285     inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
286 
287     /**
288      * <p>The instance type.</p>
289      */
SetInstanceType(const InstanceType & value)290     inline void SetInstanceType(const InstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
291 
292     /**
293      * <p>The instance type.</p>
294      */
SetInstanceType(InstanceType && value)295     inline void SetInstanceType(InstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); }
296 
297     /**
298      * <p>The instance type.</p>
299      */
WithInstanceType(const InstanceType & value)300     inline ResponseLaunchTemplateData& WithInstanceType(const InstanceType& value) { SetInstanceType(value); return *this;}
301 
302     /**
303      * <p>The instance type.</p>
304      */
WithInstanceType(InstanceType && value)305     inline ResponseLaunchTemplateData& WithInstanceType(InstanceType&& value) { SetInstanceType(std::move(value)); return *this;}
306 
307 
308     /**
309      * <p>The name of the key pair.</p>
310      */
GetKeyName()311     inline const Aws::String& GetKeyName() const{ return m_keyName; }
312 
313     /**
314      * <p>The name of the key pair.</p>
315      */
KeyNameHasBeenSet()316     inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; }
317 
318     /**
319      * <p>The name of the key pair.</p>
320      */
SetKeyName(const Aws::String & value)321     inline void SetKeyName(const Aws::String& value) { m_keyNameHasBeenSet = true; m_keyName = value; }
322 
323     /**
324      * <p>The name of the key pair.</p>
325      */
SetKeyName(Aws::String && value)326     inline void SetKeyName(Aws::String&& value) { m_keyNameHasBeenSet = true; m_keyName = std::move(value); }
327 
328     /**
329      * <p>The name of the key pair.</p>
330      */
SetKeyName(const char * value)331     inline void SetKeyName(const char* value) { m_keyNameHasBeenSet = true; m_keyName.assign(value); }
332 
333     /**
334      * <p>The name of the key pair.</p>
335      */
WithKeyName(const Aws::String & value)336     inline ResponseLaunchTemplateData& WithKeyName(const Aws::String& value) { SetKeyName(value); return *this;}
337 
338     /**
339      * <p>The name of the key pair.</p>
340      */
WithKeyName(Aws::String && value)341     inline ResponseLaunchTemplateData& WithKeyName(Aws::String&& value) { SetKeyName(std::move(value)); return *this;}
342 
343     /**
344      * <p>The name of the key pair.</p>
345      */
WithKeyName(const char * value)346     inline ResponseLaunchTemplateData& WithKeyName(const char* value) { SetKeyName(value); return *this;}
347 
348 
349     /**
350      * <p>The monitoring for the instance.</p>
351      */
GetMonitoring()352     inline const LaunchTemplatesMonitoring& GetMonitoring() const{ return m_monitoring; }
353 
354     /**
355      * <p>The monitoring for the instance.</p>
356      */
MonitoringHasBeenSet()357     inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; }
358 
359     /**
360      * <p>The monitoring for the instance.</p>
361      */
SetMonitoring(const LaunchTemplatesMonitoring & value)362     inline void SetMonitoring(const LaunchTemplatesMonitoring& value) { m_monitoringHasBeenSet = true; m_monitoring = value; }
363 
364     /**
365      * <p>The monitoring for the instance.</p>
366      */
SetMonitoring(LaunchTemplatesMonitoring && value)367     inline void SetMonitoring(LaunchTemplatesMonitoring&& value) { m_monitoringHasBeenSet = true; m_monitoring = std::move(value); }
368 
369     /**
370      * <p>The monitoring for the instance.</p>
371      */
WithMonitoring(const LaunchTemplatesMonitoring & value)372     inline ResponseLaunchTemplateData& WithMonitoring(const LaunchTemplatesMonitoring& value) { SetMonitoring(value); return *this;}
373 
374     /**
375      * <p>The monitoring for the instance.</p>
376      */
WithMonitoring(LaunchTemplatesMonitoring && value)377     inline ResponseLaunchTemplateData& WithMonitoring(LaunchTemplatesMonitoring&& value) { SetMonitoring(std::move(value)); return *this;}
378 
379 
380     /**
381      * <p>The placement of the instance.</p>
382      */
GetPlacement()383     inline const LaunchTemplatePlacement& GetPlacement() const{ return m_placement; }
384 
385     /**
386      * <p>The placement of the instance.</p>
387      */
PlacementHasBeenSet()388     inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; }
389 
390     /**
391      * <p>The placement of the instance.</p>
392      */
SetPlacement(const LaunchTemplatePlacement & value)393     inline void SetPlacement(const LaunchTemplatePlacement& value) { m_placementHasBeenSet = true; m_placement = value; }
394 
395     /**
396      * <p>The placement of the instance.</p>
397      */
SetPlacement(LaunchTemplatePlacement && value)398     inline void SetPlacement(LaunchTemplatePlacement&& value) { m_placementHasBeenSet = true; m_placement = std::move(value); }
399 
400     /**
401      * <p>The placement of the instance.</p>
402      */
WithPlacement(const LaunchTemplatePlacement & value)403     inline ResponseLaunchTemplateData& WithPlacement(const LaunchTemplatePlacement& value) { SetPlacement(value); return *this;}
404 
405     /**
406      * <p>The placement of the instance.</p>
407      */
WithPlacement(LaunchTemplatePlacement && value)408     inline ResponseLaunchTemplateData& WithPlacement(LaunchTemplatePlacement&& value) { SetPlacement(std::move(value)); return *this;}
409 
410 
411     /**
412      * <p>The ID of the RAM disk, if applicable.</p>
413      */
GetRamDiskId()414     inline const Aws::String& GetRamDiskId() const{ return m_ramDiskId; }
415 
416     /**
417      * <p>The ID of the RAM disk, if applicable.</p>
418      */
RamDiskIdHasBeenSet()419     inline bool RamDiskIdHasBeenSet() const { return m_ramDiskIdHasBeenSet; }
420 
421     /**
422      * <p>The ID of the RAM disk, if applicable.</p>
423      */
SetRamDiskId(const Aws::String & value)424     inline void SetRamDiskId(const Aws::String& value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId = value; }
425 
426     /**
427      * <p>The ID of the RAM disk, if applicable.</p>
428      */
SetRamDiskId(Aws::String && value)429     inline void SetRamDiskId(Aws::String&& value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId = std::move(value); }
430 
431     /**
432      * <p>The ID of the RAM disk, if applicable.</p>
433      */
SetRamDiskId(const char * value)434     inline void SetRamDiskId(const char* value) { m_ramDiskIdHasBeenSet = true; m_ramDiskId.assign(value); }
435 
436     /**
437      * <p>The ID of the RAM disk, if applicable.</p>
438      */
WithRamDiskId(const Aws::String & value)439     inline ResponseLaunchTemplateData& WithRamDiskId(const Aws::String& value) { SetRamDiskId(value); return *this;}
440 
441     /**
442      * <p>The ID of the RAM disk, if applicable.</p>
443      */
WithRamDiskId(Aws::String && value)444     inline ResponseLaunchTemplateData& WithRamDiskId(Aws::String&& value) { SetRamDiskId(std::move(value)); return *this;}
445 
446     /**
447      * <p>The ID of the RAM disk, if applicable.</p>
448      */
WithRamDiskId(const char * value)449     inline ResponseLaunchTemplateData& WithRamDiskId(const char* value) { SetRamDiskId(value); return *this;}
450 
451 
452     /**
453      * <p>If set to <code>true</code>, indicates that the instance cannot be terminated
454      * using the Amazon EC2 console, command line tool, or API.</p>
455      */
GetDisableApiTermination()456     inline bool GetDisableApiTermination() const{ return m_disableApiTermination; }
457 
458     /**
459      * <p>If set to <code>true</code>, indicates that the instance cannot be terminated
460      * using the Amazon EC2 console, command line tool, or API.</p>
461      */
DisableApiTerminationHasBeenSet()462     inline bool DisableApiTerminationHasBeenSet() const { return m_disableApiTerminationHasBeenSet; }
463 
464     /**
465      * <p>If set to <code>true</code>, indicates that the instance cannot be terminated
466      * using the Amazon EC2 console, command line tool, or API.</p>
467      */
SetDisableApiTermination(bool value)468     inline void SetDisableApiTermination(bool value) { m_disableApiTerminationHasBeenSet = true; m_disableApiTermination = value; }
469 
470     /**
471      * <p>If set to <code>true</code>, indicates that the instance cannot be terminated
472      * using the Amazon EC2 console, command line tool, or API.</p>
473      */
WithDisableApiTermination(bool value)474     inline ResponseLaunchTemplateData& WithDisableApiTermination(bool value) { SetDisableApiTermination(value); return *this;}
475 
476 
477     /**
478      * <p>Indicates whether an instance stops or terminates when you initiate shutdown
479      * from the instance (using the operating system command for system shutdown).</p>
480      */
GetInstanceInitiatedShutdownBehavior()481     inline const ShutdownBehavior& GetInstanceInitiatedShutdownBehavior() const{ return m_instanceInitiatedShutdownBehavior; }
482 
483     /**
484      * <p>Indicates whether an instance stops or terminates when you initiate shutdown
485      * from the instance (using the operating system command for system shutdown).</p>
486      */
InstanceInitiatedShutdownBehaviorHasBeenSet()487     inline bool InstanceInitiatedShutdownBehaviorHasBeenSet() const { return m_instanceInitiatedShutdownBehaviorHasBeenSet; }
488 
489     /**
490      * <p>Indicates whether an instance stops or terminates when you initiate shutdown
491      * from the instance (using the operating system command for system shutdown).</p>
492      */
SetInstanceInitiatedShutdownBehavior(const ShutdownBehavior & value)493     inline void SetInstanceInitiatedShutdownBehavior(const ShutdownBehavior& value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = value; }
494 
495     /**
496      * <p>Indicates whether an instance stops or terminates when you initiate shutdown
497      * from the instance (using the operating system command for system shutdown).</p>
498      */
SetInstanceInitiatedShutdownBehavior(ShutdownBehavior && value)499     inline void SetInstanceInitiatedShutdownBehavior(ShutdownBehavior&& value) { m_instanceInitiatedShutdownBehaviorHasBeenSet = true; m_instanceInitiatedShutdownBehavior = std::move(value); }
500 
501     /**
502      * <p>Indicates whether an instance stops or terminates when you initiate shutdown
503      * from the instance (using the operating system command for system shutdown).</p>
504      */
WithInstanceInitiatedShutdownBehavior(const ShutdownBehavior & value)505     inline ResponseLaunchTemplateData& WithInstanceInitiatedShutdownBehavior(const ShutdownBehavior& value) { SetInstanceInitiatedShutdownBehavior(value); return *this;}
506 
507     /**
508      * <p>Indicates whether an instance stops or terminates when you initiate shutdown
509      * from the instance (using the operating system command for system shutdown).</p>
510      */
WithInstanceInitiatedShutdownBehavior(ShutdownBehavior && value)511     inline ResponseLaunchTemplateData& WithInstanceInitiatedShutdownBehavior(ShutdownBehavior&& value) { SetInstanceInitiatedShutdownBehavior(std::move(value)); return *this;}
512 
513 
514     /**
515      * <p>The user data for the instance. </p>
516      */
GetUserData()517     inline const Aws::String& GetUserData() const{ return m_userData; }
518 
519     /**
520      * <p>The user data for the instance. </p>
521      */
UserDataHasBeenSet()522     inline bool UserDataHasBeenSet() const { return m_userDataHasBeenSet; }
523 
524     /**
525      * <p>The user data for the instance. </p>
526      */
SetUserData(const Aws::String & value)527     inline void SetUserData(const Aws::String& value) { m_userDataHasBeenSet = true; m_userData = value; }
528 
529     /**
530      * <p>The user data for the instance. </p>
531      */
SetUserData(Aws::String && value)532     inline void SetUserData(Aws::String&& value) { m_userDataHasBeenSet = true; m_userData = std::move(value); }
533 
534     /**
535      * <p>The user data for the instance. </p>
536      */
SetUserData(const char * value)537     inline void SetUserData(const char* value) { m_userDataHasBeenSet = true; m_userData.assign(value); }
538 
539     /**
540      * <p>The user data for the instance. </p>
541      */
WithUserData(const Aws::String & value)542     inline ResponseLaunchTemplateData& WithUserData(const Aws::String& value) { SetUserData(value); return *this;}
543 
544     /**
545      * <p>The user data for the instance. </p>
546      */
WithUserData(Aws::String && value)547     inline ResponseLaunchTemplateData& WithUserData(Aws::String&& value) { SetUserData(std::move(value)); return *this;}
548 
549     /**
550      * <p>The user data for the instance. </p>
551      */
WithUserData(const char * value)552     inline ResponseLaunchTemplateData& WithUserData(const char* value) { SetUserData(value); return *this;}
553 
554 
555     /**
556      * <p>The tags.</p>
557      */
GetTagSpecifications()558     inline const Aws::Vector<LaunchTemplateTagSpecification>& GetTagSpecifications() const{ return m_tagSpecifications; }
559 
560     /**
561      * <p>The tags.</p>
562      */
TagSpecificationsHasBeenSet()563     inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; }
564 
565     /**
566      * <p>The tags.</p>
567      */
SetTagSpecifications(const Aws::Vector<LaunchTemplateTagSpecification> & value)568     inline void SetTagSpecifications(const Aws::Vector<LaunchTemplateTagSpecification>& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; }
569 
570     /**
571      * <p>The tags.</p>
572      */
SetTagSpecifications(Aws::Vector<LaunchTemplateTagSpecification> && value)573     inline void SetTagSpecifications(Aws::Vector<LaunchTemplateTagSpecification>&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); }
574 
575     /**
576      * <p>The tags.</p>
577      */
WithTagSpecifications(const Aws::Vector<LaunchTemplateTagSpecification> & value)578     inline ResponseLaunchTemplateData& WithTagSpecifications(const Aws::Vector<LaunchTemplateTagSpecification>& value) { SetTagSpecifications(value); return *this;}
579 
580     /**
581      * <p>The tags.</p>
582      */
WithTagSpecifications(Aws::Vector<LaunchTemplateTagSpecification> && value)583     inline ResponseLaunchTemplateData& WithTagSpecifications(Aws::Vector<LaunchTemplateTagSpecification>&& value) { SetTagSpecifications(std::move(value)); return *this;}
584 
585     /**
586      * <p>The tags.</p>
587      */
AddTagSpecifications(const LaunchTemplateTagSpecification & value)588     inline ResponseLaunchTemplateData& AddTagSpecifications(const LaunchTemplateTagSpecification& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; }
589 
590     /**
591      * <p>The tags.</p>
592      */
AddTagSpecifications(LaunchTemplateTagSpecification && value)593     inline ResponseLaunchTemplateData& AddTagSpecifications(LaunchTemplateTagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; }
594 
595 
596     /**
597      * <p>The elastic GPU specification.</p>
598      */
GetElasticGpuSpecifications()599     inline const Aws::Vector<ElasticGpuSpecificationResponse>& GetElasticGpuSpecifications() const{ return m_elasticGpuSpecifications; }
600 
601     /**
602      * <p>The elastic GPU specification.</p>
603      */
ElasticGpuSpecificationsHasBeenSet()604     inline bool ElasticGpuSpecificationsHasBeenSet() const { return m_elasticGpuSpecificationsHasBeenSet; }
605 
606     /**
607      * <p>The elastic GPU specification.</p>
608      */
SetElasticGpuSpecifications(const Aws::Vector<ElasticGpuSpecificationResponse> & value)609     inline void SetElasticGpuSpecifications(const Aws::Vector<ElasticGpuSpecificationResponse>& value) { m_elasticGpuSpecificationsHasBeenSet = true; m_elasticGpuSpecifications = value; }
610 
611     /**
612      * <p>The elastic GPU specification.</p>
613      */
SetElasticGpuSpecifications(Aws::Vector<ElasticGpuSpecificationResponse> && value)614     inline void SetElasticGpuSpecifications(Aws::Vector<ElasticGpuSpecificationResponse>&& value) { m_elasticGpuSpecificationsHasBeenSet = true; m_elasticGpuSpecifications = std::move(value); }
615 
616     /**
617      * <p>The elastic GPU specification.</p>
618      */
WithElasticGpuSpecifications(const Aws::Vector<ElasticGpuSpecificationResponse> & value)619     inline ResponseLaunchTemplateData& WithElasticGpuSpecifications(const Aws::Vector<ElasticGpuSpecificationResponse>& value) { SetElasticGpuSpecifications(value); return *this;}
620 
621     /**
622      * <p>The elastic GPU specification.</p>
623      */
WithElasticGpuSpecifications(Aws::Vector<ElasticGpuSpecificationResponse> && value)624     inline ResponseLaunchTemplateData& WithElasticGpuSpecifications(Aws::Vector<ElasticGpuSpecificationResponse>&& value) { SetElasticGpuSpecifications(std::move(value)); return *this;}
625 
626     /**
627      * <p>The elastic GPU specification.</p>
628      */
AddElasticGpuSpecifications(const ElasticGpuSpecificationResponse & value)629     inline ResponseLaunchTemplateData& AddElasticGpuSpecifications(const ElasticGpuSpecificationResponse& value) { m_elasticGpuSpecificationsHasBeenSet = true; m_elasticGpuSpecifications.push_back(value); return *this; }
630 
631     /**
632      * <p>The elastic GPU specification.</p>
633      */
AddElasticGpuSpecifications(ElasticGpuSpecificationResponse && value)634     inline ResponseLaunchTemplateData& AddElasticGpuSpecifications(ElasticGpuSpecificationResponse&& value) { m_elasticGpuSpecificationsHasBeenSet = true; m_elasticGpuSpecifications.push_back(std::move(value)); return *this; }
635 
636 
637     /**
638      * <p> The elastic inference accelerator for the instance. </p>
639      */
GetElasticInferenceAccelerators()640     inline const Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse>& GetElasticInferenceAccelerators() const{ return m_elasticInferenceAccelerators; }
641 
642     /**
643      * <p> The elastic inference accelerator for the instance. </p>
644      */
ElasticInferenceAcceleratorsHasBeenSet()645     inline bool ElasticInferenceAcceleratorsHasBeenSet() const { return m_elasticInferenceAcceleratorsHasBeenSet; }
646 
647     /**
648      * <p> The elastic inference accelerator for the instance. </p>
649      */
SetElasticInferenceAccelerators(const Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse> & value)650     inline void SetElasticInferenceAccelerators(const Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse>& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators = value; }
651 
652     /**
653      * <p> The elastic inference accelerator for the instance. </p>
654      */
SetElasticInferenceAccelerators(Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse> && value)655     inline void SetElasticInferenceAccelerators(Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse>&& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators = std::move(value); }
656 
657     /**
658      * <p> The elastic inference accelerator for the instance. </p>
659      */
WithElasticInferenceAccelerators(const Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse> & value)660     inline ResponseLaunchTemplateData& WithElasticInferenceAccelerators(const Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse>& value) { SetElasticInferenceAccelerators(value); return *this;}
661 
662     /**
663      * <p> The elastic inference accelerator for the instance. </p>
664      */
WithElasticInferenceAccelerators(Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse> && value)665     inline ResponseLaunchTemplateData& WithElasticInferenceAccelerators(Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse>&& value) { SetElasticInferenceAccelerators(std::move(value)); return *this;}
666 
667     /**
668      * <p> The elastic inference accelerator for the instance. </p>
669      */
AddElasticInferenceAccelerators(const LaunchTemplateElasticInferenceAcceleratorResponse & value)670     inline ResponseLaunchTemplateData& AddElasticInferenceAccelerators(const LaunchTemplateElasticInferenceAcceleratorResponse& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators.push_back(value); return *this; }
671 
672     /**
673      * <p> The elastic inference accelerator for the instance. </p>
674      */
AddElasticInferenceAccelerators(LaunchTemplateElasticInferenceAcceleratorResponse && value)675     inline ResponseLaunchTemplateData& AddElasticInferenceAccelerators(LaunchTemplateElasticInferenceAcceleratorResponse&& value) { m_elasticInferenceAcceleratorsHasBeenSet = true; m_elasticInferenceAccelerators.push_back(std::move(value)); return *this; }
676 
677 
678     /**
679      * <p>The security group IDs.</p>
680      */
GetSecurityGroupIds()681     inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const{ return m_securityGroupIds; }
682 
683     /**
684      * <p>The security group IDs.</p>
685      */
SecurityGroupIdsHasBeenSet()686     inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
687 
688     /**
689      * <p>The security group IDs.</p>
690      */
SetSecurityGroupIds(const Aws::Vector<Aws::String> & value)691     inline void SetSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; }
692 
693     /**
694      * <p>The security group IDs.</p>
695      */
SetSecurityGroupIds(Aws::Vector<Aws::String> && value)696     inline void SetSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); }
697 
698     /**
699      * <p>The security group IDs.</p>
700      */
WithSecurityGroupIds(const Aws::Vector<Aws::String> & value)701     inline ResponseLaunchTemplateData& WithSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetSecurityGroupIds(value); return *this;}
702 
703     /**
704      * <p>The security group IDs.</p>
705      */
WithSecurityGroupIds(Aws::Vector<Aws::String> && value)706     inline ResponseLaunchTemplateData& WithSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetSecurityGroupIds(std::move(value)); return *this;}
707 
708     /**
709      * <p>The security group IDs.</p>
710      */
AddSecurityGroupIds(const Aws::String & value)711     inline ResponseLaunchTemplateData& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
712 
713     /**
714      * <p>The security group IDs.</p>
715      */
AddSecurityGroupIds(Aws::String && value)716     inline ResponseLaunchTemplateData& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; }
717 
718     /**
719      * <p>The security group IDs.</p>
720      */
AddSecurityGroupIds(const char * value)721     inline ResponseLaunchTemplateData& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
722 
723 
724     /**
725      * <p>The security group names.</p>
726      */
GetSecurityGroups()727     inline const Aws::Vector<Aws::String>& GetSecurityGroups() const{ return m_securityGroups; }
728 
729     /**
730      * <p>The security group names.</p>
731      */
SecurityGroupsHasBeenSet()732     inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; }
733 
734     /**
735      * <p>The security group names.</p>
736      */
SetSecurityGroups(const Aws::Vector<Aws::String> & value)737     inline void SetSecurityGroups(const Aws::Vector<Aws::String>& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; }
738 
739     /**
740      * <p>The security group names.</p>
741      */
SetSecurityGroups(Aws::Vector<Aws::String> && value)742     inline void SetSecurityGroups(Aws::Vector<Aws::String>&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); }
743 
744     /**
745      * <p>The security group names.</p>
746      */
WithSecurityGroups(const Aws::Vector<Aws::String> & value)747     inline ResponseLaunchTemplateData& WithSecurityGroups(const Aws::Vector<Aws::String>& value) { SetSecurityGroups(value); return *this;}
748 
749     /**
750      * <p>The security group names.</p>
751      */
WithSecurityGroups(Aws::Vector<Aws::String> && value)752     inline ResponseLaunchTemplateData& WithSecurityGroups(Aws::Vector<Aws::String>&& value) { SetSecurityGroups(std::move(value)); return *this;}
753 
754     /**
755      * <p>The security group names.</p>
756      */
AddSecurityGroups(const Aws::String & value)757     inline ResponseLaunchTemplateData& AddSecurityGroups(const Aws::String& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; }
758 
759     /**
760      * <p>The security group names.</p>
761      */
AddSecurityGroups(Aws::String && value)762     inline ResponseLaunchTemplateData& AddSecurityGroups(Aws::String&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; }
763 
764     /**
765      * <p>The security group names.</p>
766      */
AddSecurityGroups(const char * value)767     inline ResponseLaunchTemplateData& AddSecurityGroups(const char* value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; }
768 
769 
770     /**
771      * <p>The market (purchasing) option for the instances.</p>
772      */
GetInstanceMarketOptions()773     inline const LaunchTemplateInstanceMarketOptions& GetInstanceMarketOptions() const{ return m_instanceMarketOptions; }
774 
775     /**
776      * <p>The market (purchasing) option for the instances.</p>
777      */
InstanceMarketOptionsHasBeenSet()778     inline bool InstanceMarketOptionsHasBeenSet() const { return m_instanceMarketOptionsHasBeenSet; }
779 
780     /**
781      * <p>The market (purchasing) option for the instances.</p>
782      */
SetInstanceMarketOptions(const LaunchTemplateInstanceMarketOptions & value)783     inline void SetInstanceMarketOptions(const LaunchTemplateInstanceMarketOptions& value) { m_instanceMarketOptionsHasBeenSet = true; m_instanceMarketOptions = value; }
784 
785     /**
786      * <p>The market (purchasing) option for the instances.</p>
787      */
SetInstanceMarketOptions(LaunchTemplateInstanceMarketOptions && value)788     inline void SetInstanceMarketOptions(LaunchTemplateInstanceMarketOptions&& value) { m_instanceMarketOptionsHasBeenSet = true; m_instanceMarketOptions = std::move(value); }
789 
790     /**
791      * <p>The market (purchasing) option for the instances.</p>
792      */
WithInstanceMarketOptions(const LaunchTemplateInstanceMarketOptions & value)793     inline ResponseLaunchTemplateData& WithInstanceMarketOptions(const LaunchTemplateInstanceMarketOptions& value) { SetInstanceMarketOptions(value); return *this;}
794 
795     /**
796      * <p>The market (purchasing) option for the instances.</p>
797      */
WithInstanceMarketOptions(LaunchTemplateInstanceMarketOptions && value)798     inline ResponseLaunchTemplateData& WithInstanceMarketOptions(LaunchTemplateInstanceMarketOptions&& value) { SetInstanceMarketOptions(std::move(value)); return *this;}
799 
800 
801     /**
802      * <p>The credit option for CPU usage of the instance.</p>
803      */
GetCreditSpecification()804     inline const CreditSpecification& GetCreditSpecification() const{ return m_creditSpecification; }
805 
806     /**
807      * <p>The credit option for CPU usage of the instance.</p>
808      */
CreditSpecificationHasBeenSet()809     inline bool CreditSpecificationHasBeenSet() const { return m_creditSpecificationHasBeenSet; }
810 
811     /**
812      * <p>The credit option for CPU usage of the instance.</p>
813      */
SetCreditSpecification(const CreditSpecification & value)814     inline void SetCreditSpecification(const CreditSpecification& value) { m_creditSpecificationHasBeenSet = true; m_creditSpecification = value; }
815 
816     /**
817      * <p>The credit option for CPU usage of the instance.</p>
818      */
SetCreditSpecification(CreditSpecification && value)819     inline void SetCreditSpecification(CreditSpecification&& value) { m_creditSpecificationHasBeenSet = true; m_creditSpecification = std::move(value); }
820 
821     /**
822      * <p>The credit option for CPU usage of the instance.</p>
823      */
WithCreditSpecification(const CreditSpecification & value)824     inline ResponseLaunchTemplateData& WithCreditSpecification(const CreditSpecification& value) { SetCreditSpecification(value); return *this;}
825 
826     /**
827      * <p>The credit option for CPU usage of the instance.</p>
828      */
WithCreditSpecification(CreditSpecification && value)829     inline ResponseLaunchTemplateData& WithCreditSpecification(CreditSpecification&& value) { SetCreditSpecification(std::move(value)); return *this;}
830 
831 
832     /**
833      * <p>The CPU options for the instance. For more information, see <a
834      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing
835      * CPU options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
836      */
GetCpuOptions()837     inline const LaunchTemplateCpuOptions& GetCpuOptions() const{ return m_cpuOptions; }
838 
839     /**
840      * <p>The CPU options for the instance. For more information, see <a
841      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing
842      * CPU options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
843      */
CpuOptionsHasBeenSet()844     inline bool CpuOptionsHasBeenSet() const { return m_cpuOptionsHasBeenSet; }
845 
846     /**
847      * <p>The CPU options for the instance. For more information, see <a
848      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing
849      * CPU options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
850      */
SetCpuOptions(const LaunchTemplateCpuOptions & value)851     inline void SetCpuOptions(const LaunchTemplateCpuOptions& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = value; }
852 
853     /**
854      * <p>The CPU options for the instance. For more information, see <a
855      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing
856      * CPU options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
857      */
SetCpuOptions(LaunchTemplateCpuOptions && value)858     inline void SetCpuOptions(LaunchTemplateCpuOptions&& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = std::move(value); }
859 
860     /**
861      * <p>The CPU options for the instance. For more information, see <a
862      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing
863      * CPU options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
864      */
WithCpuOptions(const LaunchTemplateCpuOptions & value)865     inline ResponseLaunchTemplateData& WithCpuOptions(const LaunchTemplateCpuOptions& value) { SetCpuOptions(value); return *this;}
866 
867     /**
868      * <p>The CPU options for the instance. For more information, see <a
869      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing
870      * CPU options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
871      */
WithCpuOptions(LaunchTemplateCpuOptions && value)872     inline ResponseLaunchTemplateData& WithCpuOptions(LaunchTemplateCpuOptions&& value) { SetCpuOptions(std::move(value)); return *this;}
873 
874 
875     /**
876      * <p>Information about the Capacity Reservation targeting option.</p>
877      */
GetCapacityReservationSpecification()878     inline const LaunchTemplateCapacityReservationSpecificationResponse& GetCapacityReservationSpecification() const{ return m_capacityReservationSpecification; }
879 
880     /**
881      * <p>Information about the Capacity Reservation targeting option.</p>
882      */
CapacityReservationSpecificationHasBeenSet()883     inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; }
884 
885     /**
886      * <p>Information about the Capacity Reservation targeting option.</p>
887      */
SetCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationResponse & value)888     inline void SetCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationResponse& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = value; }
889 
890     /**
891      * <p>Information about the Capacity Reservation targeting option.</p>
892      */
SetCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationResponse && value)893     inline void SetCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationResponse&& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = std::move(value); }
894 
895     /**
896      * <p>Information about the Capacity Reservation targeting option.</p>
897      */
WithCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationResponse & value)898     inline ResponseLaunchTemplateData& WithCapacityReservationSpecification(const LaunchTemplateCapacityReservationSpecificationResponse& value) { SetCapacityReservationSpecification(value); return *this;}
899 
900     /**
901      * <p>Information about the Capacity Reservation targeting option.</p>
902      */
WithCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationResponse && value)903     inline ResponseLaunchTemplateData& WithCapacityReservationSpecification(LaunchTemplateCapacityReservationSpecificationResponse&& value) { SetCapacityReservationSpecification(std::move(value)); return *this;}
904 
905 
906     /**
907      * <p>The license configurations.</p>
908      */
GetLicenseSpecifications()909     inline const Aws::Vector<LaunchTemplateLicenseConfiguration>& GetLicenseSpecifications() const{ return m_licenseSpecifications; }
910 
911     /**
912      * <p>The license configurations.</p>
913      */
LicenseSpecificationsHasBeenSet()914     inline bool LicenseSpecificationsHasBeenSet() const { return m_licenseSpecificationsHasBeenSet; }
915 
916     /**
917      * <p>The license configurations.</p>
918      */
SetLicenseSpecifications(const Aws::Vector<LaunchTemplateLicenseConfiguration> & value)919     inline void SetLicenseSpecifications(const Aws::Vector<LaunchTemplateLicenseConfiguration>& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications = value; }
920 
921     /**
922      * <p>The license configurations.</p>
923      */
SetLicenseSpecifications(Aws::Vector<LaunchTemplateLicenseConfiguration> && value)924     inline void SetLicenseSpecifications(Aws::Vector<LaunchTemplateLicenseConfiguration>&& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications = std::move(value); }
925 
926     /**
927      * <p>The license configurations.</p>
928      */
WithLicenseSpecifications(const Aws::Vector<LaunchTemplateLicenseConfiguration> & value)929     inline ResponseLaunchTemplateData& WithLicenseSpecifications(const Aws::Vector<LaunchTemplateLicenseConfiguration>& value) { SetLicenseSpecifications(value); return *this;}
930 
931     /**
932      * <p>The license configurations.</p>
933      */
WithLicenseSpecifications(Aws::Vector<LaunchTemplateLicenseConfiguration> && value)934     inline ResponseLaunchTemplateData& WithLicenseSpecifications(Aws::Vector<LaunchTemplateLicenseConfiguration>&& value) { SetLicenseSpecifications(std::move(value)); return *this;}
935 
936     /**
937      * <p>The license configurations.</p>
938      */
AddLicenseSpecifications(const LaunchTemplateLicenseConfiguration & value)939     inline ResponseLaunchTemplateData& AddLicenseSpecifications(const LaunchTemplateLicenseConfiguration& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications.push_back(value); return *this; }
940 
941     /**
942      * <p>The license configurations.</p>
943      */
AddLicenseSpecifications(LaunchTemplateLicenseConfiguration && value)944     inline ResponseLaunchTemplateData& AddLicenseSpecifications(LaunchTemplateLicenseConfiguration&& value) { m_licenseSpecificationsHasBeenSet = true; m_licenseSpecifications.push_back(std::move(value)); return *this; }
945 
946 
947     /**
948      * <p>Indicates whether an instance is configured for hibernation. For more
949      * information, see <a
950      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
951      * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
952      */
GetHibernationOptions()953     inline const LaunchTemplateHibernationOptions& GetHibernationOptions() const{ return m_hibernationOptions; }
954 
955     /**
956      * <p>Indicates whether an instance is configured for hibernation. For more
957      * information, see <a
958      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
959      * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
960      */
HibernationOptionsHasBeenSet()961     inline bool HibernationOptionsHasBeenSet() const { return m_hibernationOptionsHasBeenSet; }
962 
963     /**
964      * <p>Indicates whether an instance is configured for hibernation. For more
965      * information, see <a
966      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
967      * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
968      */
SetHibernationOptions(const LaunchTemplateHibernationOptions & value)969     inline void SetHibernationOptions(const LaunchTemplateHibernationOptions& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = value; }
970 
971     /**
972      * <p>Indicates whether an instance is configured for hibernation. For more
973      * information, see <a
974      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
975      * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
976      */
SetHibernationOptions(LaunchTemplateHibernationOptions && value)977     inline void SetHibernationOptions(LaunchTemplateHibernationOptions&& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = std::move(value); }
978 
979     /**
980      * <p>Indicates whether an instance is configured for hibernation. For more
981      * information, see <a
982      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
983      * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
984      */
WithHibernationOptions(const LaunchTemplateHibernationOptions & value)985     inline ResponseLaunchTemplateData& WithHibernationOptions(const LaunchTemplateHibernationOptions& value) { SetHibernationOptions(value); return *this;}
986 
987     /**
988      * <p>Indicates whether an instance is configured for hibernation. For more
989      * information, see <a
990      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
991      * your instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
992      */
WithHibernationOptions(LaunchTemplateHibernationOptions && value)993     inline ResponseLaunchTemplateData& WithHibernationOptions(LaunchTemplateHibernationOptions&& value) { SetHibernationOptions(std::move(value)); return *this;}
994 
995 
996     /**
997      * <p>The metadata options for the instance. For more information, see <a
998      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
999      * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User
1000      * Guide</i>.</p>
1001      */
GetMetadataOptions()1002     inline const LaunchTemplateInstanceMetadataOptions& GetMetadataOptions() const{ return m_metadataOptions; }
1003 
1004     /**
1005      * <p>The metadata options for the instance. For more information, see <a
1006      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
1007      * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User
1008      * Guide</i>.</p>
1009      */
MetadataOptionsHasBeenSet()1010     inline bool MetadataOptionsHasBeenSet() const { return m_metadataOptionsHasBeenSet; }
1011 
1012     /**
1013      * <p>The metadata options for the instance. For more information, see <a
1014      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
1015      * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User
1016      * Guide</i>.</p>
1017      */
SetMetadataOptions(const LaunchTemplateInstanceMetadataOptions & value)1018     inline void SetMetadataOptions(const LaunchTemplateInstanceMetadataOptions& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = value; }
1019 
1020     /**
1021      * <p>The metadata options for the instance. For more information, see <a
1022      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
1023      * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User
1024      * Guide</i>.</p>
1025      */
SetMetadataOptions(LaunchTemplateInstanceMetadataOptions && value)1026     inline void SetMetadataOptions(LaunchTemplateInstanceMetadataOptions&& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = std::move(value); }
1027 
1028     /**
1029      * <p>The metadata options for the instance. For more information, see <a
1030      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
1031      * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User
1032      * Guide</i>.</p>
1033      */
WithMetadataOptions(const LaunchTemplateInstanceMetadataOptions & value)1034     inline ResponseLaunchTemplateData& WithMetadataOptions(const LaunchTemplateInstanceMetadataOptions& value) { SetMetadataOptions(value); return *this;}
1035 
1036     /**
1037      * <p>The metadata options for the instance. For more information, see <a
1038      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
1039      * metadata and user data</a> in the <i>Amazon Elastic Compute Cloud User
1040      * Guide</i>.</p>
1041      */
WithMetadataOptions(LaunchTemplateInstanceMetadataOptions && value)1042     inline ResponseLaunchTemplateData& WithMetadataOptions(LaunchTemplateInstanceMetadataOptions&& value) { SetMetadataOptions(std::move(value)); return *this;}
1043 
1044 
1045     /**
1046      * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro
1047      * Enclaves.</p>
1048      */
GetEnclaveOptions()1049     inline const LaunchTemplateEnclaveOptions& GetEnclaveOptions() const{ return m_enclaveOptions; }
1050 
1051     /**
1052      * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro
1053      * Enclaves.</p>
1054      */
EnclaveOptionsHasBeenSet()1055     inline bool EnclaveOptionsHasBeenSet() const { return m_enclaveOptionsHasBeenSet; }
1056 
1057     /**
1058      * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro
1059      * Enclaves.</p>
1060      */
SetEnclaveOptions(const LaunchTemplateEnclaveOptions & value)1061     inline void SetEnclaveOptions(const LaunchTemplateEnclaveOptions& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = value; }
1062 
1063     /**
1064      * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro
1065      * Enclaves.</p>
1066      */
SetEnclaveOptions(LaunchTemplateEnclaveOptions && value)1067     inline void SetEnclaveOptions(LaunchTemplateEnclaveOptions&& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = std::move(value); }
1068 
1069     /**
1070      * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro
1071      * Enclaves.</p>
1072      */
WithEnclaveOptions(const LaunchTemplateEnclaveOptions & value)1073     inline ResponseLaunchTemplateData& WithEnclaveOptions(const LaunchTemplateEnclaveOptions& value) { SetEnclaveOptions(value); return *this;}
1074 
1075     /**
1076      * <p>Indicates whether the instance is enabled for Amazon Web Services Nitro
1077      * Enclaves.</p>
1078      */
WithEnclaveOptions(LaunchTemplateEnclaveOptions && value)1079     inline ResponseLaunchTemplateData& WithEnclaveOptions(LaunchTemplateEnclaveOptions&& value) { SetEnclaveOptions(std::move(value)); return *this;}
1080 
1081   private:
1082 
1083     Aws::String m_kernelId;
1084     bool m_kernelIdHasBeenSet;
1085 
1086     bool m_ebsOptimized;
1087     bool m_ebsOptimizedHasBeenSet;
1088 
1089     LaunchTemplateIamInstanceProfileSpecification m_iamInstanceProfile;
1090     bool m_iamInstanceProfileHasBeenSet;
1091 
1092     Aws::Vector<LaunchTemplateBlockDeviceMapping> m_blockDeviceMappings;
1093     bool m_blockDeviceMappingsHasBeenSet;
1094 
1095     Aws::Vector<LaunchTemplateInstanceNetworkInterfaceSpecification> m_networkInterfaces;
1096     bool m_networkInterfacesHasBeenSet;
1097 
1098     Aws::String m_imageId;
1099     bool m_imageIdHasBeenSet;
1100 
1101     InstanceType m_instanceType;
1102     bool m_instanceTypeHasBeenSet;
1103 
1104     Aws::String m_keyName;
1105     bool m_keyNameHasBeenSet;
1106 
1107     LaunchTemplatesMonitoring m_monitoring;
1108     bool m_monitoringHasBeenSet;
1109 
1110     LaunchTemplatePlacement m_placement;
1111     bool m_placementHasBeenSet;
1112 
1113     Aws::String m_ramDiskId;
1114     bool m_ramDiskIdHasBeenSet;
1115 
1116     bool m_disableApiTermination;
1117     bool m_disableApiTerminationHasBeenSet;
1118 
1119     ShutdownBehavior m_instanceInitiatedShutdownBehavior;
1120     bool m_instanceInitiatedShutdownBehaviorHasBeenSet;
1121 
1122     Aws::String m_userData;
1123     bool m_userDataHasBeenSet;
1124 
1125     Aws::Vector<LaunchTemplateTagSpecification> m_tagSpecifications;
1126     bool m_tagSpecificationsHasBeenSet;
1127 
1128     Aws::Vector<ElasticGpuSpecificationResponse> m_elasticGpuSpecifications;
1129     bool m_elasticGpuSpecificationsHasBeenSet;
1130 
1131     Aws::Vector<LaunchTemplateElasticInferenceAcceleratorResponse> m_elasticInferenceAccelerators;
1132     bool m_elasticInferenceAcceleratorsHasBeenSet;
1133 
1134     Aws::Vector<Aws::String> m_securityGroupIds;
1135     bool m_securityGroupIdsHasBeenSet;
1136 
1137     Aws::Vector<Aws::String> m_securityGroups;
1138     bool m_securityGroupsHasBeenSet;
1139 
1140     LaunchTemplateInstanceMarketOptions m_instanceMarketOptions;
1141     bool m_instanceMarketOptionsHasBeenSet;
1142 
1143     CreditSpecification m_creditSpecification;
1144     bool m_creditSpecificationHasBeenSet;
1145 
1146     LaunchTemplateCpuOptions m_cpuOptions;
1147     bool m_cpuOptionsHasBeenSet;
1148 
1149     LaunchTemplateCapacityReservationSpecificationResponse m_capacityReservationSpecification;
1150     bool m_capacityReservationSpecificationHasBeenSet;
1151 
1152     Aws::Vector<LaunchTemplateLicenseConfiguration> m_licenseSpecifications;
1153     bool m_licenseSpecificationsHasBeenSet;
1154 
1155     LaunchTemplateHibernationOptions m_hibernationOptions;
1156     bool m_hibernationOptionsHasBeenSet;
1157 
1158     LaunchTemplateInstanceMetadataOptions m_metadataOptions;
1159     bool m_metadataOptionsHasBeenSet;
1160 
1161     LaunchTemplateEnclaveOptions m_enclaveOptions;
1162     bool m_enclaveOptionsHasBeenSet;
1163   };
1164 
1165 } // namespace Model
1166 } // namespace EC2
1167 } // namespace Aws
1168