/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Contains information about the details of an instance.See
* Also:
AWS
* API Reference
The Availability Zone of the EC2 instance.
*/ inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; } /** *The Availability Zone of the EC2 instance.
*/ inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; } /** *The Availability Zone of the EC2 instance.
*/ inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; } /** *The Availability Zone of the EC2 instance.
*/ inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); } /** *The Availability Zone of the EC2 instance.
*/ inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); } /** *The Availability Zone of the EC2 instance.
*/ inline InstanceDetails& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;} /** *The Availability Zone of the EC2 instance.
*/ inline InstanceDetails& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;} /** *The Availability Zone of the EC2 instance.
*/ inline InstanceDetails& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;} /** *The profile information of the EC2 instance.
*/ inline const IamInstanceProfile& GetIamInstanceProfile() const{ return m_iamInstanceProfile; } /** *The profile information of the EC2 instance.
*/ inline bool IamInstanceProfileHasBeenSet() const { return m_iamInstanceProfileHasBeenSet; } /** *The profile information of the EC2 instance.
*/ inline void SetIamInstanceProfile(const IamInstanceProfile& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = value; } /** *The profile information of the EC2 instance.
*/ inline void SetIamInstanceProfile(IamInstanceProfile&& value) { m_iamInstanceProfileHasBeenSet = true; m_iamInstanceProfile = std::move(value); } /** *The profile information of the EC2 instance.
*/ inline InstanceDetails& WithIamInstanceProfile(const IamInstanceProfile& value) { SetIamInstanceProfile(value); return *this;} /** *The profile information of the EC2 instance.
*/ inline InstanceDetails& WithIamInstanceProfile(IamInstanceProfile&& value) { SetIamInstanceProfile(std::move(value)); return *this;} /** *The image description of the EC2 instance.
*/ inline const Aws::String& GetImageDescription() const{ return m_imageDescription; } /** *The image description of the EC2 instance.
*/ inline bool ImageDescriptionHasBeenSet() const { return m_imageDescriptionHasBeenSet; } /** *The image description of the EC2 instance.
*/ inline void SetImageDescription(const Aws::String& value) { m_imageDescriptionHasBeenSet = true; m_imageDescription = value; } /** *The image description of the EC2 instance.
*/ inline void SetImageDescription(Aws::String&& value) { m_imageDescriptionHasBeenSet = true; m_imageDescription = std::move(value); } /** *The image description of the EC2 instance.
*/ inline void SetImageDescription(const char* value) { m_imageDescriptionHasBeenSet = true; m_imageDescription.assign(value); } /** *The image description of the EC2 instance.
*/ inline InstanceDetails& WithImageDescription(const Aws::String& value) { SetImageDescription(value); return *this;} /** *The image description of the EC2 instance.
*/ inline InstanceDetails& WithImageDescription(Aws::String&& value) { SetImageDescription(std::move(value)); return *this;} /** *The image description of the EC2 instance.
*/ inline InstanceDetails& WithImageDescription(const char* value) { SetImageDescription(value); return *this;} /** *The image ID of the EC2 instance.
*/ inline const Aws::String& GetImageId() const{ return m_imageId; } /** *The image ID of the EC2 instance.
*/ inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; } /** *The image ID of the EC2 instance.
*/ inline void SetImageId(const Aws::String& value) { m_imageIdHasBeenSet = true; m_imageId = value; } /** *The image ID of the EC2 instance.
*/ inline void SetImageId(Aws::String&& value) { m_imageIdHasBeenSet = true; m_imageId = std::move(value); } /** *The image ID of the EC2 instance.
*/ inline void SetImageId(const char* value) { m_imageIdHasBeenSet = true; m_imageId.assign(value); } /** *The image ID of the EC2 instance.
*/ inline InstanceDetails& WithImageId(const Aws::String& value) { SetImageId(value); return *this;} /** *The image ID of the EC2 instance.
*/ inline InstanceDetails& WithImageId(Aws::String&& value) { SetImageId(std::move(value)); return *this;} /** *The image ID of the EC2 instance.
*/ inline InstanceDetails& WithImageId(const char* value) { SetImageId(value); return *this;} /** *The ID of the EC2 instance.
*/ inline const Aws::String& GetInstanceId() const{ return m_instanceId; } /** *The ID of the EC2 instance.
*/ inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; } /** *The ID of the EC2 instance.
*/ inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; } /** *The ID of the EC2 instance.
*/ inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); } /** *The ID of the EC2 instance.
*/ inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); } /** *The ID of the EC2 instance.
*/ inline InstanceDetails& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;} /** *The ID of the EC2 instance.
*/ inline InstanceDetails& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;} /** *The ID of the EC2 instance.
*/ inline InstanceDetails& WithInstanceId(const char* value) { SetInstanceId(value); return *this;} /** *The state of the EC2 instance.
*/ inline const Aws::String& GetInstanceState() const{ return m_instanceState; } /** *The state of the EC2 instance.
*/ inline bool InstanceStateHasBeenSet() const { return m_instanceStateHasBeenSet; } /** *The state of the EC2 instance.
*/ inline void SetInstanceState(const Aws::String& value) { m_instanceStateHasBeenSet = true; m_instanceState = value; } /** *The state of the EC2 instance.
*/ inline void SetInstanceState(Aws::String&& value) { m_instanceStateHasBeenSet = true; m_instanceState = std::move(value); } /** *The state of the EC2 instance.
*/ inline void SetInstanceState(const char* value) { m_instanceStateHasBeenSet = true; m_instanceState.assign(value); } /** *The state of the EC2 instance.
*/ inline InstanceDetails& WithInstanceState(const Aws::String& value) { SetInstanceState(value); return *this;} /** *The state of the EC2 instance.
*/ inline InstanceDetails& WithInstanceState(Aws::String&& value) { SetInstanceState(std::move(value)); return *this;} /** *The state of the EC2 instance.
*/ inline InstanceDetails& WithInstanceState(const char* value) { SetInstanceState(value); return *this;} /** *The type of the EC2 instance.
*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *The type of the EC2 instance.
*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *The type of the EC2 instance.
*/ inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *The type of the EC2 instance.
*/ inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *The type of the EC2 instance.
*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *The type of the EC2 instance.
*/ inline InstanceDetails& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *The type of the EC2 instance.
*/ inline InstanceDetails& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} /** *The type of the EC2 instance.
*/ inline InstanceDetails& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only * applicable to Amazon Web Services Outposts instances.
*/ inline const Aws::String& GetOutpostArn() const{ return m_outpostArn; } /** *The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only * applicable to Amazon Web Services Outposts instances.
*/ inline bool OutpostArnHasBeenSet() const { return m_outpostArnHasBeenSet; } /** *The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only * applicable to Amazon Web Services Outposts instances.
*/ inline void SetOutpostArn(const Aws::String& value) { m_outpostArnHasBeenSet = true; m_outpostArn = value; } /** *The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only * applicable to Amazon Web Services Outposts instances.
*/ inline void SetOutpostArn(Aws::String&& value) { m_outpostArnHasBeenSet = true; m_outpostArn = std::move(value); } /** *The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only * applicable to Amazon Web Services Outposts instances.
*/ inline void SetOutpostArn(const char* value) { m_outpostArnHasBeenSet = true; m_outpostArn.assign(value); } /** *The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only * applicable to Amazon Web Services Outposts instances.
*/ inline InstanceDetails& WithOutpostArn(const Aws::String& value) { SetOutpostArn(value); return *this;} /** *The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only * applicable to Amazon Web Services Outposts instances.
*/ inline InstanceDetails& WithOutpostArn(Aws::String&& value) { SetOutpostArn(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only * applicable to Amazon Web Services Outposts instances.
*/ inline InstanceDetails& WithOutpostArn(const char* value) { SetOutpostArn(value); return *this;} /** *The launch time of the EC2 instance.
*/ inline const Aws::String& GetLaunchTime() const{ return m_launchTime; } /** *The launch time of the EC2 instance.
*/ inline bool LaunchTimeHasBeenSet() const { return m_launchTimeHasBeenSet; } /** *The launch time of the EC2 instance.
*/ inline void SetLaunchTime(const Aws::String& value) { m_launchTimeHasBeenSet = true; m_launchTime = value; } /** *The launch time of the EC2 instance.
*/ inline void SetLaunchTime(Aws::String&& value) { m_launchTimeHasBeenSet = true; m_launchTime = std::move(value); } /** *The launch time of the EC2 instance.
*/ inline void SetLaunchTime(const char* value) { m_launchTimeHasBeenSet = true; m_launchTime.assign(value); } /** *The launch time of the EC2 instance.
*/ inline InstanceDetails& WithLaunchTime(const Aws::String& value) { SetLaunchTime(value); return *this;} /** *The launch time of the EC2 instance.
*/ inline InstanceDetails& WithLaunchTime(Aws::String&& value) { SetLaunchTime(std::move(value)); return *this;} /** *The launch time of the EC2 instance.
*/ inline InstanceDetails& WithLaunchTime(const char* value) { SetLaunchTime(value); return *this;} /** *The elastic network interface information of the EC2 instance.
*/ inline const Aws::VectorThe elastic network interface information of the EC2 instance.
*/ inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; } /** *The elastic network interface information of the EC2 instance.
*/ inline void SetNetworkInterfaces(const Aws::VectorThe elastic network interface information of the EC2 instance.
*/ inline void SetNetworkInterfaces(Aws::VectorThe elastic network interface information of the EC2 instance.
*/ inline InstanceDetails& WithNetworkInterfaces(const Aws::VectorThe elastic network interface information of the EC2 instance.
*/ inline InstanceDetails& WithNetworkInterfaces(Aws::VectorThe elastic network interface information of the EC2 instance.
*/ inline InstanceDetails& AddNetworkInterfaces(const NetworkInterface& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(value); return *this; } /** *The elastic network interface information of the EC2 instance.
*/ inline InstanceDetails& AddNetworkInterfaces(NetworkInterface&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(std::move(value)); return *this; } /** *The platform of the EC2 instance.
*/ inline const Aws::String& GetPlatform() const{ return m_platform; } /** *The platform of the EC2 instance.
*/ inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; } /** *The platform of the EC2 instance.
*/ inline void SetPlatform(const Aws::String& value) { m_platformHasBeenSet = true; m_platform = value; } /** *The platform of the EC2 instance.
*/ inline void SetPlatform(Aws::String&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); } /** *The platform of the EC2 instance.
*/ inline void SetPlatform(const char* value) { m_platformHasBeenSet = true; m_platform.assign(value); } /** *The platform of the EC2 instance.
*/ inline InstanceDetails& WithPlatform(const Aws::String& value) { SetPlatform(value); return *this;} /** *The platform of the EC2 instance.
*/ inline InstanceDetails& WithPlatform(Aws::String&& value) { SetPlatform(std::move(value)); return *this;} /** *The platform of the EC2 instance.
*/ inline InstanceDetails& WithPlatform(const char* value) { SetPlatform(value); return *this;} /** *The product code of the EC2 instance.
*/ inline const Aws::VectorThe product code of the EC2 instance.
*/ inline bool ProductCodesHasBeenSet() const { return m_productCodesHasBeenSet; } /** *The product code of the EC2 instance.
*/ inline void SetProductCodes(const Aws::VectorThe product code of the EC2 instance.
*/ inline void SetProductCodes(Aws::VectorThe product code of the EC2 instance.
*/ inline InstanceDetails& WithProductCodes(const Aws::VectorThe product code of the EC2 instance.
*/ inline InstanceDetails& WithProductCodes(Aws::VectorThe product code of the EC2 instance.
*/ inline InstanceDetails& AddProductCodes(const ProductCode& value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(value); return *this; } /** *The product code of the EC2 instance.
*/ inline InstanceDetails& AddProductCodes(ProductCode&& value) { m_productCodesHasBeenSet = true; m_productCodes.push_back(std::move(value)); return *this; } /** *The tags of the EC2 instance.
*/ inline const Aws::VectorThe tags of the EC2 instance.
*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *The tags of the EC2 instance.
*/ inline void SetTags(const Aws::VectorThe tags of the EC2 instance.
*/ inline void SetTags(Aws::VectorThe tags of the EC2 instance.
*/ inline InstanceDetails& WithTags(const Aws::VectorThe tags of the EC2 instance.
*/ inline InstanceDetails& WithTags(Aws::VectorThe tags of the EC2 instance.
*/ inline InstanceDetails& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *The tags of the EC2 instance.
*/ inline InstanceDetails& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; IamInstanceProfile m_iamInstanceProfile; bool m_iamInstanceProfileHasBeenSet = false; Aws::String m_imageDescription; bool m_imageDescriptionHasBeenSet = false; Aws::String m_imageId; bool m_imageIdHasBeenSet = false; Aws::String m_instanceId; bool m_instanceIdHasBeenSet = false; Aws::String m_instanceState; bool m_instanceStateHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_outpostArn; bool m_outpostArnHasBeenSet = false; Aws::String m_launchTime; bool m_launchTimeHasBeenSet = false; Aws::Vector