aws-sdk-computeoptimizer 1.10.0 → 1.15.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: 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