aws-sdk-computeoptimizer 1.26.0 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -143,9 +143,48 @@ module Aws::ComputeOptimizer
143
143
  #
144
144
  # @!attribute [rw] last_refresh_timestamp
145
145
  # The timestamp of when the Auto Scaling group recommendation was last
146
- # refreshed.
146
+ # generated.
147
147
  # @return [Time]
148
148
  #
149
+ # @!attribute [rw] current_performance_risk
150
+ # The risk of the current Auto Scaling group not meeting the
151
+ # performance needs of its workloads. The higher the risk, the more
152
+ # likely the current Auto Scaling group configuration has insufficient
153
+ # capacity and cannot meet workload requirements.
154
+ # @return [String]
155
+ #
156
+ # @!attribute [rw] effective_recommendation_preferences
157
+ # An object that describes the effective recommendation preferences
158
+ # for the Auto Scaling group.
159
+ # @return [Types::EffectiveRecommendationPreferences]
160
+ #
161
+ # @!attribute [rw] inferred_workload_types
162
+ # The applications that might be running on the instances in the Auto
163
+ # Scaling group as inferred by Compute Optimizer.
164
+ #
165
+ # Compute Optimizer can infer if one of the following applications
166
+ # might be running on the instances:
167
+ #
168
+ # * `AmazonEmr` - Infers that Amazon EMR might be running on the
169
+ # instances.
170
+ #
171
+ # * `ApacheCassandra` - Infers that Apache Cassandra might be running
172
+ # on the instances.
173
+ #
174
+ # * `ApacheHadoop` - Infers that Apache Hadoop might be running on the
175
+ # instances.
176
+ #
177
+ # * `Memcached` - Infers that Memcached might be running on the
178
+ # instances.
179
+ #
180
+ # * `NGINX` - Infers that NGINX might be running on the instances.
181
+ #
182
+ # * `PostgreSql` - Infers that PostgreSQL might be running on the
183
+ # instances.
184
+ #
185
+ # * `Redis` - Infers that Redis might be running on the instances.
186
+ # @return [Array<String>]
187
+ #
149
188
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/AutoScalingGroupRecommendation AWS API Documentation
150
189
  #
151
190
  class AutoScalingGroupRecommendation < Struct.new(
@@ -157,7 +196,10 @@ module Aws::ComputeOptimizer
157
196
  :look_back_period_in_days,
158
197
  :current_configuration,
159
198
  :recommendation_options,
160
- :last_refresh_timestamp)
199
+ :last_refresh_timestamp,
200
+ :current_performance_risk,
201
+ :effective_recommendation_preferences,
202
+ :inferred_workload_types)
161
203
  SENSITIVE = []
162
204
  include Aws::Structure
163
205
  end
@@ -212,17 +254,134 @@ module Aws::ComputeOptimizer
212
254
  # The top recommendation option is ranked as `1`.
213
255
  # @return [Integer]
214
256
  #
257
+ # @!attribute [rw] savings_opportunity
258
+ # An object that describes the savings opportunity for the Auto
259
+ # Scaling group recommendation option. Savings opportunity includes
260
+ # the estimated monthly savings amount and percentage.
261
+ # @return [Types::SavingsOpportunity]
262
+ #
263
+ # @!attribute [rw] migration_effort
264
+ # The level of effort required to migrate from the current instance
265
+ # type to the recommended instance type.
266
+ #
267
+ # For example, the migration effort is `Low` if Amazon EMR is the
268
+ # inferred workload type and an Amazon Web Services Graviton instance
269
+ # type is recommended. The migration effort is `Medium` if a workload
270
+ # type couldn't be inferred but an Amazon Web Services Graviton
271
+ # instance type is recommended. The migration effort is `VeryLow` if
272
+ # both the current and recommended instance types are of the same CPU
273
+ # architecture.
274
+ # @return [String]
275
+ #
215
276
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/AutoScalingGroupRecommendationOption AWS API Documentation
216
277
  #
217
278
  class AutoScalingGroupRecommendationOption < Struct.new(
218
279
  :configuration,
219
280
  :projected_utilization_metrics,
220
281
  :performance_risk,
221
- :rank)
282
+ :rank,
283
+ :savings_opportunity,
284
+ :migration_effort)
285
+ SENSITIVE = []
286
+ include Aws::Structure
287
+ end
288
+
289
+ # Describes the performance risk ratings for a given resource type.
290
+ #
291
+ # Resources with a `high` or `medium` rating are at risk of not meeting
292
+ # the performance needs of their workloads, while resources with a `low`
293
+ # rating are performing well in their workloads.
294
+ #
295
+ # @!attribute [rw] high
296
+ # A count of the applicable resource types with a high performance
297
+ # risk rating.
298
+ # @return [Integer]
299
+ #
300
+ # @!attribute [rw] medium
301
+ # A count of the applicable resource types with a medium performance
302
+ # risk rating.
303
+ # @return [Integer]
304
+ #
305
+ # @!attribute [rw] low
306
+ # A count of the applicable resource types with a low performance risk
307
+ # rating.
308
+ # @return [Integer]
309
+ #
310
+ # @!attribute [rw] very_low
311
+ # A count of the applicable resource types with a very low performance
312
+ # risk rating.
313
+ # @return [Integer]
314
+ #
315
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/CurrentPerformanceRiskRatings AWS API Documentation
316
+ #
317
+ class CurrentPerformanceRiskRatings < Struct.new(
318
+ :high,
319
+ :medium,
320
+ :low,
321
+ :very_low)
322
+ SENSITIVE = []
323
+ include Aws::Structure
324
+ end
325
+
326
+ # @note When making an API call, you may pass DeleteRecommendationPreferencesRequest
327
+ # data as a hash:
328
+ #
329
+ # {
330
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable
331
+ # scope: {
332
+ # name: "Organization", # accepts Organization, AccountId, ResourceArn
333
+ # value: "ScopeValue",
334
+ # },
335
+ # recommendation_preference_names: ["EnhancedInfrastructureMetrics"], # required, accepts EnhancedInfrastructureMetrics, InferredWorkloadTypes
336
+ # }
337
+ #
338
+ # @!attribute [rw] resource_type
339
+ # The target resource type of the recommendation preference to delete.
340
+ #
341
+ # The `Ec2Instance` option encompasses standalone instances and
342
+ # instances that are part of Auto Scaling groups. The
343
+ # `AutoScalingGroup` option encompasses only instances that are part
344
+ # of an Auto Scaling group.
345
+ # @return [String]
346
+ #
347
+ # @!attribute [rw] scope
348
+ # An object that describes the scope of the recommendation preference
349
+ # to delete.
350
+ #
351
+ # You can delete recommendation preferences that are created at the
352
+ # organization level (for management accounts of an organization
353
+ # only), account level, and resource level. For more information, see
354
+ # [Activating enhanced infrastructure metrics][1] in the *Compute
355
+ # Optimizer User Guide*.
356
+ #
357
+ #
358
+ #
359
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
360
+ # @return [Types::Scope]
361
+ #
362
+ # @!attribute [rw] recommendation_preference_names
363
+ # The name of the recommendation preference to delete.
364
+ #
365
+ # Enhanced infrastructure metrics (`EnhancedInfrastructureMetrics`) is
366
+ # the only feature that can be activated through preferences.
367
+ # Therefore, it is also the only recommendation preference that can be
368
+ # deleted.
369
+ # @return [Array<String>]
370
+ #
371
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/DeleteRecommendationPreferencesRequest AWS API Documentation
372
+ #
373
+ class DeleteRecommendationPreferencesRequest < Struct.new(
374
+ :resource_type,
375
+ :scope,
376
+ :recommendation_preference_names)
222
377
  SENSITIVE = []
