aws-sdk-computeoptimizer 1.34.0 → 1.36.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2718a575580c615691a5d00f12a9488453f78a13b1767d26c0eb9304f4df05b1
4
- data.tar.gz: 7b35bde9b37994545e96aea0b87e937406629c46b17761711d9b0a25d72c5263
3
+ metadata.gz: b68204fd661f1889eba77a4701d4e5b588d63c0e82988461988dffa32019076f
4
+ data.tar.gz: a66797eab250ed6082d70cc6e9fdeb1669098f4cc6d56ff8cbaf4196b904c8b0
5
5
  SHA512:
6
- metadata.gz: 6d3c82defe250d0850cb6550ef31d6952f2d3ca58f7fb54a352393299319903d4628273b1b3191909456c3a13da5711f7f7ea11439b14ba3b78783bc0655ee92
7
- data.tar.gz: aa67ba9f612489ceedc93d0aaf600ea12381e9e3dcdaf98e35de3a244d760f8c4227b7dbfbda4dd60b5e63aefaf8186a5fdd650eb31317cc102747241fe8407e
6
+ metadata.gz: 26180c3484f669a9caed27c8387bc5eeac742f8e32340a68afe6913029369f239c943d26a8d4cb38599a6aa359c637665fe489d4dc763e7d461aad39f422d428
7
+ data.tar.gz: 5c92d70b55535c4401f7f60403ba10d357c5803a731839f9ebf10cfb11ee7507e4adef5ee0f4d8b78c22a4f38e658e8825a40f89d76d9bd52f5e99ce15c69a28
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.36.0 (2022-12-22)
5
+ ------------------
6
+
7
+ * Feature - This release enables AWS Compute Optimizer to analyze and generate optimization recommendations for ecs services running on Fargate.
8
+
9
+ 1.35.0 (2022-11-29)
10
+ ------------------
11
+
12
+ * Feature - Adds support for a new recommendation preference that makes it possible for customers to optimize their EC2 recommendations by utilizing an external metrics ingestion service to provide metrics.
13
+
4
14
  1.34.0 (2022-10-25)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.34.0
1
+ 1.36.0
@@ -418,21 +418,17 @@ module Aws::ComputeOptimizer
418
418
  # @option params [required, Array<String>] :recommendation_preference_names
419
419
  # The name of the recommendation preference to delete.
420
420
  #
421
- # Enhanced infrastructure metrics (`EnhancedInfrastructureMetrics`) is
422
- # the only feature that can be activated through preferences. Therefore,
423
- # it is also the only recommendation preference that can be deleted.
424
- #
425
421
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
426
422
  #
427
423
  # @example Request syntax with placeholder values
428
424
  #
429
425
  # resp = client.delete_recommendation_preferences({
430
- # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable
426
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService
431
427
  # scope: {
432
428
  # name: "Organization", # accepts Organization, AccountId, ResourceArn
433
429
  # value: "ScopeValue",
434
430
  # },
435
- # recommendation_preference_names: ["EnhancedInfrastructureMetrics"], # required, accepts EnhancedInfrastructureMetrics, InferredWorkloadTypes
431
+ # recommendation_preference_names: ["EnhancedInfrastructureMetrics"], # required, accepts EnhancedInfrastructureMetrics, InferredWorkloadTypes, ExternalMetricsPreference
436
432
  # })
437
433
  #
438
434
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/DeleteRecommendationPreferences AWS API Documentation
@@ -479,6 +475,8 @@ module Aws::ComputeOptimizer
479
475
  # * {Types::DescribeRecommendationExportJobsResponse#recommendation_export_jobs #recommendation_export_jobs} => Array&lt;Types::RecommendationExportJob&gt;
480
476
  # * {Types::DescribeRecommendationExportJobsResponse#next_token #next_token} => String
481
477
  #
478
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
479
+ #
482
480
  # @example Request syntax with placeholder values
483
481
  #
484
482
  # resp = client.describe_recommendation_export_jobs({
@@ -500,7 +498,7 @@ module Aws::ComputeOptimizer
500
498
  # resp.recommendation_export_jobs[0].destination.s3.bucket #=> String
501
499
  # resp.recommendation_export_jobs[0].destination.s3.key #=> String
502
500
  # resp.recommendation_export_jobs[0].destination.s3.metadata_key #=> String
