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

Indicates that the exported data must include EC2 instance type matches for * on-premises servers that are discovered through Amazon Web Services Application * Discovery Service.

See Also:

AWS * API Reference

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

If set to true, the export preferences * is set to Ec2RecommendationsExportPreferences.

*/ inline bool GetEnabled() const{ return m_enabled; } /** *

If set to true, the export preferences * is set to Ec2RecommendationsExportPreferences.

*/ inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } /** *

If set to true, the export preferences * is set to Ec2RecommendationsExportPreferences.

*/ inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } /** *

If set to true, the export preferences * is set to Ec2RecommendationsExportPreferences.

*/ inline Ec2RecommendationsExportPreferences& WithEnabled(bool value) { SetEnabled(value); return *this;} /** *

The recommended EC2 instance type that matches the CPU usage metric of * server performance data.

*/ inline const UsageMetricBasis& GetCpuPerformanceMetricBasis() const{ return m_cpuPerformanceMetricBasis; } /** *

The recommended EC2 instance type that matches the CPU usage metric of * server performance data.

*/ inline bool CpuPerformanceMetricBasisHasBeenSet() const { return m_cpuPerformanceMetricBasisHasBeenSet; } /** *

The recommended EC2 instance type that matches the CPU usage metric of * server performance data.

*/ inline void SetCpuPerformanceMetricBasis(const UsageMetricBasis& value) { m_cpuPerformanceMetricBasisHasBeenSet = true; m_cpuPerformanceMetricBasis = value; } /** *

The recommended EC2 instance type that matches the CPU usage metric of * server performance data.

*/ inline void SetCpuPerformanceMetricBasis(UsageMetricBasis&& value) { m_cpuPerformanceMetricBasisHasBeenSet = true; m_cpuPerformanceMetricBasis = std::move(value); } /** *

The recommended EC2 instance type that matches the CPU usage metric of * server performance data.

*/ inline Ec2RecommendationsExportPreferences& WithCpuPerformanceMetricBasis(const UsageMetricBasis& value) { SetCpuPerformanceMetricBasis(value); return *this;} /** *

The recommended EC2 instance type that matches the CPU usage metric of * server performance data.

*/ inline Ec2RecommendationsExportPreferences& WithCpuPerformanceMetricBasis(UsageMetricBasis&& value) { SetCpuPerformanceMetricBasis(std::move(value)); return *this;} /** *

The recommended EC2 instance type that matches the Memory usage metric of * server performance data.

*/ inline const UsageMetricBasis& GetRamPerformanceMetricBasis() const{ return m_ramPerformanceMetricBasis; } /** *

The recommended EC2 instance type that matches the Memory usage metric of * server performance data.

*/ inline bool RamPerformanceMetricBasisHasBeenSet() const { return m_ramPerformanceMetricBasisHasBeenSet; } /** *

The recommended EC2 instance type that matches the Memory usage metric of * server performance data.

*/ inline void SetRamPerformanceMetricBasis(const UsageMetricBasis& value) { m_ramPerformanceMetricBasisHasBeenSet = true; m_ramPerformanceMetricBasis = value; } /** *

The recommended EC2 instance type that matches the Memory usage metric of * server performance data.

*/ inline void SetRamPerformanceMetricBasis(UsageMetricBasis&& value) { m_ramPerformanceMetricBasisHasBeenSet = true; m_ramPerformanceMetricBasis = std::move(value); } /** *

The recommended EC2 instance type that matches the Memory usage metric of * server performance data.

*/ inline Ec2RecommendationsExportPreferences& WithRamPerformanceMetricBasis(const UsageMetricBasis& value) { SetRamPerformanceMetricBasis(value); return *this;} /** *

The recommended EC2 instance type that matches the Memory usage metric of * server performance data.

*/ inline Ec2RecommendationsExportPreferences& WithRamPerformanceMetricBasis(UsageMetricBasis&& value) { SetRamPerformanceMetricBasis(std::move(value)); return *this;} /** *

The target tenancy to use for your recommended EC2 instances.

*/ inline const Tenancy& GetTenancy() const{ return m_tenancy; } /** *

The target tenancy to use for your recommended EC2 instances.

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

The target tenancy to use for your recommended EC2 instances.

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

The target tenancy to use for your recommended EC2 instances.

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

The target tenancy to use for your recommended EC2 instances.

*/ inline Ec2RecommendationsExportPreferences& WithTenancy(const Tenancy& value) { SetTenancy(value); return *this;} /** *

The target tenancy to use for your recommended EC2 instances.

*/ inline Ec2RecommendationsExportPreferences& WithTenancy(Tenancy&& value) { SetTenancy(std::move(value)); return *this;} /** *

An array of instance types to exclude from recommendations.

*/ inline const Aws::Vector& GetExcludedInstanceTypes() const{ return m_excludedInstanceTypes; } /** *

An array of instance types to exclude from recommendations.

*/ inline bool ExcludedInstanceTypesHasBeenSet() const { return m_excludedInstanceTypesHasBeenSet; } /** *

An array of instance types to exclude from recommendations.

*/ inline void SetExcludedInstanceTypes(const Aws::Vector& value) { m_excludedInstanceTypesHasBeenSet = true; m_excludedInstanceTypes = value; } /** *

An array of instance types to exclude from recommendations.

*/ inline void SetExcludedInstanceTypes(Aws::Vector&& value) { m_excludedInstanceTypesHasBeenSet = true; m_excludedInstanceTypes = std::move(value); } /** *

An array of instance types to exclude from recommendations.

*/ inline Ec2RecommendationsExportPreferences& WithExcludedInstanceTypes(const Aws::Vector& value) { SetExcludedInstanceTypes(value); return *this;} /** *

An array of instance types to exclude from recommendations.

*/ inline Ec2RecommendationsExportPreferences& WithExcludedInstanceTypes(Aws::Vector&& value) { SetExcludedInstanceTypes(std::move(value)); return *this;} /** *

An array of instance types to exclude from recommendations.

*/ inline Ec2RecommendationsExportPreferences& AddExcludedInstanceTypes(const Aws::String& value) { m_excludedInstanceTypesHasBeenSet = true; m_excludedInstanceTypes.push_back(value); return *this; } /** *

An array of instance types to exclude from recommendations.

*/ inline Ec2RecommendationsExportPreferences& AddExcludedInstanceTypes(Aws::String&& value) { m_excludedInstanceTypesHasBeenSet = true; m_excludedInstanceTypes.push_back(std::move(value)); return *this; } /** *

An array of instance types to exclude from recommendations.

*/ inline Ec2RecommendationsExportPreferences& AddExcludedInstanceTypes(const char* value) { m_excludedInstanceTypesHasBeenSet = true; m_excludedInstanceTypes.push_back(value); return *this; } /** *

The target Amazon Web Services Region for the recommendations. You can use * any of the Region codes available for the chosen service, as listed in Amazon Web * Services service endpoints in the Amazon Web Services General * Reference.

*/ inline const Aws::String& GetPreferredRegion() const{ return m_preferredRegion; } /** *

The target Amazon Web Services Region for the recommendations. You can use * any of the Region codes available for the chosen service, as listed in Amazon Web * Services service endpoints in the Amazon Web Services General * Reference.

*/ inline bool PreferredRegionHasBeenSet() const { return m_preferredRegionHasBeenSet; } /** *

The target Amazon Web Services Region for the recommendations. You can use * any of the Region codes available for the chosen service, as listed in Amazon Web * Services service endpoints in the Amazon Web Services General * Reference.

*/ inline void SetPreferredRegion(const Aws::String& value) { m_preferredRegionHasBeenSet = true; m_preferredRegion = value; } /** *

The target Amazon Web Services Region for the recommendations. You can use * any of the Region codes available for the chosen service, as listed in Amazon Web * Services service endpoints in the Amazon Web Services General * Reference.

*/ inline void SetPreferredRegion(Aws::String&& value) { m_preferredRegionHasBeenSet = true; m_preferredRegion = std::move(value); } /** *

The target Amazon Web Services Region for the recommendations. You can use * any of the Region codes available for the chosen service, as listed in Amazon Web * Services service endpoints in the Amazon Web Services General * Reference.

*/ inline void SetPreferredRegion(const char* value) { m_preferredRegionHasBeenSet = true; m_preferredRegion.assign(value); } /** *

The target Amazon Web Services Region for the recommendations. You can use * any of the Region codes available for the chosen service, as listed in Amazon Web * Services service endpoints in the Amazon Web Services General * Reference.

*/ inline Ec2RecommendationsExportPreferences& WithPreferredRegion(const Aws::String& value) { SetPreferredRegion(value); return *this;} /** *

The target Amazon Web Services Region for the recommendations. You can use * any of the Region codes available for the chosen service, as listed in Amazon Web * Services service endpoints in the Amazon Web Services General * Reference.

*/ inline Ec2RecommendationsExportPreferences& WithPreferredRegion(Aws::String&& value) { SetPreferredRegion(std::move(value)); return *this;} /** *

The target Amazon Web Services Region for the recommendations. You can use * any of the Region codes available for the chosen service, as listed in Amazon Web * Services service endpoints in the Amazon Web Services General * Reference.

*/ inline Ec2RecommendationsExportPreferences& WithPreferredRegion(const char* value) { SetPreferredRegion(value); return *this;} /** *

The contract type for a reserved instance. If blank, we assume an On-Demand * instance is preferred.

*/ inline const ReservedInstanceOptions& GetReservedInstanceOptions() const{ return m_reservedInstanceOptions; } /** *

The contract type for a reserved instance. If blank, we assume an On-Demand * instance is preferred.

*/ inline bool ReservedInstanceOptionsHasBeenSet() const { return m_reservedInstanceOptionsHasBeenSet; } /** *

The contract type for a reserved instance. If blank, we assume an On-Demand * instance is preferred.

*/ inline void SetReservedInstanceOptions(const ReservedInstanceOptions& value) { m_reservedInstanceOptionsHasBeenSet = true; m_reservedInstanceOptions = value; } /** *

The contract type for a reserved instance. If blank, we assume an On-Demand * instance is preferred.

*/ inline void SetReservedInstanceOptions(ReservedInstanceOptions&& value) { m_reservedInstanceOptionsHasBeenSet = true; m_reservedInstanceOptions = std::move(value); } /** *

The contract type for a reserved instance. If blank, we assume an On-Demand * instance is preferred.

*/ inline Ec2RecommendationsExportPreferences& WithReservedInstanceOptions(const ReservedInstanceOptions& value) { SetReservedInstanceOptions(value); return *this;} /** *

The contract type for a reserved instance. If blank, we assume an On-Demand * instance is preferred.

*/ inline Ec2RecommendationsExportPreferences& WithReservedInstanceOptions(ReservedInstanceOptions&& value) { SetReservedInstanceOptions(std::move(value)); return *this;} private: bool m_enabled; bool m_enabledHasBeenSet = false; UsageMetricBasis m_cpuPerformanceMetricBasis; bool m_cpuPerformanceMetricBasisHasBeenSet = false; UsageMetricBasis m_ramPerformanceMetricBasis; bool m_ramPerformanceMetricBasisHasBeenSet = false; Tenancy m_tenancy; bool m_tenancyHasBeenSet = false; Aws::Vector m_excludedInstanceTypes; bool m_excludedInstanceTypesHasBeenSet = false; Aws::String m_preferredRegion; bool m_preferredRegionHasBeenSet = false; ReservedInstanceOptions m_reservedInstanceOptions; bool m_reservedInstanceOptionsHasBeenSet = false; }; } // namespace Model } // namespace ApplicationDiscoveryService } // namespace Aws