/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes an Auto Scaling group recommendation.See Also:
AWS
* API Reference
The Amazon Web Services account ID of the Auto Scaling group.
*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *The Amazon Web Services account ID of the Auto Scaling group.
*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *The Amazon Web Services account ID of the Auto Scaling group.
*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *The Amazon Web Services account ID of the Auto Scaling group.
*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *The Amazon Web Services account ID of the Auto Scaling group.
*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *The Amazon Web Services account ID of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *The Amazon Web Services account ID of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *The Amazon Web Services account ID of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *The Amazon Resource Name (ARN) of the Auto Scaling group.
*/ inline const Aws::String& GetAutoScalingGroupArn() const{ return m_autoScalingGroupArn; } /** *The Amazon Resource Name (ARN) of the Auto Scaling group.
*/ inline bool AutoScalingGroupArnHasBeenSet() const { return m_autoScalingGroupArnHasBeenSet; } /** *The Amazon Resource Name (ARN) of the Auto Scaling group.
*/ inline void SetAutoScalingGroupArn(const Aws::String& value) { m_autoScalingGroupArnHasBeenSet = true; m_autoScalingGroupArn = value; } /** *The Amazon Resource Name (ARN) of the Auto Scaling group.
*/ inline void SetAutoScalingGroupArn(Aws::String&& value) { m_autoScalingGroupArnHasBeenSet = true; m_autoScalingGroupArn = std::move(value); } /** *The Amazon Resource Name (ARN) of the Auto Scaling group.
*/ inline void SetAutoScalingGroupArn(const char* value) { m_autoScalingGroupArnHasBeenSet = true; m_autoScalingGroupArn.assign(value); } /** *The Amazon Resource Name (ARN) of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAutoScalingGroupArn(const Aws::String& value) { SetAutoScalingGroupArn(value); return *this;} /** *The Amazon Resource Name (ARN) of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAutoScalingGroupArn(Aws::String&& value) { SetAutoScalingGroupArn(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAutoScalingGroupArn(const char* value) { SetAutoScalingGroupArn(value); return *this;} /** *The name of the Auto Scaling group.
*/ inline const Aws::String& GetAutoScalingGroupName() const{ return m_autoScalingGroupName; } /** *The name of the Auto Scaling group.
*/ inline bool AutoScalingGroupNameHasBeenSet() const { return m_autoScalingGroupNameHasBeenSet; } /** *The name of the Auto Scaling group.
*/ inline void SetAutoScalingGroupName(const Aws::String& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = value; } /** *The name of the Auto Scaling group.
*/ inline void SetAutoScalingGroupName(Aws::String&& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = std::move(value); } /** *The name of the Auto Scaling group.
*/ inline void SetAutoScalingGroupName(const char* value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName.assign(value); } /** *The name of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAutoScalingGroupName(const Aws::String& value) { SetAutoScalingGroupName(value); return *this;} /** *The name of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAutoScalingGroupName(Aws::String&& value) { SetAutoScalingGroupName(std::move(value)); return *this;} /** *The name of the Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithAutoScalingGroupName(const char* value) { SetAutoScalingGroupName(value); return *this;} /** *The finding classification of the Auto Scaling group.
Findings for * Auto Scaling groups include:
NotOptimized
* —An Auto Scaling group is considered not optimized when Compute Optimizer
* identifies a recommendation that can provide better performance for your
* workload.
Optimized
—An Auto Scaling
* group is considered optimized when Compute Optimizer determines that the group
* is correctly provisioned to run your workload based on the chosen instance type.
* For optimized resources, Compute Optimizer might recommend a new generation
* instance type.
The finding classification of the Auto Scaling group.
Findings for * Auto Scaling groups include:
NotOptimized
* —An Auto Scaling group is considered not optimized when Compute Optimizer
* identifies a recommendation that can provide better performance for your
* workload.
Optimized
—An Auto Scaling
* group is considered optimized when Compute Optimizer determines that the group
* is correctly provisioned to run your workload based on the chosen instance type.
* For optimized resources, Compute Optimizer might recommend a new generation
* instance type.
The finding classification of the Auto Scaling group.
Findings for * Auto Scaling groups include:
NotOptimized
* —An Auto Scaling group is considered not optimized when Compute Optimizer
* identifies a recommendation that can provide better performance for your
* workload.
Optimized
—An Auto Scaling
* group is considered optimized when Compute Optimizer determines that the group
* is correctly provisioned to run your workload based on the chosen instance type.
* For optimized resources, Compute Optimizer might recommend a new generation
* instance type.
The finding classification of the Auto Scaling group.
Findings for * Auto Scaling groups include:
NotOptimized
* —An Auto Scaling group is considered not optimized when Compute Optimizer
* identifies a recommendation that can provide better performance for your
* workload.
Optimized
—An Auto Scaling
* group is considered optimized when Compute Optimizer determines that the group
* is correctly provisioned to run your workload based on the chosen instance type.
* For optimized resources, Compute Optimizer might recommend a new generation
* instance type.
The finding classification of the Auto Scaling group.
Findings for * Auto Scaling groups include:
NotOptimized
* —An Auto Scaling group is considered not optimized when Compute Optimizer
* identifies a recommendation that can provide better performance for your
* workload.
Optimized
—An Auto Scaling
* group is considered optimized when Compute Optimizer determines that the group
* is correctly provisioned to run your workload based on the chosen instance type.
* For optimized resources, Compute Optimizer might recommend a new generation
* instance type.
The finding classification of the Auto Scaling group.
Findings for * Auto Scaling groups include:
NotOptimized
* —An Auto Scaling group is considered not optimized when Compute Optimizer
* identifies a recommendation that can provide better performance for your
* workload.
Optimized
—An Auto Scaling
* group is considered optimized when Compute Optimizer determines that the group
* is correctly provisioned to run your workload based on the chosen instance type.
* For optimized resources, Compute Optimizer might recommend a new generation
* instance type.
An array of objects that describe the utilization metrics of the Auto Scaling * group.
*/ inline const Aws::VectorAn array of objects that describe the utilization metrics of the Auto Scaling * group.
*/ inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; } /** *An array of objects that describe the utilization metrics of the Auto Scaling * group.
*/ inline void SetUtilizationMetrics(const Aws::VectorAn array of objects that describe the utilization metrics of the Auto Scaling * group.
*/ inline void SetUtilizationMetrics(Aws::VectorAn array of objects that describe the utilization metrics of the Auto Scaling * group.
*/ inline AutoScalingGroupRecommendation& WithUtilizationMetrics(const Aws::VectorAn array of objects that describe the utilization metrics of the Auto Scaling * group.
*/ inline AutoScalingGroupRecommendation& WithUtilizationMetrics(Aws::VectorAn array of objects that describe the utilization metrics of the Auto Scaling * group.
*/ inline AutoScalingGroupRecommendation& AddUtilizationMetrics(const UtilizationMetric& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.push_back(value); return *this; } /** *An array of objects that describe the utilization metrics of the Auto Scaling * group.
*/ inline AutoScalingGroupRecommendation& AddUtilizationMetrics(UtilizationMetric&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.push_back(std::move(value)); return *this; } /** *The number of days for which utilization metrics were analyzed for the Auto * Scaling group.
*/ inline double GetLookBackPeriodInDays() const{ return m_lookBackPeriodInDays; } /** *The number of days for which utilization metrics were analyzed for the Auto * Scaling group.
*/ inline bool LookBackPeriodInDaysHasBeenSet() const { return m_lookBackPeriodInDaysHasBeenSet; } /** *The number of days for which utilization metrics were analyzed for the Auto * Scaling group.
*/ inline void SetLookBackPeriodInDays(double value) { m_lookBackPeriodInDaysHasBeenSet = true; m_lookBackPeriodInDays = value; } /** *The number of days for which utilization metrics were analyzed for the Auto * Scaling group.
*/ inline AutoScalingGroupRecommendation& WithLookBackPeriodInDays(double value) { SetLookBackPeriodInDays(value); return *this;} /** *An array of objects that describe the current configuration of the Auto * Scaling group.
*/ inline const AutoScalingGroupConfiguration& GetCurrentConfiguration() const{ return m_currentConfiguration; } /** *An array of objects that describe the current configuration of the Auto * Scaling group.
*/ inline bool CurrentConfigurationHasBeenSet() const { return m_currentConfigurationHasBeenSet; } /** *An array of objects that describe the current configuration of the Auto * Scaling group.
*/ inline void SetCurrentConfiguration(const AutoScalingGroupConfiguration& value) { m_currentConfigurationHasBeenSet = true; m_currentConfiguration = value; } /** *An array of objects that describe the current configuration of the Auto * Scaling group.
*/ inline void SetCurrentConfiguration(AutoScalingGroupConfiguration&& value) { m_currentConfigurationHasBeenSet = true; m_currentConfiguration = std::move(value); } /** *An array of objects that describe the current configuration of the Auto * Scaling group.
*/ inline AutoScalingGroupRecommendation& WithCurrentConfiguration(const AutoScalingGroupConfiguration& value) { SetCurrentConfiguration(value); return *this;} /** *An array of objects that describe the current configuration of the Auto * Scaling group.
*/ inline AutoScalingGroupRecommendation& WithCurrentConfiguration(AutoScalingGroupConfiguration&& value) { SetCurrentConfiguration(std::move(value)); return *this;} /** *An array of objects that describe the recommendation options for the Auto * Scaling group.
*/ inline const Aws::VectorAn array of objects that describe the recommendation options for the Auto * Scaling group.
*/ inline bool RecommendationOptionsHasBeenSet() const { return m_recommendationOptionsHasBeenSet; } /** *An array of objects that describe the recommendation options for the Auto * Scaling group.
*/ inline void SetRecommendationOptions(const Aws::VectorAn array of objects that describe the recommendation options for the Auto * Scaling group.
*/ inline void SetRecommendationOptions(Aws::VectorAn array of objects that describe the recommendation options for the Auto * Scaling group.
*/ inline AutoScalingGroupRecommendation& WithRecommendationOptions(const Aws::VectorAn array of objects that describe the recommendation options for the Auto * Scaling group.
*/ inline AutoScalingGroupRecommendation& WithRecommendationOptions(Aws::VectorAn array of objects that describe the recommendation options for the Auto * Scaling group.
*/ inline AutoScalingGroupRecommendation& AddRecommendationOptions(const AutoScalingGroupRecommendationOption& value) { m_recommendationOptionsHasBeenSet = true; m_recommendationOptions.push_back(value); return *this; } /** *An array of objects that describe the recommendation options for the Auto * Scaling group.
*/ inline AutoScalingGroupRecommendation& AddRecommendationOptions(AutoScalingGroupRecommendationOption&& value) { m_recommendationOptionsHasBeenSet = true; m_recommendationOptions.push_back(std::move(value)); return *this; } /** *The timestamp of when the Auto Scaling group recommendation was last * generated.
*/ inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const{ return m_lastRefreshTimestamp; } /** *The timestamp of when the Auto Scaling group recommendation was last * generated.
*/ inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; } /** *The timestamp of when the Auto Scaling group recommendation was last * generated.
*/ inline void SetLastRefreshTimestamp(const Aws::Utils::DateTime& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = value; } /** *The timestamp of when the Auto Scaling group recommendation was last * generated.
*/ inline void SetLastRefreshTimestamp(Aws::Utils::DateTime&& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = std::move(value); } /** *The timestamp of when the Auto Scaling group recommendation was last * generated.
*/ inline AutoScalingGroupRecommendation& WithLastRefreshTimestamp(const Aws::Utils::DateTime& value) { SetLastRefreshTimestamp(value); return *this;} /** *The timestamp of when the Auto Scaling group recommendation was last * generated.
*/ inline AutoScalingGroupRecommendation& WithLastRefreshTimestamp(Aws::Utils::DateTime&& value) { SetLastRefreshTimestamp(std::move(value)); return *this;} /** *The risk of the current Auto Scaling group not meeting the performance needs * of its workloads. The higher the risk, the more likely the current Auto Scaling * group configuration has insufficient capacity and cannot meet workload * requirements.
*/ inline const CurrentPerformanceRisk& GetCurrentPerformanceRisk() const{ return m_currentPerformanceRisk; } /** *The risk of the current Auto Scaling group not meeting the performance needs * of its workloads. The higher the risk, the more likely the current Auto Scaling * group configuration has insufficient capacity and cannot meet workload * requirements.
*/ inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; } /** *The risk of the current Auto Scaling group not meeting the performance needs * of its workloads. The higher the risk, the more likely the current Auto Scaling * group configuration has insufficient capacity and cannot meet workload * requirements.
*/ inline void SetCurrentPerformanceRisk(const CurrentPerformanceRisk& value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = value; } /** *The risk of the current Auto Scaling group not meeting the performance needs * of its workloads. The higher the risk, the more likely the current Auto Scaling * group configuration has insufficient capacity and cannot meet workload * requirements.
*/ inline void SetCurrentPerformanceRisk(CurrentPerformanceRisk&& value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = std::move(value); } /** *The risk of the current Auto Scaling group not meeting the performance needs * of its workloads. The higher the risk, the more likely the current Auto Scaling * group configuration has insufficient capacity and cannot meet workload * requirements.
*/ inline AutoScalingGroupRecommendation& WithCurrentPerformanceRisk(const CurrentPerformanceRisk& value) { SetCurrentPerformanceRisk(value); return *this;} /** *The risk of the current Auto Scaling group not meeting the performance needs * of its workloads. The higher the risk, the more likely the current Auto Scaling * group configuration has insufficient capacity and cannot meet workload * requirements.
*/ inline AutoScalingGroupRecommendation& WithCurrentPerformanceRisk(CurrentPerformanceRisk&& value) { SetCurrentPerformanceRisk(std::move(value)); return *this;} /** *An object that describes the effective recommendation preferences for the * Auto Scaling group.
*/ inline const EffectiveRecommendationPreferences& GetEffectiveRecommendationPreferences() const{ return m_effectiveRecommendationPreferences; } /** *An object that describes the effective recommendation preferences for the * Auto Scaling group.
*/ inline bool EffectiveRecommendationPreferencesHasBeenSet() const { return m_effectiveRecommendationPreferencesHasBeenSet; } /** *An object that describes the effective recommendation preferences for the * Auto Scaling group.
*/ inline void SetEffectiveRecommendationPreferences(const EffectiveRecommendationPreferences& value) { m_effectiveRecommendationPreferencesHasBeenSet = true; m_effectiveRecommendationPreferences = value; } /** *An object that describes the effective recommendation preferences for the * Auto Scaling group.
*/ inline void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferences&& value) { m_effectiveRecommendationPreferencesHasBeenSet = true; m_effectiveRecommendationPreferences = std::move(value); } /** *An object that describes the effective recommendation preferences for the * Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithEffectiveRecommendationPreferences(const EffectiveRecommendationPreferences& value) { SetEffectiveRecommendationPreferences(value); return *this;} /** *An object that describes the effective recommendation preferences for the * Auto Scaling group.
*/ inline AutoScalingGroupRecommendation& WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferences&& value) { SetEffectiveRecommendationPreferences(std::move(value)); return *this;} /** *The applications that might be running on the instances in the Auto Scaling * group as inferred by Compute Optimizer.
Compute Optimizer can infer if * one of the following applications might be running on the instances:
AmazonEmr
- Infers that Amazon EMR might be running on the
* instances.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instances.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instances.
Memcached
- Infers that Memcached
* might be running on the instances.
NGINX
-
* Infers that NGINX might be running on the instances.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instances.
Redis
- Infers that Redis might be
* running on the instances.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instances in the Auto Scaling * group as inferred by Compute Optimizer.
Compute Optimizer can infer if * one of the following applications might be running on the instances:
AmazonEmr
- Infers that Amazon EMR might be running on the
* instances.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instances.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instances.
Memcached
- Infers that Memcached
* might be running on the instances.
NGINX
-
* Infers that NGINX might be running on the instances.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instances.
Redis
- Infers that Redis might be
* running on the instances.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instances in the Auto Scaling * group as inferred by Compute Optimizer.
Compute Optimizer can infer if * one of the following applications might be running on the instances:
AmazonEmr
- Infers that Amazon EMR might be running on the
* instances.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instances.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instances.
Memcached
- Infers that Memcached
* might be running on the instances.
NGINX
-
* Infers that NGINX might be running on the instances.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instances.
Redis
- Infers that Redis might be
* running on the instances.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instances in the Auto Scaling * group as inferred by Compute Optimizer.
Compute Optimizer can infer if * one of the following applications might be running on the instances:
AmazonEmr
- Infers that Amazon EMR might be running on the
* instances.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instances.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instances.
Memcached
- Infers that Memcached
* might be running on the instances.
NGINX
-
* Infers that NGINX might be running on the instances.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instances.
Redis
- Infers that Redis might be
* running on the instances.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instances in the Auto Scaling * group as inferred by Compute Optimizer.
Compute Optimizer can infer if * one of the following applications might be running on the instances:
AmazonEmr
- Infers that Amazon EMR might be running on the
* instances.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instances.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instances.
Memcached
- Infers that Memcached
* might be running on the instances.
NGINX
-
* Infers that NGINX might be running on the instances.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instances.
Redis
- Infers that Redis might be
* running on the instances.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instances in the Auto Scaling * group as inferred by Compute Optimizer.
Compute Optimizer can infer if * one of the following applications might be running on the instances:
AmazonEmr
- Infers that Amazon EMR might be running on the
* instances.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instances.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instances.
Memcached
- Infers that Memcached
* might be running on the instances.
NGINX
-
* Infers that NGINX might be running on the instances.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instances.
Redis
- Infers that Redis might be
* running on the instances.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instances in the Auto Scaling * group as inferred by Compute Optimizer.
Compute Optimizer can infer if * one of the following applications might be running on the instances:
AmazonEmr
- Infers that Amazon EMR might be running on the
* instances.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instances.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instances.
Memcached
- Infers that Memcached
* might be running on the instances.
NGINX
-
* Infers that NGINX might be running on the instances.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instances.
Redis
- Infers that Redis might be
* running on the instances.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.
The applications that might be running on the instances in the Auto Scaling * group as inferred by Compute Optimizer.
Compute Optimizer can infer if * one of the following applications might be running on the instances:
AmazonEmr
- Infers that Amazon EMR might be running on the
* instances.
ApacheCassandra
- Infers that Apache
* Cassandra might be running on the instances.
* ApacheHadoop
- Infers that Apache Hadoop might be running on the
* instances.
Memcached
- Infers that Memcached
* might be running on the instances.
NGINX
-
* Infers that NGINX might be running on the instances.
* PostgreSql
- Infers that PostgreSQL might be running on the
* instances.
Redis
- Infers that Redis might be
* running on the instances.
Kafka
- Infers that
* Kafka might be running on the instance.
* SQLServer
- Infers that SQLServer might be running on the
* instance.