aws-sdk-computeoptimizer 1.10.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 498e8b38dc082c018f02d93d8d850aea61628741f4a8761e9a7e09a971e7b348
4
- data.tar.gz: 8f94fcd7017e18944848f5690f9e124c9224b127dfc20680c6586575dadd91e2
3
+ metadata.gz: b3e71d7130da86042a01be6ac59dc5a235ac7d2eaa61e9ede4461bf6a986cd65
4
+ data.tar.gz: fe35e50b3c20d03156bf1c40e566a3bbccadb779f691e6937d25f0438e774493
5
5
  SHA512:
6
- metadata.gz: be632931c4103d2323a6914c0bbfd7d03c6faeda70861ed11036f472aaf6456463ba8b9605435e769798dea7613562b7c8cd53e5154377c085ba1a6f96326cbf
7
- data.tar.gz: ed6bffbc0d018c6b78281bc3505d47741623189b1c8c76e81c180f27bede1c0065747825b423897b617f9d8a1f5b7d29dddb6148bd08787816e0ccf1e4269be3
6
+ metadata.gz: 41fe11cc72ab115f8c85bda5668b84d493f247b019c548859fe6807bb33b960cac07701041cd704f6a42900a6eabaff6261be7396810ce1b168f5a77aeb10541
7
+ data.tar.gz: ca4118177167b633dd531700df6432f3a4d7ea078223eee2b33f4d1a293c5aeab27b90ec65a13a4fd30df6cca61af1a043792f83ce1bb0499e4893d69145e0ff
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-computeoptimizer/customizations'
48
48
  # @!group service
49
49
  module Aws::ComputeOptimizer
50
50
 
51
- GEM_VERSION = '1.10.0'
51
+ GEM_VERSION = '1.15.0'
52
52
 
53
53
  end
@@ -429,7 +429,7 @@ module Aws::ComputeOptimizer
429
429
  # recommendations.
430
430
  #
431
431
  # If your account is the management account of an organization, use this
432
- # parameter to specify the member accounts for which you want to export
432
+ # parameter to specify the member account for which you want to export
433
433
  # recommendations.
434
434
  #
435
435
  # This parameter cannot be specified together with the include member
@@ -552,7 +552,7 @@ module Aws::ComputeOptimizer
552
552
  # recommendations.
553
553
  #
554
554
  # If your account is the management account of an organization, use this
555
- # parameter to specify the member accounts for which you want to export
555
+ # parameter to specify the member account for which you want to export
556
556
  # recommendations.
557
557
  #
558
558
  # This parameter cannot be specified together with the include member
@@ -664,11 +664,11 @@ module Aws::ComputeOptimizer
664
664
  # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html
665
665
  #
666
666
  # @option params [Array<String>] :account_ids
667
- # The IDs of the AWS accounts for which to return Auto Scaling group
667
+ # The ID of the AWS account for which to return Auto Scaling group
668
668
  # recommendations.
669
669
  #
670
670
  # If your account is the management account of an organization, use this
671
- # parameter to specify the member accounts for which you want to return
671
+ # parameter to specify the member account for which you want to return
672
672
  # Auto Scaling group recommendations.
673
673
  #
674
674
  # Only one account ID can be specified per request.
@@ -787,11 +787,10 @@ module Aws::ComputeOptimizer
787
787
  # specific list of volume recommendations.
788
788
  #
789
789
  # @option params [Array<String>] :account_ids
790
- # The IDs of the AWS accounts for which to return volume
791
- # recommendations.
790
+ # The ID of the AWS account for which to return volume recommendations.
792
791
  #
793
792
  # If your account is the management account of an organization, use this
794
- # parameter to specify the member accounts for which you want to return
793
+ # parameter to specify the member account for which you want to return
795
794
  # volume recommendations.
796
795
  #
797
796
  # Only one account ID can be specified per request.
@@ -889,11 +888,11 @@ module Aws::ComputeOptimizer
889
888
  # specific list of instance recommendations.
890
889
  #
891
890
  # @option params [Array<String>] :account_ids
892
- # The IDs of the AWS accounts for which to return instance
891
+ # The ID of the AWS account for which to return instance
893
892
  # recommendations.
894
893
  #
895
894
  # If your account is the management account of an organization, use this
896
- # parameter to specify the member accounts for which you want to return
895
+ # parameter to specify the member account for which you want to return
897
896
  # instance recommendations.
898
897
  #
899
898
  # Only one account ID can be specified per request.
@@ -943,7 +942,7 @@ module Aws::ComputeOptimizer
943
942
  # resp.instance_recommendations[0].recommendation_options[0].rank #=> Integer
944
943
  # resp.instance_recommendations[0].recommendation_sources #=> Array
945
944
  # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_arn #=> String
946
- # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume"
945
+ # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction"
947
946
  # resp.instance_recommendations[0].last_refresh_timestamp #=> Time
948
947
  # resp.errors #=> Array
949
948
  # resp.errors[0].identifier #=> String
@@ -1053,19 +1052,134 @@ module Aws::ComputeOptimizer
1053
1052
  req.send_request(options)
1054
1053
  end
1055
1054
 
