/* * 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 Amazon EC2 instance. /// public partial class InstanceRecommendationOption { private string _instanceType; private MigrationEffort _migrationEffort; private double? _performanceRisk; private List _platformDifferences = new List(); private List _projectedUtilizationMetrics = new List(); private int? _rank; private SavingsOpportunity _savingsOpportunity; /// /// Gets and sets the property InstanceType. /// /// The instance type of the instance recommendation. /// /// public string InstanceType { get { return this._instanceType; } set { this._instanceType = value; } } // Check to see if InstanceType property is set internal bool IsSetInstanceType() { return this._instanceType != 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 instance recommendation option. /// /// /// /// 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 PlatformDifferences. /// /// Describes the configuration differences between the current instance and the recommended /// instance type. You should consider the configuration differences before migrating /// your workloads from the current instance to the recommended instance type. The Change /// the instance type guide for Linux and Change /// the instance type guide for Windows provide general guidance for getting started /// with an instance migration. /// /// /// /// Platform differences include: /// ///
  • /// /// Hypervisor — The hypervisor of the recommended instance type /// is different than that of the current instance. For example, the recommended instance /// type uses a Nitro hypervisor and the current instance uses a Xen hypervisor. The differences /// that you should consider between these hypervisors are covered in the Nitro /// Hypervisor section of the Amazon EC2 frequently asked questions. For more information, /// see Instances /// built on the Nitro System in the Amazon EC2 User Guide for Linux, or Instances /// built on the Nitro System in the Amazon EC2 User Guide for Windows. /// ///
  • /// /// NetworkInterface — The network interface of the recommended /// instance type is different than that of the current instance. For example, the recommended /// instance type supports enhanced networking and the current instance might not. To /// enable enhanced networking for the recommended instance type, you must install the /// Elastic Network Adapter (ENA) driver or the Intel 82599 Virtual Function driver. For /// more information, see Networking /// and storage features and Enhanced /// networking on Linux in the Amazon EC2 User Guide for Linux, or Networking /// and storage features and Enhanced /// networking on Windows in the Amazon EC2 User Guide for Windows. /// ///
  • /// /// StorageInterface — The storage interface of the recommended /// instance type is different than that of the current instance. For example, the recommended /// instance type uses an NVMe storage interface and the current instance does not. To /// access NVMe volumes for the recommended instance type, you will need to install or /// upgrade the NVMe driver. For more information, see Networking /// and storage features and Amazon /// EBS and NVMe on Linux instances in the Amazon EC2 User Guide for Linux, /// or Networking /// and storage features and Amazon /// EBS and NVMe on Windows instances in the Amazon EC2 User Guide for Windows. /// ///
  • /// /// InstanceStoreAvailability — The recommended instance type does /// not support instance store volumes and the current instance does. Before migrating, /// you might need to back up the data on your instance store volumes if you want to preserve /// them. For more information, see How /// do I back up an instance store volume on my Amazon EC2 instance to Amazon EBS? /// in the Amazon Web Services Premium Support Knowledge Base. For more information, /// see Networking /// and storage features and Amazon /// EC2 instance store in the Amazon EC2 User Guide for Linux, or see Networking /// and storage features and Amazon /// EC2 instance store in the Amazon EC2 User Guide for Windows. /// ///
  • /// /// VirtualizationType — The recommended instance type uses the /// hardware virtual machine (HVM) virtualization type and the current instance uses the /// paravirtual (PV) virtualization type. For more information about the differences between /// these virtualization types, see Linux /// AMI virtualization types in the Amazon EC2 User Guide for Linux, or Windows /// AMI virtualization types in the Amazon EC2 User Guide for Windows. /// ///
  • /// /// Architecture — The CPU architecture between the recommended /// instance type and the current instance is different. For example, the recommended /// instance type might use an Arm CPU architecture and the current instance type might /// use a different one, such as x86. Before migrating, you should consider recompiling /// the software on your instance for the new architecture. Alternatively, you might switch /// to an Amazon Machine Image (AMI) that supports the new architecture. For more information /// about the CPU architecture for each instance type, see Amazon /// EC2 Instance Types. /// ///
///
public List PlatformDifferences { get { return this._platformDifferences; } set { this._platformDifferences = value; } } // Check to see if PlatformDifferences property is set internal bool IsSetPlatformDifferences() { return this._platformDifferences != null && this._platformDifferences.Count > 0; } /// /// Gets and sets the property ProjectedUtilizationMetrics. /// /// An array of objects that describe the projected utilization metrics of the instance /// 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 instance 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 instance 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; } } }