/** * 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 RDS instances that Amazon Web Services recommends * that you purchase.

See Also:

AWS * API Reference

*/ class RDSInstanceDetails { public: AWS_COSTEXPLORER_API RDSInstanceDetails(); AWS_COSTEXPLORER_API RDSInstanceDetails(Aws::Utils::Json::JsonView jsonValue); AWS_COSTEXPLORER_API RDSInstanceDetails& 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 RDSInstanceDetails& WithFamily(const Aws::String& value) { SetFamily(value); return *this;} /** *

The instance family of the recommended reservation.

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

The instance family of the recommended reservation.

*/ inline RDSInstanceDetails& 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 RDSInstanceDetails& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *

The type of instance that Amazon Web Services recommends.

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

The type of instance that Amazon Web Services recommends.

*/ inline RDSInstanceDetails& 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 RDSInstanceDetails& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

The Amazon Web Services Region of the recommended reservation.

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

The Amazon Web Services Region of the recommended reservation.

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

The database engine that the recommended reservation supports.

*/ inline const Aws::String& GetDatabaseEngine() const{ return m_databaseEngine; } /** *

The database engine that the recommended reservation supports.

*/ inline bool DatabaseEngineHasBeenSet() const { return m_databaseEngineHasBeenSet; } /** *

The database engine that the recommended reservation supports.

*/ inline void SetDatabaseEngine(const Aws::String& value) { m_databaseEngineHasBeenSet = true; m_databaseEngine = value; } /** *

The database engine that the recommended reservation supports.

*/ inline void SetDatabaseEngine(Aws::String&& value) { m_databaseEngineHasBeenSet = true; m_databaseEngine = std::move(value); } /** *

The database engine that the recommended reservation supports.

*/ inline void SetDatabaseEngine(const char* value) { m_databaseEngineHasBeenSet = true; m_databaseEngine.assign(value); } /** *

The database engine that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithDatabaseEngine(const Aws::String& value) { SetDatabaseEngine(value); return *this;} /** *

The database engine that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithDatabaseEngine(Aws::String&& value) { SetDatabaseEngine(std::move(value)); return *this;} /** *

The database engine that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithDatabaseEngine(const char* value) { SetDatabaseEngine(value); return *this;} /** *

The database edition that the recommended reservation supports.

*/ inline const Aws::String& GetDatabaseEdition() const{ return m_databaseEdition; } /** *

The database edition that the recommended reservation supports.

*/ inline bool DatabaseEditionHasBeenSet() const { return m_databaseEditionHasBeenSet; } /** *

The database edition that the recommended reservation supports.

*/ inline void SetDatabaseEdition(const Aws::String& value) { m_databaseEditionHasBeenSet = true; m_databaseEdition = value; } /** *

The database edition that the recommended reservation supports.

*/ inline void SetDatabaseEdition(Aws::String&& value) { m_databaseEditionHasBeenSet = true; m_databaseEdition = std::move(value); } /** *

The database edition that the recommended reservation supports.

*/ inline void SetDatabaseEdition(const char* value) { m_databaseEditionHasBeenSet = true; m_databaseEdition.assign(value); } /** *

The database edition that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithDatabaseEdition(const Aws::String& value) { SetDatabaseEdition(value); return *this;} /** *

The database edition that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithDatabaseEdition(Aws::String&& value) { SetDatabaseEdition(std::move(value)); return *this;} /** *

The database edition that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithDatabaseEdition(const char* value) { SetDatabaseEdition(value); return *this;} /** *

Determines whether the recommendation is for a reservation in a single * Availability Zone or a reservation with a backup in a second Availability * Zone.

*/ inline const Aws::String& GetDeploymentOption() const{ return m_deploymentOption; } /** *

Determines whether the recommendation is for a reservation in a single * Availability Zone or a reservation with a backup in a second Availability * Zone.

*/ inline bool DeploymentOptionHasBeenSet() const { return m_deploymentOptionHasBeenSet; } /** *

Determines whether the recommendation is for a reservation in a single * Availability Zone or a reservation with a backup in a second Availability * Zone.

*/ inline void SetDeploymentOption(const Aws::String& value) { m_deploymentOptionHasBeenSet = true; m_deploymentOption = value; } /** *

Determines whether the recommendation is for a reservation in a single * Availability Zone or a reservation with a backup in a second Availability * Zone.

*/ inline void SetDeploymentOption(Aws::String&& value) { m_deploymentOptionHasBeenSet = true; m_deploymentOption = std::move(value); } /** *

Determines whether the recommendation is for a reservation in a single * Availability Zone or a reservation with a backup in a second Availability * Zone.

*/ inline void SetDeploymentOption(const char* value) { m_deploymentOptionHasBeenSet = true; m_deploymentOption.assign(value); } /** *

Determines whether the recommendation is for a reservation in a single * Availability Zone or a reservation with a backup in a second Availability * Zone.

*/ inline RDSInstanceDetails& WithDeploymentOption(const Aws::String& value) { SetDeploymentOption(value); return *this;} /** *

Determines whether the recommendation is for a reservation in a single * Availability Zone or a reservation with a backup in a second Availability * Zone.

*/ inline RDSInstanceDetails& WithDeploymentOption(Aws::String&& value) { SetDeploymentOption(std::move(value)); return *this;} /** *

Determines whether the recommendation is for a reservation in a single * Availability Zone or a reservation with a backup in a second Availability * Zone.

*/ inline RDSInstanceDetails& WithDeploymentOption(const char* value) { SetDeploymentOption(value); return *this;} /** *

The license model that the recommended reservation supports.

*/ inline const Aws::String& GetLicenseModel() const{ return m_licenseModel; } /** *

The license model that the recommended reservation supports.

*/ inline bool LicenseModelHasBeenSet() const { return m_licenseModelHasBeenSet; } /** *

The license model that the recommended reservation supports.

*/ inline void SetLicenseModel(const Aws::String& value) { m_licenseModelHasBeenSet = true; m_licenseModel = value; } /** *

The license model that the recommended reservation supports.

*/ inline void SetLicenseModel(Aws::String&& value) { m_licenseModelHasBeenSet = true; m_licenseModel = std::move(value); } /** *

The license model that the recommended reservation supports.

*/ inline void SetLicenseModel(const char* value) { m_licenseModelHasBeenSet = true; m_licenseModel.assign(value); } /** *

The license model that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithLicenseModel(const Aws::String& value) { SetLicenseModel(value); return *this;} /** *

The license model that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithLicenseModel(Aws::String&& value) { SetLicenseModel(std::move(value)); return *this;} /** *

The license model that the recommended reservation supports.

*/ inline RDSInstanceDetails& WithLicenseModel(const char* value) { SetLicenseModel(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 RDSInstanceDetails& 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 RDSInstanceDetails& 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_databaseEngine; bool m_databaseEngineHasBeenSet = false; Aws::String m_databaseEdition; bool m_databaseEditionHasBeenSet = false; Aws::String m_deploymentOption; bool m_deploymentOptionHasBeenSet = false; Aws::String m_licenseModel; bool m_licenseModelHasBeenSet = false; bool m_currentGeneration; bool m_currentGenerationHasBeenSet = false; bool m_sizeFlexEligible; bool m_sizeFlexEligibleHasBeenSet = false; }; } // namespace Model } // namespace CostExplorer } // namespace Aws