/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the compute-optimizer-2019-11-01.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.ComputeOptimizer.Model { /// /// Describes an Amazon ECS service recommendation. /// public partial class ECSServiceRecommendation { private string _accountId; private CurrentPerformanceRisk _currentPerformanceRisk; private ServiceConfiguration _currentServiceConfiguration; private ECSServiceRecommendationFinding _finding; private List _findingReasonCodes = new List(); private DateTime? _lastRefreshTimestamp; private ECSServiceLaunchType _launchType; private double? _lookbackPeriodInDays; private string _serviceArn; private List _serviceRecommendationOptions = new List(); private List _tags = new List(); private List _utilizationMetrics = new List(); /// /// Gets and sets the property AccountId. /// /// The Amazon Web Services account ID of the Amazon ECS service. /// /// public string AccountId { get { return this._accountId; } set { this._accountId = value; } } // Check to see if AccountId property is set internal bool IsSetAccountId() { return this._accountId != null; } /// /// Gets and sets the property 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. /// /// public CurrentPerformanceRisk CurrentPerformanceRisk { get { return this._currentPerformanceRisk; } set { this._currentPerformanceRisk = value; } } // Check to see if CurrentPerformanceRisk property is set internal bool IsSetCurrentPerformanceRisk() { return this._currentPerformanceRisk != null; } /// /// Gets and sets the property CurrentServiceConfiguration. /// /// The configuration of the current Amazon ECS service. /// /// public ServiceConfiguration CurrentServiceConfiguration { get { return this._currentServiceConfiguration; } set { this._currentServiceConfiguration = value; } } // Check to see if CurrentServiceConfiguration property is set internal bool IsSetCurrentServiceConfiguration() { return this._currentServiceConfiguration != null; } /// /// Gets and sets the property 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. /// ///
///
public ECSServiceRecommendationFinding Finding { get { return this._finding; } set { this._finding = value; } } // Check to see if Finding property is set internal bool IsSetFinding() { return this._finding != null; } /// /// Gets and sets the property 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. /// ///
///
public List FindingReasonCodes { get { return this._findingReasonCodes; } set { this._findingReasonCodes = value; } } // Check to see if FindingReasonCodes property is set internal bool IsSetFindingReasonCodes() { return this._findingReasonCodes != null && this._findingReasonCodes.Count > 0; } /// /// Gets and sets the property LastRefreshTimestamp. /// /// The timestamp of when the Amazon ECS service recommendation was last generated. /// /// public DateTime LastRefreshTimestamp { get { return this._lastRefreshTimestamp.GetValueOrDefault(); } set { this._lastRefreshTimestamp = value; } } // Check to see if LastRefreshTimestamp property is set internal bool IsSetLastRefreshTimestamp() { return this._lastRefreshTimestamp.HasValue; } /// /// Gets and sets the property LaunchType. /// /// The launch type the Amazon ECS service is using. /// /// /// /// Compute Optimizer only supports the Fargate launch type. /// /// /// public ECSServiceLaunchType LaunchType { get { return this._launchType; } set { this._launchType = value; } } // Check to see if LaunchType property is set internal bool IsSetLaunchType() { return this._launchType != null; } /// /// Gets and sets the property LookbackPeriodInDays. /// /// The number of days the Amazon ECS service utilization metrics were analyzed. /// /// public double LookbackPeriodInDays { get { return this._lookbackPeriodInDays.GetValueOrDefault(); } set { this._lookbackPeriodInDays = value; } } // Check to see if LookbackPeriodInDays property is set internal bool IsSetLookbackPeriodInDays() { return this._lookbackPeriodInDays.HasValue; } /// /// Gets and sets the property 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 /// /// /// public string ServiceArn { get { return this._serviceArn; } set { this._serviceArn = value; } } // Check to see if ServiceArn property is set internal bool IsSetServiceArn() { return this._serviceArn != null; } /// /// Gets and sets the property ServiceRecommendationOptions. /// /// An array of objects that describe the recommendation options for the Amazon ECS service. /// /// /// public List ServiceRecommendationOptions { get { return this._serviceRecommendationOptions; } set { this._serviceRecommendationOptions = value; } } // Check to see if ServiceRecommendationOptions property is set internal bool IsSetServiceRecommendationOptions() { return this._serviceRecommendationOptions != null && this._serviceRecommendationOptions.Count > 0; } /// /// Gets and sets the property Tags. /// /// A list of tags assigned to your Amazon ECS service recommendations. /// /// public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property UtilizationMetrics. /// /// An array of objects that describe the utilization metrics of the Amazon ECS service. /// /// /// public List UtilizationMetrics { get { return this._utilizationMetrics; } set { this._utilizationMetrics = value; } } // Check to see if UtilizationMetrics property is set internal bool IsSetUtilizationMetrics() { return this._utilizationMetrics != null && this._utilizationMetrics.Count > 0; } } }