1055
+ # Returns AWS Lambda function recommendations.
1056
+ #
1057
+ # AWS Compute Optimizer generates recommendations for functions that
1058
+ # meet a specific set of requirements. For more information, see the
1059
+ # [Supported resources and requirements][1] in the *AWS Compute
1060
+ # Optimizer User Guide*.
1061
+ #
1062
+ #
1063
+ #
1064
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html
1065
+ #
1066
+ # @option params [Array<String>] :function_arns
1067
+ # The Amazon Resource Name (ARN) of the functions for which to return
1068
+ # recommendations.
1069
+ #
1070
+ # You can specify a qualified or unqualified ARN. If you specify an
1071
+ # unqualified ARN without a function version suffix, Compute Optimizer
1072
+ # will return recommendations for the latest (`$LATEST`) version of the
1073
+ # function. If you specify a qualified ARN with a version suffix,
1074
+ # Compute Optimizer will return recommendations for the specified
1075
+ # function version. For more information about using function versions,
1076
+ # see [Using versions][1] in the *AWS Lambda Developer Guide*.
1077
+ #
1078
+ #
1079
+ #
1080
+ # [1]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using
1081
+ #
1082
+ # @option params [Array<String>] :account_ids
1083
+ # The ID of the AWS account for which to return function
1084
+ # recommendations.
1085
+ #
1086
+ # If your account is the management account of an organization, use this
1087
+ # parameter to specify the member account for which you want to return
1088
+ # function recommendations.
1089
+ #
1090
+ # Only one account ID can be specified per request.
1091
+ #
1092
+ # @option params [Array<Types::LambdaFunctionRecommendationFilter>] :filters
1093
+ # An array of objects that describe a filter that returns a more
1094
+ # specific list of function recommendations.
1095
+ #
1096
+ # @option params [String] :next_token
1097
+ # The token to advance to the next page of function recommendations.
1098
+ #
1099
+ # @option params [Integer] :max_results
1100
+ # The maximum number of function recommendations to return with a single
1101
+ # request.
1102
+ #
1103
+ # To retrieve the remaining results, make another request with the
1104
+ # returned `NextToken` value.
1105
+ #
1106
+ # @return [Types::GetLambdaFunctionRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1107
+ #
1108
+ # * {Types::GetLambdaFunctionRecommendationsResponse#next_token #next_token} => String
1109
+ # * {Types::GetLambdaFunctionRecommendationsResponse#lambda_function_recommendations #lambda_function_recommendations} => Array&lt;Types::LambdaFunctionRecommendation&gt;
1110
+ #
1111
+ # @example Request syntax with placeholder values
1112
+ #
1113
+ # resp = client.get_lambda_function_recommendations({
1114
+ # function_arns: ["FunctionArn"],
1115
+ # account_ids: ["AccountId"],
1116
+ # filters: [
1117
+ # {
1118
+ # name: "Finding", # accepts Finding, FindingReasonCode
1119
+ # values: ["FilterValue"],
1120
+ # },
1121
+ # ],
1122
+ # next_token: "NextToken",
1123
+ # max_results: 1,
1124
+ # })
1125
+ #
1126
+ # @example Response structure
1127
+ #
1128
+ # resp.next_token #=> String
1129
+ # resp.lambda_function_recommendations #=> Array
1130
+ # resp.lambda_function_recommendations[0].function_arn #=> String
1131
+ # resp.lambda_function_recommendations[0].function_version #=> String
1132
+ # resp.lambda_function_recommendations[0].account_id #=> String
1133
+ # resp.lambda_function_recommendations[0].current_memory_size #=> Integer
1134
+ # resp.lambda_function_recommendations[0].number_of_invocations #=> Integer
1135
+ # resp.lambda_function_recommendations[0].utilization_metrics #=> Array
1136
+ # resp.lambda_function_recommendations[0].utilization_metrics[0].name #=> String, one of "Duration", "Memory"
1137
+ # resp.lambda_function_recommendations[0].utilization_metrics[0].statistic #=> String, one of "Maximum", "Average"
1138
+ # resp.lambda_function_recommendations[0].utilization_metrics[0].value #=> Float
1139
+ # resp.lambda_function_recommendations[0].lookback_period_in_days #=> Float
1140
+ # resp.lambda_function_recommendations[0].last_refresh_timestamp #=> Time
1141
+ # resp.lambda_function_recommendations[0].finding #=> String, one of "Optimized", "NotOptimized", "Unavailable"
1142
+ # resp.lambda_function_recommendations[0].finding_reason_codes #=> Array
1143
+ # resp.lambda_function_recommendations[0].finding_reason_codes[0] #=> String, one of "MemoryOverprovisioned", "MemoryUnderprovisioned", "InsufficientData", "Inconclusive"
1144
+ # resp.lambda_function_recommendations[0].memory_size_recommendation_options #=> Array
1145
+ # resp.lambda_function_recommendations[0].memory_size_recommendation_options[0].rank #=> Integer
1146
+ # resp.lambda_function_recommendations[0].memory_size_recommendation_options[0].memory_size #=> Integer
1147
+ # resp.lambda_function_recommendations[0].memory_size_recommendation_options[0].projected_utilization_metrics #=> Array
1148
+ # resp.lambda_function_recommendations[0].memory_size_recommendation_options[0].projected_utilization_metrics[0].name #=> String, one of "Duration"
1149
+ # resp.lambda_function_recommendations[0].memory_size_recommendation_options[0].projected_utilization_metrics[0].statistic #=> String, one of "LowerBound", "UpperBound", "Expected"
1150
+ # resp.lambda_function_recommendations[0].memory_size_recommendation_options[0].projected_utilization_metrics[0].value #=> Float
1151
+ #
1152
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendations AWS API Documentation
1153
+ #
1154
+ # @overload get_lambda_function_recommendations(params = {})
1155
+ # @param [Hash] params ({})
1156
+ def get_lambda_function_recommendations(params = {}, options = {})
1157
+ req = build_request(:get_lambda_function_recommendations, params)
1158
+ req.send_request(options)
1159
+ end
1160
+
1056
1161
  # Returns the optimization findings for an account.
1057
1162
  #
1058
- # For example, it returns the number of Amazon EC2 instances in an
1059
- # account that are under-provisioned, over-provisioned, or optimized. It
1060
- # also returns the number of Auto Scaling groups in an account that are
1061
- # not optimized, or optimized.
1163
+ # It returns the number of:
1164
+ #
1165
+ # * Amazon EC2 instances in an account that are `Underprovisioned`,
1166
+ # `Overprovisioned`, or `Optimized`.
1167
+ #
1168
+ # * Auto Scaling groups in an account that are `NotOptimized`, or
1169
+ # `Optimized`.
1170
+ #
1171
+ # * Amazon EBS volumes in an account that are `NotOptimized`, or
1172
+ # `Optimized`.
1173
+ #
1174
+ # * Lambda functions in an account that are `NotOptimized`, or
1175
+ # `Optimized`.
1062
1176
  #
1063
1177
  # @option params [Array<String>] :account_ids
1064
- # The IDs of the AWS accounts for which to return recommendation
1178
+ # The ID of the AWS account for which to return recommendation
1065
1179
  # summaries.
1066
1180
  #
1067
1181
  # If your account is the management account of an organization, use this
1068
- # parameter to specify the member accounts for which you want to return
1182
+ # parameter to specify the member account for which you want to return
1069
1183
  # recommendation summaries.
1070
1184
  #
1071
1185
  # Only one account ID can be specified per request.
@@ -1100,7 +1214,10 @@ module Aws::ComputeOptimizer
1100
1214
  # resp.recommendation_summaries[0].summaries #=> Array
1101
1215
  # resp.recommendation_summaries[0].summaries[0].name #=> String, one of "Underprovisioned", "Overprovisioned", "Optimized", "NotOptimized"
1102
1216
  # resp.recommendation_summaries[0].summaries[0].value #=> Float
1103
- # resp.recommendation_summaries[0].recommendation_resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume"
1217
+ # resp.recommendation_summaries[0].summaries[0].reason_code_summaries #=> Array
1218
+ # resp.recommendation_summaries[0].summaries[0].reason_code_summaries[0].name #=> String, one of "MemoryOverprovisioned", "MemoryUnderprovisioned"
1219
+ # resp.recommendation_summaries[0].summaries[0].reason_code_summaries[0].value #=> Float
1220
+ # resp.recommendation_summaries[0].recommendation_resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction"
1104
1221
  # resp.recommendation_summaries[0].account_id #=> String
1105
1222
  #
1106
1223
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationSummaries AWS API Documentation
@@ -1112,21 +1229,55 @@ module Aws::ComputeOptimizer
1112
1229
  req.send_request(options)
1113
1230
  end
1114
1231
 
1115
- # Updates the enrollment (opt in) status of an account to the AWS
1116
- # Compute Optimizer service.
1232
+ # Updates the enrollment (opt in and opt out) status of an account to
1233
+ # the AWS Compute Optimizer service.
1117
1234
  #
1118
1235
  # If the account is a management account of an organization, this action
1119
1236
  # can also be used to enroll member accounts within the organization.
1120
1237
  #
1238
+ # You must have the appropriate permissions to opt in to Compute
1239
+ # Optimizer, to view its recommendations, and to opt out. For more
1240
+ # information, see [Controlling access with AWS Identity and Access
1241
+ # Management][1] in the *Compute Optimizer User Guide*.
1242
+ #
1243
+ # When you opt in, Compute Optimizer automatically creates a
1244
+ # Service-Linked Role in your account to access its data. For more
1245
+ # information, see [Using Service-Linked Roles for AWS Compute
1246
+ # Optimizer][2] in the *Compute Optimizer User Guide*.
1247
+ #
1248
+ #
1249
+ #
1250
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/ug/security-iam.html
1251
+ # [2]: https://docs.aws.amazon.com/compute-optimizer/ug/using-service-linked-roles.html
1252
+ #
1121
1253
  # @option params [required, String] :status
1122
1254
  # The new enrollment status of the account.
1123
1255
  #
1124
- # Accepted options are `Active` or `Inactive`. You will get an error if
1125
- # `Pending` or `Failed` are specified.
1256
+ # The following status options are available:
1257
+ #
1258
+ # * `Active` - Opts in your account to the Compute Optimizer service.
1259
+ # Compute Optimizer begins analyzing the configuration and utilization
1260
+ # metrics of your AWS resources after you opt in. For more
1261
+ # information, see [Metrics analyzed by AWS Compute Optimizer][1] in
1262
+ # the *Compute Optimizer User Guide*.
1263
+ #
1264
+ # * `Inactive` - Opts out your account from the Compute Optimizer
1265
+ # service. Your account's recommendations and related metrics data
1266
+ # will be deleted from Compute Optimizer after you opt out.
1267
+ #
1268
+ # <note markdown="1"> The `Pending` and `Failed` options cannot be used to update the
1269
+ # enrollment status of an account. They are returned in the response of
1270
+ # a request to update the enrollment status of an account.
1271
+ #
1272
+ # </note>
1273
+ #
1274
+ #
1275
+ #
1276
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/ug/metrics.html
1126
1277
  #
1127
1278
  # @option params [Boolean] :include_member_accounts
1128
1279
  # Indicates whether to enroll member accounts of the organization if the
1129
- # your account is the management account of an organization.
1280
+ # account is the management account of an organization.
1130
1281
  #
1131
1282
  # @return [Types::UpdateEnrollmentStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1132
1283
  #
@@ -1167,7 +1318,7 @@ module Aws::ComputeOptimizer
1167
1318
  params: params,
1168
1319
  config: config)
1169
1320
  context[:gem_name] = 'aws-sdk-computeoptimizer'
1170
- context[:gem_version] = '1.10.0'
1321
+ context[:gem_version] = '1.15.0'
1171
1322
  Seahorse::Client::Request.new(handlers, context)
1172
1323
  end
1173
1324
 
@@ -58,6 +58,10 @@ module Aws::ComputeOptimizer
58
58
  FilterValues = Shapes::ListShape.new(name: 'FilterValues')
59
59
  Filters = Shapes::ListShape.new(name: 'Filters')
60
60
  Finding = Shapes::StringShape.new(name: 'Finding')
61
+ FindingReasonCode = Shapes::StringShape.new(name: 'FindingReasonCode')
62
+ FunctionArn = Shapes::StringShape.new(name: 'FunctionArn')
63
+ FunctionArns = Shapes::ListShape.new(name: 'FunctionArns')
64
+ FunctionVersion = Shapes::StringShape.new(name: 'FunctionVersion')
61
65
  GetAutoScalingGroupRecommendationsRequest = Shapes::StructureShape.new(name: 'GetAutoScalingGroupRecommendationsRequest')
62
66
  GetAutoScalingGroupRecommendationsResponse = Shapes::StructureShape.new(name: 'GetAutoScalingGroupRecommendationsResponse')
63
67
  GetEBSVolumeRecommendationsRequest = Shapes::StructureShape.new(name: 'GetEBSVolumeRecommendationsRequest')
@@ -68,6 +72,8 @@ module Aws::ComputeOptimizer
68
72
  GetEC2RecommendationProjectedMetricsResponse = Shapes::StructureShape.new(name: 'GetEC2RecommendationProjectedMetricsResponse')
69
73
  GetEnrollmentStatusRequest = Shapes::StructureShape.new(name: 'GetEnrollmentStatusRequest')
70
74
  GetEnrollmentStatusResponse = Shapes::StructureShape.new(name: 'GetEnrollmentStatusResponse')
75
+ GetLambdaFunctionRecommendationsRequest = Shapes::StructureShape.new(name: 'GetLambdaFunctionRecommendationsRequest')
76
+ GetLambdaFunctionRecommendationsResponse = Shapes::StructureShape.new(name: 'GetLambdaFunctionRecommendationsResponse')
71
77
  GetRecommendationError = Shapes::StructureShape.new(name: 'GetRecommendationError')
72
78
  GetRecommendationErrors = Shapes::ListShape.new(name: 'GetRecommendationErrors')
73
79
  GetRecommendationSummariesRequest = Shapes::StructureShape.new(name: 'GetRecommendationSummariesRequest')
@@ -89,6 +95,24 @@ module Aws::ComputeOptimizer
89
95
  JobId = Shapes::StringShape.new(name: 'JobId')
90
96
  JobIds = Shapes::ListShape.new(name: 'JobIds')
91
97
  JobStatus = Shapes::StringShape.new(name: 'JobStatus')
98
+ LambdaFunctionMemoryMetricName = Shapes::StringShape.new(name: 'LambdaFunctionMemoryMetricName')
99
+ LambdaFunctionMemoryMetricStatistic = Shapes::StringShape.new(name: 'LambdaFunctionMemoryMetricStatistic')
100
+ LambdaFunctionMemoryProjectedMetric = Shapes::StructureShape.new(name: 'LambdaFunctionMemoryProjectedMetric')
101
+ LambdaFunctionMemoryProjectedMetrics = Shapes::ListShape.new(name: 'LambdaFunctionMemoryProjectedMetrics')
102
+ LambdaFunctionMemoryRecommendationOption = Shapes::StructureShape.new(name: 'LambdaFunctionMemoryRecommendationOption')
103
+ LambdaFunctionMemoryRecommendationOptions = Shapes::ListShape.new(name: 'LambdaFunctionMemoryRecommendationOptions')
104
+ LambdaFunctionMetricName = Shapes::StringShape.new(name: 'LambdaFunctionMetricName')
105
+ LambdaFunctionMetricStatistic = Shapes::StringShape.new(name: 'LambdaFunctionMetricStatistic')
106
+ LambdaFunctionRecommendation = Shapes::StructureShape.new(name: 'LambdaFunctionRecommendation')
107
+ LambdaFunctionRecommendationFilter = Shapes::StructureShape.new(name: 'LambdaFunctionRecommendationFilter')
108
+ LambdaFunctionRecommendationFilterName = Shapes::StringShape.new(name: 'LambdaFunctionRecommendationFilterName')
109
+ LambdaFunctionRecommendationFilters = Shapes::ListShape.new(name: 'LambdaFunctionRecommendationFilters')
110
+ LambdaFunctionRecommendationFinding = Shapes::StringShape.new(name: 'LambdaFunctionRecommendationFinding')
111
+ LambdaFunctionRecommendationFindingReasonCode = Shapes::StringShape.new(name: 'LambdaFunctionRecommendationFindingReasonCode')
112
+ LambdaFunctionRecommendationFindingReasonCodes = Shapes::ListShape.new(name: 'LambdaFunctionRecommendationFindingReasonCodes')
113
+ LambdaFunctionRecommendations = Shapes::ListShape.new(name: 'LambdaFunctionRecommendations')
114
+ LambdaFunctionUtilizationMetric = Shapes::StructureShape.new(name: 'LambdaFunctionUtilizationMetric')
115
+ LambdaFunctionUtilizationMetrics = Shapes::ListShape.new(name: 'LambdaFunctionUtilizationMetrics')
92
116
  LastRefreshTimestamp = Shapes::TimestampShape.new(name: 'LastRefreshTimestamp')
93
117
  LastUpdatedTimestamp = Shapes::TimestampShape.new(name: 'LastUpdatedTimestamp')
94
118
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
@@ -96,6 +120,7 @@ module Aws::ComputeOptimizer
96
120
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
97
121
  MaxSize = Shapes::IntegerShape.new(name: 'MaxSize')
98
122
  MemberAccountsEnrolled = Shapes::BooleanShape.new(name: 'MemberAccountsEnrolled')
123
+ MemorySize = Shapes::IntegerShape.new(name: 'MemorySize')
99
124
  Message = Shapes::StringShape.new(name: 'Message')
100
125
  MetadataKey = Shapes::StringShape.new(name: 'MetadataKey')
