/* * 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 a recommendation option for an Auto Scaling group. /// public partial class AutoScalingGroupRecommendationOption { private AutoScalingGroupConfiguration _configuration; private MigrationEffort _migrationEffort; private double? _performanceRisk; private List _projectedUtilizationMetrics = new List(); private int? _rank; private SavingsOpportunity _savingsOpportunity; /// /// Gets and sets the property Configuration. /// /// An array of objects that describe an Auto Scaling group configuration. /// /// public AutoScalingGroupConfiguration Configuration { get { return this._configuration; } set { this._configuration = value; } } // Check to see if Configuration property is set internal bool IsSetConfiguration() { return this._configuration != null; } /// /// Gets and sets the property MigrationEffort. /// /// The level of effort required to migrate from the current instance type to the recommended /// instance type. /// /// /// /// For example, the migration effort is Low if Amazon EMR is the inferred /// workload type and an Amazon Web Services Graviton instance type is recommended. The /// migration effort is Medium if a workload type couldn't be inferred but /// an Amazon Web Services Graviton instance type is recommended. The migration effort /// is VeryLow if both the current and recommended instance types are of /// the same CPU architecture. /// /// public MigrationEffort MigrationEffort { get { return this._migrationEffort; } set { this._migrationEffort = value; } } // Check to see if MigrationEffort property is set internal bool IsSetMigrationEffort() { return this._migrationEffort != null; } /// /// Gets and sets the property PerformanceRisk. /// /// The performance risk of the Auto Scaling group configuration recommendation. /// /// /// /// Performance risk indicates the likelihood of the recommended instance type not meeting /// the resource needs of your workload. Compute Optimizer calculates an individual performance /// risk score for each specification of the recommended instance, including CPU, memory, /// EBS throughput, EBS IOPS, disk throughput, disk IOPS, network throughput, and network /// PPS. The performance risk of the recommended instance is calculated as the maximum /// performance risk score across the analyzed resource specifications. /// /// /// /// The value ranges from 0 - 4, with 0 meaning /// that the recommended resource is predicted to always provide enough hardware capability. /// The higher the performance risk is, the more likely you should validate whether the /// recommendation will meet the performance requirements of your workload before migrating /// your resource. /// /// [AWSProperty(Min=0, Max=4)] public double PerformanceRisk { get { return this._performanceRisk.GetValueOrDefault(); } set { this._performanceRisk = value; } } // Check to see if PerformanceRisk property is set internal bool IsSetPerformanceRisk() { return this._performanceRisk.HasValue; } /// /// Gets and sets the property ProjectedUtilizationMetrics. /// /// An array of objects that describe the projected utilization metrics of the Auto Scaling /// group recommendation option. /// /// /// /// The Cpu and Memory metrics are the only projected utilization /// metrics returned. Additionally, the Memory metric is returned only for /// resources that have the unified CloudWatch agent installed on them. For more information, /// see Enabling /// Memory Utilization with the CloudWatch Agent. /// /// /// public List ProjectedUtilizationMetrics { get { return this._projectedUtilizationMetrics; } set { this._projectedUtilizationMetrics = value; } } // Check to see if ProjectedUtilizationMetrics property is set internal bool IsSetProjectedUtilizationMetrics() { return this._projectedUtilizationMetrics != null && this._projectedUtilizationMetrics.Count > 0; } /// /// Gets and sets the property Rank. /// /// The rank of the Auto Scaling group recommendation option. /// /// /// /// The top recommendation option is ranked as 1. /// /// public int Rank { get { return this._rank.GetValueOrDefault(); } set { this._rank = value; } } // Check to see if Rank property is set internal bool IsSetRank() { return this._rank.HasValue; } /// /// Gets and sets the property SavingsOpportunity. /// /// An object that describes the savings opportunity for the Auto Scaling group recommendation /// option. Savings opportunity includes the estimated monthly savings amount and percentage. /// /// public SavingsOpportunity SavingsOpportunity { get { return this._savingsOpportunity; } set { this._savingsOpportunity = value; } } // Check to see if SavingsOpportunity property is set internal bool IsSetSavingsOpportunity() { return this._savingsOpportunity != null; } } }