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

Provides information that describes a recommendation of a target engine.

*

A recommendation is a set of possible Amazon Web Services target * engines that you can choose to migrate your source on-premises database. In this * set, Fleet Advisor suggests a single target engine as the right sized migration * destination. To determine this rightsized migration destination, Fleet Advisor * uses the inventory metadata and metrics from data collector. You can use * recommendations before the start of migration to save costs and reduce * risks.

With recommendations, you can explore different target options and * compare metrics, so you can make an informed decision when you choose the * migration target.

See Also:

AWS * API Reference

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

The identifier of the source database for which Fleet Advisor provided this * recommendation.

*/ inline const Aws::String& GetDatabaseId() const{ return m_databaseId; } /** *

The identifier of the source database for which Fleet Advisor provided this * recommendation.

*/ inline bool DatabaseIdHasBeenSet() const { return m_databaseIdHasBeenSet; } /** *

The identifier of the source database for which Fleet Advisor provided this * recommendation.

*/ inline void SetDatabaseId(const Aws::String& value) { m_databaseIdHasBeenSet = true; m_databaseId = value; } /** *

The identifier of the source database for which Fleet Advisor provided this * recommendation.

*/ inline void SetDatabaseId(Aws::String&& value) { m_databaseIdHasBeenSet = true; m_databaseId = std::move(value); } /** *

The identifier of the source database for which Fleet Advisor provided this * recommendation.

*/ inline void SetDatabaseId(const char* value) { m_databaseIdHasBeenSet = true; m_databaseId.assign(value); } /** *

The identifier of the source database for which Fleet Advisor provided this * recommendation.

*/ inline Recommendation& WithDatabaseId(const Aws::String& value) { SetDatabaseId(value); return *this;} /** *

The identifier of the source database for which Fleet Advisor provided this * recommendation.

*/ inline Recommendation& WithDatabaseId(Aws::String&& value) { SetDatabaseId(std::move(value)); return *this;} /** *

The identifier of the source database for which Fleet Advisor provided this * recommendation.

*/ inline Recommendation& WithDatabaseId(const char* value) { SetDatabaseId(value); return *this;} /** *

The name of the target engine. Valid values include * "rds-aurora-mysql", "rds-aurora-postgresql", * "rds-mysql", "rds-oracle", * "rds-sql-server", and "rds-postgresql".

*/ inline const Aws::String& GetEngineName() const{ return m_engineName; } /** *

The name of the target engine. Valid values include * "rds-aurora-mysql", "rds-aurora-postgresql", * "rds-mysql", "rds-oracle", * "rds-sql-server", and "rds-postgresql".

*/ inline bool EngineNameHasBeenSet() const { return m_engineNameHasBeenSet; } /** *

The name of the target engine. Valid values include * "rds-aurora-mysql", "rds-aurora-postgresql", * "rds-mysql", "rds-oracle", * "rds-sql-server", and "rds-postgresql".

*/ inline void SetEngineName(const Aws::String& value) { m_engineNameHasBeenSet = true; m_engineName = value; } /** *

The name of the target engine. Valid values include * "rds-aurora-mysql", "rds-aurora-postgresql", * "rds-mysql", "rds-oracle", * "rds-sql-server", and "rds-postgresql".

*/ inline void SetEngineName(Aws::String&& value) { m_engineNameHasBeenSet = true; m_engineName = std::move(value); } /** *

The name of the target engine. Valid values include * "rds-aurora-mysql", "rds-aurora-postgresql", * "rds-mysql", "rds-oracle", * "rds-sql-server", and "rds-postgresql".

*/ inline void SetEngineName(const char* value) { m_engineNameHasBeenSet = true; m_engineName.assign(value); } /** *

The name of the target engine. Valid values include * "rds-aurora-mysql", "rds-aurora-postgresql", * "rds-mysql", "rds-oracle", * "rds-sql-server", and "rds-postgresql".

*/ inline Recommendation& WithEngineName(const Aws::String& value) { SetEngineName(value); return *this;} /** *

The name of the target engine. Valid values include * "rds-aurora-mysql", "rds-aurora-postgresql", * "rds-mysql", "rds-oracle", * "rds-sql-server", and "rds-postgresql".

*/ inline Recommendation& WithEngineName(Aws::String&& value) { SetEngineName(std::move(value)); return *this;} /** *

The name of the target engine. Valid values include * "rds-aurora-mysql", "rds-aurora-postgresql", * "rds-mysql", "rds-oracle", * "rds-sql-server", and "rds-postgresql".

*/ inline Recommendation& WithEngineName(const char* value) { SetEngineName(value); return *this;} /** *

The date when Fleet Advisor created the target engine recommendation.

*/ inline const Aws::String& GetCreatedDate() const{ return m_createdDate; } /** *

The date when Fleet Advisor created the target engine recommendation.

*/ inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; } /** *

The date when Fleet Advisor created the target engine recommendation.

*/ inline void SetCreatedDate(const Aws::String& value) { m_createdDateHasBeenSet = true; m_createdDate = value; } /** *

The date when Fleet Advisor created the target engine recommendation.

*/ inline void SetCreatedDate(Aws::String&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); } /** *

The date when Fleet Advisor created the target engine recommendation.

*/ inline void SetCreatedDate(const char* value) { m_createdDateHasBeenSet = true; m_createdDate.assign(value); } /** *

The date when Fleet Advisor created the target engine recommendation.

*/ inline Recommendation& WithCreatedDate(const Aws::String& value) { SetCreatedDate(value); return *this;} /** *

The date when Fleet Advisor created the target engine recommendation.

*/ inline Recommendation& WithCreatedDate(Aws::String&& value) { SetCreatedDate(std::move(value)); return *this;} /** *

The date when Fleet Advisor created the target engine recommendation.

*/ inline Recommendation& WithCreatedDate(const char* value) { SetCreatedDate(value); return *this;} /** *

The status of the target engine recommendation. Valid values include * "alternate", "in-progress", "not-viable", * and "recommended".

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

The status of the target engine recommendation. Valid values include * "alternate", "in-progress", "not-viable", * and "recommended".

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the target engine recommendation. Valid values include * "alternate", "in-progress", "not-viable", * and "recommended".

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the target engine recommendation. Valid values include * "alternate", "in-progress", "not-viable", * and "recommended".

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the target engine recommendation. Valid values include * "alternate", "in-progress", "not-viable", * and "recommended".

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

The status of the target engine recommendation. Valid values include * "alternate", "in-progress", "not-viable", * and "recommended".

*/ inline Recommendation& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

The status of the target engine recommendation. Valid values include * "alternate", "in-progress", "not-viable", * and "recommended".

*/ inline Recommendation& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

The status of the target engine recommendation. Valid values include * "alternate", "in-progress", "not-viable", * and "recommended".

*/ inline Recommendation& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

Indicates that this target is the rightsized migration destination.

*/ inline bool GetPreferred() const{ return m_preferred; } /** *

Indicates that this target is the rightsized migration destination.

*/ inline bool PreferredHasBeenSet() const { return m_preferredHasBeenSet; } /** *

Indicates that this target is the rightsized migration destination.

*/ inline void SetPreferred(bool value) { m_preferredHasBeenSet = true; m_preferred = value; } /** *

Indicates that this target is the rightsized migration destination.

*/ inline Recommendation& WithPreferred(bool value) { SetPreferred(value); return *this;} /** *

The settings in JSON format for the preferred target engine parameters. These * parameters include capacity, resource utilization, and the usage type * (production, development, or testing).

*/ inline const RecommendationSettings& GetSettings() const{ return m_settings; } /** *

The settings in JSON format for the preferred target engine parameters. These * parameters include capacity, resource utilization, and the usage type * (production, development, or testing).

*/ inline bool SettingsHasBeenSet() const { return m_settingsHasBeenSet; } /** *

The settings in JSON format for the preferred target engine parameters. These * parameters include capacity, resource utilization, and the usage type * (production, development, or testing).

*/ inline void SetSettings(const RecommendationSettings& value) { m_settingsHasBeenSet = true; m_settings = value; } /** *

The settings in JSON format for the preferred target engine parameters. These * parameters include capacity, resource utilization, and the usage type * (production, development, or testing).

*/ inline void SetSettings(RecommendationSettings&& value) { m_settingsHasBeenSet = true; m_settings = std::move(value); } /** *

The settings in JSON format for the preferred target engine parameters. These * parameters include capacity, resource utilization, and the usage type * (production, development, or testing).

*/ inline Recommendation& WithSettings(const RecommendationSettings& value) { SetSettings(value); return *this;} /** *

The settings in JSON format for the preferred target engine parameters. These * parameters include capacity, resource utilization, and the usage type * (production, development, or testing).

*/ inline Recommendation& WithSettings(RecommendationSettings&& value) { SetSettings(std::move(value)); return *this;} /** *

The recommendation of a target engine for the specified source database.

*/ inline const RecommendationData& GetData() const{ return m_data; } /** *

The recommendation of a target engine for the specified source database.

*/ inline bool DataHasBeenSet() const { return m_dataHasBeenSet; } /** *

The recommendation of a target engine for the specified source database.

*/ inline void SetData(const RecommendationData& value) { m_dataHasBeenSet = true; m_data = value; } /** *

The recommendation of a target engine for the specified source database.

*/ inline void SetData(RecommendationData&& value) { m_dataHasBeenSet = true; m_data = std::move(value); } /** *

The recommendation of a target engine for the specified source database.

*/ inline Recommendation& WithData(const RecommendationData& value) { SetData(value); return *this;} /** *

The recommendation of a target engine for the specified source database.

*/ inline Recommendation& WithData(RecommendationData&& value) { SetData(std::move(value)); return *this;} private: Aws::String m_databaseId; bool m_databaseIdHasBeenSet = false; Aws::String m_engineName; bool m_engineNameHasBeenSet = false; Aws::String m_createdDate; bool m_createdDateHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; bool m_preferred; bool m_preferredHasBeenSet = false; RecommendationSettings m_settings; bool m_settingsHasBeenSet = false; RecommendationData m_data; bool m_dataHasBeenSet = false; }; } // namespace Model } // namespace DatabaseMigrationService } // namespace Aws