101
126
  MetricName = Shapes::StringShape.new(name: 'MetricName')
@@ -105,6 +130,7 @@ module Aws::ComputeOptimizer
105
130
  MinSize = Shapes::IntegerShape.new(name: 'MinSize')
106
131
  MissingAuthenticationToken = Shapes::StructureShape.new(name: 'MissingAuthenticationToken')
107
132
  NextToken = Shapes::StringShape.new(name: 'NextToken')
133
+ NumberOfInvocations = Shapes::IntegerShape.new(name: 'NumberOfInvocations')
108
134
  OptInRequiredException = Shapes::StructureShape.new(name: 'OptInRequiredException')
109
135
  PerformanceRisk = Shapes::FloatShape.new(name: 'PerformanceRisk')
110
136
  Period = Shapes::IntegerShape.new(name: 'Period')
@@ -112,6 +138,8 @@ module Aws::ComputeOptimizer
112
138
  ProjectedMetrics = Shapes::ListShape.new(name: 'ProjectedMetrics')
113
139
  ProjectedUtilizationMetrics = Shapes::ListShape.new(name: 'ProjectedUtilizationMetrics')
114
140
  Rank = Shapes::IntegerShape.new(name: 'Rank')
141
+ ReasonCodeSummaries = Shapes::ListShape.new(name: 'ReasonCodeSummaries')
142
+ ReasonCodeSummary = Shapes::StructureShape.new(name: 'ReasonCodeSummary')
115
143
  RecommendationExportJob = Shapes::StructureShape.new(name: 'RecommendationExportJob')
116
144
  RecommendationExportJobs = Shapes::ListShape.new(name: 'RecommendationExportJobs')
117
145
  RecommendationOptions = Shapes::ListShape.new(name: 'RecommendationOptions')
@@ -251,6 +279,8 @@ module Aws::ComputeOptimizer
251
279
 
252
280
  Filters.member = Shapes::ShapeRef.new(shape: Filter)
253
281
 
282
+ FunctionArns.member = Shapes::ShapeRef.new(shape: FunctionArn)
283
+
254
284
  GetAutoScalingGroupRecommendationsRequest.add_member(:account_ids, Shapes::ShapeRef.new(shape: AccountIds, location_name: "accountIds"))
255
285
  GetAutoScalingGroupRecommendationsRequest.add_member(:auto_scaling_group_arns, Shapes::ShapeRef.new(shape: AutoScalingGroupArns, location_name: "autoScalingGroupArns"))
256
286
  GetAutoScalingGroupRecommendationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
@@ -304,6 +334,17 @@ module Aws::ComputeOptimizer
304
334
  GetEnrollmentStatusResponse.add_member(:member_accounts_enrolled, Shapes::ShapeRef.new(shape: MemberAccountsEnrolled, location_name: "memberAccountsEnrolled"))
305
335
  GetEnrollmentStatusResponse.struct_class = Types::GetEnrollmentStatusResponse
306
336
 
337
+ GetLambdaFunctionRecommendationsRequest.add_member(:function_arns, Shapes::ShapeRef.new(shape: FunctionArns, location_name: "functionArns"))
338
+ GetLambdaFunctionRecommendationsRequest.add_member(:account_ids, Shapes::ShapeRef.new(shape: AccountIds, location_name: "accountIds"))
339
+ GetLambdaFunctionRecommendationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: LambdaFunctionRecommendationFilters, location_name: "filters"))
340
+ GetLambdaFunctionRecommendationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
341
+ GetLambdaFunctionRecommendationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults"))
342
+ GetLambdaFunctionRecommendationsRequest.struct_class = Types::GetLambdaFunctionRecommendationsRequest
343
+
344
+ GetLambdaFunctionRecommendationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
345
+ GetLambdaFunctionRecommendationsResponse.add_member(:lambda_function_recommendations, Shapes::ShapeRef.new(shape: LambdaFunctionRecommendations, location_name: "lambdaFunctionRecommendations"))
346
+ GetLambdaFunctionRecommendationsResponse.struct_class = Types::GetLambdaFunctionRecommendationsResponse
347
+
307
348
  GetRecommendationError.add_member(:identifier, Shapes::ShapeRef.new(shape: Identifier, location_name: "identifier"))
308
349
  GetRecommendationError.add_member(:code, Shapes::ShapeRef.new(shape: Code, location_name: "code"))
309
350
  GetRecommendationError.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
@@ -356,6 +397,50 @@ module Aws::ComputeOptimizer
356
397
 
357
398
  JobIds.member = Shapes::ShapeRef.new(shape: JobId)
358
399
 
400
+ LambdaFunctionMemoryProjectedMetric.add_member(:name, Shapes::ShapeRef.new(shape: LambdaFunctionMemoryMetricName, location_name: "name"))
401
+ LambdaFunctionMemoryProjectedMetric.add_member(:statistic, Shapes::ShapeRef.new(shape: LambdaFunctionMemoryMetricStatistic, location_name: "statistic"))
402
+ LambdaFunctionMemoryProjectedMetric.add_member(:value, Shapes::ShapeRef.new(shape: MetricValue, location_name: "value"))
403
+ LambdaFunctionMemoryProjectedMetric.struct_class = Types::LambdaFunctionMemoryProjectedMetric
404
+
405
+ LambdaFunctionMemoryProjectedMetrics.member = Shapes::ShapeRef.new(shape: LambdaFunctionMemoryProjectedMetric)
406
+
407
+ LambdaFunctionMemoryRecommendationOption.add_member(:rank, Shapes::ShapeRef.new(shape: Rank, location_name: "rank"))
408
+ LambdaFunctionMemoryRecommendationOption.add_member(:memory_size, Shapes::ShapeRef.new(shape: MemorySize, location_name: "memorySize"))
409
+ LambdaFunctionMemoryRecommendationOption.add_member(:projected_utilization_metrics, Shapes::ShapeRef.new(shape: LambdaFunctionMemoryProjectedMetrics, location_name: "projectedUtilizationMetrics"))
410
+ LambdaFunctionMemoryRecommendationOption.struct_class = Types::LambdaFunctionMemoryRecommendationOption
411
+
412
+ LambdaFunctionMemoryRecommendationOptions.member = Shapes::ShapeRef.new(shape: LambdaFunctionMemoryRecommendationOption)
413
+
414
+ LambdaFunctionRecommendation.add_member(:function_arn, Shapes::ShapeRef.new(shape: FunctionArn, location_name: "functionArn"))
415
+ LambdaFunctionRecommendation.add_member(:function_version, Shapes::ShapeRef.new(shape: FunctionVersion, location_name: "functionVersion"))
416
+ LambdaFunctionRecommendation.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "accountId"))
417
+ LambdaFunctionRecommendation.add_member(:current_memory_size, Shapes::ShapeRef.new(shape: MemorySize, location_name: "currentMemorySize"))
418
+ LambdaFunctionRecommendation.add_member(:number_of_invocations, Shapes::ShapeRef.new(shape: NumberOfInvocations, location_name: "numberOfInvocations"))
419
+ LambdaFunctionRecommendation.add_member(:utilization_metrics, Shapes::ShapeRef.new(shape: LambdaFunctionUtilizationMetrics, location_name: "utilizationMetrics"))
420
+ LambdaFunctionRecommendation.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookBackPeriodInDays, location_name: "lookbackPeriodInDays"))
421
+ LambdaFunctionRecommendation.add_member(:last_refresh_timestamp, Shapes::ShapeRef.new(shape: LastRefreshTimestamp, location_name: "lastRefreshTimestamp"))
422
+ LambdaFunctionRecommendation.add_member(:finding, Shapes::ShapeRef.new(shape: LambdaFunctionRecommendationFinding, location_name: "finding"))
423
+ LambdaFunctionRecommendation.add_member(:finding_reason_codes, Shapes::ShapeRef.new(shape: LambdaFunctionRecommendationFindingReasonCodes, location_name: "findingReasonCodes"))
424
+ LambdaFunctionRecommendation.add_member(:memory_size_recommendation_options, Shapes::ShapeRef.new(shape: LambdaFunctionMemoryRecommendationOptions, location_name: "memorySizeRecommendationOptions"))
425
+ LambdaFunctionRecommendation.struct_class = Types::LambdaFunctionRecommendation
426
+
427
+ LambdaFunctionRecommendationFilter.add_member(:name, Shapes::ShapeRef.new(shape: LambdaFunctionRecommendationFilterName, location_name: "name"))
428
+ LambdaFunctionRecommendationFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValues, location_name: "values"))
429
+ LambdaFunctionRecommendationFilter.struct_class = Types::LambdaFunctionRecommendationFilter
430
+
431
+ LambdaFunctionRecommendationFilters.member = Shapes::ShapeRef.new(shape: LambdaFunctionRecommendationFilter)
432
+
433
+ LambdaFunctionRecommendationFindingReasonCodes.member = Shapes::ShapeRef.new(shape: LambdaFunctionRecommendationFindingReasonCode)
434
+
435
+ LambdaFunctionRecommendations.member = Shapes::ShapeRef.new(shape: LambdaFunctionRecommendation)
436
+
437
+ LambdaFunctionUtilizationMetric.add_member(:name, Shapes::ShapeRef.new(shape: LambdaFunctionMetricName, location_name: "name"))
438
+ LambdaFunctionUtilizationMetric.add_member(:statistic, Shapes::ShapeRef.new(shape: LambdaFunctionMetricStatistic, location_name: "statistic"))
439
+ LambdaFunctionUtilizationMetric.add_member(:value, Shapes::ShapeRef.new(shape: MetricValue, location_name: "value"))
440
+ LambdaFunctionUtilizationMetric.struct_class = Types::LambdaFunctionUtilizationMetric
441
+
442
+ LambdaFunctionUtilizationMetrics.member = Shapes::ShapeRef.new(shape: LambdaFunctionUtilizationMetric)
443
+
359
444
  LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