503
- # resp.recommendation_export_jobs[0].resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "NotApplicable"
501
+ # resp.recommendation_export_jobs[0].resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "NotApplicable", "EcsService"
504
502
  # resp.recommendation_export_jobs[0].status #=> String, one of "Queued", "InProgress", "Complete", "Failed"
505
503
  # resp.recommendation_export_jobs[0].creation_timestamp #=> Time
506
504
  # resp.recommendation_export_jobs[0].last_updated_timestamp #=> Time
@@ -892,7 +890,7 @@ module Aws::ComputeOptimizer
892
890
  # values: ["FilterValue"],
893
891
  # },
894
892
  # ],
895
- # 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
893
+ # 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, EffectiveRecommendationPreferencesExternalMetricsSource
896
894
  # s3_destination_config: { # required
897
895
  # bucket: "DestinationBucket",
898
896
  # key_prefix: "DestinationKeyPrefix",
@@ -920,6 +918,136 @@ module Aws::ComputeOptimizer
920
918
  req.send_request(options)
921
919
  end
922
920
 
921
+ # Exports optimization recommendations for Amazon ECS services on
922
+ # Fargate.
923
+ #
924
+ # Recommendations are exported in a CSV file, and its metadata in a JSON
925
+ # file, to an existing Amazon Simple Storage Service (Amazon S3) bucket
926
+ # that you specify. For more information, see [Exporting
927
+ # Recommendations][1] in the *Compute Optimizer User Guide*.
928
+ #
929
+ # You can only have one Amazon ECS service export job in progress per
930
+ # Amazon Web Services Region.
931
+ #
932
+ #
933
+ #
934
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html
935
+ #
936
+ # @option params [Array<String>] :account_ids
937
+ # The Amazon Web Services account IDs for the export ECS service
938
+ # recommendations.
939
+ #
940
+ # If your account is the management account or the delegated
941
+ # administrator of an organization, use this parameter to specify the
942
+ # member account you want to export recommendations to.
943
+ #
944
+ # This parameter can't be specified together with the include member
945
+ # accounts parameter. The parameters are mutually exclusive.
946
+ #
947
+ # If this parameter or the include member accounts parameter is omitted,
948
+ # the recommendations for member accounts aren't included in the
949
+ # export.
950
+ #
951
+ # You can specify multiple account IDs per request.
952
+ #
953
+ # @option params [Array<Types::ECSServiceRecommendationFilter>] :filters
954
+ # An array of objects to specify a filter that exports a more specific
955
+ # set of ECS service recommendations.
956
+ #
957
+ # @option params [Array<String>] :fields_to_export
958
+ # The recommendations data to include in the export file. For more
959
+ # information about the fields that can be exported, see [Exported
960
+ # files][1] in the *Compute Optimizer User Guide*.
961
+ #
962
+ #
963
+ #
964
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files
965
+ #
966
+ # @option params [required, Types::S3DestinationConfig] :s3_destination_config
967
+ # Describes the destination Amazon Simple Storage Service (Amazon S3)
968
+ # bucket name and key prefix for a recommendations export job.
969
+ #
970
+ # You must create the destination Amazon S3 bucket for your
971
+ # recommendations export before you create the export job. Compute
972
+ # Optimizer does not create the S3 bucket for you. After you create the
973
+ # S3 bucket, ensure that it has the required permission policy to allow
974
+ # Compute Optimizer to write the export file to it. If you plan to
975
+ # specify an object prefix when you create the export job, you must
976
+ # include the object prefix in the policy that you add to the S3 bucket.
977
+ # For more information, see [Amazon S3 Bucket Policy for Compute
978
+ # Optimizer][1] in the *Compute Optimizer User Guide*.
979
+ #
980
+ #
981
+ #
982
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html
983
+ #
984
+ # @option params [String] :file_format
985
+ # The format of the export file.
986
+ #
987
+ # The CSV file is the only export file format currently supported.
988
+ #
989
+ # @option params [Boolean] :include_member_accounts
990
+ # If your account is the management account or the delegated
991
+ # administrator of an organization, this parameter indicates whether to
992
+ # include recommendations for resources in all member accounts of the
993
+ # organization.
994
+ #
995
+ # The member accounts must also be opted in to Compute Optimizer, and
996
+ # trusted access for Compute Optimizer must be enabled in the
997
+ # organization account. For more information, see [Compute Optimizer and
998
+ # Amazon Web Services Organizations trusted access][1] in the *Compute
999
+ # Optimizer User Guide*.
1000
+ #
1001
+ # If this parameter is omitted, recommendations for member accounts of
1002
+ # the organization aren't included in the export file.
1003
+ #
1004
+ # If this parameter or the account ID parameter is omitted,
1005
+ # recommendations for member accounts aren't included in the export.
1006
+ #
1007
+ #
1008
+ #
1009
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access
1010
+ #
1011
+ # @return [Types::ExportECSServiceRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1012
+ #
1013
+ # * {Types::ExportECSServiceRecommendationsResponse#job_id #job_id} => String
1014
+ # * {Types::ExportECSServiceRecommendationsResponse#s3_destination #s3_destination} => Types::S3Destination
1015
+ #
1016
+ # @example Request syntax with placeholder values
1017
+ #
1018
+ # resp = client.export_ecs_service_recommendations({
1019
+ # account_ids: ["AccountId"],
1020
+ # filters: [
1021
+ # {
1022
+ # name: "Finding", # accepts Finding, FindingReasonCode
1023
+ # values: ["FilterValue"],
1024
+ # },
1025
+ # ],
1026
+ # fields_to_export: ["AccountId"], # accepts AccountId, ServiceArn, LookbackPeriodInDays, LastRefreshTimestamp, LaunchType, CurrentPerformanceRisk, CurrentServiceConfigurationMemory, CurrentServiceConfigurationCpu, CurrentServiceConfigurationTaskDefinitionArn, CurrentServiceConfigurationAutoScalingConfiguration, CurrentServiceContainerConfigurations, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, Finding, FindingReasonCodes, RecommendationOptionsMemory, RecommendationOptionsCpu, RecommendationOptionsSavingsOpportunityPercentage, RecommendationOptionsEstimatedMonthlySavingsCurrency, RecommendationOptionsEstimatedMonthlySavingsValue, RecommendationOptionsContainerRecommendations, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum
1027
+ # s3_destination_config: { # required
1028
+ # bucket: "DestinationBucket",
1029
+ # key_prefix: "DestinationKeyPrefix",
1030
+ # },
1031
+ # file_format: "Csv", # accepts Csv
1032
+ # include_member_accounts: false,
1033
+ # })
1034
+ #
1035
+ # @example Response structure
1036
+ #
1037
+ # resp.job_id #=> String
1038
+ # resp.s3_destination.bucket #=> String
1039
+ # resp.s3_destination.key #=> String
1040
+ # resp.s3_destination.metadata_key #=> String
1041
+ #
1042
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportECSServiceRecommendations AWS API Documentation
1043
+ #
1044
+ # @overload export_ecs_service_recommendations(params = {})
1045
+ # @param [Hash] params ({})
1046
+ def export_ecs_service_recommendations(params = {}, options = {})
1047
+ req = build_request(:export_ecs_service_recommendations, params)
1048
+ req.send_request(options)
1049
+ end
1050
+
923
1051
  # Exports optimization recommendations for Lambda functions.
924
1052
  #
925
1053
  # Recommendations are exported in a comma-separated values (.csv) file,
@@ -1157,6 +1285,7 @@ module Aws::ComputeOptimizer
1157
1285
  # resp.auto_scaling_group_recommendations[0].effective_recommendation_preferences.cpu_vendor_architectures[0] #=> String, one of "AWS_ARM64", "CURRENT"
1158
1286
  # resp.auto_scaling_group_recommendations[0].effective_recommendation_preferences.enhanced_infrastructure_metrics #=> String, one of "Active", "Inactive"
1159
1287
  # resp.auto_scaling_group_recommendations[0].effective_recommendation_preferences.inferred_workload_types #=> String, one of "Active", "Inactive"
1288
+ # resp.auto_scaling_group_recommendations[0].effective_recommendation_preferences.external_metrics_preference.source #=> String, one of "Datadog", "Dynatrace", "NewRelic", "Instana"
1160
1289
  # resp.auto_scaling_group_recommendations[0].inferred_workload_types #=> Array
1161
1290
  # resp.auto_scaling_group_recommendations[0].inferred_workload_types[0] #=> String, one of "AmazonEmr", "ApacheCassandra", "ApacheHadoop", "Memcached", "Nginx", "PostgreSql", "Redis"
1162
1291
  # resp.errors #=> Array