223
378
  include Aws::Structure
224
379
  end
225
380
 
381
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/DeleteRecommendationPreferencesResponse AWS API Documentation
382
+ #
383
+ class DeleteRecommendationPreferencesResponse < Aws::EmptyStructure; end
384
+
226
385
  # @note When making an API call, you may pass DescribeRecommendationExportJobsRequest
227
386
  # data as a hash:
228
387
  #
@@ -404,6 +563,64 @@ module Aws::ComputeOptimizer
404
563
  include Aws::Structure
405
564
  end
406
565
 
566
+ # Describes the effective recommendation preferences for a resource.
567
+ #
568
+ # @!attribute [rw] cpu_vendor_architectures
569
+ # Describes the CPU vendor and architecture for an instance or Auto
570
+ # Scaling group recommendations.
571
+ #
572
+ # For example, when you specify `AWS_ARM64` with:
573
+ #
574
+ # * A GetEC2InstanceRecommendations or
575
+ # GetAutoScalingGroupRecommendations request, Compute Optimizer
576
+ # returns recommendations that consist of Graviton2 instance types
577
+ # only.
578
+ #
579
+ # * A GetEC2RecommendationProjectedMetrics request, Compute Optimizer
580
+ # returns projected utilization metrics for Graviton2 instance type
581
+ # recommendations only.
582
+ #
583
+ # * A ExportEC2InstanceRecommendations or
584
+ # ExportAutoScalingGroupRecommendations request, Compute Optimizer
585
+ # exports recommendations that consist of Graviton2 instance types
586
+ # only.
587
+ # @return [Array<String>]
588
+ #
589
+ # @!attribute [rw] enhanced_infrastructure_metrics
590
+ # Describes the activation status of the enhanced infrastructure
591
+ # metrics preference.
592
+ #
593
+ # A status of `Active` confirms that the preference is applied in the
594
+ # latest recommendation refresh, and a status of `Inactive` confirms
595
+ # that it's not yet applied to recommendations.
596
+ #
597
+ # For more information, see [Enhanced infrastructure metrics][1] in
598
+ # the *Compute Optimizer User Guide*.
599
+ #
600
+ #
601
+ #
602
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
603
+ # @return [String]
604
+ #
605
+ # @!attribute [rw] inferred_workload_types
606
+ # Describes the activation status of the inferred workload types
607
+ # preference.
608
+ #
609
+ # A status of `Active` confirms that the preference is applied in the
610
+ # latest recommendation refresh. A status of `Inactive` confirms that
611
+ # it's not yet applied to recommendations.
612
+ # @return [String]
613
+ #
614
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/EffectiveRecommendationPreferences AWS API Documentation
615
+ #
616
+ class EffectiveRecommendationPreferences < Struct.new(
617
+ :cpu_vendor_architectures,
618
+ :enhanced_infrastructure_metrics,
619
+ :inferred_workload_types)
620
+ SENSITIVE = []
621
+ include Aws::Structure
622
+ end
623
+
407
624
  # Describes a filter that returns a more specific list of account
408
625
  # enrollment statuses. Use this filter with the
409
626
  # GetEnrollmentStatusesForOrganization action.
@@ -438,6 +655,34 @@ module Aws::ComputeOptimizer
438
655
  include Aws::Structure
439
656
  end
440
657
 
658
+ # Describes the estimated monthly savings amount possible, based on
659
+ # On-Demand instance pricing, by adopting Compute Optimizer
660
+ # recommendations for a given resource.
661
+ #
662
+ # For more information, see [Estimated monthly savings and savings
663
+ # opportunities][1] in the *Compute Optimizer User Guide*.
664
+ #
665
+ #
666
+ #
667
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/view-ec2-recommendations.html#ec2-savings-calculation
668
+ #
669
+ # @!attribute [rw] currency
670
+ # The currency of the estimated monthly savings.
671
+ # @return [String]
672
+ #
673
+ # @!attribute [rw] value
674
+ # The value of the estimated monthly savings.
675
+ # @return [Float]
676
+ #
677
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/EstimatedMonthlySavings AWS API Documentation
678
+ #
679
+ class EstimatedMonthlySavings < Struct.new(
680
+ :currency,
681
+ :value)
682
+ SENSITIVE = []
683
+ include Aws::Structure
684
+ end
685
+
441
686
  # @note When making an API call, you may pass ExportAutoScalingGroupRecommendationsRequest
442
687
  # data as a hash:
443
688
  #
@@ -449,7 +694,7 @@ module Aws::ComputeOptimizer
449
694
  # values: ["FilterValue"],
450
695
  # },
451
696
  # ],