360
445
  LimitExceededException.struct_class = Types::LimitExceededException
361
446
 
@@ -376,6 +461,12 @@ module Aws::ComputeOptimizer
376
461
 
377
462
  ProjectedUtilizationMetrics.member = Shapes::ShapeRef.new(shape: UtilizationMetric)
378
463
 
464
+ ReasonCodeSummaries.member = Shapes::ShapeRef.new(shape: ReasonCodeSummary)
465
+
466
+ ReasonCodeSummary.add_member(:name, Shapes::ShapeRef.new(shape: FindingReasonCode, location_name: "name"))
467
+ ReasonCodeSummary.add_member(:value, Shapes::ShapeRef.new(shape: SummaryValue, location_name: "value"))
468
+ ReasonCodeSummary.struct_class = Types::ReasonCodeSummary
469
+
379
470
  RecommendationExportJob.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "jobId"))
380
471
  RecommendationExportJob.add_member(:destination, Shapes::ShapeRef.new(shape: ExportDestination, location_name: "destination"))
381
472
  RecommendationExportJob.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "resourceType"))
@@ -428,6 +519,7 @@ module Aws::ComputeOptimizer
428
519
 
429
520
  Summary.add_member(:name, Shapes::ShapeRef.new(shape: Finding, location_name: "name"))
430
521
  Summary.add_member(:value, Shapes::ShapeRef.new(shape: SummaryValue, location_name: "value"))
522
+ Summary.add_member(:reason_code_summaries, Shapes::ShapeRef.new(shape: ReasonCodeSummaries, location_name: "reasonCodeSummaries"))
431
523
  Summary.struct_class = Types::Summary
432
524
 
433
525
  ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, required: true, location_name: "message"))
@@ -624,6 +716,22 @@ module Aws::ComputeOptimizer
624
716
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
625
717
  end)
626
718
 
719
+ api.add_operation(:get_lambda_function_recommendations, Seahorse::Model::Operation.new.tap do |o|
720
+ o.name = "GetLambdaFunctionRecommendations"
721
+ o.http_method = "POST"
722
+ o.http_request_uri = "/"
723
+ o.input = Shapes::ShapeRef.new(shape: GetLambdaFunctionRecommendationsRequest)
724
+ o.output = Shapes::ShapeRef.new(shape: GetLambdaFunctionRecommendationsResponse)
725
+ o.errors << Shapes::ShapeRef.new(shape: OptInRequiredException)
726
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
727
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
728
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
729
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
730
+ o.errors << Shapes::ShapeRef.new(shape: MissingAuthenticationToken)
731
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
732
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
733
+ end)
734
+
627
735
  api.add_operation(:get_recommendation_summaries, Seahorse::Model::Operation.new.tap do |o|
628
736
  o.name = "GetRecommendationSummaries"
629
737
  o.http_method = "POST"
@@ -323,15 +323,22 @@ module Aws::ComputeOptimizer
323
323
  # @!attribute [rw] statistic
324
324
  # The statistic of the utilization metric.
325
325
  #
326
- # The following statistics are available:
326
+ # The Compute Optimizer API, AWS Command Line Interface (AWS CLI), and
327
+ # SDKs return utilization metrics using only the `Maximum` statistic,
328
+ # which is the highest value observed during the specified period.
327
329
  #
328
- # * `Average` - This is the value of Sum / SampleCount during the
329
- # specified period, or the average value observed during the
330
- # specified period.
330
+ # The Compute Optimizer console displays graphs for some utilization
331
+ # metrics using the `Average` statistic, which is the value of `Sum` /
332
+ # `SampleCount` during the specified period. For more information, see
333
+ # [Viewing resource recommendations][1] in the *AWS Compute Optimizer
334
+ # User Guide*. You can also get averaged utilization metric data for
335
+ # your resources using Amazon CloudWatch. For more information, see
336
+ # the [Amazon CloudWatch User Guide][2].
331
337
  #
332
- # * `Maximum` - The highest value observed during the specified
333
- # period. Use this value to determine high volumes of activity for
334
- # your application.
338
+ #
339
+ #
340
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html
341
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html
335
342
  # @return [String]
336
343
  #
337
344
  # @!attribute [rw] value
@@ -373,7 +380,7 @@ module Aws::ComputeOptimizer
373
380
  # recommendations.
374
381
  #
375
382
  # If your account is the management account of an organization, use
376
- # this parameter to specify the member accounts for which you want to
383
+ # this parameter to specify the member account for which you want to
377
384
  # export recommendations.
378
385
  #
379
386
  # This parameter cannot be specified together with the include member
@@ -519,7 +526,7 @@ module Aws::ComputeOptimizer
519
526
  # recommendations.
520
527
  #
521
528
  # If your account is the management account of an organization, use
522
- # this parameter to specify the member accounts for which you want to
529
+ # this parameter to specify the member account for which you want to
523
530
  # export recommendations.
524
531
  #
525
532
  # This parameter cannot be specified together with the include member
@@ -689,11 +696,11 @@ module Aws::ComputeOptimizer
689
696
  # }
690
697
  #
691
698
  # @!attribute [rw] account_ids
692
- # The IDs of the AWS accounts for which to return Auto Scaling group
699
+ # The ID of the AWS account for which to return Auto Scaling group
693
700
  # recommendations.
694
701
  #
695
702
  # If your account is the management account of an organization, use
696
- # this parameter to specify the member accounts for which you want to
703
+ # this parameter to specify the member account for which you want to
697
704
  # return Auto Scaling group recommendations.
698
705
  #
699
706
  # Only one account ID can be specified per request.
@@ -803,11 +810,11 @@ module Aws::ComputeOptimizer
803
810
  # @return [Array<Types::EBSFilter>]
804
811
  #
805
812
  # @!attribute [rw] account_ids
806
- # The IDs of the AWS accounts for which to return volume
813
+ # The ID of the AWS account for which to return volume
807
814
  # recommendations.
808
815
  #
809
816
  # If your account is the management account of an organization, use
810
- # this parameter to specify the member accounts for which you want to
817
+ # this parameter to specify the member account for which you want to
811
818
  # return volume recommendations.
812
819
  #
813
820
  # Only one account ID can be specified per request.
@@ -893,11 +900,11 @@ module Aws::ComputeOptimizer
893
900
  # @return [Array<Types::Filter>]
894
901
  #
895
902
  # @!attribute [rw] account_ids
896
- # The IDs of the AWS accounts for which to return instance
903
+ # The ID of the AWS account for which to return instance
897
904
  # recommendations.
898
905
  #
899
906
  # If your account is the management account of an organization, use
900
- # this parameter to specify the member accounts for which you want to
907
+ # this parameter to specify the member account for which you want to
901
908
  # return instance recommendations.
902
909
  #
903
910
  # Only one account ID can be specified per request.
@@ -1034,6 +1041,101 @@ module Aws::ComputeOptimizer
1034
1041
  include Aws::Structure
1035
1042
  end
1036
1043
 
1044
+ # @note When making an API call, you may pass GetLambdaFunctionRecommendationsRequest
1045
+ # data as a hash:
1046
+ #
1047
+ # {
1048
+ # function_arns: ["FunctionArn"],
1049
+ # account_ids: ["AccountId"],
1050
+ # filters: [
1051
+ # {
1052
+ # name: "Finding", # accepts Finding, FindingReasonCode
1053
+ # values: ["FilterValue"],
1054
+ # },
1055
+ # ],
1056
+ # next_token: "NextToken",
1057
+ # max_results: 1,
1058
+ # }
1059
+ #
1060
+ # @!attribute [rw] function_arns
1061
+ # The Amazon Resource Name (ARN) of the functions for which to return
1062
+ # recommendations.
1063
+ #
1064
+ # You can specify a qualified or unqualified ARN. If you specify an
1065
+ # unqualified ARN without a function version suffix, Compute Optimizer
1066
+ # will return recommendations for the latest (`$LATEST`) version of
1067
+ # the function. If you specify a qualified ARN with a version suffix,
1068
+ # Compute Optimizer will return recommendations for the specified
1069
+ # function version. For more information about using function
1070
+ # versions, see [Using versions][1] in the *AWS Lambda Developer
1071
+ # Guide*.
1072
+ #
1073
+ #
1074
+ #
1075
+ # [1]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using
1076
+ # @return [Array<String>]
1077
+ #
1078
+ # @!attribute [rw] account_ids
1079
+ # The ID of the AWS account for which to return function
1080
+ # recommendations.
1081
+ #
1082
+ # If your account is the management account of an organization, use
1083
+ # this parameter to specify the member account for which you want to
1084
+ # return function recommendations.
1085
+ #
1086
+ # Only one account ID can be specified per request.
1087
+ # @return [Array<String>]
1088
+ #
1089
+ # @!attribute [rw] filters
1090
+ # An array of objects that describe a filter that returns a more
1091
+ # specific list of function recommendations.
1092
+ # @return [Array<Types::LambdaFunctionRecommendationFilter>]
1093
+ #
1094
+ # @!attribute [rw] next_token
1095
+ # The token to advance to the next page of function recommendations.
1096
+ # @return [String]
1097
+ #
1098
+ # @!attribute [rw] max_results
1099
+ # The maximum number of function recommendations to return with a
1100
+ # single request.
1101
+ #
1102
+ # To retrieve the remaining results, make another request with the
1103
+ # returned `NextToken` value.
1104
+ # @return [Integer]
1105
+ #
1106
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendationsRequest AWS API Documentation
1107
+ #
1108
+ class GetLambdaFunctionRecommendationsRequest < Struct.new(
1109
+ :function_arns,
1110
+ :account_ids,
1111
+ :filters,
1112
+ :next_token,
1113
+ :max_results)
1114
+ SENSITIVE = []
1115
+ include Aws::Structure
1116
+ end
1117
+
1118
+ # @!attribute [rw] next_token
1119
+ # The token to use to advance to the next page of function
1120
+ # recommendations.
1121
+ #
1122
+ # This value is null when there are no more pages of function
1123
+ # recommendations to return.
1124
+ # @return [String]
1125
+ #
1126
+ # @!attribute [rw] lambda_function_recommendations
1127
+ # An array of objects that describe function recommendations.
1128
+ # @return [Array<Types::LambdaFunctionRecommendation>]
1129
+ #
1130
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendationsResponse AWS API Documentation
1131
+ #
1132
+ class GetLambdaFunctionRecommendationsResponse < Struct.new(
1133
+ :next_token,
1134
+ :lambda_function_recommendations)
1135
+ SENSITIVE = []
1136
+ include Aws::Structure
1137
+ end
1138
+
1037
1139
  # Describes an error experienced when getting recommendations.
1038
1140
  #
1039
1141
  # For example, an error is returned if you request recommendations for
@@ -1072,11 +1174,11 @@ module Aws::ComputeOptimizer
1072
1174
  # }
1073
1175
  #
1074
1176
  # @!attribute [rw] account_ids
1075
- # The IDs of the AWS accounts for which to return recommendation
1177
+ # The ID of the AWS account for which to return recommendation
1076
1178
  # summaries.
1077
1179
  #
1078
1180
  # If your account is the management account of an organization, use
1079
- # this parameter to specify the member accounts for which you want to
1181
+ # this parameter to specify the member account for which you want to
1080
1182
  # return recommendation summaries.
1081
1183
  #
1082
1184
  # Only one account ID can be specified per request.
@@ -1336,6 +1438,286 @@ module Aws::ComputeOptimizer
1336
1438
  include Aws::Structure
1337
1439
  end
1338
1440
 
1441
+ # Describes a projected utilization metric of an AWS Lambda function
1442
+ # recommendation option.
1443
+ #
1444
+ # @!attribute [rw] name
1445
+ # The name of the projected utilization metric.
1446
+ # @return [String]
1447
+ #
1448
+ # @!attribute [rw] statistic
1449
+ # The statistic of the projected utilization metric.
1450
+ # @return [String]
1451
+ #
1452
+ # @!attribute [rw] value
1453
+ # The values of the projected utilization metrics.
1454
+ # @return [Float]
1455
+ #
1456
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionMemoryProjectedMetric AWS API Documentation
1457
+ #
1458
+ class LambdaFunctionMemoryProjectedMetric < Struct.new(
1459
+ :name,
1460
+ :statistic,
1461
+ :value)
1462
+ SENSITIVE = []
1463
+ include Aws::Structure
1464
+ end
1465
+
1466
+ # Describes a recommendation option for an AWS Lambda function.
1467
+ #
1468
+ # @!attribute [rw] rank
1469
+ # The rank of the function recommendation option.
1470
+ #
1471
+ # The top recommendation option is ranked as `1`.
1472
+ # @return [Integer]
1473
+ #
1474
+ # @!attribute [rw] memory_size
1475
+ # The memory size, in MB, of the function recommendation option.
1476
+ # @return [Integer]
1477
+ #
1478
+ # @!attribute [rw] projected_utilization_metrics
1479
+ # An array of objects that describe the projected utilization metrics
1480
+ # of the function recommendation option.
1481
+ # @return [Array<Types::LambdaFunctionMemoryProjectedMetric>]
1482
+ #
1483
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionMemoryRecommendationOption AWS API Documentation
1484
+ #
1485
+ class LambdaFunctionMemoryRecommendationOption < Struct.new(
1486
+ :rank,
1487
+ :memory_size,
1488
+ :projected_utilization_metrics)
1489
+ SENSITIVE = []
1490
+ include Aws::Structure
1491
+ end
1492
+
1493
+ # Describes an AWS Lambda function recommendation.
1494
+ #
1495
+ # @!attribute [rw] function_arn
1496
+ # The Amazon Resource Name (ARN) of the current function.
1497
+ # @return [String]
1498
+ #
1499
+ # @!attribute [rw] function_version
1500
+ # The version number of the current function.
1501
+ # @return [String]
1502
+ #
1503
+ # @!attribute [rw] account_id
1504
+ # The AWS account ID of the function.
1505
+ # @return [String]
1506
+ #
1507
+ # @!attribute [rw] current_memory_size
1508
+ # The amount of memory, in MB, that's allocated to the current
1509
+ # function.
1510
+ # @return [Integer]
1511
+ #
1512
+ # @!attribute [rw] number_of_invocations
1513
+ # The number of times your function code was executed during the
1514
+ # look-back period.
1515
+ # @return [Integer]
1516
+ #
1517
+ # @!attribute [rw] utilization_metrics
1518
+ # An array of objects that describe the utilization metrics of the
1519
+ # function.
1520
+ # @return [Array<Types::LambdaFunctionUtilizationMetric>]
1521
+ #
1522
+ # @!attribute [rw] lookback_period_in_days
1523
+ # The number of days for which utilization metrics were analyzed for
1524
+ # the function.
1525
+ # @return [Float]
1526
+ #
1527
+ # @!attribute [rw] last_refresh_timestamp
1528
+ # The time stamp of when the function recommendation was last
1529
+ # refreshed.
1530
+ # @return [Time]
1531
+ #
1532
+ # @!attribute [rw] finding
1533
+ # The finding classification for the function.
1534
+ #
1535
+ # Findings for functions include:
1536
+ #
1537
+ # * <b> <code>Optimized</code> </b> — The function is correctly
1538
+ # provisioned to run your workload based on its current
1539
+ # configuration and its utilization history. This finding
1540
+ # classification does not include finding reason codes.
1541
+ #
1542
+ # * <b> <code>NotOptimized</code> </b> — The function is performing at
1543
+ # a higher level (over-provisioned) or at a lower level
1544
+ # (under-provisioned) than required for your workload because its
1545
+ # current configuration is not optimal. Over-provisioned resources
1546
+ # might lead to unnecessary infrastructure cost, and
1547
+ # under-provisioned resources might lead to poor application
1548
+ # performance. This finding classification can include the
1549
+ # `MemoryUnderprovisioned` and `MemoryUnderprovisioned` finding
1550
+ # reason codes.
1551
+ #
1552
+ # * <b> <code>Unavailable</code> </b> — Compute Optimizer was unable
1553
+ # to generate a recommendation for the function. This could be
1554
+ # because the function has not accumulated sufficient metric data,
1555
+ # or the function does not qualify for a recommendation. This
1556
+ # finding classification can include the `InsufficientData` and
1557
+ # `Inconclusive` finding reason codes.
1558
+ #
1559
+ # <note markdown="1"> Functions with a finding of unavailable are not returned unless
1560
+ # you specify the `filter` parameter with a value of `Unavailable`
1561
+ # in your `GetLambdaFunctionRecommendations` request.
1562
+ #
1563
+ # </note>
1564
+ # @return [String]
1565
+ #
1566
+ # @!attribute [rw] finding_reason_codes
1567
+ # The reason for the finding classification of the function.
1568
+ #
1569
+ # <note markdown="1"> Functions that have a finding classification of `Optimized` don't
1570
+ # have a finding reason code.
1571
+ #
1572
+ # </note>
1573
+ #
1574
+ # Reason codes include:
1575
+ #
1576
+ # * <b> <code>MemoryOverprovisioned</code> </b> — The function is
1577
+ # over-provisioned when its memory configuration can be sized down
1578
+ # while still meeting the performance requirements of your workload.
1579
+ # An over-provisioned function might lead to unnecessary
1580
+ # infrastructure cost. This finding reason code is part of the
1581
+ # `NotOptimized` finding classification.
1582
+ #
1583
+ # * <b> <code>MemoryUnderprovisioned</code> </b> — The function is
1584
+ # under-provisioned when its memory configuration doesn't meet the
1585
+ # performance requirements of the workload. An under-provisioned
1586
+ # function might lead to poor application performance. This finding
1587
+ # reason code is part of the `NotOptimized` finding classification.
1588
+ #
1589
+ # * <b> <code>InsufficientData</code> </b> — The function does not
1590
+ # have sufficient metric data for Compute Optimizer to generate a
1591
+ # recommendation. For more information, see the [Supported resources
1592
+ # and requirements][1] in the *AWS Compute Optimizer User Guide*.
1593
+ # This finding reason code is part of the `Unavailable` finding
1594
+ # classification.
1595
+ #
1596
+ # * <b> <code>Inconclusive</code> </b> — The function does not qualify
1597
+ # for a recommendation because Compute Optimizer cannot generate a
1598
+ # recommendation with a high degree of confidence. This finding
1599
+ # reason code is part of the `Unavailable` finding classification.
1600
+ #
1601
+ #
1602
+ #
1603
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html
1604
+ # @return [Array<String>]
1605
+ #
1606
+ # @!attribute [rw] memory_size_recommendation_options
1607
+ # An array of objects that describe the memory configuration
1608
+ # recommendation options for the function.
1609
+ # @return [Array<Types::LambdaFunctionMemoryRecommendationOption>]
1610
+ #
1611
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionRecommendation AWS API Documentation
1612
+ #
1613
+ class LambdaFunctionRecommendation < Struct.new(
1614
+ :function_arn,
1615
+ :function_version,
1616
+ :account_id,
1617
+ :current_memory_size,
1618
+ :number_of_invocations,
1619
+ :utilization_metrics,
1620
+ :lookback_period_in_days,
1621
+ :last_refresh_timestamp,
1622
+ :finding,
1623
+ :finding_reason_codes,
1624
+ :memory_size_recommendation_options)
1625
+ SENSITIVE = []
1626
+ include Aws::Structure
1627
+ end
1628
+
1629
+ # Describes a filter that returns a more specific list of AWS Lambda
1630
+ # function recommendations.
1631
+ #
1632
+ # @note When making an API call, you may pass LambdaFunctionRecommendationFilter
1633
+ # data as a hash:
1634
+ #
1635
+ # {
1636
+ # name: "Finding", # accepts Finding, FindingReasonCode
1637
+ # values: ["FilterValue"],
1638
+ # }
1639
+ #
1640
+ # @!attribute [rw] name
1641
+ # The name of the filter.
1642
+ #
1643
+ # Specify `Finding` to return recommendations with a specific finding
1644
+ # classification (e.g., `NotOptimized`).
1645
+ #
1646
+ # Specify `FindingReasonCode` to return recommendations with a
1647
+ # specific finding reason code (e.g., `MemoryUnderprovisioned`).
1648
+ # @return [String]
1649
+ #
1650
+ # @!attribute [rw] values
1651
+ # The value of the filter.
1652
+ #
1653
+ # The valid values for this parameter are as follows, depending on
1654
+ # what you specify for the `name` parameter:
1655
+ #
1656
+ # * Specify `Optimized`, `NotOptimized`, or `Unavailable` if you
1657
+ # specified the `name` parameter as `Finding`.
1658
+ #
1659
+ # * Specify `MemoryOverprovisioned`, `MemoryUnderprovisioned`,
1660
+ # `InsufficientData`, or `Inconclusive` if you specified the `name`
1661
+ # parameter as `FindingReasonCode`.
1662
+ # @return [Array<String>]
1663
+ #
1664
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionRecommendationFilter AWS API Documentation
1665
+ #
1666
+ class LambdaFunctionRecommendationFilter < Struct.new(
1667
+ :name,
1668
+ :values)
1669
+ SENSITIVE = []
1670
+ include Aws::Structure
1671
+ end
1672
+
1673
+ # Describes a utilization metric of an AWS Lambda function.
1674
+ #
1675
+ # @!attribute [rw] name
1676
+ # The name of the utilization metric.
1677
+ #
1678
+ # The following utilization metrics are available:
1679
+ #
1680
+ # * `Duration` - The amount of time that your function code spends
1681
+ # processing an event.
1682
+ #
1683
+ # * `Memory` - The amount of memory used per invocation.
1684
+ # @return [String]
1685
+ #
1686
+ # @!attribute [rw] statistic
1687
+ # The statistic of the utilization metric.
1688
+ #
1689
+ # The Compute Optimizer API, AWS Command Line Interface (AWS CLI), and
1690
+ # SDKs return utilization metrics using only the `Maximum` statistic,
1691
+ # which is the highest value observed during the specified period.
1692
+ #
1693
+ # The Compute Optimizer console displays graphs for some utilization
1694
+ # metrics using the `Average` statistic, which is the value of `Sum` /
1695
+ # `SampleCount` during the specified period. For more information, see
1696
+ # [Viewing resource recommendations][1] in the *AWS Compute Optimizer
1697
+ # User Guide*. You can also get averaged utilization metric data for
1698
+ # your resources using Amazon CloudWatch. For more information, see
1699
+ # the [Amazon CloudWatch User Guide][2].
1700
+ #
1701
+ #
1702
+ #
1703
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html
1704
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html
1705
+ # @return [String]
1706
+ #
1707
+ # @!attribute [rw] value
1708
+ # The value of the utilization metric.
1709
+ # @return [Float]
1710
+ #
1711
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionUtilizationMetric AWS API Documentation
1712
+ #
1713
+ class LambdaFunctionUtilizationMetric < Struct.new(
1714
+ :name,
1715
+ :statistic,
1716
+ :value)
1717
+ SENSITIVE = []
1718
+ include Aws::Structure
1719
+ end
1720
+
1339
1721
  # The request exceeds a limit of the service.
1340
1722
  #
1341
1723
  # @!attribute [rw] message
@@ -1451,6 +1833,25 @@ module Aws::ComputeOptimizer
1451
1833
  include Aws::Structure
1452
1834
  end
1453
1835
 
1836
+ # A summary of a finding reason code.
1837
+ #
1838
+ # @!attribute [rw] name
1839
+ # The name of the finding reason code.
1840
+ # @return [String]
1841
+ #
1842
+ # @!attribute [rw] value
1843
+ # The value of the finding reason code summary.
1844
+ # @return [Float]
1845
+ #
1846
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ReasonCodeSummary AWS API Documentation
1847
+ #
1848
+ class ReasonCodeSummary < Struct.new(
1849
+ :name,
1850
+ :value)
1851
+ SENSITIVE = []
1852
+ include Aws::Structure
1853
+ end
1854
+
1454
1855
  # Describes a recommendation export job.
1455
1856
  #
1456
1857
  # Use the `DescribeRecommendationExportJobs` action to view your
@@ -1702,11 +2103,16 @@ module Aws::ComputeOptimizer
1702
2103
  # The value of the recommendation summary.
1703
2104
  # @return [Float]
1704
2105
  #
2106
+ # @!attribute [rw] reason_code_summaries
2107
+ # An array of objects that summarize a finding reason code.
2108
+ # @return [Array<Types::ReasonCodeSummary>]
2109
+ #
1705
2110
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/Summary AWS API Documentation
1706
2111
  #
1707
2112
  class Summary < Struct.new(
1708
2113
  :name,
1709
- :value)
2114
+ :value,
2115
+ :reason_code_summaries)
1710
2116
  SENSITIVE = []
