/* * Copyright 2018-2023 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. */ package com.amazonaws.services.computeoptimizer.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Describes an Amazon EC2 instance recommendation. *
* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class InstanceRecommendation implements Serializable, Cloneable, StructuredPojo { /** ** The Amazon Resource Name (ARN) of the current instance. *
*/ private String instanceArn; /** ** The Amazon Web Services account ID of the instance. *
*/ private String accountId; /** ** The name of the current instance. *
*/ private String instanceName; /** ** The instance type of the current instance. *
*/ private String currentInstanceType; /** ** The finding classification of the instance. *
** Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one specification
* of your instance, such as CPU, memory, or network, can be sized down while still meeting the performance
* requirements of your workload, and no specification is under-provisioned. Over-provisioned instances may lead to
* unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your instance,
* such as CPU, memory, and network, meet the performance requirements of your workload and is not over provisioned.
* For optimized resources, Compute Optimizer might recommend a new generation instance type.
*
* The reason for the finding classification of the instance. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU performance.
* This is identified by analyzing the CPUUtilization
metric of the current instance during the
* look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while still
* meeting the performance requirements of your workload. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better memory performance.
* This is identified by analyzing the memory utilization metric of the current instance during the look-back
* period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For
* more information, see Enabling memory utilization
* with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux instances, Compute
* Optimizer analyses the mem_used_percent
metric in the CWAgent
namespace, or the legacy
* MemoryUtilization
metric in the System/Linux
namespace. On Windows instances, Compute
* Optimizer analyses the Memory % Committed Bytes In Use
metric in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current instance
* during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS
* performance. This is identified by analyzing the VolumeReadOps
and VolumeWriteOps
* metric of EBS volumes attached to the current instance during the look-back period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current instance during the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides better
* network bandwidth performance. This is identified by analyzing the NetworkIn
and
* NetworkOut
metrics of the current instance during the look-back period. This finding reason happens
* when the NetworkIn
or NetworkOut
performance of an instance is impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second) configuration
* can be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance
* during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second) configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the look-back
* period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better disk
* IOPS performance. This is identified by analyzing the DiskReadOps
and DiskWriteOps
* metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the look-back
* period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the DiskReadBytes
and
* DiskWriteBytes
metrics of the current instance during the look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For * more information about EBS volume metrics, see Amazon CloudWatch metrics * for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
** An array of objects that describe the utilization metrics of the instance. *
*/ private java.util.List* The number of days for which utilization metrics were analyzed for the instance. *
*/ private Double lookBackPeriodInDays; /** ** An array of objects that describe the recommendation options for the instance. *
*/ private java.util.List* An array of objects that describe the source resource of the recommendation. *
*/ private java.util.List* The timestamp of when the instance recommendation was last generated. *
*/ private java.util.Date lastRefreshTimestamp; /** ** The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, the * more likely the current instance cannot meet the performance requirements of its workload. *
*/ private String currentPerformanceRisk; /** ** An object that describes the effective recommendation preferences for the instance. *
*/ private EffectiveRecommendationPreferences effectiveRecommendationPreferences; /** ** The applications that might be running on the instance as inferred by Compute Optimizer. *
** Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* The state of the instance when the recommendation was generated. *
*/ private String instanceState; /** ** A list of tags assigned to your Amazon EC2 instance recommendations. *
*/ private java.util.List* An object that describes Compute Optimizer's integration status with your external metrics provider. *
*/ private ExternalMetricStatus externalMetricStatus; /** ** The Amazon Resource Name (ARN) of the current instance. *
* * @param instanceArn * The Amazon Resource Name (ARN) of the current instance. */ public void setInstanceArn(String instanceArn) { this.instanceArn = instanceArn; } /** ** The Amazon Resource Name (ARN) of the current instance. *
* * @return The Amazon Resource Name (ARN) of the current instance. */ public String getInstanceArn() { return this.instanceArn; } /** ** The Amazon Resource Name (ARN) of the current instance. *
* * @param instanceArn * The Amazon Resource Name (ARN) of the current instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withInstanceArn(String instanceArn) { setInstanceArn(instanceArn); return this; } /** ** The Amazon Web Services account ID of the instance. *
* * @param accountId * The Amazon Web Services account ID of the instance. */ public void setAccountId(String accountId) { this.accountId = accountId; } /** ** The Amazon Web Services account ID of the instance. *
* * @return The Amazon Web Services account ID of the instance. */ public String getAccountId() { return this.accountId; } /** ** The Amazon Web Services account ID of the instance. *
* * @param accountId * The Amazon Web Services account ID of the instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withAccountId(String accountId) { setAccountId(accountId); return this; } /** ** The name of the current instance. *
* * @param instanceName * The name of the current instance. */ public void setInstanceName(String instanceName) { this.instanceName = instanceName; } /** ** The name of the current instance. *
* * @return The name of the current instance. */ public String getInstanceName() { return this.instanceName; } /** ** The name of the current instance. *
* * @param instanceName * The name of the current instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withInstanceName(String instanceName) { setInstanceName(instanceName); return this; } /** ** The instance type of the current instance. *
* * @param currentInstanceType * The instance type of the current instance. */ public void setCurrentInstanceType(String currentInstanceType) { this.currentInstanceType = currentInstanceType; } /** ** The instance type of the current instance. *
* * @return The instance type of the current instance. */ public String getCurrentInstanceType() { return this.currentInstanceType; } /** ** The instance type of the current instance. *
* * @param currentInstanceType * The instance type of the current instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withCurrentInstanceType(String currentInstanceType) { setCurrentInstanceType(currentInstanceType); return this; } /** ** The finding classification of the instance. *
** Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one specification
* of your instance, such as CPU, memory, or network, can be sized down while still meeting the performance
* requirements of your workload, and no specification is under-provisioned. Over-provisioned instances may lead to
* unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your instance,
* such as CPU, memory, and network, meet the performance requirements of your workload and is not over provisioned.
* For optimized resources, Compute Optimizer might recommend a new generation instance type.
*
* Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance
* requirements of your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, can be sized down while still meeting the
* performance requirements of your workload, and no specification is under-provisioned. Over-provisioned
* instances may lead to unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your
* instance, such as CPU, memory, and network, meet the performance requirements of your workload and is not
* over provisioned. For optimized resources, Compute Optimizer might recommend a new generation instance
* type.
*
* The finding classification of the instance. *
** Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one specification
* of your instance, such as CPU, memory, or network, can be sized down while still meeting the performance
* requirements of your workload, and no specification is under-provisioned. Over-provisioned instances may lead to
* unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your instance,
* such as CPU, memory, and network, meet the performance requirements of your workload and is not over provisioned.
* For optimized resources, Compute Optimizer might recommend a new generation instance type.
*
* Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance
* requirements of your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, can be sized down while still meeting
* the performance requirements of your workload, and no specification is under-provisioned.
* Over-provisioned instances may lead to unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your
* instance, such as CPU, memory, and network, meet the performance requirements of your workload and is not
* over provisioned. For optimized resources, Compute Optimizer might recommend a new generation instance
* type.
*
* The finding classification of the instance. *
** Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one specification
* of your instance, such as CPU, memory, or network, can be sized down while still meeting the performance
* requirements of your workload, and no specification is under-provisioned. Over-provisioned instances may lead to
* unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your instance,
* such as CPU, memory, and network, meet the performance requirements of your workload and is not over provisioned.
* For optimized resources, Compute Optimizer might recommend a new generation instance type.
*
* Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance
* requirements of your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, can be sized down while still meeting the
* performance requirements of your workload, and no specification is under-provisioned. Over-provisioned
* instances may lead to unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your
* instance, such as CPU, memory, and network, meet the performance requirements of your workload and is not
* over provisioned. For optimized resources, Compute Optimizer might recommend a new generation instance
* type.
*
* The finding classification of the instance. *
** Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance requirements of
* your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one specification
* of your instance, such as CPU, memory, or network, can be sized down while still meeting the performance
* requirements of your workload, and no specification is under-provisioned. Over-provisioned instances may lead to
* unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your instance,
* such as CPU, memory, and network, meet the performance requirements of your workload and is not over provisioned.
* For optimized resources, Compute Optimizer might recommend a new generation instance type.
*
* Findings for instances include: *
*
* Underprovisioned
—An instance is considered under-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, does not meet the performance
* requirements of your workload. Under-provisioned instances may lead to poor application performance.
*
* Overprovisioned
—An instance is considered over-provisioned when at least one
* specification of your instance, such as CPU, memory, or network, can be sized down while still meeting the
* performance requirements of your workload, and no specification is under-provisioned. Over-provisioned
* instances may lead to unnecessary infrastructure cost.
*
* Optimized
—An instance is considered optimized when all specifications of your
* instance, such as CPU, memory, and network, meet the performance requirements of your workload and is not
* over provisioned. For optimized resources, Compute Optimizer might recommend a new generation instance
* type.
*
* The reason for the finding classification of the instance. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU performance.
* This is identified by analyzing the CPUUtilization
metric of the current instance during the
* look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while still
* meeting the performance requirements of your workload. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better memory performance.
* This is identified by analyzing the memory utilization metric of the current instance during the look-back
* period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For
* more information, see Enabling memory utilization
* with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux instances, Compute
* Optimizer analyses the mem_used_percent
metric in the CWAgent
namespace, or the legacy
* MemoryUtilization
metric in the System/Linux
namespace. On Windows instances, Compute
* Optimizer analyses the Memory % Committed Bytes In Use
metric in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current instance
* during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS
* performance. This is identified by analyzing the VolumeReadOps
and VolumeWriteOps
* metric of EBS volumes attached to the current instance during the look-back period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current instance during the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides better
* network bandwidth performance. This is identified by analyzing the NetworkIn
and
* NetworkOut
metrics of the current instance during the look-back period. This finding reason happens
* when the NetworkIn
or NetworkOut
performance of an instance is impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second) configuration
* can be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance
* during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second) configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the look-back
* period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better disk
* IOPS performance. This is identified by analyzing the DiskReadOps
and DiskWriteOps
* metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the look-back
* period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the DiskReadBytes
and
* DiskWriteBytes
metrics of the current instance during the look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For * more information about EBS volume metrics, see Amazon CloudWatch metrics * for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU
* performance. This is identified by analyzing the CPUUtilization
metric of the current
* instance during the look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the memory
* utilization metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization metric of the current instance
* during the look-back period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on
* them. For more information, see Enabling memory
* utilization with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux
* instances, Compute Optimizer analyses the mem_used_percent
metric in the
* CWAgent
namespace, or the legacy MemoryUtilization
metric in the
* System/Linux
namespace. On Windows instances, Compute Optimizer analyses the
* Memory % Committed Bytes In Use
metric in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes
* attached to the current instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that
* provides better EBS throughput performance. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes attached to the
* current instance during the look-back period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* EBS IOPS performance. This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current instance during the look-back
* period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration
* can be sized down while still meeting the performance requirements of your workload. This is identified
* by analyzing the NetworkIn
and NetworkOut
metrics of the current instance
* during the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network bandwidth performance. This is identified by analyzing the NetworkIn
* and NetworkOut
metrics of the current instance during the look-back period. This finding
* reason happens when the NetworkIn
or NetworkOut
performance of an instance is
* impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second)
* configuration can be sized down while still meeting the performance requirements of your workload. This
* is identified by analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of
* the current instance during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second)
* configuration doesn't meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified by analyzing the
* NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance during
* the look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the
* look-back period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* disk IOPS performance. This is identified by analyzing the DiskReadOps
and
* DiskWriteOps
metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the DiskReadBytes
and DiskWriteBytes
metrics of the current instance
* during the look-back period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better disk throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the
* look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User * Guide. For more information about EBS volume metrics, see Amazon CloudWatch * metrics for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
* @see InstanceRecommendationFindingReasonCode */ public java.util.List* The reason for the finding classification of the instance. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU performance.
* This is identified by analyzing the CPUUtilization
metric of the current instance during the
* look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while still
* meeting the performance requirements of your workload. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better memory performance.
* This is identified by analyzing the memory utilization metric of the current instance during the look-back
* period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For
* more information, see Enabling memory utilization
* with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux instances, Compute
* Optimizer analyses the mem_used_percent
metric in the CWAgent
namespace, or the legacy
* MemoryUtilization
metric in the System/Linux
namespace. On Windows instances, Compute
* Optimizer analyses the Memory % Committed Bytes In Use
metric in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current instance
* during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS
* performance. This is identified by analyzing the VolumeReadOps
and VolumeWriteOps
* metric of EBS volumes attached to the current instance during the look-back period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current instance during the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides better
* network bandwidth performance. This is identified by analyzing the NetworkIn
and
* NetworkOut
metrics of the current instance during the look-back period. This finding reason happens
* when the NetworkIn
or NetworkOut
performance of an instance is impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second) configuration
* can be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance
* during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second) configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the look-back
* period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better disk
* IOPS performance. This is identified by analyzing the DiskReadOps
and DiskWriteOps
* metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the look-back
* period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the DiskReadBytes
and
* DiskWriteBytes
metrics of the current instance during the look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For * more information about EBS volume metrics, see Amazon CloudWatch metrics * for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU
* performance. This is identified by analyzing the CPUUtilization
metric of the current
* instance during the look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the memory
* utilization metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization metric of the current instance
* during the look-back period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on
* them. For more information, see Enabling memory
* utilization with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux
* instances, Compute Optimizer analyses the mem_used_percent
metric in the CWAgent
* namespace, or the legacy MemoryUtilization
metric in the System/Linux
namespace.
* On Windows instances, Compute Optimizer analyses the Memory % Committed Bytes In Use
metric
* in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes
* attached to the current instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides
* better EBS throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* EBS IOPS performance. This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current instance during the look-back
* period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can
* be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkIn
and NetworkOut
metrics of the current instance during
* the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network bandwidth performance. This is identified by analyzing the NetworkIn
* and NetworkOut
metrics of the current instance during the look-back period. This finding
* reason happens when the NetworkIn
or NetworkOut
performance of an instance is
* impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second)
* configuration can be sized down while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the
* current instance during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second)
* configuration doesn't meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified by analyzing the
* NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance during the
* look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the
* look-back period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* disk IOPS performance. This is identified by analyzing the DiskReadOps
and
* DiskWriteOps
metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the DiskReadBytes
and DiskWriteBytes
metrics of the current instance
* during the look-back period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better disk throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the
* look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. * For more information about EBS volume metrics, see Amazon CloudWatch * metrics for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
* @see InstanceRecommendationFindingReasonCode */ public void setFindingReasonCodes(java.util.Collection* The reason for the finding classification of the instance. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU performance.
* This is identified by analyzing the CPUUtilization
metric of the current instance during the
* look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while still
* meeting the performance requirements of your workload. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better memory performance.
* This is identified by analyzing the memory utilization metric of the current instance during the look-back
* period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For
* more information, see Enabling memory utilization
* with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux instances, Compute
* Optimizer analyses the mem_used_percent
metric in the CWAgent
namespace, or the legacy
* MemoryUtilization
metric in the System/Linux
namespace. On Windows instances, Compute
* Optimizer analyses the Memory % Committed Bytes In Use
metric in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current instance
* during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS
* performance. This is identified by analyzing the VolumeReadOps
and VolumeWriteOps
* metric of EBS volumes attached to the current instance during the look-back period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current instance during the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides better
* network bandwidth performance. This is identified by analyzing the NetworkIn
and
* NetworkOut
metrics of the current instance during the look-back period. This finding reason happens
* when the NetworkIn
or NetworkOut
performance of an instance is impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second) configuration
* can be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance
* during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second) configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the look-back
* period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better disk
* IOPS performance. This is identified by analyzing the DiskReadOps
and DiskWriteOps
* metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the look-back
* period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the DiskReadBytes
and
* DiskWriteBytes
metrics of the current instance during the look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For * more information about EBS volume metrics, see Amazon CloudWatch metrics * for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setFindingReasonCodes(java.util.Collection)} or {@link #withFindingReasonCodes(java.util.Collection)} if * you want to override the existing values. *
* * @param findingReasonCodes * The reason for the finding classification of the instance. ** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU
* performance. This is identified by analyzing the CPUUtilization
metric of the current
* instance during the look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the memory
* utilization metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization metric of the current instance
* during the look-back period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on
* them. For more information, see Enabling memory
* utilization with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux
* instances, Compute Optimizer analyses the mem_used_percent
metric in the CWAgent
* namespace, or the legacy MemoryUtilization
metric in the System/Linux
namespace.
* On Windows instances, Compute Optimizer analyses the Memory % Committed Bytes In Use
metric
* in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes
* attached to the current instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides
* better EBS throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* EBS IOPS performance. This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current instance during the look-back
* period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can
* be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkIn
and NetworkOut
metrics of the current instance during
* the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network bandwidth performance. This is identified by analyzing the NetworkIn
* and NetworkOut
metrics of the current instance during the look-back period. This finding
* reason happens when the NetworkIn
or NetworkOut
performance of an instance is
* impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second)
* configuration can be sized down while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the
* current instance during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second)
* configuration doesn't meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified by analyzing the
* NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance during the
* look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the
* look-back period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* disk IOPS performance. This is identified by analyzing the DiskReadOps
and
* DiskWriteOps
metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the DiskReadBytes
and DiskWriteBytes
metrics of the current instance
* during the look-back period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better disk throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the
* look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. * For more information about EBS volume metrics, see Amazon CloudWatch * metrics for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
* @return Returns a reference to this object so that method calls can be chained together. * @see InstanceRecommendationFindingReasonCode */ public InstanceRecommendation withFindingReasonCodes(String... findingReasonCodes) { if (this.findingReasonCodes == null) { setFindingReasonCodes(new java.util.ArrayList* The reason for the finding classification of the instance. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU performance.
* This is identified by analyzing the CPUUtilization
metric of the current instance during the
* look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while still
* meeting the performance requirements of your workload. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better memory performance.
* This is identified by analyzing the memory utilization metric of the current instance during the look-back
* period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For
* more information, see Enabling memory utilization
* with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux instances, Compute
* Optimizer analyses the mem_used_percent
metric in the CWAgent
namespace, or the legacy
* MemoryUtilization
metric in the System/Linux
namespace. On Windows instances, Compute
* Optimizer analyses the Memory % Committed Bytes In Use
metric in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current instance
* during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS
* performance. This is identified by analyzing the VolumeReadOps
and VolumeWriteOps
* metric of EBS volumes attached to the current instance during the look-back period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current instance during the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides better
* network bandwidth performance. This is identified by analyzing the NetworkIn
and
* NetworkOut
metrics of the current instance during the look-back period. This finding reason happens
* when the NetworkIn
or NetworkOut
performance of an instance is impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second) configuration
* can be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance
* during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second) configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the look-back
* period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better disk
* IOPS performance. This is identified by analyzing the DiskReadOps
and DiskWriteOps
* metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the look-back
* period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the DiskReadBytes
and
* DiskWriteBytes
metrics of the current instance during the look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For * more information about EBS volume metrics, see Amazon CloudWatch metrics * for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU
* performance. This is identified by analyzing the CPUUtilization
metric of the current
* instance during the look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the memory
* utilization metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization metric of the current instance
* during the look-back period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on
* them. For more information, see Enabling memory
* utilization with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux
* instances, Compute Optimizer analyses the mem_used_percent
metric in the CWAgent
* namespace, or the legacy MemoryUtilization
metric in the System/Linux
namespace.
* On Windows instances, Compute Optimizer analyses the Memory % Committed Bytes In Use
metric
* in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes
* attached to the current instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides
* better EBS throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* EBS IOPS performance. This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current instance during the look-back
* period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can
* be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkIn
and NetworkOut
metrics of the current instance during
* the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network bandwidth performance. This is identified by analyzing the NetworkIn
* and NetworkOut
metrics of the current instance during the look-back period. This finding
* reason happens when the NetworkIn
or NetworkOut
performance of an instance is
* impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second)
* configuration can be sized down while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the
* current instance during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second)
* configuration doesn't meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified by analyzing the
* NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance during the
* look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the
* look-back period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* disk IOPS performance. This is identified by analyzing the DiskReadOps
and
* DiskWriteOps
metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the DiskReadBytes
and DiskWriteBytes
metrics of the current instance
* during the look-back period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better disk throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the
* look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. * For more information about EBS volume metrics, see Amazon CloudWatch * metrics for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
* @return Returns a reference to this object so that method calls can be chained together. * @see InstanceRecommendationFindingReasonCode */ public InstanceRecommendation withFindingReasonCodes(java.util.Collection* The reason for the finding classification of the instance. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU performance.
* This is identified by analyzing the CPUUtilization
metric of the current instance during the
* look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while still
* meeting the performance requirements of your workload. This is identified by analyzing the memory utilization
* metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better memory performance.
* This is identified by analyzing the memory utilization metric of the current instance during the look-back
* period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on them. For
* more information, see Enabling memory utilization
* with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux instances, Compute
* Optimizer analyses the mem_used_percent
metric in the CWAgent
namespace, or the legacy
* MemoryUtilization
metric in the System/Linux
namespace. On Windows instances, Compute
* Optimizer analyses the Memory % Committed Bytes In Use
metric in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better EBS
* throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current instance
* during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better EBS IOPS
* performance. This is identified by analyzing the VolumeReadOps
and VolumeWriteOps
* metric of EBS volumes attached to the current instance during the look-back period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by analyzing the
* NetworkIn
and NetworkOut
metrics of the current instance during the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides better
* network bandwidth performance. This is identified by analyzing the NetworkIn
and
* NetworkOut
metrics of the current instance during the look-back period. This finding reason happens
* when the NetworkIn
or NetworkOut
performance of an instance is impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second) configuration
* can be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance
* during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second) configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network PPS performance. This is identified by analyzing the NetworkPacketsIn
and
* NetworkPacketsIn
metrics of the current instance during the look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the look-back
* period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better disk
* IOPS performance. This is identified by analyzing the DiskReadOps
and DiskWriteOps
* metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be sized
* down while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the look-back
* period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration doesn't meet
* the performance requirements of your workload and there is an alternative instance type that provides better disk
* throughput performance. This is identified by analyzing the DiskReadBytes
and
* DiskWriteBytes
metrics of the current instance during the look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. For * more information about EBS volume metrics, see Amazon CloudWatch metrics * for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
** Finding reason codes for instances include: *
*
* CPUOverprovisioned
— The instance’s 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 instance during the look-back period.
*
* CPUUnderprovisioned
— The instance’s CPU configuration doesn't meet the performance
* requirements of your workload and there is an alternative instance type that provides better CPU
* performance. This is identified by analyzing the CPUUtilization
metric of the current
* instance during the look-back period.
*
* MemoryOverprovisioned
— The instance’s memory configuration can be sized down while
* still meeting the performance requirements of your workload. This is identified by analyzing the memory
* utilization metric of the current instance during the look-back period.
*
* MemoryUnderprovisioned
— The instance’s memory configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* memory performance. This is identified by analyzing the memory utilization metric of the current instance
* during the look-back period.
*
* Memory utilization is analyzed only for resources that have the unified CloudWatch agent installed on
* them. For more information, see Enabling memory
* utilization with the Amazon CloudWatch Agent in the Compute Optimizer User Guide. On Linux
* instances, Compute Optimizer analyses the mem_used_percent
metric in the CWAgent
* namespace, or the legacy MemoryUtilization
metric in the System/Linux
namespace.
* On Windows instances, Compute Optimizer analyses the Memory % Committed Bytes In Use
metric
* in the CWAgent
namespace.
*
* EBSThroughputOverprovisioned
— The instance’s EBS throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the VolumeReadBytes
and VolumeWriteBytes
metrics of EBS volumes
* attached to the current instance during the look-back period.
*
* EBSThroughputUnderprovisioned
— The instance’s EBS throughput configuration doesn't
* meet the performance requirements of your workload and there is an alternative instance type that provides
* better EBS throughput performance. This is identified by analyzing the VolumeReadBytes
and
* VolumeWriteBytes
metrics of EBS volumes attached to the current instance during the look-back
* period.
*
* EBSIOPSOverprovisioned
— The instance’s EBS IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* VolumeReadOps
and VolumeWriteOps
metric of EBS volumes attached to the current
* instance during the look-back period.
*
* EBSIOPSUnderprovisioned
— The instance’s EBS IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* EBS IOPS performance. This is identified by analyzing the VolumeReadOps
and
* VolumeWriteOps
metric of EBS volumes attached to the current instance during the look-back
* period.
*
* NetworkBandwidthOverprovisioned
— The instance’s network bandwidth configuration can
* be sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the NetworkIn
and NetworkOut
metrics of the current instance during
* the look-back period.
*
* NetworkBandwidthUnderprovisioned
— The instance’s network bandwidth configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better network bandwidth performance. This is identified by analyzing the NetworkIn
* and NetworkOut
metrics of the current instance during the look-back period. This finding
* reason happens when the NetworkIn
or NetworkOut
performance of an instance is
* impacted.
*
* NetworkPPSOverprovisioned
— The instance’s network PPS (packets per second)
* configuration can be sized down while still meeting the performance requirements of your workload. This is
* identified by analyzing the NetworkPacketsIn
and NetworkPacketsIn
metrics of the
* current instance during the look-back period.
*
* NetworkPPSUnderprovisioned
— The instance’s network PPS (packets per second)
* configuration doesn't meet the performance requirements of your workload and there is an alternative
* instance type that provides better network PPS performance. This is identified by analyzing the
* NetworkPacketsIn
and NetworkPacketsIn
metrics of the current instance during the
* look-back period.
*
* DiskIOPSOverprovisioned
— The instance’s disk IOPS configuration can be sized down
* while still meeting the performance requirements of your workload. This is identified by analyzing the
* DiskReadOps
and DiskWriteOps
metrics of the current instance during the
* look-back period.
*
* DiskIOPSUnderprovisioned
— The instance’s disk IOPS configuration doesn't meet the
* performance requirements of your workload and there is an alternative instance type that provides better
* disk IOPS performance. This is identified by analyzing the DiskReadOps
and
* DiskWriteOps
metrics of the current instance during the look-back period.
*
* DiskThroughputOverprovisioned
— The instance’s disk throughput configuration can be
* sized down while still meeting the performance requirements of your workload. This is identified by
* analyzing the DiskReadBytes
and DiskWriteBytes
metrics of the current instance
* during the look-back period.
*
* DiskThroughputUnderprovisioned
— The instance’s disk throughput configuration
* doesn't meet the performance requirements of your workload and there is an alternative instance type that
* provides better disk throughput performance. This is identified by analyzing the
* DiskReadBytes
and DiskWriteBytes
metrics of the current instance during the
* look-back period.
*
* For more information about instance metrics, see List the * available CloudWatch metrics for your instances in the Amazon Elastic Compute Cloud User Guide. * For more information about EBS volume metrics, see Amazon CloudWatch * metrics for Amazon EBS in the Amazon Elastic Compute Cloud User Guide. *
* @return Returns a reference to this object so that method calls can be chained together. * @see InstanceRecommendationFindingReasonCode */ public InstanceRecommendation withFindingReasonCodes(InstanceRecommendationFindingReasonCode... findingReasonCodes) { java.util.ArrayList* An array of objects that describe the utilization metrics of the instance. *
* * @return An array of objects that describe the utilization metrics of the instance. */ public java.util.List* An array of objects that describe the utilization metrics of the instance. *
* * @param utilizationMetrics * An array of objects that describe the utilization metrics of the instance. */ public void setUtilizationMetrics(java.util.Collection* An array of objects that describe the utilization metrics of the instance. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setUtilizationMetrics(java.util.Collection)} or {@link #withUtilizationMetrics(java.util.Collection)} if * you want to override the existing values. *
* * @param utilizationMetrics * An array of objects that describe the utilization metrics of the instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withUtilizationMetrics(UtilizationMetric... utilizationMetrics) { if (this.utilizationMetrics == null) { setUtilizationMetrics(new java.util.ArrayList* An array of objects that describe the utilization metrics of the instance. *
* * @param utilizationMetrics * An array of objects that describe the utilization metrics of the instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withUtilizationMetrics(java.util.Collection* The number of days for which utilization metrics were analyzed for the instance. *
* * @param lookBackPeriodInDays * The number of days for which utilization metrics were analyzed for the instance. */ public void setLookBackPeriodInDays(Double lookBackPeriodInDays) { this.lookBackPeriodInDays = lookBackPeriodInDays; } /** ** The number of days for which utilization metrics were analyzed for the instance. *
* * @return The number of days for which utilization metrics were analyzed for the instance. */ public Double getLookBackPeriodInDays() { return this.lookBackPeriodInDays; } /** ** The number of days for which utilization metrics were analyzed for the instance. *
* * @param lookBackPeriodInDays * The number of days for which utilization metrics were analyzed for the instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withLookBackPeriodInDays(Double lookBackPeriodInDays) { setLookBackPeriodInDays(lookBackPeriodInDays); return this; } /** ** An array of objects that describe the recommendation options for the instance. *
* * @return An array of objects that describe the recommendation options for the instance. */ public java.util.List* An array of objects that describe the recommendation options for the instance. *
* * @param recommendationOptions * An array of objects that describe the recommendation options for the instance. */ public void setRecommendationOptions(java.util.Collection* An array of objects that describe the recommendation options for the instance. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setRecommendationOptions(java.util.Collection)} or * {@link #withRecommendationOptions(java.util.Collection)} if you want to override the existing values. *
* * @param recommendationOptions * An array of objects that describe the recommendation options for the instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withRecommendationOptions(InstanceRecommendationOption... recommendationOptions) { if (this.recommendationOptions == null) { setRecommendationOptions(new java.util.ArrayList* An array of objects that describe the recommendation options for the instance. *
* * @param recommendationOptions * An array of objects that describe the recommendation options for the instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withRecommendationOptions(java.util.Collection* An array of objects that describe the source resource of the recommendation. *
* * @return An array of objects that describe the source resource of the recommendation. */ public java.util.List* An array of objects that describe the source resource of the recommendation. *
* * @param recommendationSources * An array of objects that describe the source resource of the recommendation. */ public void setRecommendationSources(java.util.Collection* An array of objects that describe the source resource of the recommendation. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setRecommendationSources(java.util.Collection)} or * {@link #withRecommendationSources(java.util.Collection)} if you want to override the existing values. *
* * @param recommendationSources * An array of objects that describe the source resource of the recommendation. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withRecommendationSources(RecommendationSource... recommendationSources) { if (this.recommendationSources == null) { setRecommendationSources(new java.util.ArrayList* An array of objects that describe the source resource of the recommendation. *
* * @param recommendationSources * An array of objects that describe the source resource of the recommendation. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withRecommendationSources(java.util.Collection* The timestamp of when the instance recommendation was last generated. *
* * @param lastRefreshTimestamp * The timestamp of when the instance recommendation was last generated. */ public void setLastRefreshTimestamp(java.util.Date lastRefreshTimestamp) { this.lastRefreshTimestamp = lastRefreshTimestamp; } /** ** The timestamp of when the instance recommendation was last generated. *
* * @return The timestamp of when the instance recommendation was last generated. */ public java.util.Date getLastRefreshTimestamp() { return this.lastRefreshTimestamp; } /** ** The timestamp of when the instance recommendation was last generated. *
* * @param lastRefreshTimestamp * The timestamp of when the instance recommendation was last generated. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withLastRefreshTimestamp(java.util.Date lastRefreshTimestamp) { setLastRefreshTimestamp(lastRefreshTimestamp); return this; } /** ** The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, the * more likely the current instance cannot meet the performance requirements of its workload. *
* * @param currentPerformanceRisk * The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, * the more likely the current instance cannot meet the performance requirements of its workload. * @see CurrentPerformanceRisk */ public void setCurrentPerformanceRisk(String currentPerformanceRisk) { this.currentPerformanceRisk = currentPerformanceRisk; } /** ** The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, the * more likely the current instance cannot meet the performance requirements of its workload. *
* * @return The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, * the more likely the current instance cannot meet the performance requirements of its workload. * @see CurrentPerformanceRisk */ public String getCurrentPerformanceRisk() { return this.currentPerformanceRisk; } /** ** The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, the * more likely the current instance cannot meet the performance requirements of its workload. *
* * @param currentPerformanceRisk * The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, * the more likely the current instance cannot meet the performance requirements of its workload. * @return Returns a reference to this object so that method calls can be chained together. * @see CurrentPerformanceRisk */ public InstanceRecommendation withCurrentPerformanceRisk(String currentPerformanceRisk) { setCurrentPerformanceRisk(currentPerformanceRisk); return this; } /** ** The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, the * more likely the current instance cannot meet the performance requirements of its workload. *
* * @param currentPerformanceRisk * The risk of the current instance not meeting the performance needs of its workloads. The higher the risk, * the more likely the current instance cannot meet the performance requirements of its workload. * @return Returns a reference to this object so that method calls can be chained together. * @see CurrentPerformanceRisk */ public InstanceRecommendation withCurrentPerformanceRisk(CurrentPerformanceRisk currentPerformanceRisk) { this.currentPerformanceRisk = currentPerformanceRisk.toString(); return this; } /** ** An object that describes the effective recommendation preferences for the instance. *
* * @param effectiveRecommendationPreferences * An object that describes the effective recommendation preferences for the instance. */ public void setEffectiveRecommendationPreferences(EffectiveRecommendationPreferences effectiveRecommendationPreferences) { this.effectiveRecommendationPreferences = effectiveRecommendationPreferences; } /** ** An object that describes the effective recommendation preferences for the instance. *
* * @return An object that describes the effective recommendation preferences for the instance. */ public EffectiveRecommendationPreferences getEffectiveRecommendationPreferences() { return this.effectiveRecommendationPreferences; } /** ** An object that describes the effective recommendation preferences for the instance. *
* * @param effectiveRecommendationPreferences * An object that describes the effective recommendation preferences for the instance. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withEffectiveRecommendationPreferences(EffectiveRecommendationPreferences effectiveRecommendationPreferences) { setEffectiveRecommendationPreferences(effectiveRecommendationPreferences); return this; } /** ** The applications that might be running on the instance as inferred by Compute Optimizer. *
** Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* The applications that might be running on the instance as inferred by Compute Optimizer. *
** Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* The applications that might be running on the instance as inferred by Compute Optimizer. *
** Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setInferredWorkloadTypes(java.util.Collection)} or * {@link #withInferredWorkloadTypes(java.util.Collection)} if you want to override the existing values. *
* * @param inferredWorkloadTypes * The applications that might be running on the instance as inferred by Compute Optimizer. ** Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* The applications that might be running on the instance as inferred by Compute Optimizer. *
** Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* The applications that might be running on the instance as inferred by Compute Optimizer. *
** Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* Compute Optimizer can infer if one of the following applications might be running on the instance: *
*
* AmazonEmr
- Infers that Amazon EMR might be running on the instance.
*
* ApacheCassandra
- Infers that Apache Cassandra might be running on the instance.
*
* ApacheHadoop
- Infers that Apache Hadoop might be running on the instance.
*
* Memcached
- Infers that Memcached might be running on the instance.
*
* NGINX
- Infers that NGINX might be running on the instance.
*
* PostgreSql
- Infers that PostgreSQL might be running on the instance.
*
* Redis
- Infers that Redis might be running on the instance.
*
* Kafka
- Infers that Kafka might be running on the instance.
*
* SQLServer
- Infers that SQLServer might be running on the instance.
*
* The state of the instance when the recommendation was generated. *
* * @param instanceState * The state of the instance when the recommendation was generated. * @see InstanceState */ public void setInstanceState(String instanceState) { this.instanceState = instanceState; } /** ** The state of the instance when the recommendation was generated. *
* * @return The state of the instance when the recommendation was generated. * @see InstanceState */ public String getInstanceState() { return this.instanceState; } /** ** The state of the instance when the recommendation was generated. *
* * @param instanceState * The state of the instance when the recommendation was generated. * @return Returns a reference to this object so that method calls can be chained together. * @see InstanceState */ public InstanceRecommendation withInstanceState(String instanceState) { setInstanceState(instanceState); return this; } /** ** The state of the instance when the recommendation was generated. *
* * @param instanceState * The state of the instance when the recommendation was generated. * @return Returns a reference to this object so that method calls can be chained together. * @see InstanceState */ public InstanceRecommendation withInstanceState(InstanceState instanceState) { this.instanceState = instanceState.toString(); return this; } /** ** A list of tags assigned to your Amazon EC2 instance recommendations. *
* * @return A list of tags assigned to your Amazon EC2 instance recommendations. */ public java.util.List* A list of tags assigned to your Amazon EC2 instance recommendations. *
* * @param tags * A list of tags assigned to your Amazon EC2 instance recommendations. */ public void setTags(java.util.Collection* A list of tags assigned to your Amazon EC2 instance recommendations. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *
* * @param tags * A list of tags assigned to your Amazon EC2 instance recommendations. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withTags(Tag... tags) { if (this.tags == null) { setTags(new java.util.ArrayList* A list of tags assigned to your Amazon EC2 instance recommendations. *
* * @param tags * A list of tags assigned to your Amazon EC2 instance recommendations. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withTags(java.util.Collection* An object that describes Compute Optimizer's integration status with your external metrics provider. *
* * @param externalMetricStatus * An object that describes Compute Optimizer's integration status with your external metrics provider. */ public void setExternalMetricStatus(ExternalMetricStatus externalMetricStatus) { this.externalMetricStatus = externalMetricStatus; } /** ** An object that describes Compute Optimizer's integration status with your external metrics provider. *
* * @return An object that describes Compute Optimizer's integration status with your external metrics provider. */ public ExternalMetricStatus getExternalMetricStatus() { return this.externalMetricStatus; } /** ** An object that describes Compute Optimizer's integration status with your external metrics provider. *
* * @param externalMetricStatus * An object that describes Compute Optimizer's integration status with your external metrics provider. * @return Returns a reference to this object so that method calls can be chained together. */ public InstanceRecommendation withExternalMetricStatus(ExternalMetricStatus externalMetricStatus) { setExternalMetricStatus(externalMetricStatus); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getInstanceArn() != null) sb.append("InstanceArn: ").append(getInstanceArn()).append(","); if (getAccountId() != null) sb.append("AccountId: ").append(getAccountId()).append(","); if (getInstanceName() != null) sb.append("InstanceName: ").append(getInstanceName()).append(","); if (getCurrentInstanceType() != null) sb.append("CurrentInstanceType: ").append(getCurrentInstanceType()).append(","); if (getFinding() != null) sb.append("Finding: ").append(getFinding()).append(","); if (getFindingReasonCodes() != null) sb.append("FindingReasonCodes: ").append(getFindingReasonCodes()).append(","); if (getUtilizationMetrics() != null) sb.append("UtilizationMetrics: ").append(getUtilizationMetrics()).append(","); if (getLookBackPeriodInDays() != null) sb.append("LookBackPeriodInDays: ").append(getLookBackPeriodInDays()).append(","); if (getRecommendationOptions() != null) sb.append("RecommendationOptions: ").append(getRecommendationOptions()).append(","); if (getRecommendationSources() != null) sb.append("RecommendationSources: ").append(getRecommendationSources()).append(","); if (getLastRefreshTimestamp() != null) sb.append("LastRefreshTimestamp: ").append(getLastRefreshTimestamp()).append(","); if (getCurrentPerformanceRisk() != null) sb.append("CurrentPerformanceRisk: ").append(getCurrentPerformanceRisk()).append(","); if (getEffectiveRecommendationPreferences() != null) sb.append("EffectiveRecommendationPreferences: ").append(getEffectiveRecommendationPreferences()).append(","); if (getInferredWorkloadTypes() != null) sb.append("InferredWorkloadTypes: ").append(getInferredWorkloadTypes()).append(","); if (getInstanceState() != null) sb.append("InstanceState: ").append(getInstanceState()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()).append(","); if (getExternalMetricStatus() != null) sb.append("ExternalMetricStatus: ").append(getExternalMetricStatus()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof InstanceRecommendation == false) return false; InstanceRecommendation other = (InstanceRecommendation) obj; if (other.getInstanceArn() == null ^ this.getInstanceArn() == null) return false; if (other.getInstanceArn() != null && other.getInstanceArn().equals(this.getInstanceArn()) == false) return false; if (other.getAccountId() == null ^ this.getAccountId() == null) return false; if (other.getAccountId() != null && other.getAccountId().equals(this.getAccountId()) == false) return false; if (other.getInstanceName() == null ^ this.getInstanceName() == null) return false; if (other.getInstanceName() != null && other.getInstanceName().equals(this.getInstanceName()) == false) return false; if (other.getCurrentInstanceType() == null ^ this.getCurrentInstanceType() == null) return false; if (other.getCurrentInstanceType() != null && other.getCurrentInstanceType().equals(this.getCurrentInstanceType()) == false) return false; if (other.getFinding() == null ^ this.getFinding() == null) return false; if (other.getFinding() != null && other.getFinding().equals(this.getFinding()) == false) return false; if (other.getFindingReasonCodes() == null ^ this.getFindingReasonCodes() == null) return false; if (other.getFindingReasonCodes() != null && other.getFindingReasonCodes().equals(this.getFindingReasonCodes()) == false) return false; if (other.getUtilizationMetrics() == null ^ this.getUtilizationMetrics() == null) return false; if (other.getUtilizationMetrics() != null && other.getUtilizationMetrics().equals(this.getUtilizationMetrics()) == false) return false; if (other.getLookBackPeriodInDays() == null ^ this.getLookBackPeriodInDays() == null) return false; if (other.getLookBackPeriodInDays() != null && other.getLookBackPeriodInDays().equals(this.getLookBackPeriodInDays()) == false) return false; if (other.getRecommendationOptions() == null ^ this.getRecommendationOptions() == null) return false; if (other.getRecommendationOptions() != null && other.getRecommendationOptions().equals(this.getRecommendationOptions()) == false) return false; if (other.getRecommendationSources() == null ^ this.getRecommendationSources() == null) return false; if (other.getRecommendationSources() != null && other.getRecommendationSources().equals(this.getRecommendationSources()) == false) return false; if (other.getLastRefreshTimestamp() == null ^ this.getLastRefreshTimestamp() == null) return false; if (other.getLastRefreshTimestamp() != null && other.getLastRefreshTimestamp().equals(this.getLastRefreshTimestamp()) == false) return false; if (other.getCurrentPerformanceRisk() == null ^ this.getCurrentPerformanceRisk() == null) return false; if (other.getCurrentPerformanceRisk() != null && other.getCurrentPerformanceRisk().equals(this.getCurrentPerformanceRisk()) == false) return false; if (other.getEffectiveRecommendationPreferences() == null ^ this.getEffectiveRecommendationPreferences() == null) return false; if (other.getEffectiveRecommendationPreferences() != null && other.getEffectiveRecommendationPreferences().equals(this.getEffectiveRecommendationPreferences()) == false) return false; if (other.getInferredWorkloadTypes() == null ^ this.getInferredWorkloadTypes() == null) return false; if (other.getInferredWorkloadTypes() != null && other.getInferredWorkloadTypes().equals(this.getInferredWorkloadTypes()) == false) return false; if (other.getInstanceState() == null ^ this.getInstanceState() == null) return false; if (other.getInstanceState() != null && other.getInstanceState().equals(this.getInstanceState()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getExternalMetricStatus() == null ^ this.getExternalMetricStatus() == null) return false; if (other.getExternalMetricStatus() != null && other.getExternalMetricStatus().equals(this.getExternalMetricStatus()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getInstanceArn() == null) ? 0 : getInstanceArn().hashCode()); hashCode = prime * hashCode + ((getAccountId() == null) ? 0 : getAccountId().hashCode()); hashCode = prime * hashCode + ((getInstanceName() == null) ? 0 : getInstanceName().hashCode()); hashCode = prime * hashCode + ((getCurrentInstanceType() == null) ? 0 : getCurrentInstanceType().hashCode()); hashCode = prime * hashCode + ((getFinding() == null) ? 0 : getFinding().hashCode()); hashCode = prime * hashCode + ((getFindingReasonCodes() == null) ? 0 : getFindingReasonCodes().hashCode()); hashCode = prime * hashCode + ((getUtilizationMetrics() == null) ? 0 : getUtilizationMetrics().hashCode()); hashCode = prime * hashCode + ((getLookBackPeriodInDays() == null) ? 0 : getLookBackPeriodInDays().hashCode()); hashCode = prime * hashCode + ((getRecommendationOptions() == null) ? 0 : getRecommendationOptions().hashCode()); hashCode = prime * hashCode + ((getRecommendationSources() == null) ? 0 : getRecommendationSources().hashCode()); hashCode = prime * hashCode + ((getLastRefreshTimestamp() == null) ? 0 : getLastRefreshTimestamp().hashCode()); hashCode = prime * hashCode + ((getCurrentPerformanceRisk() == null) ? 0 : getCurrentPerformanceRisk().hashCode()); hashCode = prime * hashCode + ((getEffectiveRecommendationPreferences() == null) ? 0 : getEffectiveRecommendationPreferences().hashCode()); hashCode = prime * hashCode + ((getInferredWorkloadTypes() == null) ? 0 : getInferredWorkloadTypes().hashCode()); hashCode = prime * hashCode + ((getInstanceState() == null) ? 0 : getInstanceState().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getExternalMetricStatus() == null) ? 0 : getExternalMetricStatus().hashCode()); return hashCode; } @Override public InstanceRecommendation clone() { try { return (InstanceRecommendation) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.computeoptimizer.model.transform.InstanceRecommendationMarshaller.getInstance().marshall(this, protocolMarshaller); } }