class Aws::ComputeOptimizer::Types::Filter

Describes a filter that returns a more specific list of recommendations. Use this filter with the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions.

You can use `EBSFilter` with the GetEBSVolumeRecommendations action, `LambdaFunctionRecommendationFilter` with the GetLambdaFunctionRecommendations action, and `JobFilter` with the DescribeRecommendationExportJobs action.

@note When making an API call, you may pass Filter

data as a hash:

    {
      name: "Finding", # accepts Finding, FindingReasonCodes, RecommendationSourceType
      values: ["FilterValue"],
    }

@!attribute [rw] name

The name of the filter.

Specify `Finding` to return recommendations with a specific finding
classification (for example, `Underprovisioned`).

Specify `RecommendationSourceType` to return recommendations of a
specific resource type (for example, `Ec2Instance`).

Specify `FindingReasonCodes` to return recommendations with a
specific finding reason code (for example, `CPUUnderprovisioned`).
@return [String]

@!attribute [rw] values

The value of the filter.

The valid values for this parameter are as follows, depending on
what you specify for the `name` parameter and the resource type that
you wish to filter results for:

* Specify `Optimized` or `NotOptimized` if you specify the `name`
  parameter as `Finding` and you want to filter results for Auto
  Scaling groups.

* Specify `Underprovisioned`, `Overprovisioned`, or `Optimized` if
  you specify the `name` parameter as `Finding` and you want to
  filter results for EC2 instances.

* Specify `Ec2Instance` or `AutoScalingGroup` if you specify the
  `name` parameter as `RecommendationSourceType`.

* Specify one of the following options if you specify the `name`
  parameter as `FindingReasonCodes`\:

  * <b> <code>CPUOverprovisioned</code> </b> — The instance’s CPU
    configuration can be sized down while still meeting the
    performance requirements of your workload.

  * <b> <code>CPUUnderprovisioned</code> </b> — 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.

  * <b> <code>MemoryOverprovisioned</code> </b> — The instance’s
    memory configuration can be sized down while still meeting the
    performance requirements of your workload.

  * <b> <code>MemoryUnderprovisioned</code> </b> — 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.

  * <b> <code>EBSThroughputOverprovisioned</code> </b> — The
    instance’s EBS throughput configuration can be sized down while
    still meeting the performance requirements of your workload.

  * <b> <code>EBSThroughputUnderprovisioned</code> </b> — 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.

  * <b> <code>EBSIOPSOverprovisioned</code> </b> — The instance’s
    EBS IOPS configuration can be sized down while still meeting the
    performance requirements of your workload.

  * <b> <code>EBSIOPSUnderprovisioned</code> </b> — 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.

  * <b> <code>NetworkBandwidthOverprovisioned</code> </b> — The
    instance’s network bandwidth configuration can be sized down
    while still meeting the performance requirements of your
    workload.

  * <b> <code>NetworkBandwidthUnderprovisioned</code> </b> — 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 finding reason happens when the `NetworkIn` or
    `NetworkOut` performance of an instance is impacted.

  * <b> <code>NetworkPPSOverprovisioned</code> </b> — The instance’s
    network PPS (packets per second) configuration can be sized down
    while still meeting the performance requirements of your
    workload.

  * <b> <code>NetworkPPSUnderprovisioned</code> </b> — 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.

  * <b> <code>DiskIOPSOverprovisioned</code> </b> — The instance’s
    disk IOPS configuration can be sized down while still meeting
    the performance requirements of your workload.

  * <b> <code>DiskIOPSUnderprovisioned</code> </b> — 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.

  * <b> <code>DiskThroughputOverprovisioned</code> </b> — The
    instance’s disk throughput configuration can be sized down while
    still meeting the performance requirements of your workload.

  * <b> <code>DiskThroughputUnderprovisioned</code> </b> — 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.
@return [Array<String>]

@see docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/Filter AWS API Documentation

Constants

SENSITIVE