1711
2117
  include Aws::Structure
1712
2118
  end
@@ -1735,13 +2141,32 @@ module Aws::ComputeOptimizer
1735
2141
  # @!attribute [rw] status
1736
2142
  # The new enrollment status of the account.
1737
2143
  #
1738
- # Accepted options are `Active` or `Inactive`. You will get an error
1739
- # if `Pending` or `Failed` are specified.
2144
+ # The following status options are available:
2145
+ #
2146
+ # * `Active` - Opts in your account to the Compute Optimizer service.
2147
+ # Compute Optimizer begins analyzing the configuration and
2148
+ # utilization metrics of your AWS resources after you opt in. For
2149
+ # more information, see [Metrics analyzed by AWS Compute
2150
+ # Optimizer][1] in the *Compute Optimizer User Guide*.
2151
+ #
2152
+ # * `Inactive` - Opts out your account from the Compute Optimizer
2153
+ # service. Your account's recommendations and related metrics data
2154
+ # will be deleted from Compute Optimizer after you opt out.
2155
+ #
2156
+ # <note markdown="1"> The `Pending` and `Failed` options cannot be used to update the
2157
+ # enrollment status of an account. They are returned in the response
2158
+ # of a request to update the enrollment status of an account.
2159
+ #
2160
+ # </note>
2161
+ #
2162
+ #
2163
+ #
2164
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/ug/metrics.html
1740
2165
  # @return [String]
1741
2166
  #
1742
2167
  # @!attribute [rw] include_member_accounts
1743
2168
  # Indicates whether to enroll member accounts of the organization if
1744
- # the your account is the management account of an organization.
2169
+ # the account is the management account of an organization.
1745
2170
  # @return [Boolean]
1746
2171
  #
1747
2172
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatusRequest AWS API Documentation
@@ -1836,15 +2261,22 @@ module Aws::ComputeOptimizer
1836
2261
  # @!attribute [rw] statistic
1837
2262
  # The statistic of the utilization metric.
1838
2263
  #
1839
- # The following statistics are available:
2264
+ # The Compute Optimizer API, AWS Command Line Interface (AWS CLI), and
2265
+ # SDKs return utilization metrics using only the `Maximum` statistic,
2266
+ # which is the highest value observed during the specified period.
2267
+ #
2268
+ # The Compute Optimizer console displays graphs for some utilization
2269
+ # metrics using the `Average` statistic, which is the value of `Sum` /
2270
+ # `SampleCount` during the specified period. For more information, see
2271
+ # [Viewing resource recommendations][1] in the *AWS Compute Optimizer
2272
+ # User Guide*. You can also get averaged utilization metric data for
2273
+ # your resources using Amazon CloudWatch. For more information, see
2274
+ # the [Amazon CloudWatch User Guide][2].
2275
+ #
1840
2276
  #
1841
- # * `Average` - This is the value of Sum / SampleCount during the
1842
- # specified period, or the average value observed during the
1843
- # specified period.
1844
2277
  #
1845
- # * `Maximum` - The highest value observed during the specified
1846
- # period. Use this value to determine high volumes of activity for
1847
- # your application.
2278
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html
2279
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html
1848
2280
  # @return [String]
1849
2281
  #
1850
2282
  # @!attribute [rw] value
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-computeoptimizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-03 00:00:00.000000000 Z
11
+ date: 2021-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.109.0
22
+ version: 3.112.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.109.0
32
+ version: 3.112.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement