/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GuardDuty { namespace Model { /** *

Contains information about the details of an instance.

See * Also:

AWS * API Reference

*/ class InstanceDetails { public: AWS_GUARDDUTY_API InstanceDetails(); AWS_GUARDDUTY_API InstanceDetails(Aws::Utils::Json::JsonView jsonValue); AWS_GUARDDUTY_API InstanceDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GUARDDUTY_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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::Vector& GetNetworkInterfaces() const{ return m_networkInterfaces; } /** *

The 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::Vector& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = value; } /** *

The elastic network interface information of the EC2 instance.

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

The elastic network interface information of the EC2 instance.

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

The elastic network interface information of the EC2 instance.

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

The 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::Vector& GetProductCodes() const{ return m_productCodes; } /** *

The 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::Vector& value) { m_productCodesHasBeenSet = true; m_productCodes = value; } /** *

The product code of the EC2 instance.

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

The product code of the EC2 instance.

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

The product code of the EC2 instance.

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

The 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::Vector& GetTags() const{ return m_tags; } /** *

The tags of the EC2 instance.

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

The tags of the EC2 instance.

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

The tags of the EC2 instance.

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

The tags of the EC2 instance.

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

The tags of the EC2 instance.

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

The 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 m_networkInterfaces; bool m_networkInterfacesHasBeenSet = false; Aws::String m_platform; bool m_platformHasBeenSet = false; Aws::Vector m_productCodes; bool m_productCodesHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace GuardDuty } // namespace Aws