@@ -1379,13 +1508,14 @@ module Aws::ComputeOptimizer
1379
1508
  # resp.instance_recommendations[0].recommendation_options[0].migration_effort #=> String, one of "VeryLow", "Low", "Medium", "High"
1380
1509
  # resp.instance_recommendations[0].recommendation_sources #=> Array
1381
1510
  # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_arn #=> String
1382
- # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction"
1511
+ # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "EcsService"
1383
1512
  # resp.instance_recommendations[0].last_refresh_timestamp #=> Time
1384
1513
  # resp.instance_recommendations[0].current_performance_risk #=> String, one of "VeryLow", "Low", "Medium", "High"
1385
1514
  # resp.instance_recommendations[0].effective_recommendation_preferences.cpu_vendor_architectures #=> Array
1386
1515
  # resp.instance_recommendations[0].effective_recommendation_preferences.cpu_vendor_architectures[0] #=> String, one of "AWS_ARM64", "CURRENT"
1387
1516
  # resp.instance_recommendations[0].effective_recommendation_preferences.enhanced_infrastructure_metrics #=> String, one of "Active", "Inactive"
1388
1517
  # resp.instance_recommendations[0].effective_recommendation_preferences.inferred_workload_types #=> String, one of "Active", "Inactive"
1518
+ # resp.instance_recommendations[0].effective_recommendation_preferences.external_metrics_preference.source #=> String, one of "Datadog", "Dynatrace", "NewRelic", "Instana"
1389
1519
  # resp.instance_recommendations[0].inferred_workload_types #=> Array
1390
1520
  # resp.instance_recommendations[0].inferred_workload_types[0] #=> String, one of "AmazonEmr", "ApacheCassandra", "ApacheHadoop", "Memcached", "Nginx", "PostgreSql", "Redis"
1391
1521
  # resp.errors #=> Array
@@ -1475,6 +1605,183 @@ module Aws::ComputeOptimizer
1475
1605
  req.send_request(options)
1476
1606
  end
1477
1607
 
1608
+ # Returns the projected metrics of Amazon ECS service recommendations.
1609
+ #
1610
+ # @option params [required, String] :service_arn
1611
+ # The ARN that identifies the ECS service.
1612
+ #
1613
+ # The following is the format of the ARN:
1614
+ #
1615
+ # `arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`
1616
+ #
1617
+ # @option params [required, String] :stat
1618
+ # The statistic of the projected metrics.
1619
+ #
1620
+ # @option params [required, Integer] :period
1621
+ # The granularity, in seconds, of the projected metrics data points.
1622
+ #
1623
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1624
+ # The timestamp of the first projected metrics data point to return.
1625
+ #
1626
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1627
+ # The timestamp of the last projected metrics data point to return.
1628
+ #
1629
+ # @return [Types::GetECSServiceRecommendationProjectedMetricsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1630
+ #
1631
+ # * {Types::GetECSServiceRecommendationProjectedMetricsResponse#recommended_option_projected_metrics #recommended_option_projected_metrics} => Array&lt;Types::ECSServiceRecommendedOptionProjectedMetric&gt;
1632
+ #
1633
+ # @example Request syntax with placeholder values
1634
+ #
1635
+ # resp = client.get_ecs_service_recommendation_projected_metrics({
1636
+ # service_arn: "ServiceArn", # required
1637
+ # stat: "Maximum", # required, accepts Maximum, Average
1638
+ # period: 1, # required
1639
+ # start_time: Time.now, # required
1640
+ # end_time: Time.now, # required
1641
+ # })
1642
+ #
1643
+ # @example Response structure
1644
+ #
1645
+ # resp.recommended_option_projected_metrics #=> Array
1646
+ # resp.recommended_option_projected_metrics[0].recommended_cpu_units #=> Integer
1647
+ # resp.recommended_option_projected_metrics[0].recommended_memory_size #=> Integer
1648
+ # resp.recommended_option_projected_metrics[0].projected_metrics #=> Array
1649
+ # resp.recommended_option_projected_metrics[0].projected_metrics[0].name #=> String, one of "Cpu", "Memory"
1650
+ # resp.recommended_option_projected_metrics[0].projected_metrics[0].timestamps #=> Array
1651
+ # resp.recommended_option_projected_metrics[0].projected_metrics[0].timestamps[0] #=> Time
1652
+ # resp.recommended_option_projected_metrics[0].projected_metrics[0].upper_bound_values #=> Array
1653
+ # resp.recommended_option_projected_metrics[0].projected_metrics[0].upper_bound_values[0] #=> Float
1654
+ # resp.recommended_option_projected_metrics[0].projected_metrics[0].lower_bound_values #=> Array
1655
+ # resp.recommended_option_projected_metrics[0].projected_metrics[0].lower_bound_values[0] #=> Float
1656
+ #
1657
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetECSServiceRecommendationProjectedMetrics AWS API Documentation
1658
+ #
1659
+ # @overload get_ecs_service_recommendation_projected_metrics(params = {})
1660
+ # @param [Hash] params ({})
1661
+ def get_ecs_service_recommendation_projected_metrics(params = {}, options = {})
1662
+ req = build_request(:get_ecs_service_recommendation_projected_metrics, params)
1663
+ req.send_request(options)
1664
+ end
1665
+
1666
+ # Returns Amazon ECS service recommendations.
1667
+ #
1668
+ # Compute Optimizer generates recommendations for Amazon ECS services on
1669
+ # Fargate that meet a specific set of requirements. For more
1670
+ # information, see the [Supported resources and requirements][1] in the
1671
+ # *Compute Optimizer User Guide*.
1672
+ #
1673
+ #
1674
+ #
1675
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html
1676
+ #
1677
+ # @option params [Array<String>] :service_arns
1678
+ # The ARN that identifies the ECS service.
1679
+ #
1680
+ # The following is the format of the ARN:
1681
+ #
1682
+ # `arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`
1683
+ #
1684
+ # @option params [String] :next_token
1685
+ # The token to advance to the next page of ECS service recommendations.
1686
+ #
1687
+ # @option params [Integer] :max_results
1688
+ # The maximum number of ECS service recommendations to return with a
1689
+ # single request.
1690
+ #
1691
+ # To retrieve the remaining results, make another request with the
1692
+ # returned `nextToken` value.
1693
+ #
1694
+ # @option params [Array<Types::ECSServiceRecommendationFilter>] :filters
1695
+ # An array of objects to specify a filter that returns a more specific
1696
+ # list of ECS service recommendations.
1697
+ #
1698
+ # @option params [Array<String>] :account_ids
1699
+ # Return the ECS service recommendations to the specified Amazon Web
1700
+ # Services account IDs.
1701
+ #
1702
+ # If your account is the management account or the delegated
1703
+ # administrator of an organization, use this parameter to return the ECS
1704
+ # service recommendations to specific member accounts.
1705
+ #
1706
+ # You can only specify one account ID per request.
1707
+ #
1708
+ # @return [Types::GetECSServiceRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1709
+ #
1710
+ # * {Types::GetECSServiceRecommendationsResponse#next_token #next_token} => String
1711
+ # * {Types::GetECSServiceRecommendationsResponse#ecs_service_recommendations #ecs_service_recommendations} => Array&lt;Types::ECSServiceRecommendation&gt;
1712
+ # * {Types::GetECSServiceRecommendationsResponse#errors #errors} => Array&lt;Types::GetRecommendationError&gt;
1713
+ #
1714
+ # @example Request syntax with placeholder values
1715
+ #
1716
+ # resp = client.get_ecs_service_recommendations({
1717
+ # service_arns: ["ServiceArn"],
1718
+ # next_token: "NextToken",
1719
+ # max_results: 1,
1720
+ # filters: [
1721
+ # {
1722
+ # name: "Finding", # accepts Finding, FindingReasonCode
1723
+ # values: ["FilterValue"],
1724
+ # },
1725
+ # ],
1726
+ # account_ids: ["AccountId"],
1727
+ # })
1728
+ #
1729
+ # @example Response structure
1730
+ #
1731
+ # resp.next_token #=> String
1732
+ # resp.ecs_service_recommendations #=> Array
1733
+ # resp.ecs_service_recommendations[0].service_arn #=> String
1734
+ # resp.ecs_service_recommendations[0].account_id #=> String
1735
+ # resp.ecs_service_recommendations[0].current_service_configuration.memory #=> Integer
1736
+ # resp.ecs_service_recommendations[0].current_service_configuration.cpu #=> Integer
1737
+ # resp.ecs_service_recommendations[0].current_service_configuration.container_configurations #=> Array
1738
+ # resp.ecs_service_recommendations[0].current_service_configuration.container_configurations[0].container_name #=> String
1739
+ # resp.ecs_service_recommendations[0].current_service_configuration.container_configurations[0].memory_size_configuration.memory #=> Integer
1740
+ # resp.ecs_service_recommendations[0].current_service_configuration.container_configurations[0].memory_size_configuration.memory_reservation #=> Integer
1741
+ # resp.ecs_service_recommendations[0].current_service_configuration.container_configurations[0].cpu #=> Integer
1742
+ # resp.ecs_service_recommendations[0].current_service_configuration.auto_scaling_configuration #=> String, one of "TargetTrackingScalingCpu", "TargetTrackingScalingMemory"
1743
+ # resp.ecs_service_recommendations[0].current_service_configuration.task_definition_arn #=> String
1744
+ # resp.ecs_service_recommendations[0].utilization_metrics #=> Array
1745
+ # resp.ecs_service_recommendations[0].utilization_metrics[0].name #=> String, one of "Cpu", "Memory"
1746
+ # resp.ecs_service_recommendations[0].utilization_metrics[0].statistic #=> String, one of "Maximum", "Average"
1747
+ # resp.ecs_service_recommendations[0].utilization_metrics[0].value #=> Float
1748
+ # resp.ecs_service_recommendations[0].lookback_period_in_days #=> Float
1749
+ # resp.ecs_service_recommendations[0].launch_type #=> String, one of "EC2", "Fargate"
1750
+ # resp.ecs_service_recommendations[0].last_refresh_timestamp #=> Time
1751
+ # resp.ecs_service_recommendations[0].finding #=> String, one of "Optimized", "Underprovisioned", "Overprovisioned"
1752
+ # resp.ecs_service_recommendations[0].finding_reason_codes #=> Array
1753
+ # resp.ecs_service_recommendations[0].finding_reason_codes[0] #=> String, one of "MemoryOverprovisioned", "MemoryUnderprovisioned", "CPUOverprovisioned", "CPUUnderprovisioned"
1754
+ # resp.ecs_service_recommendations[0].service_recommendation_options #=> Array
1755
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].memory #=> Integer
1756
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].cpu #=> Integer
1757
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].savings_opportunity.savings_opportunity_percentage #=> Float
1758
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].savings_opportunity.estimated_monthly_savings.currency #=> String, one of "USD", "CNY"
1759
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].savings_opportunity.estimated_monthly_savings.value #=> Float
1760
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].projected_utilization_metrics #=> Array
1761
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].projected_utilization_metrics[0].name #=> String, one of "Cpu", "Memory"
1762
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].projected_utilization_metrics[0].statistic #=> String, one of "Maximum", "Average"
1763
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].projected_utilization_metrics[0].lower_bound_value #=> Float
1764
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].projected_utilization_metrics[0].upper_bound_value #=> Float
1765
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].container_recommendations #=> Array
1766
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].container_recommendations[0].container_name #=> String
1767
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].container_recommendations[0].memory_size_configuration.memory #=> Integer
1768
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].container_recommendations[0].memory_size_configuration.memory_reservation #=> Integer
1769
+ # resp.ecs_service_recommendations[0].service_recommendation_options[0].container_recommendations[0].cpu #=> Integer
1770
+ # resp.ecs_service_recommendations[0].current_performance_risk #=> String, one of "VeryLow", "Low", "Medium", "High"
1771
+ # resp.errors #=> Array
1772
+ # resp.errors[0].identifier #=> String
1773
+ # resp.errors[0].code #=> String
1774
+ # resp.errors[0].message #=> String
1775
+ #
1776
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetECSServiceRecommendations AWS API Documentation
1777
+ #
1778
+ # @overload get_ecs_service_recommendations(params = {})
1779
+ # @param [Hash] params ({})
1780
+ def get_ecs_service_recommendations(params = {}, options = {})
1781
+ req = build_request(:get_ecs_service_recommendations, params)
1782
+ req.send_request(options)
1783
+ end
1784
+
1478
1785
  # Returns the recommendation preferences that are in effect for a given
1479
1786
  # resource, such as enhanced infrastructure metrics. Considers all
1480
1787
  # applicable preferences that you might have set at the resource,
@@ -1492,6 +1799,7 @@ module Aws::ComputeOptimizer
1492
1799
  # @return [Types::GetEffectiveRecommendationPreferencesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1493
1800
  #
1494
1801
  # * {Types::GetEffectiveRecommendationPreferencesResponse#enhanced_infrastructure_metrics #enhanced_infrastructure_metrics} => String
1802
+ # * {Types::GetEffectiveRecommendationPreferencesResponse#external_metrics_preference #external_metrics_preference} => Types::ExternalMetricsPreference
1495
1803
  #
1496
1804
  # @example Request syntax with placeholder values
1497
1805
  #
@@ -1502,6 +1810,7 @@ module Aws::ComputeOptimizer
1502
1810
  # @example Response structure
1503
1811
  #
1504
1812
  # resp.enhanced_infrastructure_metrics #=> String, one of "Active", "Inactive"
1813
+ # resp.external_metrics_preference.source #=> String, one of "Datadog", "Dynatrace", "NewRelic", "Instana"
1505
1814
  #
1506
1815
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEffectiveRecommendationPreferences AWS API Documentation
1507
1816
  #
@@ -1573,6 +1882,8 @@ module Aws::ComputeOptimizer
1573
1882
  # * {Types::GetEnrollmentStatusesForOrganizationResponse#account_enrollment_statuses #account_enrollment_statuses} => Array&lt;Types::AccountEnrollmentStatus&gt;
