/** * 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 #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 an Amazon ECS service recommendation.

See Also:

* AWS * API Reference

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

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 *

*/ inline const Aws::String& GetServiceArn() const{ return m_serviceArn; } /** *

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 *

*/ inline bool ServiceArnHasBeenSet() const { return m_serviceArnHasBeenSet; } /** *

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 *

*/ inline void SetServiceArn(const Aws::String& value) { m_serviceArnHasBeenSet = true; m_serviceArn = value; } /** *

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 *

*/ inline void SetServiceArn(Aws::String&& value) { m_serviceArnHasBeenSet = true; m_serviceArn = std::move(value); } /** *

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 *

*/ inline void SetServiceArn(const char* value) { m_serviceArnHasBeenSet = true; m_serviceArn.assign(value); } /** *

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 *

*/ inline ECSServiceRecommendation& WithServiceArn(const Aws::String& value) { SetServiceArn(value); return *this;} /** *

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 *

*/ inline ECSServiceRecommendation& WithServiceArn(Aws::String&& value) { SetServiceArn(std::move(value)); return *this;} /** *

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 *

*/ inline ECSServiceRecommendation& WithServiceArn(const char* value) { SetServiceArn(value); return *this;} /** *

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::Vector& GetUtilizationMetrics() const{ return m_utilizationMetrics; } /** *

An 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::Vector& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics = value; } /** *

An array of objects that describe the utilization metrics of the Amazon ECS * service.

*/ inline void SetUtilizationMetrics(Aws::Vector&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics = std::move(value); } /** *

An array of objects that describe the utilization metrics of the Amazon ECS * service.

*/ inline ECSServiceRecommendation& WithUtilizationMetrics(const Aws::Vector& value) { SetUtilizationMetrics(value); return *this;} /** *

An array of objects that describe the utilization metrics of the Amazon ECS * service.

*/ inline ECSServiceRecommendation& WithUtilizationMetrics(Aws::Vector&& value) { SetUtilizationMetrics(std::move(value)); return *this;} /** *

An 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.

*/ inline const ECSServiceRecommendationFinding& GetFinding() const{ return m_finding; } /** *

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.

*/ inline bool FindingHasBeenSet() const { return m_findingHasBeenSet; } /** *

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.

*/ inline void SetFinding(const ECSServiceRecommendationFinding& value) { m_findingHasBeenSet = true; m_finding = value; } /** *

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.

*/ inline void SetFinding(ECSServiceRecommendationFinding&& value) { m_findingHasBeenSet = true; m_finding = std::move(value); } /** *

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.

*/ inline ECSServiceRecommendation& WithFinding(const ECSServiceRecommendationFinding& value) { SetFinding(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.

*/ inline ECSServiceRecommendation& WithFinding(ECSServiceRecommendationFinding&& value) { SetFinding(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::Vector& GetFindingReasonCodes() const{ return m_findingReasonCodes; } /** *

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.

*/ inline bool FindingReasonCodesHasBeenSet() const { return m_findingReasonCodesHasBeenSet; } /** *

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.

*/ inline void SetFindingReasonCodes(const Aws::Vector& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes = value; } /** *

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.

*/ inline void SetFindingReasonCodes(Aws::Vector&& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes = std::move(value); } /** *

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.

*/ inline ECSServiceRecommendation& WithFindingReasonCodes(const Aws::Vector& value) { SetFindingReasonCodes(value); return *this;} /** *

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.

*/ inline ECSServiceRecommendation& WithFindingReasonCodes(Aws::Vector&& value) { SetFindingReasonCodes(std::move(value)); return *this;} /** *

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.

*/ inline ECSServiceRecommendation& AddFindingReasonCodes(const ECSServiceRecommendationFindingReasonCode& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes.push_back(value); return *this; } /** *

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.

*/ inline ECSServiceRecommendation& AddFindingReasonCodes(ECSServiceRecommendationFindingReasonCode&& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes.push_back(std::move(value)); return *this; } /** *

An array of objects that describe the recommendation options for the Amazon * ECS service.

*/ inline const Aws::Vector& GetServiceRecommendationOptions() const{ return m_serviceRecommendationOptions; } /** *

An 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::Vector& value) { m_serviceRecommendationOptionsHasBeenSet = true; m_serviceRecommendationOptions = value; } /** *

An array of objects that describe the recommendation options for the Amazon * ECS service.

*/ inline void SetServiceRecommendationOptions(Aws::Vector&& value) { m_serviceRecommendationOptionsHasBeenSet = true; m_serviceRecommendationOptions = std::move(value); } /** *

An array of objects that describe the recommendation options for the Amazon * ECS service.

*/ inline ECSServiceRecommendation& WithServiceRecommendationOptions(const Aws::Vector& value) { SetServiceRecommendationOptions(value); return *this;} /** *

An array of objects that describe the recommendation options for the Amazon * ECS service.

*/ inline ECSServiceRecommendation& WithServiceRecommendationOptions(Aws::Vector&& value) { SetServiceRecommendationOptions(std::move(value)); return *this;} /** *

An 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::Vector& GetTags() const{ return m_tags; } /** *

A 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::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of tags assigned to your Amazon ECS service recommendations.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of tags assigned to your Amazon ECS service recommendations.

*/ inline ECSServiceRecommendation& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of tags assigned to your Amazon ECS service recommendations.

*/ inline ECSServiceRecommendation& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A 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 m_utilizationMetrics; bool m_utilizationMetricsHasBeenSet = false; double m_lookbackPeriodInDays; bool m_lookbackPeriodInDaysHasBeenSet = false; ECSServiceLaunchType m_launchType; bool m_launchTypeHasBeenSet = false; Aws::Utils::DateTime m_lastRefreshTimestamp; bool m_lastRefreshTimestampHasBeenSet = false; ECSServiceRecommendationFinding m_finding; bool m_findingHasBeenSet = false; Aws::Vector m_findingReasonCodes; bool m_findingReasonCodesHasBeenSet = false; Aws::Vector m_serviceRecommendationOptions; bool m_serviceRecommendationOptionsHasBeenSet = false; CurrentPerformanceRisk m_currentPerformanceRisk; bool m_currentPerformanceRiskHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws