/** * 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 ComputeOptimizer { namespace Model { /** *

Describes the effective recommendation preferences for a * resource.

See Also:

AWS * API Reference

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

Describes the CPU vendor and architecture for an instance or Auto Scaling * group recommendations.

For example, when you specify * AWS_ARM64 with:

*/ inline const Aws::Vector& GetCpuVendorArchitectures() const{ return m_cpuVendorArchitectures; } /** *

Describes the CPU vendor and architecture for an instance or Auto Scaling * group recommendations.

For example, when you specify * AWS_ARM64 with:

*/ inline bool CpuVendorArchitecturesHasBeenSet() const { return m_cpuVendorArchitecturesHasBeenSet; } /** *

Describes the CPU vendor and architecture for an instance or Auto Scaling * group recommendations.

For example, when you specify * AWS_ARM64 with:

*/ inline void SetCpuVendorArchitectures(const Aws::Vector& value) { m_cpuVendorArchitecturesHasBeenSet = true; m_cpuVendorArchitectures = value; } /** *

Describes the CPU vendor and architecture for an instance or Auto Scaling * group recommendations.

For example, when you specify * AWS_ARM64 with:

*/ inline void SetCpuVendorArchitectures(Aws::Vector&& value) { m_cpuVendorArchitecturesHasBeenSet = true; m_cpuVendorArchitectures = std::move(value); } /** *

Describes the CPU vendor and architecture for an instance or Auto Scaling * group recommendations.

For example, when you specify * AWS_ARM64 with:

*/ inline EffectiveRecommendationPreferences& WithCpuVendorArchitectures(const Aws::Vector& value) { SetCpuVendorArchitectures(value); return *this;} /** *

Describes the CPU vendor and architecture for an instance or Auto Scaling * group recommendations.

For example, when you specify * AWS_ARM64 with:

*/ inline EffectiveRecommendationPreferences& WithCpuVendorArchitectures(Aws::Vector&& value) { SetCpuVendorArchitectures(std::move(value)); return *this;} /** *

Describes the CPU vendor and architecture for an instance or Auto Scaling * group recommendations.

For example, when you specify * AWS_ARM64 with:

*/ inline EffectiveRecommendationPreferences& AddCpuVendorArchitectures(const CpuVendorArchitecture& value) { m_cpuVendorArchitecturesHasBeenSet = true; m_cpuVendorArchitectures.push_back(value); return *this; } /** *

Describes the CPU vendor and architecture for an instance or Auto Scaling * group recommendations.

For example, when you specify * AWS_ARM64 with:

*/ inline EffectiveRecommendationPreferences& AddCpuVendorArchitectures(CpuVendorArchitecture&& value) { m_cpuVendorArchitecturesHasBeenSet = true; m_cpuVendorArchitectures.push_back(std::move(value)); return *this; } /** *

Describes the activation status of the enhanced infrastructure metrics * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh, and a status of * Inactive confirms that it's not yet applied to recommendations.

*

For more information, see Enhanced * infrastructure metrics in the Compute Optimizer User Guide.

*/ inline const EnhancedInfrastructureMetrics& GetEnhancedInfrastructureMetrics() const{ return m_enhancedInfrastructureMetrics; } /** *

Describes the activation status of the enhanced infrastructure metrics * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh, and a status of * Inactive confirms that it's not yet applied to recommendations.

*

For more information, see Enhanced * infrastructure metrics in the Compute Optimizer User Guide.

*/ inline bool EnhancedInfrastructureMetricsHasBeenSet() const { return m_enhancedInfrastructureMetricsHasBeenSet; } /** *

Describes the activation status of the enhanced infrastructure metrics * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh, and a status of * Inactive confirms that it's not yet applied to recommendations.

*

For more information, see Enhanced * infrastructure metrics in the Compute Optimizer User Guide.

*/ inline void SetEnhancedInfrastructureMetrics(const EnhancedInfrastructureMetrics& value) { m_enhancedInfrastructureMetricsHasBeenSet = true; m_enhancedInfrastructureMetrics = value; } /** *

Describes the activation status of the enhanced infrastructure metrics * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh, and a status of * Inactive confirms that it's not yet applied to recommendations.

*

For more information, see Enhanced * infrastructure metrics in the Compute Optimizer User Guide.

*/ inline void SetEnhancedInfrastructureMetrics(EnhancedInfrastructureMetrics&& value) { m_enhancedInfrastructureMetricsHasBeenSet = true; m_enhancedInfrastructureMetrics = std::move(value); } /** *

Describes the activation status of the enhanced infrastructure metrics * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh, and a status of * Inactive confirms that it's not yet applied to recommendations.

*

For more information, see Enhanced * infrastructure metrics in the Compute Optimizer User Guide.

*/ inline EffectiveRecommendationPreferences& WithEnhancedInfrastructureMetrics(const EnhancedInfrastructureMetrics& value) { SetEnhancedInfrastructureMetrics(value); return *this;} /** *

Describes the activation status of the enhanced infrastructure metrics * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh, and a status of * Inactive confirms that it's not yet applied to recommendations.

*

For more information, see Enhanced * infrastructure metrics in the Compute Optimizer User Guide.

*/ inline EffectiveRecommendationPreferences& WithEnhancedInfrastructureMetrics(EnhancedInfrastructureMetrics&& value) { SetEnhancedInfrastructureMetrics(std::move(value)); return *this;} /** *

Describes the activation status of the inferred workload types * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh. A status of * Inactive confirms that it's not yet applied to recommendations.

*/ inline const InferredWorkloadTypesPreference& GetInferredWorkloadTypes() const{ return m_inferredWorkloadTypes; } /** *

Describes the activation status of the inferred workload types * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh. A status of * Inactive confirms that it's not yet applied to recommendations.

*/ inline bool InferredWorkloadTypesHasBeenSet() const { return m_inferredWorkloadTypesHasBeenSet; } /** *

Describes the activation status of the inferred workload types * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh. A status of * Inactive confirms that it's not yet applied to recommendations.

*/ inline void SetInferredWorkloadTypes(const InferredWorkloadTypesPreference& value) { m_inferredWorkloadTypesHasBeenSet = true; m_inferredWorkloadTypes = value; } /** *

Describes the activation status of the inferred workload types * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh. A status of * Inactive confirms that it's not yet applied to recommendations.

*/ inline void SetInferredWorkloadTypes(InferredWorkloadTypesPreference&& value) { m_inferredWorkloadTypesHasBeenSet = true; m_inferredWorkloadTypes = std::move(value); } /** *

Describes the activation status of the inferred workload types * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh. A status of * Inactive confirms that it's not yet applied to recommendations.

*/ inline EffectiveRecommendationPreferences& WithInferredWorkloadTypes(const InferredWorkloadTypesPreference& value) { SetInferredWorkloadTypes(value); return *this;} /** *

Describes the activation status of the inferred workload types * preference.

A status of Active confirms that the preference * is applied in the latest recommendation refresh. A status of * Inactive confirms that it's not yet applied to recommendations.

*/ inline EffectiveRecommendationPreferences& WithInferredWorkloadTypes(InferredWorkloadTypesPreference&& value) { SetInferredWorkloadTypes(std::move(value)); return *this;} /** *

An object that describes the external metrics recommendation preference. *

If the preference is applied in the latest recommendation refresh, an * object with a valid source value appears in the response. If the * preference isn't applied to the recommendations already, then this object * doesn't appear in the response.

*/ inline const ExternalMetricsPreference& GetExternalMetricsPreference() const{ return m_externalMetricsPreference; } /** *

An object that describes the external metrics recommendation preference. *

If the preference is applied in the latest recommendation refresh, an * object with a valid source value appears in the response. If the * preference isn't applied to the recommendations already, then this object * doesn't appear in the response.

*/ inline bool ExternalMetricsPreferenceHasBeenSet() const { return m_externalMetricsPreferenceHasBeenSet; } /** *

An object that describes the external metrics recommendation preference. *

If the preference is applied in the latest recommendation refresh, an * object with a valid source value appears in the response. If the * preference isn't applied to the recommendations already, then this object * doesn't appear in the response.

*/ inline void SetExternalMetricsPreference(const ExternalMetricsPreference& value) { m_externalMetricsPreferenceHasBeenSet = true; m_externalMetricsPreference = value; } /** *

An object that describes the external metrics recommendation preference. *

If the preference is applied in the latest recommendation refresh, an * object with a valid source value appears in the response. If the * preference isn't applied to the recommendations already, then this object * doesn't appear in the response.

*/ inline void SetExternalMetricsPreference(ExternalMetricsPreference&& value) { m_externalMetricsPreferenceHasBeenSet = true; m_externalMetricsPreference = std::move(value); } /** *

An object that describes the external metrics recommendation preference. *

If the preference is applied in the latest recommendation refresh, an * object with a valid source value appears in the response. If the * preference isn't applied to the recommendations already, then this object * doesn't appear in the response.

*/ inline EffectiveRecommendationPreferences& WithExternalMetricsPreference(const ExternalMetricsPreference& value) { SetExternalMetricsPreference(value); return *this;} /** *

An object that describes the external metrics recommendation preference. *

If the preference is applied in the latest recommendation refresh, an * object with a valid source value appears in the response. If the * preference isn't applied to the recommendations already, then this object * doesn't appear in the response.

*/ inline EffectiveRecommendationPreferences& WithExternalMetricsPreference(ExternalMetricsPreference&& value) { SetExternalMetricsPreference(std::move(value)); return *this;} private: Aws::Vector m_cpuVendorArchitectures; bool m_cpuVendorArchitecturesHasBeenSet = false; EnhancedInfrastructureMetrics m_enhancedInfrastructureMetrics; bool m_enhancedInfrastructureMetricsHasBeenSet = false; InferredWorkloadTypesPreference m_inferredWorkloadTypes; bool m_inferredWorkloadTypesHasBeenSet = false; ExternalMetricsPreference m_externalMetricsPreference; bool m_externalMetricsPreferenceHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws