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

The description of an instance. Currently, Amazon EC2 instances are the only * supported instance type.

See Also:

AWS * API Reference

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

The Amazon Machine Image (AMI) launch index, which you can use to find this * instance in the launch group.

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

The Amazon Machine Image (AMI) launch index, which you can use to find this * instance in the launch group.

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

The Amazon Machine Image (AMI) launch index, which you can use to find this * instance in the launch group.

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

The Amazon Machine Image (AMI) launch index, which you can use to find this * instance in the launch group.

*/ inline Instance& WithAmiLaunchIndex(int value) { SetAmiLaunchIndex(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 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;} /** *

When the instance was created.

*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *

When the instance was created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

When the instance was created.

*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

When the instance was created.

*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

When the instance was created.

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

When the instance was created.

*/ inline Instance& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(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 Aws::String& GetInstanceType() const{ return m_instanceType; } /** *

The instance type.

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

The instance type.

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

The instance type.

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

The instance type.

*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *

The instance type.

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

The instance type.

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

The instance type.

*/ inline Instance& WithInstanceType(const char* value) { SetInstanceType(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 public IPv4 address assigned to the instance.

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

The public IPv4 address assigned to the instance.

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

The public IPv4 address assigned to the instance.

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

The public IPv4 address assigned to the instance.

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

The public IPv4 address assigned to the instance.

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

The public IPv4 address assigned to the instance.

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

The public IPv4 address assigned to the instance.

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

The public IPv4 address assigned to the instance.

*/ inline Instance& WithPublicIpAddress(const char* value) { SetPublicIpAddress(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 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 SecurityGroupIdentifier& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *

The security groups for the instance.

*/ inline Instance& AddSecurityGroups(SecurityGroupIdentifier&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; } inline const InstanceState& GetState() const{ return m_state; } inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } inline void SetState(const InstanceState& value) { m_stateHasBeenSet = true; m_state = value; } inline void SetState(InstanceState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } inline Instance& WithState(const InstanceState& value) { SetState(value); return *this;} inline Instance& WithState(InstanceState&& value) { SetState(std::move(value)); return *this;} /** *

When the instance was last updated.

*/ inline const Aws::Utils::DateTime& GetUpdatedAt() const{ return m_updatedAt; } /** *

When the instance was last updated.

*/ inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; } /** *

When the instance was last updated.

*/ inline void SetUpdatedAt(const Aws::Utils::DateTime& value) { m_updatedAtHasBeenSet = true; m_updatedAt = value; } /** *

When the instance was last updated.

*/ inline void SetUpdatedAt(Aws::Utils::DateTime&& value) { m_updatedAtHasBeenSet = true; m_updatedAt = std::move(value); } /** *

When the instance was last updated.

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

When the instance was last updated.

*/ inline Instance& WithUpdatedAt(Aws::Utils::DateTime&& value) { SetUpdatedAt(std::move(value)); return *this;} private: int m_amiLaunchIndex; bool m_amiLaunchIndexHasBeenSet = false; Aws::Vector m_blockDeviceMappings; bool m_blockDeviceMappingsHasBeenSet = false; CpuOptions m_cpuOptions; bool m_cpuOptionsHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::String m_imageId; bool m_imageIdHasBeenSet = false; Aws::String m_instanceId; bool m_instanceIdHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_privateIpAddress; bool m_privateIpAddressHasBeenSet = false; Aws::String m_publicIpAddress; bool m_publicIpAddressHasBeenSet = false; Aws::String m_rootDeviceName; bool m_rootDeviceNameHasBeenSet = false; Aws::Vector m_securityGroups; bool m_securityGroupsHasBeenSet = false; InstanceState m_state; bool m_stateHasBeenSet = false; Aws::Utils::DateTime m_updatedAt; bool m_updatedAtHasBeenSet = false; }; } // namespace Model } // namespace SnowDeviceManagement } // namespace Aws