452
- # fields_to_export: ["AccountId"], # accepts AccountId, AutoScalingGroupArn, AutoScalingGroupName, Finding, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, UtilizationMetricsEbsReadOpsPerSecondMaximum, UtilizationMetricsEbsWriteOpsPerSecondMaximum, UtilizationMetricsEbsReadBytesPerSecondMaximum, UtilizationMetricsEbsWriteBytesPerSecondMaximum, UtilizationMetricsDiskReadOpsPerSecondMaximum, UtilizationMetricsDiskWriteOpsPerSecondMaximum, UtilizationMetricsDiskReadBytesPerSecondMaximum, UtilizationMetricsDiskWriteBytesPerSecondMaximum, UtilizationMetricsNetworkInBytesPerSecondMaximum, UtilizationMetricsNetworkOutBytesPerSecondMaximum, UtilizationMetricsNetworkPacketsInPerSecondMaximum, UtilizationMetricsNetworkPacketsOutPerSecondMaximum, LookbackPeriodInDays, CurrentConfigurationInstanceType, CurrentConfigurationDesiredCapacity, CurrentConfigurationMinSize, CurrentConfigurationMaxSize, CurrentOnDemandPrice, CurrentStandardOneYearNoUpfrontReservedPrice, CurrentStandardThreeYearNoUpfrontReservedPrice, CurrentVCpus, CurrentMemory, CurrentStorage, CurrentNetwork, RecommendationOptionsConfigurationInstanceType, RecommendationOptionsConfigurationDesiredCapacity, RecommendationOptionsConfigurationMinSize, RecommendationOptionsConfigurationMaxSize, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, RecommendationOptionsPerformanceRisk, RecommendationOptionsOnDemandPrice, RecommendationOptionsStandardOneYearNoUpfrontReservedPrice, RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice, RecommendationOptionsVcpus, RecommendationOptionsMemory, RecommendationOptionsStorage, RecommendationOptionsNetwork, LastRefreshTimestamp
697
+ # fields_to_export: ["AccountId"], # accepts AccountId, AutoScalingGroupArn, AutoScalingGroupName, Finding, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, UtilizationMetricsEbsReadOpsPerSecondMaximum, UtilizationMetricsEbsWriteOpsPerSecondMaximum, UtilizationMetricsEbsReadBytesPerSecondMaximum, UtilizationMetricsEbsWriteBytesPerSecondMaximum, UtilizationMetricsDiskReadOpsPerSecondMaximum, UtilizationMetricsDiskWriteOpsPerSecondMaximum, UtilizationMetricsDiskReadBytesPerSecondMaximum, UtilizationMetricsDiskWriteBytesPerSecondMaximum, UtilizationMetricsNetworkInBytesPerSecondMaximum, UtilizationMetricsNetworkOutBytesPerSecondMaximum, UtilizationMetricsNetworkPacketsInPerSecondMaximum, UtilizationMetricsNetworkPacketsOutPerSecondMaximum, LookbackPeriodInDays, CurrentConfigurationInstanceType, CurrentConfigurationDesiredCapacity, CurrentConfigurationMinSize, CurrentConfigurationMaxSize, CurrentOnDemandPrice, CurrentStandardOneYearNoUpfrontReservedPrice, CurrentStandardThreeYearNoUpfrontReservedPrice, CurrentVCpus, CurrentMemory, CurrentStorage, CurrentNetwork, RecommendationOptionsConfigurationInstanceType, RecommendationOptionsConfigurationDesiredCapacity, RecommendationOptionsConfigurationMinSize, RecommendationOptionsConfigurationMaxSize, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, RecommendationOptionsPerformanceRisk, RecommendationOptionsOnDemandPrice, RecommendationOptionsStandardOneYearNoUpfrontReservedPrice, RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice, RecommendationOptionsVcpus, RecommendationOptionsMemory, RecommendationOptionsStorage, RecommendationOptionsNetwork, LastRefreshTimestamp, CurrentPerformanceRisk, RecommendationOptionsSavingsOpportunityPercentage, RecommendationOptionsEstimatedMonthlySavingsCurrency, RecommendationOptionsEstimatedMonthlySavingsValue, EffectiveRecommendationPreferencesCpuVendorArchitectures, EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics, EffectiveRecommendationPreferencesInferredWorkloadTypes, InferredWorkloadTypes, RecommendationOptionsMigrationEffort
453
698
  # s3_destination_config: { # required
454
699
  # bucket: "DestinationBucket",
455
700
  # key_prefix: "DestinationKeyPrefix",
@@ -612,7 +857,7 @@ module Aws::ComputeOptimizer
612
857
  # values: ["FilterValue"],
613
858
  # },
614
859
  # ],
615
- # fields_to_export: ["AccountId"], # accepts AccountId, VolumeArn, Finding, UtilizationMetricsVolumeReadOpsPerSecondMaximum, UtilizationMetricsVolumeWriteOpsPerSecondMaximum, UtilizationMetricsVolumeReadBytesPerSecondMaximum, UtilizationMetricsVolumeWriteBytesPerSecondMaximum, LookbackPeriodInDays, CurrentConfigurationVolumeType, CurrentConfigurationVolumeBaselineIOPS, CurrentConfigurationVolumeBaselineThroughput, CurrentConfigurationVolumeBurstIOPS, CurrentConfigurationVolumeBurstThroughput, CurrentConfigurationVolumeSize, CurrentMonthlyPrice, RecommendationOptionsConfigurationVolumeType, RecommendationOptionsConfigurationVolumeBaselineIOPS, RecommendationOptionsConfigurationVolumeBaselineThroughput, RecommendationOptionsConfigurationVolumeBurstIOPS, RecommendationOptionsConfigurationVolumeBurstThroughput, RecommendationOptionsConfigurationVolumeSize, RecommendationOptionsMonthlyPrice, RecommendationOptionsPerformanceRisk, LastRefreshTimestamp
860
+ # fields_to_export: ["AccountId"], # accepts AccountId, VolumeArn, Finding, UtilizationMetricsVolumeReadOpsPerSecondMaximum, UtilizationMetricsVolumeWriteOpsPerSecondMaximum, UtilizationMetricsVolumeReadBytesPerSecondMaximum, UtilizationMetricsVolumeWriteBytesPerSecondMaximum, LookbackPeriodInDays, CurrentConfigurationVolumeType, CurrentConfigurationVolumeBaselineIOPS, CurrentConfigurationVolumeBaselineThroughput, CurrentConfigurationVolumeBurstIOPS, CurrentConfigurationVolumeBurstThroughput, CurrentConfigurationVolumeSize, CurrentMonthlyPrice, RecommendationOptionsConfigurationVolumeType, RecommendationOptionsConfigurationVolumeBaselineIOPS, RecommendationOptionsConfigurationVolumeBaselineThroughput, RecommendationOptionsConfigurationVolumeBurstIOPS, RecommendationOptionsConfigurationVolumeBurstThroughput, RecommendationOptionsConfigurationVolumeSize, RecommendationOptionsMonthlyPrice, RecommendationOptionsPerformanceRisk, LastRefreshTimestamp, CurrentPerformanceRisk, RecommendationOptionsSavingsOpportunityPercentage, RecommendationOptionsEstimatedMonthlySavingsCurrency, RecommendationOptionsEstimatedMonthlySavingsValue
616
861
  # s3_destination_config: { # required
617
862
  # bucket: "DestinationBucket",
618
863
  # key_prefix: "DestinationKeyPrefix",
@@ -750,7 +995,7 @@ module Aws::ComputeOptimizer
750
995
  # values: ["FilterValue"],
751
996
  # },
752
997
  # ],
753
- # fields_to_export: ["AccountId"], # accepts AccountId, InstanceArn, InstanceName, Finding, FindingReasonCodes, LookbackPeriodInDays, CurrentInstanceType, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, UtilizationMetricsEbsReadOpsPerSecondMaximum, UtilizationMetricsEbsWriteOpsPerSecondMaximum, UtilizationMetricsEbsReadBytesPerSecondMaximum, UtilizationMetricsEbsWriteBytesPerSecondMaximum, UtilizationMetricsDiskReadOpsPerSecondMaximum, UtilizationMetricsDiskWriteOpsPerSecondMaximum, UtilizationMetricsDiskReadBytesPerSecondMaximum, UtilizationMetricsDiskWriteBytesPerSecondMaximum, UtilizationMetricsNetworkInBytesPerSecondMaximum, UtilizationMetricsNetworkOutBytesPerSecondMaximum, UtilizationMetricsNetworkPacketsInPerSecondMaximum, UtilizationMetricsNetworkPacketsOutPerSecondMaximum, CurrentOnDemandPrice, CurrentStandardOneYearNoUpfrontReservedPrice, CurrentStandardThreeYearNoUpfrontReservedPrice, CurrentVCpus, CurrentMemory, CurrentStorage, CurrentNetwork, RecommendationOptionsInstanceType, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, RecommendationOptionsPlatformDifferences, RecommendationOptionsPerformanceRisk, RecommendationOptionsVcpus, RecommendationOptionsMemory, RecommendationOptionsStorage, RecommendationOptionsNetwork, RecommendationOptionsOnDemandPrice, RecommendationOptionsStandardOneYearNoUpfrontReservedPrice, RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice, RecommendationsSourcesRecommendationSourceArn, RecommendationsSourcesRecommendationSourceType, LastRefreshTimestamp
998
+ # fields_to_export: ["AccountId"], # accepts AccountId, InstanceArn, InstanceName, Finding, FindingReasonCodes, LookbackPeriodInDays, CurrentInstanceType, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, UtilizationMetricsEbsReadOpsPerSecondMaximum, UtilizationMetricsEbsWriteOpsPerSecondMaximum, UtilizationMetricsEbsReadBytesPerSecondMaximum, UtilizationMetricsEbsWriteBytesPerSecondMaximum, UtilizationMetricsDiskReadOpsPerSecondMaximum, UtilizationMetricsDiskWriteOpsPerSecondMaximum, UtilizationMetricsDiskReadBytesPerSecondMaximum, UtilizationMetricsDiskWriteBytesPerSecondMaximum, UtilizationMetricsNetworkInBytesPerSecondMaximum, UtilizationMetricsNetworkOutBytesPerSecondMaximum, UtilizationMetricsNetworkPacketsInPerSecondMaximum, UtilizationMetricsNetworkPacketsOutPerSecondMaximum, CurrentOnDemandPrice, CurrentStandardOneYearNoUpfrontReservedPrice, CurrentStandardThreeYearNoUpfrontReservedPrice, CurrentVCpus, CurrentMemory, CurrentStorage, CurrentNetwork, RecommendationOptionsInstanceType, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, RecommendationOptionsPlatformDifferences, RecommendationOptionsPerformanceRisk, RecommendationOptionsVcpus, RecommendationOptionsMemory, RecommendationOptionsStorage, RecommendationOptionsNetwork, RecommendationOptionsOnDemandPrice, RecommendationOptionsStandardOneYearNoUpfrontReservedPrice, RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice, RecommendationsSourcesRecommendationSourceArn, RecommendationsSourcesRecommendationSourceType, LastRefreshTimestamp, CurrentPerformanceRisk, RecommendationOptionsSavingsOpportunityPercentage, RecommendationOptionsEstimatedMonthlySavingsCurrency, RecommendationOptionsEstimatedMonthlySavingsValue, EffectiveRecommendationPreferencesCpuVendorArchitectures, EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics, EffectiveRecommendationPreferencesInferredWorkloadTypes, InferredWorkloadTypes, RecommendationOptionsMigrationEffort
754
999
  # s3_destination_config: { # required
755
1000
  # bucket: "DestinationBucket",
756
1001
  # key_prefix: "DestinationKeyPrefix",
@@ -802,10 +1047,10 @@ module Aws::ComputeOptimizer
802
1047
  # You must create the destination Amazon S3 bucket for your
803
1048
  # recommendations export before you create the export job. Compute
804
1049
  # Optimizer does not create the S3 bucket for you. After you create
805
- # the S3 bucket, ensure that it has the required permissions policy
806
- # policy to allow Compute Optimizer to write the export file to it. If
807
- # you plan to specify an object prefix when you create the export job,
808
- # you must include the object prefix in the that you add to the S3
1050
+ # the S3 bucket, ensure that it has the required permissions policy to
1051
+ # allow Compute Optimizer to write the export file to it. If you plan
1052
+ # to specify an object prefix when you create the export job, you must
1053
+ # include the object prefix in the policy that you add to the S3
809
1054
  # bucket. For more information, see [Amazon S3 Bucket Policy for
810
1055
  # Compute Optimizer][1] in the *Compute Optimizer User Guide*.
811
1056
  #
@@ -893,7 +1138,7 @@ module Aws::ComputeOptimizer
893
1138
  # values: ["FilterValue"],
894
1139
  # },
895
1140
  # ],
896
- # fields_to_export: ["AccountId"], # accepts AccountId, FunctionArn, FunctionVersion, Finding, FindingReasonCodes, NumberOfInvocations, UtilizationMetricsDurationMaximum, UtilizationMetricsDurationAverage, UtilizationMetricsMemoryMaximum, UtilizationMetricsMemoryAverage, LookbackPeriodInDays, CurrentConfigurationMemorySize, CurrentConfigurationTimeout, CurrentCostTotal, CurrentCostAverage, RecommendationOptionsConfigurationMemorySize, RecommendationOptionsCostLow, RecommendationOptionsCostHigh, RecommendationOptionsProjectedUtilizationMetricsDurationLowerBound, RecommendationOptionsProjectedUtilizationMetricsDurationUpperBound, RecommendationOptionsProjectedUtilizationMetricsDurationExpected, LastRefreshTimestamp
1141
+ # fields_to_export: ["AccountId"], # accepts AccountId, FunctionArn, FunctionVersion, Finding, FindingReasonCodes, NumberOfInvocations, UtilizationMetricsDurationMaximum, UtilizationMetricsDurationAverage, UtilizationMetricsMemoryMaximum, UtilizationMetricsMemoryAverage, LookbackPeriodInDays, CurrentConfigurationMemorySize, CurrentConfigurationTimeout, CurrentCostTotal, CurrentCostAverage, RecommendationOptionsConfigurationMemorySize, RecommendationOptionsCostLow, RecommendationOptionsCostHigh, RecommendationOptionsProjectedUtilizationMetricsDurationLowerBound, RecommendationOptionsProjectedUtilizationMetricsDurationUpperBound, RecommendationOptionsProjectedUtilizationMetricsDurationExpected, LastRefreshTimestamp, CurrentPerformanceRisk, RecommendationOptionsSavingsOpportunityPercentage, RecommendationOptionsEstimatedMonthlySavingsCurrency, RecommendationOptionsEstimatedMonthlySavingsValue
897
1142
  # s3_destination_config: { # required
898
1143
  # bucket: "DestinationBucket",
899
1144
  # key_prefix: "DestinationKeyPrefix",
@@ -1516,6 +1761,58 @@ module Aws::ComputeOptimizer
1516
1761
  include Aws::Structure
1517
1762
  end
1518
1763
 
1764
+ # @note When making an API call, you may pass GetEffectiveRecommendationPreferencesRequest
1765
+ # data as a hash:
1766
+ #
1767
+ # {
1768
+ # resource_arn: "ResourceArn", # required
1769
+ # }
1770
+ #
1771
+ # @!attribute [rw] resource_arn
1772
+ # The Amazon Resource Name (ARN) of the resource for which to confirm
1773
+ # effective recommendation preferences. Only EC2 instance and Auto
1774
+ # Scaling group ARNs are currently supported.
1775
+ # @return [String]
1776
+ #
1777
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEffectiveRecommendationPreferencesRequest AWS API Documentation
1778
+ #
1779
+ class GetEffectiveRecommendationPreferencesRequest < Struct.new(
1780
+ :resource_arn)
1781
+ SENSITIVE = []
1782
+ include Aws::Structure
1783
+ end
1784
+
1785
+ # @!attribute [rw] enhanced_infrastructure_metrics
1786
+ # The status of the enhanced infrastructure metrics recommendation
1787
+ # preference. Considers all applicable preferences that you might have
1788
+ # set at the resource, account, and organization level.
1789
+ #
1790
+ # A status of `Active` confirms that the preference is applied in the
1791
+ # latest recommendation refresh, and a status of `Inactive` confirms
1792
+ # that it's not yet applied to recommendations.
1793
+ #
1794
+ # To validate whether the preference is applied to your last generated
1795
+ # set of recommendations, review the
1796
+ # `effectiveRecommendationPreferences` value in the response of the
1797
+ # GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations
1798
+ # actions.
1799
+ #
1800
+ # For more information, see [Enhanced infrastructure metrics][1] in
1801
+ # the *Compute Optimizer User Guide*.
1802
+ #
1803
+ #
1804
+ #
1805
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
1806
+ # @return [String]
1807
+ #
1808
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEffectiveRecommendationPreferencesResponse AWS API Documentation
1809
+ #
1810
+ class GetEffectiveRecommendationPreferencesResponse < Struct.new(
1811
+ :enhanced_infrastructure_metrics)
1812
+ SENSITIVE = []
1813
+ include Aws::Structure
1814
+ end
1815
+
1519
1816
  # @api private
1520
1817
  #
1521
1818
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatusRequest AWS API Documentation
@@ -1749,6 +2046,88 @@ module Aws::ComputeOptimizer
1749
2046
  include Aws::Structure
1750
2047
  end
1751
2048
 
2049
+ # @note When making an API call, you may pass GetRecommendationPreferencesRequest
2050
+ # data as a hash:
2051
+ #
2052
+ # {
2053
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable
2054
+ # scope: {
2055
+ # name: "Organization", # accepts Organization, AccountId, ResourceArn
2056
+ # value: "ScopeValue",
2057
+ # },
2058
+ # next_token: "NextToken",
2059
+ # max_results: 1,
2060
+ # }
2061
+ #
2062
+ # @!attribute [rw] resource_type
2063
+ # The target resource type of the recommendation preference for which
2064
+ # to return preferences.
2065
+ #
2066
+ # The `Ec2Instance` option encompasses standalone instances and
2067
+ # instances that are part of Auto Scaling groups. The
2068
+ # `AutoScalingGroup` option encompasses only instances that are part
2069
+ # of an Auto Scaling group.
2070
+ # @return [String]
2071
+ #
2072
+ # @!attribute [rw] scope
2073
+ # An object that describes the scope of the recommendation preference
2074
+ # to return.
2075
+ #
2076
+ # You can return recommendation preferences that are created at the
2077
+ # organization level (for management accounts of an organization
2078
+ # only), account level, and resource level. For more information, see
2079
+ # [Activating enhanced infrastructure metrics][1] in the *Compute
2080
+ # Optimizer User Guide*.
2081
+ #
2082
+ #
2083
+ #
2084
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
2085
+ # @return [Types::Scope]
2086
+ #
2087
+ # @!attribute [rw] next_token
2088
+ # The token to advance to the next page of recommendation preferences.
2089
+ # @return [String]
2090
+ #
2091
+ # @!attribute [rw] max_results
2092
+ # The maximum number of recommendation preferences to return with a
2093
+ # single request.
2094
+ #
2095
+ # To retrieve the remaining results, make another request with the
2096
+ # returned `nextToken` value.
2097
+ # @return [Integer]
2098
+ #
2099
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationPreferencesRequest AWS API Documentation
2100
+ #
2101
+ class GetRecommendationPreferencesRequest < Struct.new(
2102
+ :resource_type,
2103
+ :scope,
2104
+ :next_token,
2105
+ :max_results)
2106
+ SENSITIVE = []
2107
+ include Aws::Structure
2108
+ end
2109
+
2110
+ # @!attribute [rw] next_token
2111
+ # The token to use to advance to the next page of recommendation
2112
+ # preferences.
2113
+ #
2114
+ # This value is null when there are no more pages of recommendation
2115
+ # preferences to return.
2116
+ # @return [String]
2117
+ #
2118
+ # @!attribute [rw] recommendation_preferences_details
2119
+ # An array of objects that describe recommendation preferences.
2120
+ # @return [Array<Types::RecommendationPreferencesDetail>]
2121
+ #
2122
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationPreferencesResponse AWS API Documentation
2123
+ #
2124
+ class GetRecommendationPreferencesResponse < Struct.new(
2125
+ :next_token,
2126
+ :recommendation_preferences_details)
2127
+ SENSITIVE = []
2128
+ include Aws::Structure
2129
+ end
2130
+
1752
2131
  # @note When making an API call, you may pass GetRecommendationSummariesRequest
1753
2132
  # data as a hash:
1754
2133
  #
@@ -2023,9 +2402,47 @@ module Aws::ComputeOptimizer
2023
2402
  #
2024
2403
  # @!attribute [rw] last_refresh_timestamp
2025
2404
  # The timestamp of when the instance recommendation was last
2026
- # refreshed.
2405
+ # generated.
2027
2406
  # @return [Time]
2028
2407
  #
2408
+ # @!attribute [rw] current_performance_risk
2409
+ # The risk of the current instance not meeting the performance needs
2410
+ # of its workloads. The higher the risk, the more likely the current
2411
+ # instance cannot meet the performance requirements of its workload.
2412
+ # @return [String]
2413
+ #
2414
+ # @!attribute [rw] effective_recommendation_preferences
2415
+ # An object that describes the effective recommendation preferences
2416
+ # for the instance.
2417
+ # @return [Types::EffectiveRecommendationPreferences]
2418
+ #
2419
+ # @!attribute [rw] inferred_workload_types
2420
+ # The applications that might be running on the instance as inferred
2421
+ # by Compute Optimizer.
2422
+ #
2423
+ # Compute Optimizer can infer if one of the following applications
2424
+ # might be running on the instance:
2425
+ #
2426
+ # * `AmazonEmr` - Infers that Amazon EMR might be running on the
2427
+ # instance.
2428
+ #
2429
+ # * `ApacheCassandra` - Infers that Apache Cassandra might be running
2430
+ # on the instance.
2431
+ #
2432
+ # * `ApacheHadoop` - Infers that Apache Hadoop might be running on the
2433
+ # instance.
2434
+ #
2435
+ # * `Memcached` - Infers that Memcached might be running on the
2436
+ # instance.
2437
+ #
2438
+ # * `NGINX` - Infers that NGINX might be running on the instance.
2439
+ #
2440
+ # * `PostgreSql` - Infers that PostgreSQL might be running on the
2441
+ # instance.
2442
+ #
2443
+ # * `Redis` - Infers that Redis might be running on the instance.
2444
+ # @return [Array<String>]
2445
+ #
2029
2446
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/InstanceRecommendation AWS API Documentation
2030
2447
  #
2031
2448
  class InstanceRecommendation < Struct.new(
@@ -2039,7 +2456,10 @@ module Aws::ComputeOptimizer
2039
2456
  :look_back_period_in_days,
2040
2457
  :recommendation_options,
2041
2458
  :recommendation_sources,
2042
- :last_refresh_timestamp)
2459
+ :last_refresh_timestamp,
2460
+ :current_performance_risk,
2461
+ :effective_recommendation_preferences,
2462
+ :inferred_workload_types)
2043
2463
  SENSITIVE = []
2044
2464
  include Aws::Structure
2045
2465
  end
@@ -2191,6 +2611,25 @@ module Aws::ComputeOptimizer
2191
2611
  # The top recommendation option is ranked as `1`.
2192
2612
  # @return [Integer]
2193
2613
  #
2614
+ # @!attribute [rw] savings_opportunity
2615
+ # An object that describes the savings opportunity for the instance
2616
+ # recommendation option. Savings opportunity includes the estimated
2617
+ # monthly savings amount and percentage.
2618
+ # @return [Types::SavingsOpportunity]
2619
+ #
2620
+ # @!attribute [rw] migration_effort
2621
+ # The level of effort required to migrate from the current instance
2622
+ # type to the recommended instance type.
2623
+ #
2624
+ # For example, the migration effort is `Low` if Amazon EMR is the
2625
+ # inferred workload type and an Amazon Web Services Graviton instance
2626
+ # type is recommended. The migration effort is `Medium` if a workload
2627
+ # type couldn't be inferred but an Amazon Web Services Graviton
2628
+ # instance type is recommended. The migration effort is `VeryLow` if
2629
+ # both the current and recommended instance types are of the same CPU
2630
+ # architecture.
2631
+ # @return [String]
2632
+ #
2194
2633
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/InstanceRecommendationOption AWS API Documentation
2195
2634
  #
2196
2635
  class InstanceRecommendationOption < Struct.new(
@@ -2198,7 +2637,9 @@ module Aws::ComputeOptimizer
2198
2637
  :projected_utilization_metrics,
2199
2638
  :platform_differences,
2200
2639
  :performance_risk,
2201
- :rank)
2640
+ :rank,
2641
+ :savings_opportunity,
2642
+ :migration_effort)
2202
2643
  SENSITIVE = []
2203
2644
  include Aws::Structure
2204
2645
  end
@@ -2324,12 +2765,19 @@ module Aws::ComputeOptimizer
2324
2765
  # of the function recommendation option.
2325
2766
  # @return [Array<Types::LambdaFunctionMemoryProjectedMetric>]
2326
2767
  #
2768
+ # @!attribute [rw] savings_opportunity
2769
+ # An object that describes the savings opportunity for the Lambda
2770
+ # function recommendation option. Savings opportunity includes the
2771
+ # estimated monthly savings amount and percentage.
2772
+ # @return [Types::SavingsOpportunity]
2773
+ #
2327
2774
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionMemoryRecommendationOption AWS API Documentation
2328
2775
  #
2329
2776
  class LambdaFunctionMemoryRecommendationOption < Struct.new(
2330
2777
  :rank,
2331
2778
  :memory_size,
2332
- :projected_utilization_metrics)
2779
+ :projected_utilization_metrics,
2780
+ :savings_opportunity)
2333
2781
  SENSITIVE = []
2334
2782
  include Aws::Structure
2335
2783
  end
@@ -2370,7 +2818,7 @@ module Aws::ComputeOptimizer
2370
2818
  #
2371
2819
  # @!attribute [rw] last_refresh_timestamp
2372
2820
  # The timestamp of when the function recommendation was last
2373
- # refreshed.
2821
+ # generated.
2374
2822
  # @return [Time]
2375
2823
  #
2376
2824
  # @!attribute [rw] finding
@@ -2452,6 +2900,12 @@ module Aws::ComputeOptimizer
2452
2900
  # recommendation options for the function.
2453
2901
  # @return [Array<Types::LambdaFunctionMemoryRecommendationOption>]
2454
2902
  #
2903
+ # @!attribute [rw] current_performance_risk
2904
+ # The risk of the current Lambda function not meeting the performance
2905
+ # needs of its workloads. The higher the risk, the more likely the
2906
+ # current Lambda function requires more memory.
2907
+ # @return [String]
2908
+ #
2455
2909
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionRecommendation AWS API Documentation
2456
2910
  #
2457
2911
  class LambdaFunctionRecommendation < Struct.new(
@@ -2465,7 +2919,8 @@ module Aws::ComputeOptimizer
2465
2919
  :last_refresh_timestamp,
2466
2920
  :finding,
2467
2921
  :finding_reason_codes,
2468
- :memory_size_recommendation_options)
2922
+ :memory_size_recommendation_options,
2923
+ :current_performance_risk)
2469
2924
  SENSITIVE = []
2470
2925
  include Aws::Structure
2471
2926
  end
@@ -2684,6 +3139,105 @@ module Aws::ComputeOptimizer
2684
3139
  include Aws::Structure
2685
3140
  end
2686
3141
 
3142
+ # @note When making an API call, you may pass PutRecommendationPreferencesRequest
3143
+ # data as a hash:
3144
+ #
3145
+ # {
3146
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable
3147
+ # scope: {
3148
+ # name: "Organization", # accepts Organization, AccountId, ResourceArn
3149
+ # value: "ScopeValue",
3150
+ # },
3151
+ # enhanced_infrastructure_metrics: "Active", # accepts Active, Inactive
3152
+ # inferred_workload_types: "Active", # accepts Active, Inactive
3153
+ # }
3154
+ #
3155
+ # @!attribute [rw] resource_type
3156
+ # The target resource type of the recommendation preference to create.
3157
+ #
3158
+ # The `Ec2Instance` option encompasses standalone instances and
3159
+ # instances that are part of Auto Scaling groups. The
3160
+ # `AutoScalingGroup` option encompasses only instances that are part
3161
+ # of an Auto Scaling group.
3162
+ # @return [String]
3163
+ #
3164
+ # @!attribute [rw] scope
3165
+ # An object that describes the scope of the recommendation preference
3166
+ # to create.
3167
+ #
3168
+ # You can create recommendation preferences at the organization level
3169
+ # (for management accounts of an organization only), account level,
3170
+ # and resource level. For more information, see [Activating enhanced
3171
+ # infrastructure metrics][1] in the *Compute Optimizer User Guide*.
3172
+ #
3173
+ # <note markdown="1"> You cannot create recommendation preferences for Auto Scaling groups
3174
+ # at the organization and account levels. You can create
3175
+ # recommendation preferences for Auto Scaling groups only at the
3176
+ # resource level by specifying a scope name of `ResourceArn` and a
3177
+ # scope value of the Auto Scaling group Amazon Resource Name (ARN).
3178
+ # This will configure the preference for all instances that are part
3179
+ # of the specified Auto Scaling group. You also cannot create
3180
+ # recommendation preferences at the resource level for instances that
3181
+ # are part of an Auto Scaling group. You can create recommendation
3182
+ # preferences at the resource level only for standalone instances.
3183
+ #
3184
+ # </note>
3185
+ #
3186
+ #
3187
+ #
3188
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
3189
+ # @return [Types::Scope]
3190
+ #
3191
+ # @!attribute [rw] enhanced_infrastructure_metrics
3192
+ # The status of the enhanced infrastructure metrics recommendation
3193
+ # preference to create or update.
3194
+ #
3195
+ # Specify the `Active` status to activate the preference, or specify
3196
+ # `Inactive` to deactivate the preference.
3197
+ #
3198
+ # For more information, see [Enhanced infrastructure metrics][1] in
3199
+ # the *Compute Optimizer User Guide*.
3200
+ #
3201
+ #
3202
+ #
3203
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
3204
+ # @return [String]
3205
+ #
3206
+ # @!attribute [rw] inferred_workload_types
3207
+ # The status of the inferred workload types recommendation preference
3208
+ # to create or update.
3209
+ #
3210
+ # <note markdown="1"> The inferred workload type feature is active by default. To
3211
+ # deactivate it, create a recommendation preference.
3212
+ #
3213
+ # </note>
3214
+ #
3215
+ # Specify the `Inactive` status to deactivate the feature, or specify
3216
+ # `Active` to activate it.
3217
+ #
3218
+ # For more information, see [Inferred workload types][1] in the
3219
+ # *Compute Optimizer User Guide*.
3220
+ #
3221
+ #
3222
+ #
3223
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/inferred-workload-types.html
3224
+ # @return [String]
3225
+ #
3226
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/PutRecommendationPreferencesRequest AWS API Documentation
3227
+ #
3228
+ class PutRecommendationPreferencesRequest < Struct.new(
3229
+ :resource_type,
3230
+ :scope,
3231
+ :enhanced_infrastructure_metrics,
3232
+ :inferred_workload_types)
3233
+ SENSITIVE = []
3234
+ include Aws::Structure
3235
+ end
3236
+
3237
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/PutRecommendationPreferencesResponse AWS API Documentation
3238
+ #
3239
+ class PutRecommendationPreferencesResponse < Aws::EmptyStructure; end
3240
+
2687
3241
  # A summary of a finding reason code.
2688
3242
  #
2689
3243
  # @!attribute [rw] name
@@ -2754,7 +3308,9 @@ module Aws::ComputeOptimizer
2754
3308
  include Aws::Structure
2755
3309
  end
2756
3310
 
2757
- # Describes preferences for recommendations.
3311
+ # Describes the recommendation preferences to return in the response of
3312
+ # a GetAutoScalingGroupRecommendations, GetEC2InstanceRecommendations,
3313
+ # and GetEC2RecommendationProjectedMetrics request.
2758
3314
  #
2759
3315
  # @note When making an API call, you may pass RecommendationPreferences
2760
3316
  # data as a hash:
@@ -2792,6 +3348,65 @@ module Aws::ComputeOptimizer
2792
3348
  include Aws::Structure
2793
3349
  end
2794
3350
 
3351
+ # Describes a recommendation preference.
3352
+ #
3353
+ # @!attribute [rw] scope
3354
+ # An object that describes the scope of the recommendation preference.
3355
+ #
3356
+ # Recommendation preferences can be created at the organization level
3357
+ # (for management accounts of an organization only), account level,
3358
+ # and resource level. For more information, see [Activating enhanced
3359
+ # infrastructure metrics][1] in the *Compute Optimizer User Guide*.
3360
+ #
3361
+ #
3362
+ #
3363
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
3364
+ # @return [Types::Scope]
3365
+ #
3366
+ # @!attribute [rw] resource_type
3367
+ # The target resource type of the recommendation preference to create.
3368
+ #
3369
+ # The `Ec2Instance` option encompasses standalone instances and
3370
+ # instances that are part of Auto Scaling groups. The
3371
+ # `AutoScalingGroup` option encompasses only instances that are part
3372
+ # of an Auto Scaling group.
3373
+ # @return [String]
3374
+ #
3375
+ # @!attribute [rw] enhanced_infrastructure_metrics
3376
+ # The status of the enhanced infrastructure metrics recommendation
3377
+ # preference.
3378
+ #
3379
+ # A status of `Active` confirms that the preference is applied in the
3380
+ # latest recommendation refresh, and a status of `Inactive` confirms
3381
+ # that it's not yet applied to recommendations.
3382
+ #
3383
+ # For more information, see [Enhanced infrastructure metrics][1] in
3384
+ # the *Compute Optimizer User Guide*.
3385
+ #
3386
+ #
3387
+ #
3388
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
3389
+ # @return [String]
3390
+ #
3391
+ # @!attribute [rw] inferred_workload_types
3392
+ # The status of the inferred workload types recommendation preference.
3393
+ #
3394
+ # A status of `Active` confirms that the preference is applied in the
3395
+ # latest recommendation refresh. A status of `Inactive` confirms that
3396
+ # it's not yet applied to recommendations.
3397
+ # @return [String]
3398
+ #
3399
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/RecommendationPreferencesDetail AWS API Documentation
3400
+ #
3401
+ class RecommendationPreferencesDetail < Struct.new(
3402
+ :scope,
3403
+ :resource_type,
3404
+ :enhanced_infrastructure_metrics,
3405
+ :inferred_workload_types)
3406
+ SENSITIVE = []
3407
+ include Aws::Structure
3408
+ end
3409
+
2795
3410
  # Describes the source of a recommendation, such as an Amazon EC2
2796
3411
  # instance or Auto Scaling group.
2797
3412
  #
@@ -2819,19 +3434,32 @@ module Aws::ComputeOptimizer
2819
3434
  # @return [Array<Types::Summary>]
2820
3435
  #
2821
3436
  # @!attribute [rw] recommendation_resource_type
2822
- # The resource type of the recommendation.
3437
+ # The resource type that the recommendation summary applies to.
2823
3438
  # @return [String]
2824
3439
  #
2825
3440
  # @!attribute [rw] account_id
2826
3441
  # The Amazon Web Services account ID of the recommendation summary.
2827
3442
  # @return [String]
2828
3443
  #
3444
+ # @!attribute [rw] savings_opportunity
3445
+ # An object that describes the savings opportunity for a given
3446
+ # resource type. Savings opportunity includes the estimated monthly
3447
+ # savings amount and percentage.
3448
+ # @return [Types::SavingsOpportunity]
3449
+ #
3450
+ # @!attribute [rw] current_performance_risk_ratings
3451
+ # An object that describes the performance risk ratings for a given
3452
+ # resource type.
3453
+ # @return [Types::CurrentPerformanceRiskRatings]
3454
+ #
2829
3455
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/RecommendationSummary AWS API Documentation
2830
3456
  #
2831
3457
  class RecommendationSummary < Struct.new(
2832
3458
  :summaries,
2833
3459
  :recommendation_resource_type,
2834
- :account_id)
3460
+ :account_id,
3461
+ :savings_opportunity,
3462
+ :current_performance_risk_ratings)
2835
3463
  SENSITIVE = []
2836
3464
  include Aws::Structure
2837
3465
  end
@@ -2969,6 +3597,126 @@ module Aws::ComputeOptimizer
2969
3597
  include Aws::Structure
2970
3598
  end
2971
3599
 
3600
+ # Describes the savings opportunity for recommendations of a given
3601
+ # resource type or for the recommendation option of an individual
3602
+ # resource.
3603
+ #
3604
+ # Savings opportunity represents the estimated monthly savings you can
3605
+ # achieve by implementing a given Compute Optimizer recommendation.
3606
+ #
3607
+ # Savings opportunity data requires that you opt in to Cost Explorer, as
3608
+ # well as activate **Receive Amazon EC2 resource recommendations** in
3609
+ # the Cost Explorer preferences page. That creates a connection between
3610
+ # Cost Explorer and Compute Optimizer. With this connection, Cost
3611
+ # Explorer generates savings estimates considering the price of existing
3612
+ # resources, the price of recommended resources, and historical usage
3613
+ # data. Estimated monthly savings reflects the projected dollar savings
3614
+ # associated with each of the recommendations generated. For more
3615
+ # information, see [Enabling Cost Explorer][1] and [Optimizing your cost
3616
+ # with Rightsizing Recommendations][2] in the *Cost Management User
3617
+ # Guide*.
3618
+ #
3619
+ #
3620
+ #
3621
+ # [1]: https://docs.aws.amazon.com/cost-management/latest/userguide/ce-enable.html
3622
+ # [2]: https://docs.aws.amazon.com/cost-management/latest/userguide/ce-rightsizing.html
3623
+ #
3624
+ # @!attribute [rw] savings_opportunity_percentage
3625
+ # The estimated monthly savings possible as a percentage of monthly
3626
+ # cost by adopting Compute Optimizer recommendations for a given
3627
+ # resource.
3628
+ # @return [Float]
3629
+ #
3630
+ # @!attribute [rw] estimated_monthly_savings
3631
+ # An object that describes the estimated monthly savings amount
3632
+ # possible, based on On-Demand instance pricing, by adopting Compute
3633
+ # Optimizer recommendations for a given resource.
3634
+ # @return [Types::EstimatedMonthlySavings]
3635
+ #
3636
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/SavingsOpportunity AWS API Documentation
3637
+ #
3638
+ class SavingsOpportunity < Struct.new(
3639
+ :savings_opportunity_percentage,
3640
+ :estimated_monthly_savings)
3641
+ SENSITIVE = []
3642
+ include Aws::Structure
3643
+ end
3644
+
3645
+ # Describes the scope of a recommendation preference.
3646
+ #
3647
+ # Recommendation preferences can be created at the organization level
3648
+ # (for management accounts of an organization only), account level, and
3649
+ # resource level. For more information, see [Activating enhanced
3650
+ # infrastructure metrics][1] in the *Compute Optimizer User Guide*.
3651
+ #
3652
+ # <note markdown="1"> You cannot create recommendation preferences for Auto Scaling groups
3653
+ # at the organization and account levels. You can create recommendation
3654
+ # preferences for Auto Scaling groups only at the resource level by
3655
+ # specifying a scope name of `ResourceArn` and a scope value of the Auto
3656
+ # Scaling group Amazon Resource Name (ARN). This will configure the
3657
+ # preference for all instances that are part of the specified Auto
3658
+ # Scaling group. You also cannot create recommendation preferences at
3659
+ # the resource level for instances that are part of an Auto Scaling
3660
+ # group. You can create recommendation preferences at the resource level
3661
+ # only for standalone instances.
3662
+ #
3663
+ # </note>
3664
+ #
3665
+ #
3666
+ #
3667
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html
3668
+ #
3669
+ # @note When making an API call, you may pass Scope
3670
+ # data as a hash:
3671
+ #
3672
+ # {
3673
+ # name: "Organization", # accepts Organization, AccountId, ResourceArn
3674
+ # value: "ScopeValue",
3675
+ # }
3676
+ #
3677
+ # @!attribute [rw] name
3678
+ # The name of the scope.
3679
+ #
3680
+ # The following scopes are possible:
3681
+ #
3682
+ # * `Organization` - Specifies that the recommendation preference
3683
+ # applies at the organization level, for all member accounts of an
3684
+ # organization.
3685
+ #
3686
+ # * `AccountId` - Specifies that the recommendation preference applies
3687
+ # at the account level, for all resources of a given resource type
3688
+ # in an account.
3689
+ #
3690
+ # * `ResourceArn` - Specifies that the recommendation preference
3691
+ # applies at the individual resource level.
3692
+ # @return [String]
3693
+ #
3694
+ # @!attribute [rw] value
3695
+ # The value of the scope.
3696
+ #
3697
+ # If you specified the `name` of the scope as:
3698
+ #
3699
+ # * `Organization` - The `value` must be `ALL_ACCOUNTS`.
3700
+ #
3701
+ # * `AccountId` - The `value` must be a 12-digit Amazon Web Services
3702
+ # account ID.
3703
+ #
3704
+ # * `ResourceArn` - The `value` must be the Amazon Resource Name (ARN)
3705
+ # of an EC2 instance or an Auto Scaling group.
3706
+ #
3707
+ # Only EC2 instance and Auto Scaling group ARNs are currently
3708
+ # supported.
3709
+ # @return [String]
3710
+ #
3711
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/Scope AWS API Documentation
3712
+ #
3713
+ class Scope < Struct.new(
3714
+ :name,
3715
+ :value)
3716
+ SENSITIVE = []
3717
+ include Aws::Structure
3718
+ end
3719
+
2972
3720
  # The request has failed due to a temporary failure of the server.
2973
3721
  #
2974
3722
  # @!attribute [rw] message
@@ -3324,9 +4072,15 @@ module Aws::ComputeOptimizer
3324
4072
  # @return [Array<Types::VolumeRecommendationOption>]
3325
4073
  #
3326
4074
  # @!attribute [rw] last_refresh_timestamp
3327
- # The timestamp of when the volume recommendation was last refreshed.
4075
+ # The timestamp of when the volume recommendation was last generated.
3328
4076
  # @return [Time]
3329
4077
  #
4078
+ # @!attribute [rw] current_performance_risk
4079
+ # The risk of the current EBS volume not meeting the performance needs
4080
+ # of its workloads. The higher the risk, the more likely the current
4081
+ # EBS volume doesn't have sufficient capacity.
4082
+ # @return [String]
4083
+ #
3330
4084
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeRecommendation AWS API Documentation
3331
4085
  #
3332
4086
  class VolumeRecommendation < Struct.new(
@@ -3337,7 +4091,8 @@ module Aws::ComputeOptimizer
3337
4091
  :utilization_metrics,
3338
4092
  :look_back_period_in_days,
3339
4093
  :volume_recommendation_options,
3340
- :last_refresh_timestamp)
4094
+ :last_refresh_timestamp,
4095
+ :current_performance_risk)
3341
4096
  SENSITIVE = []
3342
4097
  include Aws::Structure
3343
4098
  end
@@ -3368,12 +4123,19 @@ module Aws::ComputeOptimizer
3368
4123
  # The top recommendation option is ranked as `1`.
3369
4124
  # @return [Integer]
3370
4125
  #
4126
+ # @!attribute [rw] savings_opportunity
4127
+ # An object that describes the savings opportunity for the EBS volume
4128
+ # recommendation option. Savings opportunity includes the estimated
4129
+ # monthly savings amount and percentage.
4130
+ # @return [Types::SavingsOpportunity]
4131
+ #
3371
4132
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeRecommendationOption AWS API Documentation
3372
4133
  #
3373
4134
  class VolumeRecommendationOption < Struct.new(
3374
4135
  :configuration,
3375
4136
  :performance_risk,
3376
- :rank)
4137
+ :rank,
4138
+ :savings_opportunity)
3377
4139
  SENSITIVE = []
3378
4140
  include Aws::Structure
3379
4141
  end