/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes an instance.

See Also:

AWS API * Reference

*/ class Instance { public: AWS_EC2_API Instance(); AWS_EC2_API Instance(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API Instance& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The AMI launch index, which can be used to find this instance in the launch * group.

*/ inline int GetAmiLaunchIndex() const{ return m_amiLaunchIndex; } /** *

The AMI launch index, which can be used to find this instance in the launch * group.

*/ inline bool AmiLaunchIndexHasBeenSet() const { return m_amiLaunchIndexHasBeenSet; } /** *

The AMI launch index, which can be used to find this instance in the launch * group.

*/ inline void SetAmiLaunchIndex(int value) { m_amiLaunchIndexHasBeenSet = true; m_amiLaunchIndex = value; } /** *

The AMI launch index, which can be used to find this instance in the launch * group.

*/ inline Instance& WithAmiLaunchIndex(int value) { SetAmiLaunchIndex(value); return *this;} /** *

The ID of the AMI used to launch the instance.

*/ inline const Aws::String& GetImageId() const{ return m_imageId; } /** *

The ID of the AMI used to launch the instance.

*/ inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; } /** *

The ID of the AMI used to launch the instance.

*/ inline void SetImageId(const Aws::String& value) { m_imageIdHasBeenSet = true; m_imageId = value; } /** *

The ID of the AMI used to launch the instance.

*/ inline void SetImageId(Aws::String&& value) { m_imageIdHasBeenSet = true; m_imageId = std::move(value); } /** *

The ID of the AMI used to launch the instance.

*/ inline void SetImageId(const char* value) { m_imageIdHasBeenSet = true; m_imageId.assign(value); } /** *

The ID of the AMI used to launch the instance.

*/ inline Instance& WithImageId(const Aws::String& value) { SetImageId(value); return *this;} /** *

The ID of the AMI used to launch the instance.

*/ inline Instance& WithImageId(Aws::String&& value) { SetImageId(std::move(value)); return *this;} /** *

The ID of the AMI used to launch the instance.

*/ inline Instance& WithImageId(const char* value) { SetImageId(value); return *this;} /** *

The ID of the instance.

*/ inline const Aws::String& GetInstanceId() const{ return m_instanceId; } /** *

The ID of the instance.

*/ inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; } /** *

The ID of the instance.

*/ inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; } /** *

The ID of the instance.

*/ inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); } /** *

The ID of the instance.

*/ inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); } /** *

The ID of the instance.

*/ inline Instance& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;} /** *

The ID of the instance.

*/ inline Instance& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;} /** *

The ID of the instance.

*/ inline Instance& WithInstanceId(const char* value) { SetInstanceId(value); return *this;} /** *

The instance type.

*/ inline const InstanceType& GetInstanceType() const{ return m_instanceType; } /** *

The instance type.

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

The instance type.

*/ inline void SetInstanceType(const InstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

The instance type.

*/ inline void SetInstanceType(InstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

The instance type.

*/ inline Instance& WithInstanceType(const InstanceType& value) { SetInstanceType(value); return *this;} /** *

The instance type.

*/ inline Instance& WithInstanceType(InstanceType&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The kernel associated with this instance, if applicable.

*/ inline const Aws::String& GetKernelId() const{ return m_kernelId; } /** *

The kernel associated with this instance, if applicable.

*/ inline bool KernelIdHasBeenSet() const { return m_kernelIdHasBeenSet; } /** *

The kernel associated with this instance, if applicable.

*/ inline void SetKernelId(const Aws::String& value) { m_kernelIdHasBeenSet = true; m_kernelId = value; } /** *

The kernel associated with this instance, if applicable.

*/ inline void SetKernelId(Aws::String&& value) { m_kernelIdHasBeenSet = true; m_kernelId = std::move(value); } /** *

The kernel associated with this instance, if applicable.

*/ inline void SetKernelId(const char* value) { m_kernelIdHasBeenSet = true; m_kernelId.assign(value); } /** *

The kernel associated with this instance, if applicable.

*/ inline Instance& WithKernelId(const Aws::String& value) { SetKernelId(value); return *this;} /** *

The kernel associated with this instance, if applicable.

*/ inline Instance& WithKernelId(Aws::String&& value) { SetKernelId(std::move(value)); return *this;} /** *

The kernel associated with this instance, if applicable.

*/ inline Instance& WithKernelId(const char* value) { SetKernelId(value); return *this;} /** *

The name of the key pair, if this instance was launched with an associated * key pair.

*/ inline const Aws::String& GetKeyName() const{ return m_keyName; } /** *

The name of the key pair, if this instance was launched with an associated * key pair.

*/ inline bool KeyNameHasBeenSet() const { return m_keyNameHasBeenSet; } /** *

The name of the key pair, if this instance was launched with an associated * key pair.

*/ inline void SetKeyName(const Aws::String& value) { m_keyNameHasBeenSet = true; m_keyName = value; } /** *

The name of the key pair, if this instance was launched with an associated * key pair.

*/ inline void SetKeyName(Aws::String&& value) { m_keyNameHasBeenSet = true; m_keyName = std::move(value); } /** *

The name of the key pair, if this instance was launched with an associated * key pair.

*/ inline void SetKeyName(const char* value) { m_keyNameHasBeenSet = true; m_keyName.assign(value); } /** *

The name of the key pair, if this instance was launched with an associated * key pair.

*/ inline Instance& WithKeyName(const Aws::String& value) { SetKeyName(value); return *this;} /** *

The name of the key pair, if this instance was launched with an associated * key pair.

*/ inline Instance& WithKeyName(Aws::String&& value) { SetKeyName(std::move(value)); return *this;} /** *

The name of the key pair, if this instance was launched with an associated * key pair.

*/ inline Instance& WithKeyName(const char* value) { SetKeyName(value); return *this;} /** *

The time the instance was launched.

*/ inline const Aws::Utils::DateTime& GetLaunchTime() const{ return m_launchTime; } /** *

The time the instance was launched.

*/ inline bool LaunchTimeHasBeenSet() const { return m_launchTimeHasBeenSet; } /** *

The time the instance was launched.

*/ inline void SetLaunchTime(const Aws::Utils::DateTime& value) { m_launchTimeHasBeenSet = true; m_launchTime = value; } /** *

The time the instance was launched.

*/ inline void SetLaunchTime(Aws::Utils::DateTime&& value) { m_launchTimeHasBeenSet = true; m_launchTime = std::move(value); } /** *

The time the instance was launched.

*/ inline Instance& WithLaunchTime(const Aws::Utils::DateTime& value) { SetLaunchTime(value); return *this;} /** *

The time the instance was launched.

*/ inline Instance& WithLaunchTime(Aws::Utils::DateTime&& value) { SetLaunchTime(std::move(value)); return *this;} /** *

The monitoring for the instance.

*/ inline const Monitoring& GetMonitoring() const{ return m_monitoring; } /** *

The monitoring for the instance.

*/ inline bool MonitoringHasBeenSet() const { return m_monitoringHasBeenSet; } /** *

The monitoring for the instance.

*/ inline void SetMonitoring(const Monitoring& value) { m_monitoringHasBeenSet = true; m_monitoring = value; } /** *

The monitoring for the instance.

*/ inline void SetMonitoring(Monitoring&& value) { m_monitoringHasBeenSet = true; m_monitoring = std::move(value); } /** *

The monitoring for the instance.

*/ inline Instance& WithMonitoring(const Monitoring& value) { SetMonitoring(value); return *this;} /** *

The monitoring for the instance.

*/ inline Instance& WithMonitoring(Monitoring&& value) { SetMonitoring(std::move(value)); return *this;} /** *

The location where the instance launched, if applicable.

*/ inline const Placement& GetPlacement() const{ return m_placement; } /** *

The location where the instance launched, if applicable.

*/ inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; } /** *

The location where the instance launched, if applicable.

*/ inline void SetPlacement(const Placement& value) { m_placementHasBeenSet = true; m_placement = value; } /** *

The location where the instance launched, if applicable.

*/ inline void SetPlacement(Placement&& value) { m_placementHasBeenSet = true; m_placement = std::move(value); } /** *

The location where the instance launched, if applicable.

*/ inline Instance& WithPlacement(const Placement& value) { SetPlacement(value); return *this;} /** *

The location where the instance launched, if applicable.

*/ inline Instance& WithPlacement(Placement&& value) { SetPlacement(std::move(value)); return *this;} /** *

The value is Windows for Windows instances; otherwise blank.

*/ inline const PlatformValues& GetPlatform() const{ return m_platform; } /** *

The value is Windows for Windows instances; otherwise blank.

*/ inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; } /** *

The value is Windows for Windows instances; otherwise blank.

*/ inline void SetPlatform(const PlatformValues& value) { m_platformHasBeenSet = true; m_platform = value; } /** *

The value is Windows for Windows instances; otherwise blank.

*/ inline void SetPlatform(PlatformValues&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); } /** *

The value is Windows for Windows instances; otherwise blank.

*/ inline Instance& WithPlatform(const PlatformValues& value) { SetPlatform(value); return *this;} /** *

The value is Windows for Windows instances; otherwise blank.

*/ inline Instance& WithPlatform(PlatformValues&& value) { SetPlatform(std::move(value)); return *this;} /** *

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS * hostname can only be used inside the Amazon EC2 network. This name is not * available until the instance enters the running state.

The * Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if * you've enabled DNS resolution and DNS hostnames in your VPC. If you are not * using the Amazon-provided DNS server in your VPC, your custom domain name * servers must resolve the hostname as appropriate.

*/ inline const Aws::String& GetPrivateDnsName() const{ return m_privateDnsName; } /** *

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS * hostname can only be used inside the Amazon EC2 network. This name is not * available until the instance enters the running state.

The * Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if * you've enabled DNS resolution and DNS hostnames in your VPC. If you are not * using the Amazon-provided DNS server in your VPC, your custom domain name * servers must resolve the hostname as appropriate.

*/ inline bool PrivateDnsNameHasBeenSet() const { return m_privateDnsNameHasBeenSet; } /** *

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS * hostname can only be used inside the Amazon EC2 network. This name is not * available until the instance enters the running state.

The * Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if * you've enabled DNS resolution and DNS hostnames in your VPC. If you are not * using the Amazon-provided DNS server in your VPC, your custom domain name * servers must resolve the hostname as appropriate.

*/ inline void SetPrivateDnsName(const Aws::String& value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName = value; } /** *

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS * hostname can only be used inside the Amazon EC2 network. This name is not * available until the instance enters the running state.

The * Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if * you've enabled DNS resolution and DNS hostnames in your VPC. If you are not * using the Amazon-provided DNS server in your VPC, your custom domain name * servers must resolve the hostname as appropriate.

*/ inline void SetPrivateDnsName(Aws::String&& value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName = std::move(value); } /** *

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS * hostname can only be used inside the Amazon EC2 network. This name is not * available until the instance enters the running state.

The * Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if * you've enabled DNS resolution and DNS hostnames in your VPC. If you are not * using the Amazon-provided DNS server in your VPC, your custom domain name * servers must resolve the hostname as appropriate.

*/ inline void SetPrivateDnsName(const char* value) { m_privateDnsNameHasBeenSet = true; m_privateDnsName.assign(value); } /** *

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS * hostname can only be used inside the Amazon EC2 network. This name is not * available until the instance enters the running state.

The * Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if * you've enabled DNS resolution and DNS hostnames in your VPC. If you are not * using the Amazon-provided DNS server in your VPC, your custom domain name * servers must resolve the hostname as appropriate.

*/ inline Instance& WithPrivateDnsName(const Aws::String& value) { SetPrivateDnsName(value); return *this;} /** *

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS * hostname can only be used inside the Amazon EC2 network. This name is not * available until the instance enters the running state.

The * Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if * you've enabled DNS resolution and DNS hostnames in your VPC. If you are not * using the Amazon-provided DNS server in your VPC, your custom domain name * servers must resolve the hostname as appropriate.

*/ inline Instance& WithPrivateDnsName(Aws::String&& value) { SetPrivateDnsName(std::move(value)); return *this;} /** *

[IPv4 only] The private DNS hostname name assigned to the instance. This DNS * hostname can only be used inside the Amazon EC2 network. This name is not * available until the instance enters the running state.

The * Amazon-provided DNS server resolves Amazon-provided private DNS hostnames if * you've enabled DNS resolution and DNS hostnames in your VPC. If you are not * using the Amazon-provided DNS server in your VPC, your custom domain name * servers must resolve the hostname as appropriate.

*/ inline Instance& WithPrivateDnsName(const char* value) { SetPrivateDnsName(value); return *this;} /** *

The private IPv4 address assigned to the instance.

*/ inline const Aws::String& GetPrivateIpAddress() const{ return m_privateIpAddress; } /** *

The private IPv4 address assigned to the instance.

*/ inline bool PrivateIpAddressHasBeenSet() const { return m_privateIpAddressHasBeenSet; } /** *

The private IPv4 address assigned to the instance.

*/ inline void SetPrivateIpAddress(const Aws::String& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = value; } /** *

The private IPv4 address assigned to the instance.

*/ inline void SetPrivateIpAddress(Aws::String&& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = std::move(value); } /** *

The private IPv4 address assigned to the instance.

*/ inline void SetPrivateIpAddress(const char* value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress.assign(value); } /** *

The private IPv4 address assigned to the instance.

*/ inline Instance& WithPrivateIpAddress(const Aws::String& value) { SetPrivateIpAddress(value); return *this;} /** *

The private IPv4 address assigned to the instance.

*/ inline Instance& WithPrivateIpAddress(Aws::String&& value) { SetPrivateIpAddress(std::move(value)); return *this;} /** *

The private IPv4 address assigned to the instance.

*/ inline Instance& WithPrivateIpAddress(const char* value) { SetPrivateIpAddress(value); return *this;} /** *

The product codes attached to this instance, if applicable.

*/ inline const Aws::Vector& GetProductCodes() const{ return m_productCodes; } /** *

The product codes attached to this instance, if applicable.

*/ inline bool ProductCodesHasBeenSet() const { return m_productCodesHasBeenSet; } /** *

The product codes attached to this instance, if applicable.

*/ inline void SetProductCodes(const Aws::Vector& value) { m_productCodesHasBeenSet = true; m_productCodes = value; } /** *

The product codes attached to this instance, if applicable.

*/ inline void SetProductCodes(Aws::Vector&& value) { m_productCodesHasBeenSet = true; m_productCodes = std::move(value); } /** *

The product codes attached to this instance, if applicable.

*/ inline Instance& WithProductCodes(const Aws::Vector& value) { SetProductCodes(value); return *this;} /** *

The product codes attached to this instance, if applicable.

*/ inline Instance& WithProductCodes(Aws::Vector&& value) { SetProductCodes(std::move(value)); return *this;} /** *

The product codes attached to this instance, if applicable.

*/ inline Instance& AddProductCodes(const ProductCode& value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(value); return *this; } /** *

The product codes attached to this instance, if applicable.

*/ inline Instance& AddProductCodes(ProductCode&& value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(std::move(value)); return *this; } /** *

[IPv4 only] The public DNS name assigned to the instance. This name is not * available until the instance enters the running state. This name is * only available if you've enabled DNS hostnames for your VPC.

*/ inline const Aws::String& GetPublicDnsName() const{ return m_publicDnsName; } /** *

[IPv4 only] The public DNS name assigned to the instance. This name is not * available until the instance enters the running state. This name is * only available if you've enabled DNS hostnames for your VPC.

*/ inline bool PublicDnsNameHasBeenSet() const { return m_publicDnsNameHasBeenSet; } /** *

[IPv4 only] The public DNS name assigned to the instance. This name is not * available until the instance enters the running state. This name is * only available if you've enabled DNS hostnames for your VPC.

*/ inline void SetPublicDnsName(const Aws::String& value) { m_publicDnsNameHasBeenSet = true; m_publicDnsName = value; } /** *

[IPv4 only] The public DNS name assigned to the instance. This name is not * available until the instance enters the running state. This name is * only available if you've enabled DNS hostnames for your VPC.

*/ inline void SetPublicDnsName(Aws::String&& value) { m_publicDnsNameHasBeenSet = true; m_publicDnsName = std::move(value); } /** *

[IPv4 only] The public DNS name assigned to the instance. This name is not * available until the instance enters the running state. This name is * only available if you've enabled DNS hostnames for your VPC.

*/ inline void SetPublicDnsName(const char* value) { m_publicDnsNameHasBeenSet = true; m_publicDnsName.assign(value); } /** *

[IPv4 only] The public DNS name assigned to the instance. This name is not * available until the instance enters the running state. This name is * only available if you've enabled DNS hostnames for your VPC.

*/ inline Instance& WithPublicDnsName(const Aws::String& value) { SetPublicDnsName(value); return *this;} /** *

[IPv4 only] The public DNS name assigned to the instance. This name is not * available until the instance enters the running state. This name is * only available if you've enabled DNS hostnames for your VPC.

*/ inline Instance& WithPublicDnsName(Aws::String&& value) { SetPublicDnsName(std::move(value)); return *this;} /** *

[IPv4 only] The public DNS name assigned to the instance. This name is not * available until the instance enters the running state. This name is * only available if you've enabled DNS hostnames for your VPC.

*/ inline Instance& WithPublicDnsName(const char* value) { SetPublicDnsName(value); return *this;} /** *

The public IPv4 address, or the Carrier IP address assigned to the instance, * if applicable.

A Carrier IP address only applies to an instance launched * in a subnet associated with a Wavelength Zone.

*/ inline const Aws::String& GetPublicIpAddress() const{ return m_publicIpAddress; } /** *

The public IPv4 address, or the Carrier IP address assigned to the instance, * if applicable.

A Carrier IP address only applies to an instance launched * in a subnet associated with a Wavelength Zone.

*/ inline bool PublicIpAddressHasBeenSet() const { return m_publicIpAddressHasBeenSet; } /** *

The public IPv4 address, or the Carrier IP address assigned to the instance, * if applicable.

A Carrier IP address only applies to an instance launched * in a subnet associated with a Wavelength Zone.

*/ inline void SetPublicIpAddress(const Aws::String& value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress = value; } /** *

The public IPv4 address, or the Carrier IP address assigned to the instance, * if applicable.

A Carrier IP address only applies to an instance launched * in a subnet associated with a Wavelength Zone.

*/ inline void SetPublicIpAddress(Aws::String&& value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress = std::move(value); } /** *

The public IPv4 address, or the Carrier IP address assigned to the instance, * if applicable.

A Carrier IP address only applies to an instance launched * in a subnet associated with a Wavelength Zone.

*/ inline void SetPublicIpAddress(const char* value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress.assign(value); } /** *

The public IPv4 address, or the Carrier IP address assigned to the instance, * if applicable.

A Carrier IP address only applies to an instance launched * in a subnet associated with a Wavelength Zone.

*/ inline Instance& WithPublicIpAddress(const Aws::String& value) { SetPublicIpAddress(value); return *this;} /** *

The public IPv4 address, or the Carrier IP address assigned to the instance, * if applicable.

A Carrier IP address only applies to an instance launched * in a subnet associated with a Wavelength Zone.

*/ inline Instance& WithPublicIpAddress(Aws::String&& value) { SetPublicIpAddress(std::move(value)); return *this;} /** *

The public IPv4 address, or the Carrier IP address assigned to the instance, * if applicable.

A Carrier IP address only applies to an instance launched * in a subnet associated with a Wavelength Zone.

*/ inline Instance& WithPublicIpAddress(const char* value) { SetPublicIpAddress(value); return *this;} /** *

The RAM disk associated with this instance, if applicable.

*/ inline const Aws::String& GetRamdiskId() const{ return m_ramdiskId; } /** *

The RAM disk associated with this instance, if applicable.

*/ inline bool RamdiskIdHasBeenSet() const { return m_ramdiskIdHasBeenSet; } /** *

The RAM disk associated with this instance, if applicable.

*/ inline void SetRamdiskId(const Aws::String& value) { m_ramdiskIdHasBeenSet = true; m_ramdiskId = value; } /** *

The RAM disk associated with this instance, if applicable.

*/ inline void SetRamdiskId(Aws::String&& value) { m_ramdiskIdHasBeenSet = true; m_ramdiskId = std::move(value); } /** *

The RAM disk associated with this instance, if applicable.

*/ inline void SetRamdiskId(const char* value) { m_ramdiskIdHasBeenSet = true; m_ramdiskId.assign(value); } /** *

The RAM disk associated with this instance, if applicable.

*/ inline Instance& WithRamdiskId(const Aws::String& value) { SetRamdiskId(value); return *this;} /** *

The RAM disk associated with this instance, if applicable.

*/ inline Instance& WithRamdiskId(Aws::String&& value) { SetRamdiskId(std::move(value)); return *this;} /** *

The RAM disk associated with this instance, if applicable.

*/ inline Instance& WithRamdiskId(const char* value) { SetRamdiskId(value); return *this;} /** *

The current state of the instance.

*/ inline const InstanceState& GetState() const{ return m_state; } /** *

The current state of the instance.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

The current state of the instance.

*/ inline void SetState(const InstanceState& value) { m_stateHasBeenSet = true; m_state = value; } /** *

The current state of the instance.

*/ inline void SetState(InstanceState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

The current state of the instance.

*/ inline Instance& WithState(const InstanceState& value) { SetState(value); return *this;} /** *

The current state of the instance.

*/ inline Instance& WithState(InstanceState&& value) { SetState(std::move(value)); return *this;} /** *

The reason for the most recent state transition. This might be an empty * string.

*/ inline const Aws::String& GetStateTransitionReason() const{ return m_stateTransitionReason; } /** *

The reason for the most recent state transition. This might be an empty * string.

*/ inline bool StateTransitionReasonHasBeenSet() const { return m_stateTransitionReasonHasBeenSet; } /** *

The reason for the most recent state transition. This might be an empty * string.

*/ inline void SetStateTransitionReason(const Aws::String& value) { m_stateTransitionReasonHasBeenSet = true; m_stateTransitionReason = value; } /** *

The reason for the most recent state transition. This might be an empty * string.

*/ inline void SetStateTransitionReason(Aws::String&& value) { m_stateTransitionReasonHasBeenSet = true; m_stateTransitionReason = std::move(value); } /** *

The reason for the most recent state transition. This might be an empty * string.

*/ inline void SetStateTransitionReason(const char* value) { m_stateTransitionReasonHasBeenSet = true; m_stateTransitionReason.assign(value); } /** *

The reason for the most recent state transition. This might be an empty * string.

*/ inline Instance& WithStateTransitionReason(const Aws::String& value) { SetStateTransitionReason(value); return *this;} /** *

The reason for the most recent state transition. This might be an empty * string.

*/ inline Instance& WithStateTransitionReason(Aws::String&& value) { SetStateTransitionReason(std::move(value)); return *this;} /** *

The reason for the most recent state transition. This might be an empty * string.

*/ inline Instance& WithStateTransitionReason(const char* value) { SetStateTransitionReason(value); return *this;} /** *

The ID of the subnet in which the instance is running.

*/ inline const Aws::String& GetSubnetId() const{ return m_subnetId; } /** *

The ID of the subnet in which the instance is running.

*/ inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; } /** *

The ID of the subnet in which the instance is running.

*/ inline void SetSubnetId(const Aws::String& value) { m_subnetIdHasBeenSet = true; m_subnetId = value; } /** *

The ID of the subnet in which the instance is running.

*/ inline void SetSubnetId(Aws::String&& value) { m_subnetIdHasBeenSet = true; m_subnetId = std::move(value); } /** *

The ID of the subnet in which the instance is running.

*/ inline void SetSubnetId(const char* value) { m_subnetIdHasBeenSet = true; m_subnetId.assign(value); } /** *

The ID of the subnet in which the instance is running.

*/ inline Instance& WithSubnetId(const Aws::String& value) { SetSubnetId(value); return *this;} /** *

The ID of the subnet in which the instance is running.

*/ inline Instance& WithSubnetId(Aws::String&& value) { SetSubnetId(std::move(value)); return *this;} /** *

The ID of the subnet in which the instance is running.

*/ inline Instance& WithSubnetId(const char* value) { SetSubnetId(value); return *this;} /** *

The ID of the VPC in which the instance is running.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The ID of the VPC in which the instance is running.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The ID of the VPC in which the instance is running.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The ID of the VPC in which the instance is running.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The ID of the VPC in which the instance is running.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The ID of the VPC in which the instance is running.

*/ inline Instance& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The ID of the VPC in which the instance is running.

*/ inline Instance& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The ID of the VPC in which the instance is running.

*/ inline Instance& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

The architecture of the image.

*/ inline const ArchitectureValues& GetArchitecture() const{ return m_architecture; } /** *

The architecture of the image.

*/ inline bool ArchitectureHasBeenSet() const { return m_architectureHasBeenSet; } /** *

The architecture of the image.

*/ inline void SetArchitecture(const ArchitectureValues& value) { m_architectureHasBeenSet = true; m_architecture = value; } /** *

The architecture of the image.

*/ inline void SetArchitecture(ArchitectureValues&& value) { m_architectureHasBeenSet = true; m_architecture = std::move(value); } /** *

The architecture of the image.

*/ inline Instance& WithArchitecture(const ArchitectureValues& value) { SetArchitecture(value); return *this;} /** *

The architecture of the image.

*/ inline Instance& WithArchitecture(ArchitectureValues&& value) { SetArchitecture(std::move(value)); return *this;} /** *

Any block device mapping entries for the instance.

*/ inline const Aws::Vector& GetBlockDeviceMappings() const{ return m_blockDeviceMappings; } /** *

Any block device mapping entries for the instance.

*/ inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; } /** *

Any block device mapping entries for the instance.

*/ inline void SetBlockDeviceMappings(const Aws::Vector& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = value; } /** *

Any block device mapping entries for the instance.

*/ inline void SetBlockDeviceMappings(Aws::Vector&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = std::move(value); } /** *

Any block device mapping entries for the instance.

*/ inline Instance& WithBlockDeviceMappings(const Aws::Vector& value) { SetBlockDeviceMappings(value); return *this;} /** *

Any block device mapping entries for the instance.

*/ inline Instance& WithBlockDeviceMappings(Aws::Vector&& value) { SetBlockDeviceMappings(std::move(value)); return *this;} /** *

Any block device mapping entries for the instance.

*/ inline Instance& AddBlockDeviceMappings(const InstanceBlockDeviceMapping& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(value); return *this; } /** *

Any block device mapping entries for the instance.

*/ inline Instance& AddBlockDeviceMappings(InstanceBlockDeviceMapping&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(std::move(value)); return *this; } /** *

The idempotency token you provided when you launched the instance, if * applicable.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

The idempotency token you provided when you launched the instance, if * applicable.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

The idempotency token you provided when you launched the instance, if * applicable.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

The idempotency token you provided when you launched the instance, if * applicable.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

The idempotency token you provided when you launched the instance, if * applicable.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

The idempotency token you provided when you launched the instance, if * applicable.

*/ inline Instance& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

The idempotency token you provided when you launched the instance, if * applicable.

*/ inline Instance& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

The idempotency token you provided when you launched the instance, if * applicable.

*/ inline Instance& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

Indicates whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal I/O performance. This optimization isn't * available with all instance types. Additional usage charges apply when using an * EBS Optimized instance.

*/ inline bool GetEbsOptimized() const{ return m_ebsOptimized; } /** *

Indicates whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal I/O performance. This optimization isn't * available with all instance types. Additional usage charges apply when using an * EBS Optimized instance.

*/ inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; } /** *

Indicates whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal I/O performance. This optimization isn't * available with all instance types. Additional usage charges apply when using an * EBS Optimized instance.

*/ inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; } /** *

Indicates whether the instance is optimized for Amazon EBS I/O. This * optimization provides dedicated throughput to Amazon EBS and an optimized * configuration stack to provide optimal I/O performance. This optimization isn't * available with all instance types. Additional usage charges apply when using an * EBS Optimized instance.

*/ inline Instance& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;} /** *

Specifies whether enhanced networking with ENA is enabled.

*/ inline bool GetEnaSupport() const{ return m_enaSupport; } /** *

Specifies whether enhanced networking with ENA is enabled.

*/ inline bool EnaSupportHasBeenSet() const { return m_enaSupportHasBeenSet; } /** *

Specifies whether enhanced networking with ENA is enabled.

*/ inline void SetEnaSupport(bool value) { m_enaSupportHasBeenSet = true; m_enaSupport = value; } /** *

Specifies whether enhanced networking with ENA is enabled.

*/ inline Instance& WithEnaSupport(bool value) { SetEnaSupport(value); return *this;} /** *

The hypervisor type of the instance. The value xen is used for * both Xen and Nitro hypervisors.

*/ inline const HypervisorType& GetHypervisor() const{ return m_hypervisor; } /** *

The hypervisor type of the instance. The value xen is used for * both Xen and Nitro hypervisors.

*/ inline bool HypervisorHasBeenSet() const { return m_hypervisorHasBeenSet; } /** *

The hypervisor type of the instance. The value xen is used for * both Xen and Nitro hypervisors.

*/ inline void SetHypervisor(const HypervisorType& value) { m_hypervisorHasBeenSet = true; m_hypervisor = value; } /** *

The hypervisor type of the instance. The value xen is used for * both Xen and Nitro hypervisors.

*/ inline void SetHypervisor(HypervisorType&& value) { m_hypervisorHasBeenSet = true; m_hypervisor = std::move(value); } /** *

The hypervisor type of the instance. The value xen is used for * both Xen and Nitro hypervisors.

*/ inline Instance& WithHypervisor(const HypervisorType& value) { SetHypervisor(value); return *this;} /** *

The hypervisor type of the instance. The value xen is used for * both Xen and Nitro hypervisors.

*/ inline Instance& WithHypervisor(HypervisorType&& value) { SetHypervisor(std::move(value)); return *this;} /** *

The IAM instance profile associated with the instance, if applicable.

*/ inline const IamInstanceProfile& GetIamInstanceProfile() const{ return m_iamInstanceProfile; } /** *

The IAM instance profile associated with the instance, if applicable.

*/ inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; } /** *

The IAM instance profile associated with the instance, if applicable.

*/ inline void SetIamInstanceProfile(const IamInstanceProfile& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = value; } /** *

The IAM instance profile associated with the instance, if applicable.

*/ inline void SetIamInstanceProfile(IamInstanceProfile&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::move(value); } /** *

The IAM instance profile associated with the instance, if applicable.

*/ inline Instance& WithIamInstanceProfile(const IamInstanceProfile& value) { SetIamInstanceProfile(value); return *this;} /** *

The IAM instance profile associated with the instance, if applicable.

*/ inline Instance& WithIamInstanceProfile(IamInstanceProfile&& value) { SetIamInstanceProfile(std::move(value)); return *this;} /** *

Indicates whether this is a Spot Instance or a Scheduled Instance.

*/ inline const InstanceLifecycleType& GetInstanceLifecycle() const{ return m_instanceLifecycle; } /** *

Indicates whether this is a Spot Instance or a Scheduled Instance.

*/ inline bool InstanceLifecycleHasBeenSet() const { return m_instanceLifecycleHasBeenSet; } /** *

Indicates whether this is a Spot Instance or a Scheduled Instance.

*/ inline void SetInstanceLifecycle(const InstanceLifecycleType& value) { m_instanceLifecycleHasBeenSet = true; m_instanceLifecycle = value; } /** *

Indicates whether this is a Spot Instance or a Scheduled Instance.

*/ inline void SetInstanceLifecycle(InstanceLifecycleType&& value) { m_instanceLifecycleHasBeenSet = true; m_instanceLifecycle = std::move(value); } /** *

Indicates whether this is a Spot Instance or a Scheduled Instance.

*/ inline Instance& WithInstanceLifecycle(const InstanceLifecycleType& value) { SetInstanceLifecycle(value); return *this;} /** *

Indicates whether this is a Spot Instance or a Scheduled Instance.

*/ inline Instance& WithInstanceLifecycle(InstanceLifecycleType&& value) { SetInstanceLifecycle(std::move(value)); return *this;} /** *

The Elastic GPU associated with the instance.

*/ inline const Aws::Vector& GetElasticGpuAssociations() const{ return m_elasticGpuAssociations; } /** *

The Elastic GPU associated with the instance.

*/ inline bool ElasticGpuAssociationsHasBeenSet() const { return m_elasticGpuAssociationsHasBeenSet; } /** *

The Elastic GPU associated with the instance.

*/ inline void SetElasticGpuAssociations(const Aws::Vector& value) { m_elasticGpuAssociationsHasBeenSet = true; m_elasticGpuAssociations = value; } /** *

The Elastic GPU associated with the instance.

*/ inline void SetElasticGpuAssociations(Aws::Vector&& value) { m_elasticGpuAssociationsHasBeenSet = true; m_elasticGpuAssociations = std::move(value); } /** *

The Elastic GPU associated with the instance.

*/ inline Instance& WithElasticGpuAssociations(const Aws::Vector& value) { SetElasticGpuAssociations(value); return *this;} /** *

The Elastic GPU associated with the instance.

*/ inline Instance& WithElasticGpuAssociations(Aws::Vector&& value) { SetElasticGpuAssociations(std::move(value)); return *this;} /** *

The Elastic GPU associated with the instance.

*/ inline Instance& AddElasticGpuAssociations(const ElasticGpuAssociation& value) { m_elasticGpuAssociationsHasBeenSet = true; m_elasticGpuAssociations.push_back(value); return *this; } /** *

The Elastic GPU associated with the instance.

*/ inline Instance& AddElasticGpuAssociations(ElasticGpuAssociation&& value) { m_elasticGpuAssociationsHasBeenSet = true; m_elasticGpuAssociations.push_back(std::move(value)); return *this; } /** *

The elastic inference accelerator associated with the instance.

*/ inline const Aws::Vector& GetElasticInferenceAcceleratorAssociations() const{ return m_elasticInferenceAcceleratorAssociations; } /** *

The elastic inference accelerator associated with the instance.

*/ inline bool ElasticInferenceAcceleratorAssociationsHasBeenSet() const { return m_elasticInferenceAcceleratorAssociationsHasBeenSet; } /** *

The elastic inference accelerator associated with the instance.

*/ inline void SetElasticInferenceAcceleratorAssociations(const Aws::Vector& value) { m_elasticInferenceAcceleratorAssociationsHasBeenSet = true; m_elasticInferenceAcceleratorAssociations = value; } /** *

The elastic inference accelerator associated with the instance.

*/ inline void SetElasticInferenceAcceleratorAssociations(Aws::Vector&& value) { m_elasticInferenceAcceleratorAssociationsHasBeenSet = true; m_elasticInferenceAcceleratorAssociations = std::move(value); } /** *

The elastic inference accelerator associated with the instance.

*/ inline Instance& WithElasticInferenceAcceleratorAssociations(const Aws::Vector& value) { SetElasticInferenceAcceleratorAssociations(value); return *this;} /** *

The elastic inference accelerator associated with the instance.

*/ inline Instance& WithElasticInferenceAcceleratorAssociations(Aws::Vector&& value) { SetElasticInferenceAcceleratorAssociations(std::move(value)); return *this;} /** *

The elastic inference accelerator associated with the instance.

*/ inline Instance& AddElasticInferenceAcceleratorAssociations(const ElasticInferenceAcceleratorAssociation& value) { m_elasticInferenceAcceleratorAssociationsHasBeenSet = true; m_elasticInferenceAcceleratorAssociations.push_back(value); return *this; } /** *

The elastic inference accelerator associated with the instance.

*/ inline Instance& AddElasticInferenceAcceleratorAssociations(ElasticInferenceAcceleratorAssociation&& value) { m_elasticInferenceAcceleratorAssociationsHasBeenSet = true; m_elasticInferenceAcceleratorAssociations.push_back(std::move(value)); return *this; } /** *

The network interfaces for the instance.

*/ inline const Aws::Vector& GetNetworkInterfaces() const{ return m_networkInterfaces; } /** *

The network interfaces for the instance.

*/ inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; } /** *

The network interfaces for the instance.

*/ inline void SetNetworkInterfaces(const Aws::Vector& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = value; } /** *

The network interfaces for the instance.

*/ inline void SetNetworkInterfaces(Aws::Vector&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = std::move(value); } /** *

The network interfaces for the instance.

*/ inline Instance& WithNetworkInterfaces(const Aws::Vector& value) { SetNetworkInterfaces(value); return *this;} /** *

The network interfaces for the instance.

*/ inline Instance& WithNetworkInterfaces(Aws::Vector&& value) { SetNetworkInterfaces(std::move(value)); return *this;} /** *

The network interfaces for the instance.

*/ inline Instance& AddNetworkInterfaces(const InstanceNetworkInterface& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(value); return *this; } /** *

The network interfaces for the instance.

*/ inline Instance& AddNetworkInterfaces(InstanceNetworkInterface&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(std::move(value)); return *this; } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline const Aws::String& GetOutpostArn() const{ return m_outpostArn; } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline bool OutpostArnHasBeenSet() const { return m_outpostArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline void SetOutpostArn(const Aws::String& value) { m_outpostArnHasBeenSet = true; m_outpostArn = value; } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline void SetOutpostArn(Aws::String&& value) { m_outpostArnHasBeenSet = true; m_outpostArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline void SetOutpostArn(const char* value) { m_outpostArnHasBeenSet = true; m_outpostArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline Instance& WithOutpostArn(const Aws::String& value) { SetOutpostArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline Instance& WithOutpostArn(Aws::String&& value) { SetOutpostArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Outpost.

*/ inline Instance& WithOutpostArn(const char* value) { SetOutpostArn(value); return *this;} /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline const Aws::String& GetRootDeviceName() const{ return m_rootDeviceName; } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline bool RootDeviceNameHasBeenSet() const { return m_rootDeviceNameHasBeenSet; } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline void SetRootDeviceName(const Aws::String& value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName = value; } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline void SetRootDeviceName(Aws::String&& value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName = std::move(value); } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline void SetRootDeviceName(const char* value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName.assign(value); } /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline Instance& WithRootDeviceName(const Aws::String& value) { SetRootDeviceName(value); return *this;} /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline Instance& WithRootDeviceName(Aws::String&& value) { SetRootDeviceName(std::move(value)); return *this;} /** *

The device name of the root device volume (for example, * /dev/sda1).

*/ inline Instance& WithRootDeviceName(const char* value) { SetRootDeviceName(value); return *this;} /** *

The root device type used by the AMI. The AMI can use an EBS volume or an * instance store volume.

*/ inline const DeviceType& GetRootDeviceType() const{ return m_rootDeviceType; } /** *

The root device type used by the AMI. The AMI can use an EBS volume or an * instance store volume.

*/ inline bool RootDeviceTypeHasBeenSet() const { return m_rootDeviceTypeHasBeenSet; } /** *

The root device type used by the AMI. The AMI can use an EBS volume or an * instance store volume.

*/ inline void SetRootDeviceType(const DeviceType& value) { m_rootDeviceTypeHasBeenSet = true; m_rootDeviceType = value; } /** *

The root device type used by the AMI. The AMI can use an EBS volume or an * instance store volume.

*/ inline void SetRootDeviceType(DeviceType&& value) { m_rootDeviceTypeHasBeenSet = true; m_rootDeviceType = std::move(value); } /** *

The root device type used by the AMI. The AMI can use an EBS volume or an * instance store volume.

*/ inline Instance& WithRootDeviceType(const DeviceType& value) { SetRootDeviceType(value); return *this;} /** *

The root device type used by the AMI. The AMI can use an EBS volume or an * instance store volume.

*/ inline Instance& WithRootDeviceType(DeviceType&& value) { SetRootDeviceType(std::move(value)); return *this;} /** *

The security groups for the instance.

*/ inline const Aws::Vector& GetSecurityGroups() const{ return m_securityGroups; } /** *

The security groups for the instance.

*/ inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; } /** *

The security groups for the instance.

*/ inline void SetSecurityGroups(const Aws::Vector& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; } /** *

The security groups for the instance.

*/ inline void SetSecurityGroups(Aws::Vector&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); } /** *

The security groups for the instance.

*/ inline Instance& WithSecurityGroups(const Aws::Vector& value) { SetSecurityGroups(value); return *this;} /** *

The security groups for the instance.

*/ inline Instance& WithSecurityGroups(Aws::Vector&& value) { SetSecurityGroups(std::move(value)); return *this;} /** *

The security groups for the instance.

*/ inline Instance& AddSecurityGroups(const GroupIdentifier& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *

The security groups for the instance.

*/ inline Instance& AddSecurityGroups(GroupIdentifier&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; } /** *

Indicates whether source/destination checking is enabled.

*/ inline bool GetSourceDestCheck() const{ return m_sourceDestCheck; } /** *

Indicates whether source/destination checking is enabled.

*/ inline bool SourceDestCheckHasBeenSet() const { return m_sourceDestCheckHasBeenSet; } /** *

Indicates whether source/destination checking is enabled.

*/ inline void SetSourceDestCheck(bool value) { m_sourceDestCheckHasBeenSet = true; m_sourceDestCheck = value; } /** *

Indicates whether source/destination checking is enabled.

*/ inline Instance& WithSourceDestCheck(bool value) { SetSourceDestCheck(value); return *this;} /** *

If the request is a Spot Instance request, the ID of the request.

*/ inline const Aws::String& GetSpotInstanceRequestId() const{ return m_spotInstanceRequestId; } /** *

If the request is a Spot Instance request, the ID of the request.

*/ inline bool SpotInstanceRequestIdHasBeenSet() const { return m_spotInstanceRequestIdHasBeenSet; } /** *

If the request is a Spot Instance request, the ID of the request.

*/ inline void SetSpotInstanceRequestId(const Aws::String& value) { m_spotInstanceRequestIdHasBeenSet = true; m_spotInstanceRequestId = value; } /** *

If the request is a Spot Instance request, the ID of the request.

*/ inline void SetSpotInstanceRequestId(Aws::String&& value) { m_spotInstanceRequestIdHasBeenSet = true; m_spotInstanceRequestId = std::move(value); } /** *

If the request is a Spot Instance request, the ID of the request.

*/ inline void SetSpotInstanceRequestId(const char* value) { m_spotInstanceRequestIdHasBeenSet = true; m_spotInstanceRequestId.assign(value); } /** *

If the request is a Spot Instance request, the ID of the request.

*/ inline Instance& WithSpotInstanceRequestId(const Aws::String& value) { SetSpotInstanceRequestId(value); return *this;} /** *

If the request is a Spot Instance request, the ID of the request.

*/ inline Instance& WithSpotInstanceRequestId(Aws::String&& value) { SetSpotInstanceRequestId(std::move(value)); return *this;} /** *

If the request is a Spot Instance request, the ID of the request.

*/ inline Instance& WithSpotInstanceRequestId(const char* value) { SetSpotInstanceRequestId(value); return *this;} /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

*/ inline const Aws::String& GetSriovNetSupport() const{ return m_sriovNetSupport; } /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

*/ inline bool SriovNetSupportHasBeenSet() const { return m_sriovNetSupportHasBeenSet; } /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

*/ inline void SetSriovNetSupport(const Aws::String& value) { m_sriovNetSupportHasBeenSet = true; m_sriovNetSupport = value; } /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

*/ inline void SetSriovNetSupport(Aws::String&& value) { m_sriovNetSupportHasBeenSet = true; m_sriovNetSupport = std::move(value); } /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

*/ inline void SetSriovNetSupport(const char* value) { m_sriovNetSupportHasBeenSet = true; m_sriovNetSupport.assign(value); } /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

*/ inline Instance& WithSriovNetSupport(const Aws::String& value) { SetSriovNetSupport(value); return *this;} /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

*/ inline Instance& WithSriovNetSupport(Aws::String&& value) { SetSriovNetSupport(std::move(value)); return *this;} /** *

Specifies whether enhanced networking with the Intel 82599 Virtual Function * interface is enabled.

*/ inline Instance& WithSriovNetSupport(const char* value) { SetSriovNetSupport(value); return *this;} /** *

The reason for the most recent state transition.

*/ inline const StateReason& GetStateReason() const{ return m_stateReason; } /** *

The reason for the most recent state transition.

*/ inline bool StateReasonHasBeenSet() const { return m_stateReasonHasBeenSet; } /** *

The reason for the most recent state transition.

*/ inline void SetStateReason(const StateReason& value) { m_stateReasonHasBeenSet = true; m_stateReason = value; } /** *

The reason for the most recent state transition.

*/ inline void SetStateReason(StateReason&& value) { m_stateReasonHasBeenSet = true; m_stateReason = std::move(value); } /** *

The reason for the most recent state transition.

*/ inline Instance& WithStateReason(const StateReason& value) { SetStateReason(value); return *this;} /** *

The reason for the most recent state transition.

*/ inline Instance& WithStateReason(StateReason&& value) { SetStateReason(std::move(value)); return *this;} /** *

Any tags assigned to the instance.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Any tags assigned to the instance.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Any tags assigned to the instance.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Any tags assigned to the instance.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Any tags assigned to the instance.

*/ inline Instance& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Any tags assigned to the instance.

*/ inline Instance& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Any tags assigned to the instance.

*/ inline Instance& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Any tags assigned to the instance.

*/ inline Instance& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The virtualization type of the instance.

*/ inline const VirtualizationType& GetVirtualizationType() const{ return m_virtualizationType; } /** *

The virtualization type of the instance.

*/ inline bool VirtualizationTypeHasBeenSet() const { return m_virtualizationTypeHasBeenSet; } /** *

The virtualization type of the instance.

*/ inline void SetVirtualizationType(const VirtualizationType& value) { m_virtualizationTypeHasBeenSet = true; m_virtualizationType = value; } /** *

The virtualization type of the instance.

*/ inline void SetVirtualizationType(VirtualizationType&& value) { m_virtualizationTypeHasBeenSet = true; m_virtualizationType = std::move(value); } /** *

The virtualization type of the instance.

*/ inline Instance& WithVirtualizationType(const VirtualizationType& value) { SetVirtualizationType(value); return *this;} /** *

The virtualization type of the instance.

*/ inline Instance& WithVirtualizationType(VirtualizationType&& value) { SetVirtualizationType(std::move(value)); return *this;} /** *

The CPU options for the instance.

*/ inline const CpuOptions& GetCpuOptions() const{ return m_cpuOptions; } /** *

The CPU options for the instance.

*/ inline bool CpuOptionsHasBeenSet() const { return m_cpuOptionsHasBeenSet; } /** *

The CPU options for the instance.

*/ inline void SetCpuOptions(const CpuOptions& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = value; } /** *

The CPU options for the instance.

*/ inline void SetCpuOptions(CpuOptions&& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = std::move(value); } /** *

The CPU options for the instance.

*/ inline Instance& WithCpuOptions(const CpuOptions& value) { SetCpuOptions(value); return *this;} /** *

The CPU options for the instance.

*/ inline Instance& WithCpuOptions(CpuOptions&& value) { SetCpuOptions(std::move(value)); return *this;} /** *

The ID of the Capacity Reservation.

*/ inline const Aws::String& GetCapacityReservationId() const{ return m_capacityReservationId; } /** *

The ID of the Capacity Reservation.

*/ inline bool CapacityReservationIdHasBeenSet() const { return m_capacityReservationIdHasBeenSet; } /** *

The ID of the Capacity Reservation.

*/ inline void SetCapacityReservationId(const Aws::String& value) { m_capacityReservationIdHasBeenSet = true; m_capacityReservationId = value; } /** *

The ID of the Capacity Reservation.

*/ inline void SetCapacityReservationId(Aws::String&& value) { m_capacityReservationIdHasBeenSet = true; m_capacityReservationId = std::move(value); } /** *

The ID of the Capacity Reservation.

*/ inline void SetCapacityReservationId(const char* value) { m_capacityReservationIdHasBeenSet = true; m_capacityReservationId.assign(value); } /** *

The ID of the Capacity Reservation.

*/ inline Instance& WithCapacityReservationId(const Aws::String& value) { SetCapacityReservationId(value); return *this;} /** *

The ID of the Capacity Reservation.

*/ inline Instance& WithCapacityReservationId(Aws::String&& value) { SetCapacityReservationId(std::move(value)); return *this;} /** *

The ID of the Capacity Reservation.

*/ inline Instance& WithCapacityReservationId(const char* value) { SetCapacityReservationId(value); return *this;} /** *

Information about the Capacity Reservation targeting option.

*/ inline const CapacityReservationSpecificationResponse& GetCapacityReservationSpecification() const{ return m_capacityReservationSpecification; } /** *

Information about the Capacity Reservation targeting option.

*/ inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; } /** *

Information about the Capacity Reservation targeting option.

*/ inline void SetCapacityReservationSpecification(const CapacityReservationSpecificationResponse& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = value; } /** *

Information about the Capacity Reservation targeting option.

*/ inline void SetCapacityReservationSpecification(CapacityReservationSpecificationResponse&& value) { m_capacityReservationSpecificationHasBeenSet = true; m_capacityReservationSpecification = std::move(value); } /** *

Information about the Capacity Reservation targeting option.

*/ inline Instance& WithCapacityReservationSpecification(const CapacityReservationSpecificationResponse& value) { SetCapacityReservationSpecification(value); return *this;} /** *

Information about the Capacity Reservation targeting option.

*/ inline Instance& WithCapacityReservationSpecification(CapacityReservationSpecificationResponse&& value) { SetCapacityReservationSpecification(std::move(value)); return *this;} /** *

Indicates whether the instance is enabled for hibernation.

*/ inline const HibernationOptions& GetHibernationOptions() const{ return m_hibernationOptions; } /** *

Indicates whether the instance is enabled for hibernation.

*/ inline bool HibernationOptionsHasBeenSet() const { return m_hibernationOptionsHasBeenSet; } /** *

Indicates whether the instance is enabled for hibernation.

*/ inline void SetHibernationOptions(const HibernationOptions& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = value; } /** *

Indicates whether the instance is enabled for hibernation.

*/ inline void SetHibernationOptions(HibernationOptions&& value) { m_hibernationOptionsHasBeenSet = true; m_hibernationOptions = std::move(value); } /** *

Indicates whether the instance is enabled for hibernation.

*/ inline Instance& WithHibernationOptions(const HibernationOptions& value) { SetHibernationOptions(value); return *this;} /** *

Indicates whether the instance is enabled for hibernation.

*/ inline Instance& WithHibernationOptions(HibernationOptions&& value) { SetHibernationOptions(std::move(value)); return *this;} /** *

The license configurations for the instance.

*/ inline const Aws::Vector& GetLicenses() const{ return m_licenses; } /** *

The license configurations for the instance.

*/ inline bool LicensesHasBeenSet() const { return m_licensesHasBeenSet; } /** *

The license configurations for the instance.

*/ inline void SetLicenses(const Aws::Vector& value) { m_licensesHasBeenSet = true; m_licenses = value; } /** *

The license configurations for the instance.

*/ inline void SetLicenses(Aws::Vector&& value) { m_licensesHasBeenSet = true; m_licenses = std::move(value); } /** *

The license configurations for the instance.

*/ inline Instance& WithLicenses(const Aws::Vector& value) { SetLicenses(value); return *this;} /** *

The license configurations for the instance.

*/ inline Instance& WithLicenses(Aws::Vector&& value) { SetLicenses(std::move(value)); return *this;} /** *

The license configurations for the instance.

*/ inline Instance& AddLicenses(const LicenseConfiguration& value) { m_licensesHasBeenSet = true; m_licenses.push_back(value); return *this; } /** *

The license configurations for the instance.

*/ inline Instance& AddLicenses(LicenseConfiguration&& value) { m_licensesHasBeenSet = true; m_licenses.push_back(std::move(value)); return *this; } /** *

The metadata options for the instance.

*/ inline const InstanceMetadataOptionsResponse& GetMetadataOptions() const{ return m_metadataOptions; } /** *

The metadata options for the instance.

*/ inline bool MetadataOptionsHasBeenSet() const { return m_metadataOptionsHasBeenSet; } /** *

The metadata options for the instance.

*/ inline void SetMetadataOptions(const InstanceMetadataOptionsResponse& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = value; } /** *

The metadata options for the instance.

*/ inline void SetMetadataOptions(InstanceMetadataOptionsResponse&& value) { m_metadataOptionsHasBeenSet = true; m_metadataOptions = std::move(value); } /** *

The metadata options for the instance.

*/ inline Instance& WithMetadataOptions(const InstanceMetadataOptionsResponse& value) { SetMetadataOptions(value); return *this;} /** *

The metadata options for the instance.

*/ inline Instance& WithMetadataOptions(InstanceMetadataOptionsResponse&& value) { SetMetadataOptions(std::move(value)); return *this;} /** *

Indicates whether the instance is enabled for Amazon Web Services Nitro * Enclaves.

*/ inline const EnclaveOptions& GetEnclaveOptions() const{ return m_enclaveOptions; } /** *

Indicates whether the instance is enabled for Amazon Web Services Nitro * Enclaves.

*/ inline bool EnclaveOptionsHasBeenSet() const { return m_enclaveOptionsHasBeenSet; } /** *

Indicates whether the instance is enabled for Amazon Web Services Nitro * Enclaves.

*/ inline void SetEnclaveOptions(const EnclaveOptions& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = value; } /** *

Indicates whether the instance is enabled for Amazon Web Services Nitro * Enclaves.

*/ inline void SetEnclaveOptions(EnclaveOptions&& value) { m_enclaveOptionsHasBeenSet = true; m_enclaveOptions = std::move(value); } /** *

Indicates whether the instance is enabled for Amazon Web Services Nitro * Enclaves.

*/ inline Instance& WithEnclaveOptions(const EnclaveOptions& value) { SetEnclaveOptions(value); return *this;} /** *

Indicates whether the instance is enabled for Amazon Web Services Nitro * Enclaves.

*/ inline Instance& WithEnclaveOptions(EnclaveOptions&& value) { SetEnclaveOptions(std::move(value)); return *this;} /** *

The boot mode that was specified by the AMI. If the value is * uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The * currentInstanceBootMode parameter is the boot mode that is used to * boot the instance at launch or start.

The operating system * contained in the AMI must be configured to support the specified boot mode.

*

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline const BootModeValues& GetBootMode() const{ return m_bootMode; } /** *

The boot mode that was specified by the AMI. If the value is * uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The * currentInstanceBootMode parameter is the boot mode that is used to * boot the instance at launch or start.

The operating system * contained in the AMI must be configured to support the specified boot mode.

*

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline bool BootModeHasBeenSet() const { return m_bootModeHasBeenSet; } /** *

The boot mode that was specified by the AMI. If the value is * uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The * currentInstanceBootMode parameter is the boot mode that is used to * boot the instance at launch or start.

The operating system * contained in the AMI must be configured to support the specified boot mode.

*

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline void SetBootMode(const BootModeValues& value) { m_bootModeHasBeenSet = true; m_bootMode = value; } /** *

The boot mode that was specified by the AMI. If the value is * uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The * currentInstanceBootMode parameter is the boot mode that is used to * boot the instance at launch or start.

The operating system * contained in the AMI must be configured to support the specified boot mode.

*

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline void SetBootMode(BootModeValues&& value) { m_bootModeHasBeenSet = true; m_bootMode = std::move(value); } /** *

The boot mode that was specified by the AMI. If the value is * uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The * currentInstanceBootMode parameter is the boot mode that is used to * boot the instance at launch or start.

The operating system * contained in the AMI must be configured to support the specified boot mode.

*

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline Instance& WithBootMode(const BootModeValues& value) { SetBootMode(value); return *this;} /** *

The boot mode that was specified by the AMI. If the value is * uefi-preferred, the AMI supports both UEFI and Legacy BIOS. The * currentInstanceBootMode parameter is the boot mode that is used to * boot the instance at launch or start.

The operating system * contained in the AMI must be configured to support the specified boot mode.

*

For more information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline Instance& WithBootMode(BootModeValues&& value) { SetBootMode(std::move(value)); return *this;} /** *

The platform details value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline const Aws::String& GetPlatformDetails() const{ return m_platformDetails; } /** *

The platform details value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline bool PlatformDetailsHasBeenSet() const { return m_platformDetailsHasBeenSet; } /** *

The platform details value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline void SetPlatformDetails(const Aws::String& value) { m_platformDetailsHasBeenSet = true; m_platformDetails = value; } /** *

The platform details value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline void SetPlatformDetails(Aws::String&& value) { m_platformDetailsHasBeenSet = true; m_platformDetails = std::move(value); } /** *

The platform details value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline void SetPlatformDetails(const char* value) { m_platformDetailsHasBeenSet = true; m_platformDetails.assign(value); } /** *

The platform details value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline Instance& WithPlatformDetails(const Aws::String& value) { SetPlatformDetails(value); return *this;} /** *

The platform details value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline Instance& WithPlatformDetails(Aws::String&& value) { SetPlatformDetails(std::move(value)); return *this;} /** *

The platform details value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline Instance& WithPlatformDetails(const char* value) { SetPlatformDetails(value); return *this;} /** *

The usage operation value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline const Aws::String& GetUsageOperation() const{ return m_usageOperation; } /** *

The usage operation value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline bool UsageOperationHasBeenSet() const { return m_usageOperationHasBeenSet; } /** *

The usage operation value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline void SetUsageOperation(const Aws::String& value) { m_usageOperationHasBeenSet = true; m_usageOperation = value; } /** *

The usage operation value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline void SetUsageOperation(Aws::String&& value) { m_usageOperationHasBeenSet = true; m_usageOperation = std::move(value); } /** *

The usage operation value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline void SetUsageOperation(const char* value) { m_usageOperationHasBeenSet = true; m_usageOperation.assign(value); } /** *

The usage operation value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline Instance& WithUsageOperation(const Aws::String& value) { SetUsageOperation(value); return *this;} /** *

The usage operation value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline Instance& WithUsageOperation(Aws::String&& value) { SetUsageOperation(std::move(value)); return *this;} /** *

The usage operation value for the instance. For more information, see AMI * billing information fields in the Amazon EC2 User Guide.

*/ inline Instance& WithUsageOperation(const char* value) { SetUsageOperation(value); return *this;} /** *

The time that the usage operation was last updated.

*/ inline const Aws::Utils::DateTime& GetUsageOperationUpdateTime() const{ return m_usageOperationUpdateTime; } /** *

The time that the usage operation was last updated.

*/ inline bool UsageOperationUpdateTimeHasBeenSet() const { return m_usageOperationUpdateTimeHasBeenSet; } /** *

The time that the usage operation was last updated.

*/ inline void SetUsageOperationUpdateTime(const Aws::Utils::DateTime& value) { m_usageOperationUpdateTimeHasBeenSet = true; m_usageOperationUpdateTime = value; } /** *

The time that the usage operation was last updated.

*/ inline void SetUsageOperationUpdateTime(Aws::Utils::DateTime&& value) { m_usageOperationUpdateTimeHasBeenSet = true; m_usageOperationUpdateTime = std::move(value); } /** *

The time that the usage operation was last updated.

*/ inline Instance& WithUsageOperationUpdateTime(const Aws::Utils::DateTime& value) { SetUsageOperationUpdateTime(value); return *this;} /** *

The time that the usage operation was last updated.

*/ inline Instance& WithUsageOperationUpdateTime(Aws::Utils::DateTime&& value) { SetUsageOperationUpdateTime(std::move(value)); return *this;} /** *

The options for the instance hostname.

*/ inline const PrivateDnsNameOptionsResponse& GetPrivateDnsNameOptions() const{ return m_privateDnsNameOptions; } /** *

The options for the instance hostname.

*/ inline bool PrivateDnsNameOptionsHasBeenSet() const { return m_privateDnsNameOptionsHasBeenSet; } /** *

The options for the instance hostname.

*/ inline void SetPrivateDnsNameOptions(const PrivateDnsNameOptionsResponse& value) { m_privateDnsNameOptionsHasBeenSet = true; m_privateDnsNameOptions = value; } /** *

The options for the instance hostname.

*/ inline void SetPrivateDnsNameOptions(PrivateDnsNameOptionsResponse&& value) { m_privateDnsNameOptionsHasBeenSet = true; m_privateDnsNameOptions = std::move(value); } /** *

The options for the instance hostname.

*/ inline Instance& WithPrivateDnsNameOptions(const PrivateDnsNameOptionsResponse& value) { SetPrivateDnsNameOptions(value); return *this;} /** *

The options for the instance hostname.

*/ inline Instance& WithPrivateDnsNameOptions(PrivateDnsNameOptionsResponse&& value) { SetPrivateDnsNameOptions(std::move(value)); return *this;} /** *

The IPv6 address assigned to the instance.

*/ inline const Aws::String& GetIpv6Address() const{ return m_ipv6Address; } /** *

The IPv6 address assigned to the instance.

*/ inline bool Ipv6AddressHasBeenSet() const { return m_ipv6AddressHasBeenSet; } /** *

The IPv6 address assigned to the instance.

*/ inline void SetIpv6Address(const Aws::String& value) { m_ipv6AddressHasBeenSet = true; m_ipv6Address = value; } /** *

The IPv6 address assigned to the instance.

*/ inline void SetIpv6Address(Aws::String&& value) { m_ipv6AddressHasBeenSet = true; m_ipv6Address = std::move(value); } /** *

The IPv6 address assigned to the instance.

*/ inline void SetIpv6Address(const char* value) { m_ipv6AddressHasBeenSet = true; m_ipv6Address.assign(value); } /** *

The IPv6 address assigned to the instance.

*/ inline Instance& WithIpv6Address(const Aws::String& value) { SetIpv6Address(value); return *this;} /** *

The IPv6 address assigned to the instance.

*/ inline Instance& WithIpv6Address(Aws::String&& value) { SetIpv6Address(std::move(value)); return *this;} /** *

The IPv6 address assigned to the instance.

*/ inline Instance& WithIpv6Address(const char* value) { SetIpv6Address(value); return *this;} /** *

If the instance is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline const Aws::String& GetTpmSupport() const{ return m_tpmSupport; } /** *

If the instance is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline bool TpmSupportHasBeenSet() const { return m_tpmSupportHasBeenSet; } /** *

If the instance is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline void SetTpmSupport(const Aws::String& value) { m_tpmSupportHasBeenSet = true; m_tpmSupport = value; } /** *

If the instance is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline void SetTpmSupport(Aws::String&& value) { m_tpmSupportHasBeenSet = true; m_tpmSupport = std::move(value); } /** *

If the instance is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline void SetTpmSupport(const char* value) { m_tpmSupportHasBeenSet = true; m_tpmSupport.assign(value); } /** *

If the instance is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline Instance& WithTpmSupport(const Aws::String& value) { SetTpmSupport(value); return *this;} /** *

If the instance is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline Instance& WithTpmSupport(Aws::String&& value) { SetTpmSupport(std::move(value)); return *this;} /** *

If the instance is configured for NitroTPM support, the value is * v2.0. For more information, see NitroTPM * in the Amazon EC2 User Guide.

*/ inline Instance& WithTpmSupport(const char* value) { SetTpmSupport(value); return *this;} /** *

Provides information on the recovery and maintenance options of your * instance.

*/ inline const InstanceMaintenanceOptions& GetMaintenanceOptions() const{ return m_maintenanceOptions; } /** *

Provides information on the recovery and maintenance options of your * instance.

*/ inline bool MaintenanceOptionsHasBeenSet() const { return m_maintenanceOptionsHasBeenSet; } /** *

Provides information on the recovery and maintenance options of your * instance.

*/ inline void SetMaintenanceOptions(const InstanceMaintenanceOptions& value) { m_maintenanceOptionsHasBeenSet = true; m_maintenanceOptions = value; } /** *

Provides information on the recovery and maintenance options of your * instance.

*/ inline void SetMaintenanceOptions(InstanceMaintenanceOptions&& value) { m_maintenanceOptionsHasBeenSet = true; m_maintenanceOptions = std::move(value); } /** *

Provides information on the recovery and maintenance options of your * instance.

*/ inline Instance& WithMaintenanceOptions(const InstanceMaintenanceOptions& value) { SetMaintenanceOptions(value); return *this;} /** *

Provides information on the recovery and maintenance options of your * instance.

*/ inline Instance& WithMaintenanceOptions(InstanceMaintenanceOptions&& value) { SetMaintenanceOptions(std::move(value)); return *this;} /** *

The boot mode that is used to boot the instance at launch or start. For more * information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline const InstanceBootModeValues& GetCurrentInstanceBootMode() const{ return m_currentInstanceBootMode; } /** *

The boot mode that is used to boot the instance at launch or start. For more * information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline bool CurrentInstanceBootModeHasBeenSet() const { return m_currentInstanceBootModeHasBeenSet; } /** *

The boot mode that is used to boot the instance at launch or start. For more * information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline void SetCurrentInstanceBootMode(const InstanceBootModeValues& value) { m_currentInstanceBootModeHasBeenSet = true; m_currentInstanceBootMode = value; } /** *

The boot mode that is used to boot the instance at launch or start. For more * information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline void SetCurrentInstanceBootMode(InstanceBootModeValues&& value) { m_currentInstanceBootModeHasBeenSet = true; m_currentInstanceBootMode = std::move(value); } /** *

The boot mode that is used to boot the instance at launch or start. For more * information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline Instance& WithCurrentInstanceBootMode(const InstanceBootModeValues& value) { SetCurrentInstanceBootMode(value); return *this;} /** *

The boot mode that is used to boot the instance at launch or start. For more * information, see Boot * modes in the Amazon EC2 User Guide.

*/ inline Instance& WithCurrentInstanceBootMode(InstanceBootModeValues&& value) { SetCurrentInstanceBootMode(std::move(value)); return *this;} private: int m_amiLaunchIndex; bool m_amiLaunchIndexHasBeenSet = false; Aws::String m_imageId; bool m_imageIdHasBeenSet = false; Aws::String m_instanceId; bool m_instanceIdHasBeenSet = false; InstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_kernelId; bool m_kernelIdHasBeenSet = false; Aws::String m_keyName; bool m_keyNameHasBeenSet = false; Aws::Utils::DateTime m_launchTime; bool m_launchTimeHasBeenSet = false; Monitoring m_monitoring; bool m_monitoringHasBeenSet = false; Placement m_placement; bool m_placementHasBeenSet = false; PlatformValues m_platform; bool m_platformHasBeenSet = false; Aws::String m_privateDnsName; bool m_privateDnsNameHasBeenSet = false; Aws::String m_privateIpAddress; bool m_privateIpAddressHasBeenSet = false; Aws::Vector m_productCodes; bool m_productCodesHasBeenSet = false; Aws::String m_publicDnsName; bool m_publicDnsNameHasBeenSet = false; Aws::String m_publicIpAddress; bool m_publicIpAddressHasBeenSet = false; Aws::String m_ramdiskId; bool m_ramdiskIdHasBeenSet = false; InstanceState m_state; bool m_stateHasBeenSet = false; Aws::String m_stateTransitionReason; bool m_stateTransitionReasonHasBeenSet = false; Aws::String m_subnetId; bool m_subnetIdHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; ArchitectureValues m_architecture; bool m_architectureHasBeenSet = false; Aws::Vector m_blockDeviceMappings; bool m_blockDeviceMappingsHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; bool m_ebsOptimized; bool m_ebsOptimizedHasBeenSet = false; bool m_enaSupport; bool m_enaSupportHasBeenSet = false; HypervisorType m_hypervisor; bool m_hypervisorHasBeenSet = false; IamInstanceProfile m_iamInstanceProfile; bool m_iamInstanceProfileHasBeenSet = false; InstanceLifecycleType m_instanceLifecycle; bool m_instanceLifecycleHasBeenSet = false; Aws::Vector m_elasticGpuAssociations; bool m_elasticGpuAssociationsHasBeenSet = false; Aws::Vector m_elasticInferenceAcceleratorAssociations; bool m_elasticInferenceAcceleratorAssociationsHasBeenSet = false; Aws::Vector m_networkInterfaces; bool m_networkInterfacesHasBeenSet = false; Aws::String m_outpostArn; bool m_outpostArnHasBeenSet = false; Aws::String m_rootDeviceName; bool m_rootDeviceNameHasBeenSet = false; DeviceType m_rootDeviceType; bool m_rootDeviceTypeHasBeenSet = false; Aws::Vector m_securityGroups; bool m_securityGroupsHasBeenSet = false; bool m_sourceDestCheck; bool m_sourceDestCheckHasBeenSet = false; Aws::String m_spotInstanceRequestId; bool m_spotInstanceRequestIdHasBeenSet = false; Aws::String m_sriovNetSupport; bool m_sriovNetSupportHasBeenSet = false; StateReason m_stateReason; bool m_stateReasonHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; VirtualizationType m_virtualizationType; bool m_virtualizationTypeHasBeenSet = false; CpuOptions m_cpuOptions; bool m_cpuOptionsHasBeenSet = false; Aws::String m_capacityReservationId; bool m_capacityReservationIdHasBeenSet = false; CapacityReservationSpecificationResponse m_capacityReservationSpecification; bool m_capacityReservationSpecificationHasBeenSet = false; HibernationOptions m_hibernationOptions; bool m_hibernationOptionsHasBeenSet = false; Aws::Vector m_licenses; bool m_licensesHasBeenSet = false; InstanceMetadataOptionsResponse m_metadataOptions; bool m_metadataOptionsHasBeenSet = false; EnclaveOptions m_enclaveOptions; bool m_enclaveOptionsHasBeenSet = false; BootModeValues m_bootMode; bool m_bootModeHasBeenSet = false; Aws::String m_platformDetails; bool m_platformDetailsHasBeenSet = false; Aws::String m_usageOperation; bool m_usageOperationHasBeenSet = false; Aws::Utils::DateTime m_usageOperationUpdateTime; bool m_usageOperationUpdateTimeHasBeenSet = false; PrivateDnsNameOptionsResponse m_privateDnsNameOptions; bool m_privateDnsNameOptionsHasBeenSet = false; Aws::String m_ipv6Address; bool m_ipv6AddressHasBeenSet = false; Aws::String m_tpmSupport; bool m_tpmSupportHasBeenSet = false; InstanceMaintenanceOptions m_maintenanceOptions; bool m_maintenanceOptionsHasBeenSet = false; InstanceBootModeValues m_currentInstanceBootMode; bool m_currentInstanceBootModeHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws