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

Details about the Amazon EC2 instances that Amazon Web Services recommends * that you purchase.

See Also:

AWS * API Reference

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

The instance family of the recommended reservation.

*/ inline const Aws::String& GetFamily() const{ return m_family; } /** *

The instance family of the recommended reservation.

*/ inline bool FamilyHasBeenSet() const { return m_familyHasBeenSet; } /** *

The instance family of the recommended reservation.

*/ inline void SetFamily(const Aws::String& value) { m_familyHasBeenSet = true; m_family = value; } /** *

The instance family of the recommended reservation.

*/ inline void SetFamily(Aws::String&& value) { m_familyHasBeenSet = true; m_family = std::move(value); } /** *

The instance family of the recommended reservation.

*/ inline void SetFamily(const char* value) { m_familyHasBeenSet = true; m_family.assign(value); } /** *

The instance family of the recommended reservation.

*/ inline EC2InstanceDetails& WithFamily(const Aws::String& value) { SetFamily(value); return *this;} /** *

The instance family of the recommended reservation.

*/ inline EC2InstanceDetails& WithFamily(Aws::String&& value) { SetFamily(std::move(value)); return *this;} /** *

The instance family of the recommended reservation.

*/ inline EC2InstanceDetails& WithFamily(const char* value) { SetFamily(value); return *this;} /** *

The type of instance that Amazon Web Services recommends.

*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *

The type of instance that Amazon Web Services recommends.

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

The type of instance that Amazon Web Services recommends.

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

The type of instance that Amazon Web Services recommends.

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

The type of instance that Amazon Web Services recommends.

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

The type of instance that Amazon Web Services recommends.

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

The type of instance that Amazon Web Services recommends.

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

The type of instance that Amazon Web Services recommends.

*/ inline EC2InstanceDetails& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *

The Amazon Web Services Region of the recommended reservation.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

The Amazon Web Services Region of the recommended reservation.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

The Amazon Web Services Region of the recommended reservation.

*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *

The Amazon Web Services Region of the recommended reservation.

*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *

The Amazon Web Services Region of the recommended reservation.

*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *

The Amazon Web Services Region of the recommended reservation.

*/ inline EC2InstanceDetails& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

The Amazon Web Services Region of the recommended reservation.

*/ inline EC2InstanceDetails& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

The Amazon Web Services Region of the recommended reservation.

*/ inline EC2InstanceDetails& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

The Availability Zone of the recommended reservation.

*/ inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; } /** *

The Availability Zone of the recommended reservation.

*/ inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; } /** *

The Availability Zone of the recommended reservation.

*/ inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; } /** *

The Availability Zone of the recommended reservation.

*/ inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); } /** *

The Availability Zone of the recommended reservation.

*/ inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); } /** *

The Availability Zone of the recommended reservation.

*/ inline EC2InstanceDetails& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;} /** *

The Availability Zone of the recommended reservation.

*/ inline EC2InstanceDetails& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;} /** *

The Availability Zone of the recommended reservation.

*/ inline EC2InstanceDetails& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;} /** *

The platform of the recommended reservation. The platform is the specific * combination of operating system, license model, and software on an instance.

*/ inline const Aws::String& GetPlatform() const{ return m_platform; } /** *

The platform of the recommended reservation. The platform is the specific * combination of operating system, license model, and software on an instance.

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

The platform of the recommended reservation. The platform is the specific * combination of operating system, license model, and software on an instance.

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

The platform of the recommended reservation. The platform is the specific * combination of operating system, license model, and software on an instance.

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

The platform of the recommended reservation. The platform is the specific * combination of operating system, license model, and software on an instance.

*/ inline void SetPlatform(const char* value) { m_platformHasBeenSet = true; m_platform.assign(value); } /** *

The platform of the recommended reservation. The platform is the specific * combination of operating system, license model, and software on an instance.

*/ inline EC2InstanceDetails& WithPlatform(const Aws::String& value) { SetPlatform(value); return *this;} /** *

The platform of the recommended reservation. The platform is the specific * combination of operating system, license model, and software on an instance.

*/ inline EC2InstanceDetails& WithPlatform(Aws::String&& value) { SetPlatform(std::move(value)); return *this;} /** *

The platform of the recommended reservation. The platform is the specific * combination of operating system, license model, and software on an instance.

*/ inline EC2InstanceDetails& WithPlatform(const char* value) { SetPlatform(value); return *this;} /** *

Determines whether the recommended reservation is dedicated or shared.

*/ inline const Aws::String& GetTenancy() const{ return m_tenancy; } /** *

Determines whether the recommended reservation is dedicated or shared.

*/ inline bool TenancyHasBeenSet() const { return m_tenancyHasBeenSet; } /** *

Determines whether the recommended reservation is dedicated or shared.

*/ inline void SetTenancy(const Aws::String& value) { m_tenancyHasBeenSet = true; m_tenancy = value; } /** *

Determines whether the recommended reservation is dedicated or shared.

*/ inline void SetTenancy(Aws::String&& value) { m_tenancyHasBeenSet = true; m_tenancy = std::move(value); } /** *

Determines whether the recommended reservation is dedicated or shared.

*/ inline void SetTenancy(const char* value) { m_tenancyHasBeenSet = true; m_tenancy.assign(value); } /** *

Determines whether the recommended reservation is dedicated or shared.

*/ inline EC2InstanceDetails& WithTenancy(const Aws::String& value) { SetTenancy(value); return *this;} /** *

Determines whether the recommended reservation is dedicated or shared.

*/ inline EC2InstanceDetails& WithTenancy(Aws::String&& value) { SetTenancy(std::move(value)); return *this;} /** *

Determines whether the recommended reservation is dedicated or shared.

*/ inline EC2InstanceDetails& WithTenancy(const char* value) { SetTenancy(value); return *this;} /** *

Determines whether the recommendation is for a current-generation instance. *

*/ inline bool GetCurrentGeneration() const{ return m_currentGeneration; } /** *

Determines whether the recommendation is for a current-generation instance. *

*/ inline bool CurrentGenerationHasBeenSet() const { return m_currentGenerationHasBeenSet; } /** *

Determines whether the recommendation is for a current-generation instance. *

*/ inline void SetCurrentGeneration(bool value) { m_currentGenerationHasBeenSet = true; m_currentGeneration = value; } /** *

Determines whether the recommendation is for a current-generation instance. *

*/ inline EC2InstanceDetails& WithCurrentGeneration(bool value) { SetCurrentGeneration(value); return *this;} /** *

Determines whether the recommended reservation is size flexible.

*/ inline bool GetSizeFlexEligible() const{ return m_sizeFlexEligible; } /** *

Determines whether the recommended reservation is size flexible.

*/ inline bool SizeFlexEligibleHasBeenSet() const { return m_sizeFlexEligibleHasBeenSet; } /** *

Determines whether the recommended reservation is size flexible.

*/ inline void SetSizeFlexEligible(bool value) { m_sizeFlexEligibleHasBeenSet = true; m_sizeFlexEligible = value; } /** *

Determines whether the recommended reservation is size flexible.

*/ inline EC2InstanceDetails& WithSizeFlexEligible(bool value) { SetSizeFlexEligible(value); return *this;} private: Aws::String m_family; bool m_familyHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_region; bool m_regionHasBeenSet = false; Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; Aws::String m_platform; bool m_platformHasBeenSet = false; Aws::String m_tenancy; bool m_tenancyHasBeenSet = false; bool m_currentGeneration; bool m_currentGenerationHasBeenSet = false; bool m_sizeFlexEligible; bool m_sizeFlexEligibleHasBeenSet = false; }; } // namespace Model } // namespace CostExplorer } // namespace Aws