/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes an Amazon ECS service recommendation. See Also:
* AWS
* API Reference
The Amazon Resource Name (ARN) of the current Amazon ECS service.
* The following is the format of the ARN:
* arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
*
The Amazon Resource Name (ARN) of the current Amazon ECS service.
* The following is the format of the ARN:
* arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
*
The Amazon Resource Name (ARN) of the current Amazon ECS service.
* The following is the format of the ARN:
* arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
*
The Amazon Resource Name (ARN) of the current Amazon ECS service.
* The following is the format of the ARN:
* arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
*
The Amazon Resource Name (ARN) of the current Amazon ECS service.
* The following is the format of the ARN:
* arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
*
The Amazon Resource Name (ARN) of the current Amazon ECS service.
* The following is the format of the ARN:
* arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
*
The Amazon Resource Name (ARN) of the current Amazon ECS service.
* The following is the format of the ARN:
* arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
*
The Amazon Resource Name (ARN) of the current Amazon ECS service.
* The following is the format of the ARN:
* arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
*
The Amazon Web Services account ID of the Amazon ECS service.
*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *The Amazon Web Services account ID of the Amazon ECS service.
*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *The Amazon Web Services account ID of the Amazon ECS service.
*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *The Amazon Web Services account ID of the Amazon ECS service.
*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *The Amazon Web Services account ID of the Amazon ECS service.
*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *The Amazon Web Services account ID of the Amazon ECS service.
*/ inline ECSServiceRecommendation& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *The Amazon Web Services account ID of the Amazon ECS service.
*/ inline ECSServiceRecommendation& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *The Amazon Web Services account ID of the Amazon ECS service.
*/ inline ECSServiceRecommendation& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *The configuration of the current Amazon ECS service.
*/ inline const ServiceConfiguration& GetCurrentServiceConfiguration() const{ return m_currentServiceConfiguration; } /** *The configuration of the current Amazon ECS service.
*/ inline bool CurrentServiceConfigurationHasBeenSet() const { return m_currentServiceConfigurationHasBeenSet; } /** *The configuration of the current Amazon ECS service.
*/ inline void SetCurrentServiceConfiguration(const ServiceConfiguration& value) { m_currentServiceConfigurationHasBeenSet = true; m_currentServiceConfiguration = value; } /** *The configuration of the current Amazon ECS service.
*/ inline void SetCurrentServiceConfiguration(ServiceConfiguration&& value) { m_currentServiceConfigurationHasBeenSet = true; m_currentServiceConfiguration = std::move(value); } /** *The configuration of the current Amazon ECS service.
*/ inline ECSServiceRecommendation& WithCurrentServiceConfiguration(const ServiceConfiguration& value) { SetCurrentServiceConfiguration(value); return *this;} /** *The configuration of the current Amazon ECS service.
*/ inline ECSServiceRecommendation& WithCurrentServiceConfiguration(ServiceConfiguration&& value) { SetCurrentServiceConfiguration(std::move(value)); return *this;} /** *An array of objects that describe the utilization metrics of the Amazon ECS * service.
*/ inline const Aws::VectorAn array of objects that describe the utilization metrics of the Amazon ECS * service.
*/ inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; } /** *An array of objects that describe the utilization metrics of the Amazon ECS * service.
*/ inline void SetUtilizationMetrics(const Aws::VectorAn array of objects that describe the utilization metrics of the Amazon ECS * service.
*/ inline void SetUtilizationMetrics(Aws::VectorAn array of objects that describe the utilization metrics of the Amazon ECS * service.
*/ inline ECSServiceRecommendation& WithUtilizationMetrics(const Aws::VectorAn array of objects that describe the utilization metrics of the Amazon ECS * service.
*/ inline ECSServiceRecommendation& WithUtilizationMetrics(Aws::VectorAn array of objects that describe the utilization metrics of the Amazon ECS * service.
*/ inline ECSServiceRecommendation& AddUtilizationMetrics(const ECSServiceUtilizationMetric& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.push_back(value); return *this; } /** *An array of objects that describe the utilization metrics of the Amazon ECS * service.
*/ inline ECSServiceRecommendation& AddUtilizationMetrics(ECSServiceUtilizationMetric&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.push_back(std::move(value)); return *this; } /** *The number of days the Amazon ECS service utilization metrics were analyzed. *
*/ inline double GetLookbackPeriodInDays() const{ return m_lookbackPeriodInDays; } /** *The number of days the Amazon ECS service utilization metrics were analyzed. *
*/ inline bool LookbackPeriodInDaysHasBeenSet() const { return m_lookbackPeriodInDaysHasBeenSet; } /** *The number of days the Amazon ECS service utilization metrics were analyzed. *
*/ inline void SetLookbackPeriodInDays(double value) { m_lookbackPeriodInDaysHasBeenSet = true; m_lookbackPeriodInDays = value; } /** *The number of days the Amazon ECS service utilization metrics were analyzed. *
*/ inline ECSServiceRecommendation& WithLookbackPeriodInDays(double value) { SetLookbackPeriodInDays(value); return *this;} /** *The launch type the Amazon ECS service is using.
Compute * Optimizer only supports the Fargate launch type.
*/ inline const ECSServiceLaunchType& GetLaunchType() const{ return m_launchType; } /** *The launch type the Amazon ECS service is using.
Compute * Optimizer only supports the Fargate launch type.
*/ inline bool LaunchTypeHasBeenSet() const { return m_launchTypeHasBeenSet; } /** *The launch type the Amazon ECS service is using.
Compute * Optimizer only supports the Fargate launch type.
*/ inline void SetLaunchType(const ECSServiceLaunchType& value) { m_launchTypeHasBeenSet = true; m_launchType = value; } /** *The launch type the Amazon ECS service is using.
Compute * Optimizer only supports the Fargate launch type.
*/ inline void SetLaunchType(ECSServiceLaunchType&& value) { m_launchTypeHasBeenSet = true; m_launchType = std::move(value); } /** *The launch type the Amazon ECS service is using.
Compute * Optimizer only supports the Fargate launch type.
*/ inline ECSServiceRecommendation& WithLaunchType(const ECSServiceLaunchType& value) { SetLaunchType(value); return *this;} /** *The launch type the Amazon ECS service is using.
Compute * Optimizer only supports the Fargate launch type.
*/ inline ECSServiceRecommendation& WithLaunchType(ECSServiceLaunchType&& value) { SetLaunchType(std::move(value)); return *this;} /** *The timestamp of when the Amazon ECS service recommendation was last * generated.
*/ inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const{ return m_lastRefreshTimestamp; } /** *The timestamp of when the Amazon ECS service recommendation was last * generated.
*/ inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; } /** *The timestamp of when the Amazon ECS service recommendation was last * generated.
*/ inline void SetLastRefreshTimestamp(const Aws::Utils::DateTime& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = value; } /** *The timestamp of when the Amazon ECS service recommendation was last * generated.
*/ inline void SetLastRefreshTimestamp(Aws::Utils::DateTime&& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = std::move(value); } /** *The timestamp of when the Amazon ECS service recommendation was last * generated.
*/ inline ECSServiceRecommendation& WithLastRefreshTimestamp(const Aws::Utils::DateTime& value) { SetLastRefreshTimestamp(value); return *this;} /** *The timestamp of when the Amazon ECS service recommendation was last * generated.
*/ inline ECSServiceRecommendation& WithLastRefreshTimestamp(Aws::Utils::DateTime&& value) { SetLastRefreshTimestamp(std::move(value)); return *this;} /** *The finding classification of an Amazon ECS service.
Findings for * Amazon ECS services include:
Underprovisioned
* — When Compute Optimizer detects that there’s not enough memory or CPU, an
* Amazon ECS service is considered under-provisioned. An under-provisioned service
* might result in poor application performance.
* Overprovisioned
— When Compute Optimizer detects that there’s
* excessive memory or CPU, an Amazon ECS service is considered over-provisioned.
* An over-provisioned service might result in additional infrastructure costs.
*
Optimized
— When both the CPU and
* memory of your Amazon ECS service meet the performance requirements of your
* workload, the service is considered optimized.
The finding classification of an Amazon ECS service.
Findings for * Amazon ECS services include:
Underprovisioned
* — When Compute Optimizer detects that there’s not enough memory or CPU, an
* Amazon ECS service is considered under-provisioned. An under-provisioned service
* might result in poor application performance.
* Overprovisioned
— When Compute Optimizer detects that there’s
* excessive memory or CPU, an Amazon ECS service is considered over-provisioned.
* An over-provisioned service might result in additional infrastructure costs.
*
Optimized
— When both the CPU and
* memory of your Amazon ECS service meet the performance requirements of your
* workload, the service is considered optimized.
The finding classification of an Amazon ECS service.
Findings for * Amazon ECS services include:
Underprovisioned
* — When Compute Optimizer detects that there’s not enough memory or CPU, an
* Amazon ECS service is considered under-provisioned. An under-provisioned service
* might result in poor application performance.
* Overprovisioned
— When Compute Optimizer detects that there’s
* excessive memory or CPU, an Amazon ECS service is considered over-provisioned.
* An over-provisioned service might result in additional infrastructure costs.
*
Optimized
— When both the CPU and
* memory of your Amazon ECS service meet the performance requirements of your
* workload, the service is considered optimized.
The finding classification of an Amazon ECS service.
Findings for * Amazon ECS services include:
Underprovisioned
* — When Compute Optimizer detects that there’s not enough memory or CPU, an
* Amazon ECS service is considered under-provisioned. An under-provisioned service
* might result in poor application performance.
* Overprovisioned
— When Compute Optimizer detects that there’s
* excessive memory or CPU, an Amazon ECS service is considered over-provisioned.
* An over-provisioned service might result in additional infrastructure costs.
*
Optimized
— When both the CPU and
* memory of your Amazon ECS service meet the performance requirements of your
* workload, the service is considered optimized.
The finding classification of an Amazon ECS service.
Findings for * Amazon ECS services include:
Underprovisioned
* — When Compute Optimizer detects that there’s not enough memory or CPU, an
* Amazon ECS service is considered under-provisioned. An under-provisioned service
* might result in poor application performance.
* Overprovisioned
— When Compute Optimizer detects that there’s
* excessive memory or CPU, an Amazon ECS service is considered over-provisioned.
* An over-provisioned service might result in additional infrastructure costs.
*
Optimized
— When both the CPU and
* memory of your Amazon ECS service meet the performance requirements of your
* workload, the service is considered optimized.
The finding classification of an Amazon ECS service.
Findings for * Amazon ECS services include:
Underprovisioned
* — When Compute Optimizer detects that there’s not enough memory or CPU, an
* Amazon ECS service is considered under-provisioned. An under-provisioned service
* might result in poor application performance.
* Overprovisioned
— When Compute Optimizer detects that there’s
* excessive memory or CPU, an Amazon ECS service is considered over-provisioned.
* An over-provisioned service might result in additional infrastructure costs.
*
Optimized
— When both the CPU and
* memory of your Amazon ECS service meet the performance requirements of your
* workload, the service is considered optimized.
The reason for the finding classification of an Amazon ECS service.
*Finding reason codes for Amazon ECS services include:
* CPUUnderprovisioned
— The service CPU configuration can be
* sized up to enhance the performance of your workload. This is identified by
* analyzing the CPUUtilization
metric of the current service during
* the look-back period.
CPUOverprovisioned
* — The service CPU configuration can be sized down while still meeting the
* performance requirements of your workload. This is identified by analyzing the
* CPUUtilization
metric of the current service during the look-back
* period.
MemoryUnderprovisioned
— The
* service memory configuration can be sized up to enhance the performance of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
* MemoryOverprovisioned
— The service memory configuration
* can be sized down while still meeting the performance requirements of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
The reason for the finding classification of an Amazon ECS service.
*Finding reason codes for Amazon ECS services include:
* CPUUnderprovisioned
— The service CPU configuration can be
* sized up to enhance the performance of your workload. This is identified by
* analyzing the CPUUtilization
metric of the current service during
* the look-back period.
CPUOverprovisioned
* — The service CPU configuration can be sized down while still meeting the
* performance requirements of your workload. This is identified by analyzing the
* CPUUtilization
metric of the current service during the look-back
* period.
MemoryUnderprovisioned
— The
* service memory configuration can be sized up to enhance the performance of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
* MemoryOverprovisioned
— The service memory configuration
* can be sized down while still meeting the performance requirements of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
The reason for the finding classification of an Amazon ECS service.
*Finding reason codes for Amazon ECS services include:
* CPUUnderprovisioned
— The service CPU configuration can be
* sized up to enhance the performance of your workload. This is identified by
* analyzing the CPUUtilization
metric of the current service during
* the look-back period.
CPUOverprovisioned
* — The service CPU configuration can be sized down while still meeting the
* performance requirements of your workload. This is identified by analyzing the
* CPUUtilization
metric of the current service during the look-back
* period.
MemoryUnderprovisioned
— The
* service memory configuration can be sized up to enhance the performance of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
* MemoryOverprovisioned
— The service memory configuration
* can be sized down while still meeting the performance requirements of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
The reason for the finding classification of an Amazon ECS service.
*Finding reason codes for Amazon ECS services include:
* CPUUnderprovisioned
— The service CPU configuration can be
* sized up to enhance the performance of your workload. This is identified by
* analyzing the CPUUtilization
metric of the current service during
* the look-back period.
CPUOverprovisioned
* — The service CPU configuration can be sized down while still meeting the
* performance requirements of your workload. This is identified by analyzing the
* CPUUtilization
metric of the current service during the look-back
* period.
MemoryUnderprovisioned
— The
* service memory configuration can be sized up to enhance the performance of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
* MemoryOverprovisioned
— The service memory configuration
* can be sized down while still meeting the performance requirements of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
The reason for the finding classification of an Amazon ECS service.
*Finding reason codes for Amazon ECS services include:
* CPUUnderprovisioned
— The service CPU configuration can be
* sized up to enhance the performance of your workload. This is identified by
* analyzing the CPUUtilization
metric of the current service during
* the look-back period.
CPUOverprovisioned
* — The service CPU configuration can be sized down while still meeting the
* performance requirements of your workload. This is identified by analyzing the
* CPUUtilization
metric of the current service during the look-back
* period.
MemoryUnderprovisioned
— The
* service memory configuration can be sized up to enhance the performance of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
* MemoryOverprovisioned
— The service memory configuration
* can be sized down while still meeting the performance requirements of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
The reason for the finding classification of an Amazon ECS service.
*Finding reason codes for Amazon ECS services include:
* CPUUnderprovisioned
— The service CPU configuration can be
* sized up to enhance the performance of your workload. This is identified by
* analyzing the CPUUtilization
metric of the current service during
* the look-back period.
CPUOverprovisioned
* — The service CPU configuration can be sized down while still meeting the
* performance requirements of your workload. This is identified by analyzing the
* CPUUtilization
metric of the current service during the look-back
* period.
MemoryUnderprovisioned
— The
* service memory configuration can be sized up to enhance the performance of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
* MemoryOverprovisioned
— The service memory configuration
* can be sized down while still meeting the performance requirements of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
The reason for the finding classification of an Amazon ECS service.
*Finding reason codes for Amazon ECS services include:
* CPUUnderprovisioned
— The service CPU configuration can be
* sized up to enhance the performance of your workload. This is identified by
* analyzing the CPUUtilization
metric of the current service during
* the look-back period.
CPUOverprovisioned
* — The service CPU configuration can be sized down while still meeting the
* performance requirements of your workload. This is identified by analyzing the
* CPUUtilization
metric of the current service during the look-back
* period.
MemoryUnderprovisioned
— The
* service memory configuration can be sized up to enhance the performance of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
* MemoryOverprovisioned
— The service memory configuration
* can be sized down while still meeting the performance requirements of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
The reason for the finding classification of an Amazon ECS service.
*Finding reason codes for Amazon ECS services include:
* CPUUnderprovisioned
— The service CPU configuration can be
* sized up to enhance the performance of your workload. This is identified by
* analyzing the CPUUtilization
metric of the current service during
* the look-back period.
CPUOverprovisioned
* — The service CPU configuration can be sized down while still meeting the
* performance requirements of your workload. This is identified by analyzing the
* CPUUtilization
metric of the current service during the look-back
* period.
MemoryUnderprovisioned
— The
* service memory configuration can be sized up to enhance the performance of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
* MemoryOverprovisioned
— The service memory configuration
* can be sized down while still meeting the performance requirements of your
* workload. This is identified by analyzing the MemoryUtilization
* metric of the current service during the look-back period.
An array of objects that describe the recommendation options for the Amazon * ECS service.
*/ inline const Aws::VectorAn array of objects that describe the recommendation options for the Amazon * ECS service.
*/ inline bool ServiceRecommendationOptionsHasBeenSet() const { return m_serviceRecommendationOptionsHasBeenSet; } /** *An array of objects that describe the recommendation options for the Amazon * ECS service.
*/ inline void SetServiceRecommendationOptions(const Aws::VectorAn array of objects that describe the recommendation options for the Amazon * ECS service.
*/ inline void SetServiceRecommendationOptions(Aws::VectorAn array of objects that describe the recommendation options for the Amazon * ECS service.
*/ inline ECSServiceRecommendation& WithServiceRecommendationOptions(const Aws::VectorAn array of objects that describe the recommendation options for the Amazon * ECS service.
*/ inline ECSServiceRecommendation& WithServiceRecommendationOptions(Aws::VectorAn array of objects that describe the recommendation options for the Amazon * ECS service.
*/ inline ECSServiceRecommendation& AddServiceRecommendationOptions(const ECSServiceRecommendationOption& value) { m_serviceRecommendationOptionsHasBeenSet = true; m_serviceRecommendationOptions.push_back(value); return *this; } /** *An array of objects that describe the recommendation options for the Amazon * ECS service.
*/ inline ECSServiceRecommendation& AddServiceRecommendationOptions(ECSServiceRecommendationOption&& value) { m_serviceRecommendationOptionsHasBeenSet = true; m_serviceRecommendationOptions.push_back(std::move(value)); return *this; } /** *The risk of the current Amazon ECS service not meeting the performance needs * of its workloads. The higher the risk, the more likely the current service can't * meet the performance requirements of its workload.
*/ inline const CurrentPerformanceRisk& GetCurrentPerformanceRisk() const{ return m_currentPerformanceRisk; } /** *The risk of the current Amazon ECS service not meeting the performance needs * of its workloads. The higher the risk, the more likely the current service can't * meet the performance requirements of its workload.
*/ inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; } /** *The risk of the current Amazon ECS service not meeting the performance needs * of its workloads. The higher the risk, the more likely the current service can't * meet the performance requirements of its workload.
*/ inline void SetCurrentPerformanceRisk(const CurrentPerformanceRisk& value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = value; } /** *The risk of the current Amazon ECS service not meeting the performance needs * of its workloads. The higher the risk, the more likely the current service can't * meet the performance requirements of its workload.
*/ inline void SetCurrentPerformanceRisk(CurrentPerformanceRisk&& value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = std::move(value); } /** *The risk of the current Amazon ECS service not meeting the performance needs * of its workloads. The higher the risk, the more likely the current service can't * meet the performance requirements of its workload.
*/ inline ECSServiceRecommendation& WithCurrentPerformanceRisk(const CurrentPerformanceRisk& value) { SetCurrentPerformanceRisk(value); return *this;} /** *The risk of the current Amazon ECS service not meeting the performance needs * of its workloads. The higher the risk, the more likely the current service can't * meet the performance requirements of its workload.
*/ inline ECSServiceRecommendation& WithCurrentPerformanceRisk(CurrentPerformanceRisk&& value) { SetCurrentPerformanceRisk(std::move(value)); return *this;} /** *A list of tags assigned to your Amazon ECS service recommendations.
*/ inline const Aws::VectorA list of tags assigned to your Amazon ECS service recommendations.
*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *A list of tags assigned to your Amazon ECS service recommendations.
*/ inline void SetTags(const Aws::VectorA list of tags assigned to your Amazon ECS service recommendations.
*/ inline void SetTags(Aws::VectorA list of tags assigned to your Amazon ECS service recommendations.
*/ inline ECSServiceRecommendation& WithTags(const Aws::VectorA list of tags assigned to your Amazon ECS service recommendations.
*/ inline ECSServiceRecommendation& WithTags(Aws::VectorA list of tags assigned to your Amazon ECS service recommendations.
*/ inline ECSServiceRecommendation& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *A list of tags assigned to your Amazon ECS service recommendations.
*/ inline ECSServiceRecommendation& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_serviceArn; bool m_serviceArnHasBeenSet = false; Aws::String m_accountId; bool m_accountIdHasBeenSet = false; ServiceConfiguration m_currentServiceConfiguration; bool m_currentServiceConfigurationHasBeenSet = false; Aws::Vector