1574
1883
  # * {Types::GetEnrollmentStatusesForOrganizationResponse#next_token #next_token} => String
1575
1884
  #
1885
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1886
+ #
1576
1887
  # @example Request syntax with placeholder values
1577
1888
  #
1578
1889
  # resp = client.get_enrollment_statuses_for_organization({
@@ -1659,6 +1970,8 @@ module Aws::ComputeOptimizer
1659
1970
  # * {Types::GetLambdaFunctionRecommendationsResponse#next_token #next_token} => String
1660
1971
  # * {Types::GetLambdaFunctionRecommendationsResponse#lambda_function_recommendations #lambda_function_recommendations} => Array&lt;Types::LambdaFunctionRecommendation&gt;
1661
1972
  #
1973
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1974
+ #
1662
1975
  # @example Request syntax with placeholder values
1663
1976
  #
1664
1977
  # resp = client.get_lambda_function_recommendations({
@@ -1771,10 +2084,12 @@ module Aws::ComputeOptimizer
1771
2084
  # * {Types::GetRecommendationPreferencesResponse#next_token #next_token} => String
1772
2085
  # * {Types::GetRecommendationPreferencesResponse#recommendation_preferences_details #recommendation_preferences_details} => Array&lt;Types::RecommendationPreferencesDetail&gt;
1773
2086
  #
2087
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2088
+ #
1774
2089
  # @example Request syntax with placeholder values
1775
2090
  #
1776
2091
  # resp = client.get_recommendation_preferences({
1777
- # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable
2092
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService
1778
2093
  # scope: {
1779
2094
  # name: "Organization", # accepts Organization, AccountId, ResourceArn
1780
2095
  # value: "ScopeValue",
@@ -1789,9 +2104,10 @@ module Aws::ComputeOptimizer
1789
2104
  # resp.recommendation_preferences_details #=> Array
1790
2105
  # resp.recommendation_preferences_details[0].scope.name #=> String, one of "Organization", "AccountId", "ResourceArn"
1791
2106
  # resp.recommendation_preferences_details[0].scope.value #=> String
1792
- # resp.recommendation_preferences_details[0].resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "NotApplicable"
2107
+ # resp.recommendation_preferences_details[0].resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "NotApplicable", "EcsService"
1793
2108
  # resp.recommendation_preferences_details[0].enhanced_infrastructure_metrics #=> String, one of "Active", "Inactive"
1794
2109
  # resp.recommendation_preferences_details[0].inferred_workload_types #=> String, one of "Active", "Inactive"
2110
+ # resp.recommendation_preferences_details[0].external_metrics_preference.source #=> String, one of "Datadog", "Dynatrace", "NewRelic", "Instana"
1795
2111
  #
1796
2112
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationPreferences AWS API Documentation
1797
2113
  #
@@ -1818,6 +2134,9 @@ module Aws::ComputeOptimizer
1818
2134
  # * Lambda functions in an account that are `NotOptimized`, or
1819
2135
  # `Optimized`.
1820
2136
  #
2137
+ # * Amazon ECS services in an account that are `Underprovisioned`,
2138
+ # `Overprovisioned`, or `Optimized`.
2139
+ #
1821
2140
  # @option params [Array<String>] :account_ids
1822
2141
  # The ID of the Amazon Web Services account for which to return
1823
2142
  # recommendation summaries.
@@ -1843,6 +2162,8 @@ module Aws::ComputeOptimizer
1843
2162
  # * {Types::GetRecommendationSummariesResponse#next_token #next_token} => String
1844
2163
  # * {Types::GetRecommendationSummariesResponse#recommendation_summaries #recommendation_summaries} => Array&lt;Types::RecommendationSummary&gt;
1845
2164
  #
2165
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2166
+ #
1846
2167
  # @example Request syntax with placeholder values
1847
2168
  #
1848
2169
  # resp = client.get_recommendation_summaries({
@@ -1861,7 +2182,7 @@ module Aws::ComputeOptimizer
1861
2182
  # resp.recommendation_summaries[0].summaries[0].reason_code_summaries #=> Array
1862
2183
  # resp.recommendation_summaries[0].summaries[0].reason_code_summaries[0].name #=> String, one of "MemoryOverprovisioned", "MemoryUnderprovisioned"
1863
2184
  # resp.recommendation_summaries[0].summaries[0].reason_code_summaries[0].value #=> Float
1864
- # resp.recommendation_summaries[0].recommendation_resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction"
2185
+ # resp.recommendation_summaries[0].recommendation_resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "EcsService"
1865
2186
  # resp.recommendation_summaries[0].account_id #=> String
1866
2187
  # resp.recommendation_summaries[0].savings_opportunity.savings_opportunity_percentage #=> Float
1867
2188
  # resp.recommendation_summaries[0].savings_opportunity.estimated_monthly_savings.currency #=> String, one of "USD", "CNY"
@@ -1962,18 +2283,38 @@ module Aws::ComputeOptimizer
1962
2283
  #
1963
2284
  # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/inferred-workload-types.html
1964
2285
  #
2286
+ # @option params [Types::ExternalMetricsPreference] :external_metrics_preference
2287
+ # The provider of the external metrics recommendation preference to
2288
+ # create or update.
2289
+ #
2290
+ # Specify a valid provider in the `source` field to activate the
2291
+ # preference. To delete this preference, see the
2292
+ # DeleteRecommendationPreferences action.
2293
+ #
2294
+ # This preference can only be set for the `Ec2Instance` resource type.
2295
+ #
2296
+ # For more information, see [External metrics ingestion][1] in the
2297
+ # *Compute Optimizer User Guide*.
2298
+ #
2299
+ #
2300
+ #
2301
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/external-metrics-ingestion.html
2302
+ #
1965
2303
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1966
2304
  #
1967
2305
  # @example Request syntax with placeholder values
1968
2306
  #
1969
2307
  # resp = client.put_recommendation_preferences({
1970
- # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable
2308
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService
1971
2309
  # scope: {
1972
2310
  # name: "Organization", # accepts Organization, AccountId, ResourceArn
1973
2311
  # value: "ScopeValue",
1974
2312
  # },
1975
2313
  # enhanced_infrastructure_metrics: "Active", # accepts Active, Inactive
1976
2314
  # inferred_workload_types: "Active", # accepts Active, Inactive
2315
+ # external_metrics_preference: {
2316
+ # source: "Datadog", # accepts Datadog, Dynatrace, NewRelic, Instana
2317
+ # },
1977
2318
  # })
1978
2319
  #
1979
2320
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/PutRecommendationPreferences AWS API Documentation
@@ -2074,7 +2415,7 @@ module Aws::ComputeOptimizer
2074
2415
  params: params,
2075
2416
  config: config)
2076
2417
  context[:gem_name] = 'aws-sdk-computeoptimizer'
2077
- context[:gem_version] = '1.34.0'
2418
+ context[:gem_version] = '1.36.0'
2078
2419
  Seahorse::Client::Request.new(handlers, context)
2079
2420
  end
2080
2421