aws-sdk-computeoptimizer 1.7.0 → 1.12.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.
@@ -33,6 +33,13 @@ module Aws::ComputeOptimizer
33
33
  DestinationBucket = Shapes::StringShape.new(name: 'DestinationBucket')
34
34
  DestinationKey = Shapes::StringShape.new(name: 'DestinationKey')
35
35
  DestinationKeyPrefix = Shapes::StringShape.new(name: 'DestinationKeyPrefix')
36
+ EBSFilter = Shapes::StructureShape.new(name: 'EBSFilter')
37
+ EBSFilterName = Shapes::StringShape.new(name: 'EBSFilterName')
38
+ EBSFilters = Shapes::ListShape.new(name: 'EBSFilters')
39
+ EBSFinding = Shapes::StringShape.new(name: 'EBSFinding')
40
+ EBSMetricName = Shapes::StringShape.new(name: 'EBSMetricName')
41
+ EBSUtilizationMetric = Shapes::StructureShape.new(name: 'EBSUtilizationMetric')
42
+ EBSUtilizationMetrics = Shapes::ListShape.new(name: 'EBSUtilizationMetrics')
36
43
  ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
37
44
  ExportAutoScalingGroupRecommendationsRequest = Shapes::StructureShape.new(name: 'ExportAutoScalingGroupRecommendationsRequest')
38
45
  ExportAutoScalingGroupRecommendationsResponse = Shapes::StructureShape.new(name: 'ExportAutoScalingGroupRecommendationsResponse')
@@ -51,14 +58,22 @@ module Aws::ComputeOptimizer
51
58
  FilterValues = Shapes::ListShape.new(name: 'FilterValues')
52
59
  Filters = Shapes::ListShape.new(name: 'Filters')
53
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')
54
65
  GetAutoScalingGroupRecommendationsRequest = Shapes::StructureShape.new(name: 'GetAutoScalingGroupRecommendationsRequest')
55
66
  GetAutoScalingGroupRecommendationsResponse = Shapes::StructureShape.new(name: 'GetAutoScalingGroupRecommendationsResponse')
67
+ GetEBSVolumeRecommendationsRequest = Shapes::StructureShape.new(name: 'GetEBSVolumeRecommendationsRequest')
68
+ GetEBSVolumeRecommendationsResponse = Shapes::StructureShape.new(name: 'GetEBSVolumeRecommendationsResponse')
56
69
  GetEC2InstanceRecommendationsRequest = Shapes::StructureShape.new(name: 'GetEC2InstanceRecommendationsRequest')
57
70
  GetEC2InstanceRecommendationsResponse = Shapes::StructureShape.new(name: 'GetEC2InstanceRecommendationsResponse')
58
71
  GetEC2RecommendationProjectedMetricsRequest = Shapes::StructureShape.new(name: 'GetEC2RecommendationProjectedMetricsRequest')
59
72
  GetEC2RecommendationProjectedMetricsResponse = Shapes::StructureShape.new(name: 'GetEC2RecommendationProjectedMetricsResponse')
60
73
  GetEnrollmentStatusRequest = Shapes::StructureShape.new(name: 'GetEnrollmentStatusRequest')
61
74
  GetEnrollmentStatusResponse = Shapes::StructureShape.new(name: 'GetEnrollmentStatusResponse')
75
+ GetLambdaFunctionRecommendationsRequest = Shapes::StructureShape.new(name: 'GetLambdaFunctionRecommendationsRequest')
76
+ GetLambdaFunctionRecommendationsResponse = Shapes::StructureShape.new(name: 'GetLambdaFunctionRecommendationsResponse')
62
77
  GetRecommendationError = Shapes::StructureShape.new(name: 'GetRecommendationError')
63
78
  GetRecommendationErrors = Shapes::ListShape.new(name: 'GetRecommendationErrors')
64
79
  GetRecommendationSummariesRequest = Shapes::StructureShape.new(name: 'GetRecommendationSummariesRequest')
@@ -80,6 +95,24 @@ module Aws::ComputeOptimizer
80
95
  JobId = Shapes::StringShape.new(name: 'JobId')
81
96
  JobIds = Shapes::ListShape.new(name: 'JobIds')
82
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')
83
116
  LastRefreshTimestamp = Shapes::TimestampShape.new(name: 'LastRefreshTimestamp')
84
117
  LastUpdatedTimestamp = Shapes::TimestampShape.new(name: 'LastUpdatedTimestamp')
85
118
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
@@ -87,6 +120,7 @@ module Aws::ComputeOptimizer
87
120
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
88
121
  MaxSize = Shapes::IntegerShape.new(name: 'MaxSize')
89
122
  MemberAccountsEnrolled = Shapes::BooleanShape.new(name: 'MemberAccountsEnrolled')
123
+ MemorySize = Shapes::IntegerShape.new(name: 'MemorySize')
90
124
  Message = Shapes::StringShape.new(name: 'Message')
91
125
  MetadataKey = Shapes::StringShape.new(name: 'MetadataKey')
92
126
  MetricName = Shapes::StringShape.new(name: 'MetricName')
@@ -96,6 +130,7 @@ module Aws::ComputeOptimizer
96
130
  MinSize = Shapes::IntegerShape.new(name: 'MinSize')
97
131
  MissingAuthenticationToken = Shapes::StructureShape.new(name: 'MissingAuthenticationToken')
98
132
  NextToken = Shapes::StringShape.new(name: 'NextToken')
133
+ NumberOfInvocations = Shapes::IntegerShape.new(name: 'NumberOfInvocations')
99
134
  OptInRequiredException = Shapes::StructureShape.new(name: 'OptInRequiredException')
100
135
  PerformanceRisk = Shapes::FloatShape.new(name: 'PerformanceRisk')
101
136
  Period = Shapes::IntegerShape.new(name: 'Period')
@@ -103,6 +138,8 @@ module Aws::ComputeOptimizer
103
138
  ProjectedMetrics = Shapes::ListShape.new(name: 'ProjectedMetrics')
104
139
  ProjectedUtilizationMetrics = Shapes::ListShape.new(name: 'ProjectedUtilizationMetrics')
105
140
  Rank = Shapes::IntegerShape.new(name: 'Rank')
141
+ ReasonCodeSummaries = Shapes::ListShape.new(name: 'ReasonCodeSummaries')
142
+ ReasonCodeSummary = Shapes::StructureShape.new(name: 'ReasonCodeSummary')
106
143
  RecommendationExportJob = Shapes::StructureShape.new(name: 'RecommendationExportJob')
107
144
  RecommendationExportJobs = Shapes::ListShape.new(name: 'RecommendationExportJobs')
108
145
  RecommendationOptions = Shapes::ListShape.new(name: 'RecommendationOptions')
@@ -132,6 +169,19 @@ module Aws::ComputeOptimizer
132
169
  UpdateEnrollmentStatusResponse = Shapes::StructureShape.new(name: 'UpdateEnrollmentStatusResponse')
133
170
  UtilizationMetric = Shapes::StructureShape.new(name: 'UtilizationMetric')
134
171
  UtilizationMetrics = Shapes::ListShape.new(name: 'UtilizationMetrics')
172
+ VolumeArn = Shapes::StringShape.new(name: 'VolumeArn')
173
+ VolumeArns = Shapes::ListShape.new(name: 'VolumeArns')
174
+ VolumeBaselineIOPS = Shapes::IntegerShape.new(name: 'VolumeBaselineIOPS')
175
+ VolumeBaselineThroughput = Shapes::IntegerShape.new(name: 'VolumeBaselineThroughput')
176
+ VolumeBurstIOPS = Shapes::IntegerShape.new(name: 'VolumeBurstIOPS')
177
+ VolumeBurstThroughput = Shapes::IntegerShape.new(name: 'VolumeBurstThroughput')
178
+ VolumeConfiguration = Shapes::StructureShape.new(name: 'VolumeConfiguration')
179
+ VolumeRecommendation = Shapes::StructureShape.new(name: 'VolumeRecommendation')
180
+ VolumeRecommendationOption = Shapes::StructureShape.new(name: 'VolumeRecommendationOption')
181
+ VolumeRecommendationOptions = Shapes::ListShape.new(name: 'VolumeRecommendationOptions')
182
+ VolumeRecommendations = Shapes::ListShape.new(name: 'VolumeRecommendations')
183
+ VolumeSize = Shapes::IntegerShape.new(name: 'VolumeSize')
184
+ VolumeType = Shapes::StringShape.new(name: 'VolumeType')
135
185
 
136
186
  AccessDeniedException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
137
187
  AccessDeniedException.struct_class = Types::AccessDeniedException
@@ -177,6 +227,19 @@ module Aws::ComputeOptimizer
177
227
  DescribeRecommendationExportJobsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
178
228
  DescribeRecommendationExportJobsResponse.struct_class = Types::DescribeRecommendationExportJobsResponse
179
229
 
230
+ EBSFilter.add_member(:name, Shapes::ShapeRef.new(shape: EBSFilterName, location_name: "name"))
231
+ EBSFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValues, location_name: "values"))
232
+ EBSFilter.struct_class = Types::EBSFilter
233
+
234
+ EBSFilters.member = Shapes::ShapeRef.new(shape: EBSFilter)
235
+
236
+ EBSUtilizationMetric.add_member(:name, Shapes::ShapeRef.new(shape: EBSMetricName, location_name: "name"))
237
+ EBSUtilizationMetric.add_member(:statistic, Shapes::ShapeRef.new(shape: MetricStatistic, location_name: "statistic"))
238
+ EBSUtilizationMetric.add_member(:value, Shapes::ShapeRef.new(shape: MetricValue, location_name: "value"))
239
+ EBSUtilizationMetric.struct_class = Types::EBSUtilizationMetric
240
+
241
+ EBSUtilizationMetrics.member = Shapes::ShapeRef.new(shape: EBSUtilizationMetric)
242
+
180
243
  ExportAutoScalingGroupRecommendationsRequest.add_member(:account_ids, Shapes::ShapeRef.new(shape: AccountIds, location_name: "accountIds"))
181
244
  ExportAutoScalingGroupRecommendationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: Filters, location_name: "filters"))
182
245
  ExportAutoScalingGroupRecommendationsRequest.add_member(:fields_to_export, Shapes::ShapeRef.new(shape: ExportableAutoScalingGroupFields, location_name: "fieldsToExport"))
@@ -216,6 +279,8 @@ module Aws::ComputeOptimizer
216
279
 
217
280
  Filters.member = Shapes::ShapeRef.new(shape: Filter)
218
281
 
282
+ FunctionArns.member = Shapes::ShapeRef.new(shape: FunctionArn)
283
+
219
284
  GetAutoScalingGroupRecommendationsRequest.add_member(:account_ids, Shapes::ShapeRef.new(shape: AccountIds, location_name: "accountIds"))
220
285
  GetAutoScalingGroupRecommendationsRequest.add_member(:auto_scaling_group_arns, Shapes::ShapeRef.new(shape: AutoScalingGroupArns, location_name: "autoScalingGroupArns"))
221
286
  GetAutoScalingGroupRecommendationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
@@ -228,6 +293,18 @@ module Aws::ComputeOptimizer
228
293
  GetAutoScalingGroupRecommendationsResponse.add_member(:errors, Shapes::ShapeRef.new(shape: GetRecommendationErrors, location_name: "errors"))
229
294
  GetAutoScalingGroupRecommendationsResponse.struct_class = Types::GetAutoScalingGroupRecommendationsResponse
230
295
 
296
+ GetEBSVolumeRecommendationsRequest.add_member(:volume_arns, Shapes::ShapeRef.new(shape: VolumeArns, location_name: "volumeArns"))
297
+ GetEBSVolumeRecommendationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
298
+ GetEBSVolumeRecommendationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults"))
299
+ GetEBSVolumeRecommendationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: EBSFilters, location_name: "filters"))
300
+ GetEBSVolumeRecommendationsRequest.add_member(:account_ids, Shapes::ShapeRef.new(shape: AccountIds, location_name: "accountIds"))
301
+ GetEBSVolumeRecommendationsRequest.struct_class = Types::GetEBSVolumeRecommendationsRequest
302
+
303
+ GetEBSVolumeRecommendationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
304
+ GetEBSVolumeRecommendationsResponse.add_member(:volume_recommendations, Shapes::ShapeRef.new(shape: VolumeRecommendations, location_name: "volumeRecommendations"))
305
+ GetEBSVolumeRecommendationsResponse.add_member(:errors, Shapes::ShapeRef.new(shape: GetRecommendationErrors, location_name: "errors"))
306
+ GetEBSVolumeRecommendationsResponse.struct_class = Types::GetEBSVolumeRecommendationsResponse
307
+
231
308
  GetEC2InstanceRecommendationsRequest.add_member(:instance_arns, Shapes::ShapeRef.new(shape: InstanceArns, location_name: "instanceArns"))
232
309
  GetEC2InstanceRecommendationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
233
310
  GetEC2InstanceRecommendationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults"))
@@ -257,6 +334,17 @@ module Aws::ComputeOptimizer
257
334
  GetEnrollmentStatusResponse.add_member(:member_accounts_enrolled, Shapes::ShapeRef.new(shape: MemberAccountsEnrolled, location_name: "memberAccountsEnrolled"))
258
335
  GetEnrollmentStatusResponse.struct_class = Types::GetEnrollmentStatusResponse
259
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
+
260
348
  GetRecommendationError.add_member(:identifier, Shapes::ShapeRef.new(shape: Identifier, location_name: "identifier"))
261
349
  GetRecommendationError.add_member(:code, Shapes::ShapeRef.new(shape: Code, location_name: "code"))
262
350
  GetRecommendationError.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
@@ -309,6 +397,50 @@ module Aws::ComputeOptimizer
309
397
 
310
398
  JobIds.member = Shapes::ShapeRef.new(shape: JobId)
311
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
+
312
444
  LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
313
445
  LimitExceededException.struct_class = Types::LimitExceededException
314
446
 
@@ -329,6 +461,12 @@ module Aws::ComputeOptimizer
329
461
 
330
462
  ProjectedUtilizationMetrics.member = Shapes::ShapeRef.new(shape: UtilizationMetric)
331
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
+
332
470
  RecommendationExportJob.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "jobId"))
333
471
  RecommendationExportJob.add_member(:destination, Shapes::ShapeRef.new(shape: ExportDestination, location_name: "destination"))
334
472
  RecommendationExportJob.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "resourceType"))
@@ -381,6 +519,7 @@ module Aws::ComputeOptimizer
381
519
 
382
520
  Summary.add_member(:name, Shapes::ShapeRef.new(shape: Finding, location_name: "name"))
383
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"))
384
523
  Summary.struct_class = Types::Summary
385
524
 
386
525
  ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, required: true, location_name: "message"))
@@ -403,6 +542,35 @@ module Aws::ComputeOptimizer
403
542
 
404
543
  UtilizationMetrics.member = Shapes::ShapeRef.new(shape: UtilizationMetric)
405
544
 
545
+ VolumeArns.member = Shapes::ShapeRef.new(shape: VolumeArn)
546
+
547
+ VolumeConfiguration.add_member(:volume_type, Shapes::ShapeRef.new(shape: VolumeType, location_name: "volumeType"))
548
+ VolumeConfiguration.add_member(:volume_size, Shapes::ShapeRef.new(shape: VolumeSize, location_name: "volumeSize"))
549
+ VolumeConfiguration.add_member(:volume_baseline_iops, Shapes::ShapeRef.new(shape: VolumeBaselineIOPS, location_name: "volumeBaselineIOPS"))
550
+ VolumeConfiguration.add_member(:volume_burst_iops, Shapes::ShapeRef.new(shape: VolumeBurstIOPS, location_name: "volumeBurstIOPS"))
551
+ VolumeConfiguration.add_member(:volume_baseline_throughput, Shapes::ShapeRef.new(shape: VolumeBaselineThroughput, location_name: "volumeBaselineThroughput"))
552
+ VolumeConfiguration.add_member(:volume_burst_throughput, Shapes::ShapeRef.new(shape: VolumeBurstThroughput, location_name: "volumeBurstThroughput"))
553
+ VolumeConfiguration.struct_class = Types::VolumeConfiguration
554
+
555
+ VolumeRecommendation.add_member(:volume_arn, Shapes::ShapeRef.new(shape: VolumeArn, location_name: "volumeArn"))
556
+ VolumeRecommendation.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "accountId"))
557
+ VolumeRecommendation.add_member(:current_configuration, Shapes::ShapeRef.new(shape: VolumeConfiguration, location_name: "currentConfiguration"))
558
+ VolumeRecommendation.add_member(:finding, Shapes::ShapeRef.new(shape: EBSFinding, location_name: "finding"))
559
+ VolumeRecommendation.add_member(:utilization_metrics, Shapes::ShapeRef.new(shape: EBSUtilizationMetrics, location_name: "utilizationMetrics"))
560
+ VolumeRecommendation.add_member(:look_back_period_in_days, Shapes::ShapeRef.new(shape: LookBackPeriodInDays, location_name: "lookBackPeriodInDays"))
561
+ VolumeRecommendation.add_member(:volume_recommendation_options, Shapes::ShapeRef.new(shape: VolumeRecommendationOptions, location_name: "volumeRecommendationOptions"))
562
+ VolumeRecommendation.add_member(:last_refresh_timestamp, Shapes::ShapeRef.new(shape: LastRefreshTimestamp, location_name: "lastRefreshTimestamp"))
563
+ VolumeRecommendation.struct_class = Types::VolumeRecommendation
564
+
565
+ VolumeRecommendationOption.add_member(:configuration, Shapes::ShapeRef.new(shape: VolumeConfiguration, location_name: "configuration"))
566
+ VolumeRecommendationOption.add_member(:performance_risk, Shapes::ShapeRef.new(shape: PerformanceRisk, location_name: "performanceRisk"))
567
+ VolumeRecommendationOption.add_member(:rank, Shapes::ShapeRef.new(shape: Rank, location_name: "rank"))
568
+ VolumeRecommendationOption.struct_class = Types::VolumeRecommendationOption
569
+
570
+ VolumeRecommendationOptions.member = Shapes::ShapeRef.new(shape: VolumeRecommendationOption)
571
+
572
+ VolumeRecommendations.member = Shapes::ShapeRef.new(shape: VolumeRecommendation)
573
+
406
574
 
407
575
  # @api private
408
576
  API = Seahorse::Model::Api.new.tap do |api|
@@ -486,6 +654,22 @@ module Aws::ComputeOptimizer
486
654
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
487
655
  end)
488
656
 
657
+ api.add_operation(:get_ebs_volume_recommendations, Seahorse::Model::Operation.new.tap do |o|
658
+ o.name = "GetEBSVolumeRecommendations"
659
+ o.http_method = "POST"
660
+ o.http_request_uri = "/"
661
+ o.input = Shapes::ShapeRef.new(shape: GetEBSVolumeRecommendationsRequest)
662
+ o.output = Shapes::ShapeRef.new(shape: GetEBSVolumeRecommendationsResponse)
663
+ o.errors << Shapes::ShapeRef.new(shape: OptInRequiredException)
664
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
665
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
666
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
667
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
668
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
669
+ o.errors << Shapes::ShapeRef.new(shape: MissingAuthenticationToken)
670
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
671
+ end)
672
+
489
673
  api.add_operation(:get_ec2_instance_recommendations, Seahorse::Model::Operation.new.tap do |o|
490
674
  o.name = "GetEC2InstanceRecommendations"
491
675
  o.http_method = "POST"
@@ -532,6 +716,22 @@ module Aws::ComputeOptimizer
532
716
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
533
717
  end)
534
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
+
535
735
  api.add_operation(:get_recommendation_summaries, Seahorse::Model::Operation.new.tap do |o|
536
736
  o.name = "GetRecommendationSummaries"
537
737
  o.http_method = "POST"
@@ -84,11 +84,6 @@ module Aws::ComputeOptimizer
84
84
  # group is correctly provisioned to run your workload based on the
85
85
  # chosen instance type. For optimized resources, Compute Optimizer
86
86
  # might recommend a new generation instance type.
87
- #
88
- # <note markdown="1"> The values that are returned might be `NOT_OPTIMIZED` or
89
- # `OPTIMIZED`.
90
- #
91
- # </note>
92
87
  # @return [String]
93
88
  #
94
89
  # @!attribute [rw] utilization_metrics
@@ -142,6 +137,18 @@ module Aws::ComputeOptimizer
142
137
  # @!attribute [rw] projected_utilization_metrics
143
138
  # An array of objects that describe the projected utilization metrics
144
139
  # of the Auto Scaling group recommendation option.
140
+ #
141
+ # <note markdown="1"> The `Cpu` and `Memory` metrics are the only projected utilization
142
+ # metrics returned. Additionally, the `Memory` metric is returned only
143
+ # for resources that have the unified CloudWatch agent installed on
144
+ # them. For more information, see [Enabling Memory Utilization with
145
+ # the CloudWatch Agent][1].
146
+ #
147
+ # </note>
148
+ #
149
+ #
150
+ #
151
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
145
152
  # @return [Array<Types::UtilizationMetric>]
146
153
  #
147
154
  # @!attribute [rw] performance_risk
@@ -245,6 +252,102 @@ module Aws::ComputeOptimizer
245
252
  include Aws::Structure
246
253
  end
247
254
 
255
+ # Describes a filter that returns a more specific list of Amazon Elastic
256
+ # Block Store (Amazon EBS) volume recommendations.
257
+ #
258
+ # This filter is used with the `GetEBSVolumeRecommendations` action.
259
+ #
260
+ # @note When making an API call, you may pass EBSFilter
261
+ # data as a hash:
262
+ #
263
+ # {
264
+ # name: "Finding", # accepts Finding
265
+ # values: ["FilterValue"],
266
+ # }
267
+ #
268
+ # @!attribute [rw] name
269
+ # The name of the filter.
270
+ #
271
+ # Specify `Finding` to return recommendations with a specific finding
272
+ # classification (e.g., `Optimized`).
273
+ # @return [String]
274
+ #
275
+ # @!attribute [rw] values
276
+ # The value of the filter.
277
+ #
278
+ # The valid values are `Optimized`, or `NotOptimized`.
279
+ # @return [Array<String>]
280
+ #
281
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/EBSFilter AWS API Documentation
282
+ #
283
+ class EBSFilter < Struct.new(
284
+ :name,
285
+ :values)
286
+ SENSITIVE = []
287
+ include Aws::Structure
288
+ end
289
+
290
+ # Describes a utilization metric of an Amazon Elastic Block Store
291
+ # (Amazon EBS) volume.
292
+ #
293
+ # Compare the utilization metric data of your resource against its
294
+ # projected utilization metric data to determine the performance
295
+ # difference between your current resource and the recommended option.
296
+ #
297
+ # @!attribute [rw] name
298
+ # The name of the utilization metric.
299
+ #
300
+ # The following utilization metrics are available:
301
+ #
302
+ # * `VolumeReadOpsPerSecond` - The completed read operations per
303
+ # second from the volume in a specified period of time.
304
+ #
305
+ # Unit: Count
306
+ #
307
+ # * `VolumeWriteOpsPerSecond` - The completed write operations per
308
+ # second to the volume in a specified period of time.
309
+ #
310
+ # Unit: Count
311
+ #
312
+ # * `VolumeReadBytesPerSecond` - The bytes read per second from the
313
+ # volume in a specified period of time.
314
+ #
315
+ # Unit: Bytes
316
+ #
317
+ # * `VolumeWriteBytesPerSecond` - The bytes written to the volume in a
318
+ # specified period of time.
319
+ #
320
+ # Unit: Bytes
321
+ # @return [String]
322
+ #
323
+ # @!attribute [rw] statistic
324
+ # The statistic of the utilization metric.
325
+ #
326
+ # The following statistics are available:
327
+ #
328
+ # * `Average` - This is the value of Sum / SampleCount during the
329
+ # specified period, or the average value observed during the
330
+ # specified period.
331
+ #
332
+ # * `Maximum` - The highest value observed during the specified
333
+ # period. Use this value to determine high volumes of activity for
334
+ # your application.
335
+ # @return [String]
336
+ #
337
+ # @!attribute [rw] value
338
+ # The value of the utilization metric.
339
+ # @return [Float]
340
+ #
341
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/EBSUtilizationMetric AWS API Documentation
342
+ #
343
+ class EBSUtilizationMetric < Struct.new(
344
+ :name,
345
+ :statistic,
346
+ :value)
347
+ SENSITIVE = []
348
+ include Aws::Structure
349
+ end
350
+
248
351
  # @note When making an API call, you may pass ExportAutoScalingGroupRecommendationsRequest
249
352
  # data as a hash:
250
353
  #
@@ -256,7 +359,7 @@ module Aws::ComputeOptimizer
256
359
  # values: ["FilterValue"],
257
360
  # },
258
361
  # ],
259
- # fields_to_export: ["AccountId"], # accepts AccountId, AutoScalingGroupArn, AutoScalingGroupName, Finding, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, LookbackPeriodInDays, CurrentConfigurationInstanceType, CurrentConfigurationDesiredCapacity, CurrentConfigurationMinSize, CurrentConfigurationMaxSize, CurrentOnDemandPrice, CurrentStandardOneYearNoUpfrontReservedPrice, CurrentStandardThreeYearNoUpfrontReservedPrice, CurrentVCpus, CurrentMemory, CurrentStorage, CurrentNetwork, RecommendationOptionsConfigurationInstanceType, RecommendationOptionsConfigurationDesiredCapacity, RecommendationOptionsConfigurationMinSize, RecommendationOptionsConfigurationMaxSize, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, RecommendationOptionsPerformanceRisk, RecommendationOptionsOnDemandPrice, RecommendationOptionsStandardOneYearNoUpfrontReservedPrice, RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice, RecommendationOptionsVcpus, RecommendationOptionsMemory, RecommendationOptionsStorage, RecommendationOptionsNetwork, LastRefreshTimestamp
362
+ # fields_to_export: ["AccountId"], # accepts AccountId, AutoScalingGroupArn, AutoScalingGroupName, Finding, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, UtilizationMetricsEbsReadOpsPerSecondMaximum, UtilizationMetricsEbsWriteOpsPerSecondMaximum, UtilizationMetricsEbsReadBytesPerSecondMaximum, UtilizationMetricsEbsWriteBytesPerSecondMaximum, LookbackPeriodInDays, CurrentConfigurationInstanceType, CurrentConfigurationDesiredCapacity, CurrentConfigurationMinSize, CurrentConfigurationMaxSize, CurrentOnDemandPrice, CurrentStandardOneYearNoUpfrontReservedPrice, CurrentStandardThreeYearNoUpfrontReservedPrice, CurrentVCpus, CurrentMemory, CurrentStorage, CurrentNetwork, RecommendationOptionsConfigurationInstanceType, RecommendationOptionsConfigurationDesiredCapacity, RecommendationOptionsConfigurationMinSize, RecommendationOptionsConfigurationMaxSize, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, RecommendationOptionsPerformanceRisk, RecommendationOptionsOnDemandPrice, RecommendationOptionsStandardOneYearNoUpfrontReservedPrice, RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice, RecommendationOptionsVcpus, RecommendationOptionsMemory, RecommendationOptionsStorage, RecommendationOptionsNetwork, LastRefreshTimestamp
260
363
  # s3_destination_config: { # required
261
364
  # bucket: "DestinationBucket",
262
365
  # key_prefix: "DestinationKeyPrefix",
@@ -269,8 +372,8 @@ module Aws::ComputeOptimizer
269
372
  # The IDs of the AWS accounts for which to export Auto Scaling group
270
373
  # recommendations.
271
374
  #
272
- # If your account is the master account of an organization, use this
273
- # parameter to specify the member accounts for which you want to
375
+ # If your account is the management account of an organization, use
376
+ # this parameter to specify the member accounts for which you want to
274
377
  # export recommendations.
275
378
  #
276
379
  # This parameter cannot be specified together with the include member
@@ -289,7 +392,13 @@ module Aws::ComputeOptimizer
289
392
  # @return [Array<Types::Filter>]
290
393
  #
291
394
  # @!attribute [rw] fields_to_export
292
- # The recommendations data to include in the export file.
395
+ # The recommendations data to include in the export file. For more
396
+ # information about the fields that can be exported, see [Exported
397
+ # files][1] in the *Compute Optimizer User Guide*.
398
+ #
399
+ #
400
+ #
401
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files
293
402
  # @return [Array<String>]
294
403
  #
295
404
  # @!attribute [rw] s3_destination_config
@@ -319,8 +428,8 @@ module Aws::ComputeOptimizer
319
428
  #
320
429
  # @!attribute [rw] include_member_accounts
321
430
  # Indicates whether to include recommendations for resources in all
322
- # member accounts of the organization if your account is the master
323
- # account of an organization.
431
+ # member accounts of the organization if your account is the
432
+ # management account of an organization.
324
433
  #
325
434
  # The member accounts must also be opted in to Compute Optimizer.
326
435
  #
@@ -396,7 +505,7 @@ module Aws::ComputeOptimizer
396
505
  # values: ["FilterValue"],
397
506
  # },
398
507
  # ],
399
- # fields_to_export: ["AccountId"], # accepts AccountId, InstanceArn, InstanceName, Finding, LookbackPeriodInDays, CurrentInstanceType, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, CurrentOnDemandPrice, CurrentStandardOneYearNoUpfrontReservedPrice, CurrentStandardThreeYearNoUpfrontReservedPrice, CurrentVCpus, CurrentMemory, CurrentStorage, CurrentNetwork, RecommendationOptionsInstanceType, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, RecommendationOptionsPerformanceRisk, RecommendationOptionsVcpus, RecommendationOptionsMemory, RecommendationOptionsStorage, RecommendationOptionsNetwork, RecommendationOptionsOnDemandPrice, RecommendationOptionsStandardOneYearNoUpfrontReservedPrice, RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice, RecommendationsSourcesRecommendationSourceArn, RecommendationsSourcesRecommendationSourceType, LastRefreshTimestamp
508
+ # fields_to_export: ["AccountId"], # accepts AccountId, InstanceArn, InstanceName, Finding, LookbackPeriodInDays, CurrentInstanceType, UtilizationMetricsCpuMaximum, UtilizationMetricsMemoryMaximum, UtilizationMetricsEbsReadOpsPerSecondMaximum, UtilizationMetricsEbsWriteOpsPerSecondMaximum, UtilizationMetricsEbsReadBytesPerSecondMaximum, UtilizationMetricsEbsWriteBytesPerSecondMaximum, CurrentOnDemandPrice, CurrentStandardOneYearNoUpfrontReservedPrice, CurrentStandardThreeYearNoUpfrontReservedPrice, CurrentVCpus, CurrentMemory, CurrentStorage, CurrentNetwork, RecommendationOptionsInstanceType, RecommendationOptionsProjectedUtilizationMetricsCpuMaximum, RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, RecommendationOptionsPerformanceRisk, RecommendationOptionsVcpus, RecommendationOptionsMemory, RecommendationOptionsStorage, RecommendationOptionsNetwork, RecommendationOptionsOnDemandPrice, RecommendationOptionsStandardOneYearNoUpfrontReservedPrice, RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice, RecommendationsSourcesRecommendationSourceArn, RecommendationsSourcesRecommendationSourceType, LastRefreshTimestamp
400
509
  # s3_destination_config: { # required
401
510
  # bucket: "DestinationBucket",
402
511
  # key_prefix: "DestinationKeyPrefix",
@@ -409,8 +518,8 @@ module Aws::ComputeOptimizer
409
518
  # The IDs of the AWS accounts for which to export instance
410
519
  # recommendations.
411
520
  #
412
- # If your account is the master account of an organization, use this
413
- # parameter to specify the member accounts for which you want to
521
+ # If your account is the management account of an organization, use
522
+ # this parameter to specify the member accounts for which you want to
414
523
  # export recommendations.
415
524
  #
416
525
  # This parameter cannot be specified together with the include member
@@ -429,7 +538,13 @@ module Aws::ComputeOptimizer
429
538
  # @return [Array<Types::Filter>]
430
539
  #
431
540
  # @!attribute [rw] fields_to_export
432
- # The recommendations data to include in the export file.
541
+ # The recommendations data to include in the export file. For more
542
+ # information about the fields that can be exported, see [Exported
543
+ # files][1] in the *Compute Optimizer User Guide*.
544
+ #
545
+ #
546
+ #
547
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files
433
548
  # @return [Array<String>]
434
549
  #
435
550
  # @!attribute [rw] s3_destination_config
@@ -459,8 +574,8 @@ module Aws::ComputeOptimizer
459
574
  #
460
575
  # @!attribute [rw] include_member_accounts
461
576
  # Indicates whether to include recommendations for resources in all
462
- # member accounts of the organization if your account is the master
463
- # account of an organization.
577
+ # member accounts of the organization if your account is the
578
+ # management account of an organization.
464
579
  #
465
580
  # The member accounts must also be opted in to Compute Optimizer.
466
581
  #
@@ -508,6 +623,9 @@ module Aws::ComputeOptimizer
508
623
  # Describes a filter that returns a more specific list of
509
624
  # recommendations.
510
625
  #
626
+ # This filter is used with the `GetAutoScalingGroupRecommendations` and
627
+ # `GetEC2InstanceRecommendations` actions.
628
+ #
511
629
  # @note When making an API call, you may pass Filter
512
630
  # data as a hash:
513
631
  #
@@ -519,7 +637,7 @@ module Aws::ComputeOptimizer
519
637
  # @!attribute [rw] name
520
638
  # The name of the filter.
521
639
  #
522
- # Specify `Finding` to return recommendations with a specific findings
640
+ # Specify `Finding` to return recommendations with a specific finding
523
641
  # classification (e.g., `Overprovisioned`).
524
642
  #
525
643
  # Specify `RecommendationSourceType` to return recommendations of a
@@ -529,17 +647,20 @@ module Aws::ComputeOptimizer
529
647
  # @!attribute [rw] values
530
648
  # The value of the filter.
531
649
  #
532
- # If you specify the `name` parameter as `Finding`, and you request
533
- # recommendations for an *instance*, then the valid values are
534
- # `Underprovisioned`, `Overprovisioned`, `NotOptimized`, or
535
- # `Optimized`.
650
+ # The valid values for this parameter are as follows, depending on
651
+ # what you specify for the `name` parameter and the resource type that
652
+ # you wish to filter results for:
536
653
  #
537
- # If you specify the `name` parameter as `Finding`, and you request
538
- # recommendations for an *Auto Scaling group*, then the valid values
539
- # are `Optimized`, or `NotOptimized`.
654
+ # * Specify `Optimized` or `NotOptimized` if you specified the `name`
655
+ # parameter as `Finding` and you want to filter results for Auto
656
+ # Scaling groups.
540
657
  #
541
- # If you specify the `name` parameter as `RecommendationSourceType`,
542
- # then the valid values are `Ec2Instance`, or `AutoScalingGroup`.
658
+ # * Specify `Underprovisioned`, `Overprovisioned`, or `Optimized` if
659
+ # you specified the `name` parameter as `Finding` and you want to
660
+ # filter results for EC2 instances.
661
+ #
662
+ # * Specify `Ec2Instance` or `AutoScalingGroup` if you specified the
663
+ # `name` parameter as `RecommendationSourceType`.
543
664
  # @return [Array<String>]
544
665
  #
545
666
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/Filter AWS API Documentation
@@ -571,8 +692,8 @@ module Aws::ComputeOptimizer
571
692
  # The IDs of the AWS accounts for which to return Auto Scaling group
572
693
  # recommendations.
573
694
  #
574
- # If your account is the master account of an organization, use this
575
- # parameter to specify the member accounts for which you want to
695
+ # If your account is the management account of an organization, use
696
+ # this parameter to specify the member accounts for which you want to
576
697
  # return Auto Scaling group recommendations.
577
698
  #
578
699
  # Only one account ID can be specified per request.
@@ -643,6 +764,96 @@ module Aws::ComputeOptimizer
643
764
  include Aws::Structure
644
765
  end
645
766
 
767
+ # @note When making an API call, you may pass GetEBSVolumeRecommendationsRequest
768
+ # data as a hash:
769
+ #
770
+ # {
771
+ # volume_arns: ["VolumeArn"],
772
+ # next_token: "NextToken",
773
+ # max_results: 1,
774
+ # filters: [
775
+ # {
776
+ # name: "Finding", # accepts Finding
777
+ # values: ["FilterValue"],
778
+ # },
779
+ # ],
780
+ # account_ids: ["AccountId"],
781
+ # }
782
+ #
783
+ # @!attribute [rw] volume_arns
784
+ # The Amazon Resource Name (ARN) of the volumes for which to return
785
+ # recommendations.
786
+ # @return [Array<String>]
787
+ #
788
+ # @!attribute [rw] next_token
789
+ # The token to advance to the next page of volume recommendations.
790
+ # @return [String]
791
+ #
792
+ # @!attribute [rw] max_results
793
+ # The maximum number of volume recommendations to return with a single
794
+ # request.
795
+ #
796
+ # To retrieve the remaining results, make another request with the
797
+ # returned `NextToken` value.
798
+ # @return [Integer]
799
+ #
800
+ # @!attribute [rw] filters
801
+ # An array of objects that describe a filter that returns a more
802
+ # specific list of volume recommendations.
803
+ # @return [Array<Types::EBSFilter>]
804
+ #
805
+ # @!attribute [rw] account_ids
806
+ # The IDs of the AWS accounts for which to return volume
807
+ # recommendations.
808
+ #
809
+ # If your account is the management account of an organization, use
810
+ # this parameter to specify the member accounts for which you want to
811
+ # return volume recommendations.
812
+ #
813
+ # Only one account ID can be specified per request.
814
+ # @return [Array<String>]
815
+ #
816
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEBSVolumeRecommendationsRequest AWS API Documentation
817
+ #
818
+ class GetEBSVolumeRecommendationsRequest < Struct.new(
819
+ :volume_arns,
820
+ :next_token,
821
+ :max_results,
822
+ :filters,
823
+ :account_ids)
824
+ SENSITIVE = []
825
+ include Aws::Structure
826
+ end
827
+
828
+ # @!attribute [rw] next_token
829
+ # The token to use to advance to the next page of volume
830
+ # recommendations.
831
+ #
832
+ # This value is null when there are no more pages of volume
833
+ # recommendations to return.
834
+ # @return [String]
835
+ #
836
+ # @!attribute [rw] volume_recommendations
837
+ # An array of objects that describe volume recommendations.
838
+ # @return [Array<Types::VolumeRecommendation>]
839
+ #
840
+ # @!attribute [rw] errors
841
+ # An array of objects that describe errors of the request.
842
+ #
843
+ # For example, an error is returned if you request recommendations for
844
+ # an unsupported volume.
845
+ # @return [Array<Types::GetRecommendationError>]
846
+ #
847
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEBSVolumeRecommendationsResponse AWS API Documentation
848
+ #
849
+ class GetEBSVolumeRecommendationsResponse < Struct.new(
850
+ :next_token,
851
+ :volume_recommendations,
852
+ :errors)
853
+ SENSITIVE = []
854
+ include Aws::Structure
855
+ end
856
+
646
857
  # @note When making an API call, you may pass GetEC2InstanceRecommendationsRequest
647
858
  # data as a hash:
648
859
  #
@@ -685,8 +896,8 @@ module Aws::ComputeOptimizer
685
896
  # The IDs of the AWS accounts for which to return instance
686
897
  # recommendations.
687
898
  #
688
- # If your account is the master account of an organization, use this
689
- # parameter to specify the member accounts for which you want to
899
+ # If your account is the management account of an organization, use
900
+ # this parameter to specify the member accounts for which you want to
690
901
  # return instance recommendations.
691
902
  #
692
903
  # Only one account ID can be specified per request.
@@ -809,7 +1020,8 @@ module Aws::ComputeOptimizer
809
1020
  #
810
1021
  # @!attribute [rw] member_accounts_enrolled
811
1022
  # Confirms the enrollment status of member accounts within the
812
- # organization, if the account is a master account of an organization.
1023
+ # organization, if the account is a management account of an
1024
+ # organization.
813
1025
  # @return [Boolean]
814
1026
  #
815
1027
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatusResponse AWS API Documentation
@@ -822,6 +1034,101 @@ module Aws::ComputeOptimizer
822
1034
  include Aws::Structure
823
1035
  end
824
1036
 
1037
+ # @note When making an API call, you may pass GetLambdaFunctionRecommendationsRequest
1038
+ # data as a hash:
1039
+ #
1040
+ # {
1041
+ # function_arns: ["FunctionArn"],
1042
+ # account_ids: ["AccountId"],
1043
+ # filters: [
1044
+ # {
1045
+ # name: "Finding", # accepts Finding, FindingReasonCode
1046
+ # values: ["FilterValue"],
1047
+ # },
1048
+ # ],
1049
+ # next_token: "NextToken",
1050
+ # max_results: 1,
1051
+ # }
1052
+ #
1053
+ # @!attribute [rw] function_arns
1054
+ # The Amazon Resource Name (ARN) of the functions for which to return
1055
+ # recommendations.
1056
+ #
1057
+ # You can specify a qualified or unqualified ARN. If you specify an
1058
+ # unqualified ARN without a function version suffix, Compute Optimizer
1059
+ # will return recommendations for the latest (`$LATEST`) version of
1060
+ # the function. If you specify a qualified ARN with a version suffix,
1061
+ # Compute Optimizer will return recommendations for the specified
1062
+ # function version. For more information about using function
1063
+ # versions, see [Using versions][1] in the *AWS Lambda Developer
1064
+ # Guide*.
1065
+ #
1066
+ #
1067
+ #
1068
+ # [1]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using
1069
+ # @return [Array<String>]
1070
+ #
1071
+ # @!attribute [rw] account_ids
1072
+ # The IDs of the AWS accounts for which to return function
1073
+ # recommendations.
1074
+ #
1075
+ # If your account is the management account of an organization, use
1076
+ # this parameter to specify the member accounts for which you want to
1077
+ # return function recommendations.
1078
+ #
1079
+ # Only one account ID can be specified per request.
1080
+ # @return [Array<String>]
1081
+ #
1082
+ # @!attribute [rw] filters
1083
+ # An array of objects that describe a filter that returns a more
1084
+ # specific list of function recommendations.
1085
+ # @return [Array<Types::LambdaFunctionRecommendationFilter>]
1086
+ #
1087
+ # @!attribute [rw] next_token
1088
+ # The token to advance to the next page of function recommendations.
1089
+ # @return [String]
1090
+ #
1091
+ # @!attribute [rw] max_results
1092
+ # The maximum number of function recommendations to return with a
1093
+ # single request.
1094
+ #
1095
+ # To retrieve the remaining results, make another request with the
1096
+ # returned `NextToken` value.
1097
+ # @return [Integer]
1098
+ #
1099
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendationsRequest AWS API Documentation
1100
+ #
1101
+ class GetLambdaFunctionRecommendationsRequest < Struct.new(
1102
+ :function_arns,
1103
+ :account_ids,
1104
+ :filters,
1105
+ :next_token,
1106
+ :max_results)
1107
+ SENSITIVE = []
1108
+ include Aws::Structure
1109
+ end
1110
+
1111
+ # @!attribute [rw] next_token
1112
+ # The token to use to advance to the next page of function
1113
+ # recommendations.
1114
+ #
1115
+ # This value is null when there are no more pages of function
1116
+ # recommendations to return.
1117
+ # @return [String]
1118
+ #
1119
+ # @!attribute [rw] lambda_function_recommendations
1120
+ # An array of objects that describe function recommendations.
1121
+ # @return [Array<Types::LambdaFunctionRecommendation>]
1122
+ #
1123
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendationsResponse AWS API Documentation
1124
+ #
1125
+ class GetLambdaFunctionRecommendationsResponse < Struct.new(
1126
+ :next_token,
1127
+ :lambda_function_recommendations)
1128
+ SENSITIVE = []
1129
+ include Aws::Structure
1130
+ end
1131
+
825
1132
  # Describes an error experienced when getting recommendations.
826
1133
  #
827
1134
  # For example, an error is returned if you request recommendations for
@@ -863,8 +1170,8 @@ module Aws::ComputeOptimizer
863
1170
  # The IDs of the AWS accounts for which to return recommendation
864
1171
  # summaries.
865
1172
  #
866
- # If your account is the master account of an organization, use this
867
- # parameter to specify the member accounts for which you want to
1173
+ # If your account is the management account of an organization, use
1174
+ # this parameter to specify the member accounts for which you want to
868
1175
  # return recommendation summaries.
869
1176
  #
870
1177
  # Only one account ID can be specified per request.
@@ -956,11 +1263,6 @@ module Aws::ComputeOptimizer
956
1263
  # your workloads with optimal performance and infrastructure cost.
957
1264
  # For optimized resources, AWS Compute Optimizer might recommend a
958
1265
  # new generation instance type.
959
- #
960
- # <note markdown="1"> The values that are returned might be `UNDER_PROVISIONED`,
961
- # `OVER_PROVISIONED`, or `OPTIMIZED`.
962
- #
963
- # </note>
964
1266
  # @return [String]
965
1267
  #
966
1268
  # @!attribute [rw] utilization_metrics
@@ -1014,6 +1316,18 @@ module Aws::ComputeOptimizer
1014
1316
  # @!attribute [rw] projected_utilization_metrics
1015
1317
  # An array of objects that describe the projected utilization metrics
1016
1318
  # of the instance recommendation option.
1319
+ #
1320
+ # <note markdown="1"> The `Cpu` and `Memory` metrics are the only projected utilization
1321
+ # metrics returned. Additionally, the `Memory` metric is returned only
1322
+ # for resources that have the unified CloudWatch agent installed on
1323
+ # them. For more information, see [Enabling Memory Utilization with
1324
+ # the CloudWatch Agent][1].
1325
+ #
1326
+ # </note>
1327
+ #
1328
+ #
1329
+ #
1330
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1017
1331
  # @return [Array<Types::UtilizationMetric>]
1018
1332
  #
1019
1333
  # @!attribute [rw] performance_risk
@@ -1096,11 +1410,16 @@ module Aws::ComputeOptimizer
1096
1410
  # @!attribute [rw] values
1097
1411
  # The value of the filter.
1098
1412
  #
1099
- # If you specify the `name` parameter as `ResourceType`, the valid
1100
- # values are `Ec2Instance` or `AutoScalingGroup`.
1413
+ # The valid values for this parameter are as follows, depending on
1414
+ # what you specify for the `name` parameter:
1415
+ #
1416
+ # * Specify `Ec2Instance` or `AutoScalingGroup` if you specified the
1417
+ # `name` parameter as `ResourceType`. There is no filter for EBS
1418
+ # volumes because volume recommendations cannot be exported at this
1419
+ # time.
1101
1420
  #
1102
- # If you specify the `name` parameter as `JobStatus`, the valid values
1103
- # are `Queued`, `InProgress`, `Complete`, or `Failed`.
1421
+ # * Specify `Queued`, `InProgress`, `Complete`, or `Failed` if you
1422
+ # specified the `name` parameter as `JobStatus`.
1104
1423
  # @return [Array<String>]
1105
1424
  #
1106
1425
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/JobFilter AWS API Documentation
@@ -1112,6 +1431,261 @@ module Aws::ComputeOptimizer
1112
1431
  include Aws::Structure
1113
1432
  end
1114
1433
 
1434
+ # Describes a projected utilization metric of an AWS Lambda function
1435
+ # recommendation option.
1436
+ #
1437
+ # @!attribute [rw] name
1438
+ # The name of the projected utilization metric.
1439
+ # @return [String]
1440
+ #
1441
+ # @!attribute [rw] statistic
1442
+ # The statistic of the projected utilization metric.
1443
+ # @return [String]
1444
+ #
1445
+ # @!attribute [rw] value
1446
+ # The values of the projected utilization metrics.
1447
+ # @return [Float]
1448
+ #
1449
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionMemoryProjectedMetric AWS API Documentation
1450
+ #
1451
+ class LambdaFunctionMemoryProjectedMetric < Struct.new(
1452
+ :name,
1453
+ :statistic,
1454
+ :value)
1455
+ SENSITIVE = []
1456
+ include Aws::Structure
1457
+ end
1458
+
1459
+ # Describes a recommendation option for an AWS Lambda function.
1460
+ #
1461
+ # @!attribute [rw] rank
1462
+ # The rank of the function recommendation option.
1463
+ #
1464
+ # The top recommendation option is ranked as `1`.
1465
+ # @return [Integer]
1466
+ #
1467
+ # @!attribute [rw] memory_size
1468
+ # The memory size, in MB, of the function recommendation option.
1469
+ # @return [Integer]
1470
+ #
1471
+ # @!attribute [rw] projected_utilization_metrics
1472
+ # An array of objects that describe the projected utilization metrics
1473
+ # of the function recommendation option.
1474
+ # @return [Array<Types::LambdaFunctionMemoryProjectedMetric>]
1475
+ #
1476
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionMemoryRecommendationOption AWS API Documentation
1477
+ #
1478
+ class LambdaFunctionMemoryRecommendationOption < Struct.new(
1479
+ :rank,
1480
+ :memory_size,
1481
+ :projected_utilization_metrics)
1482
+ SENSITIVE = []
1483
+ include Aws::Structure
1484
+ end
1485
+
1486
+ # Describes an AWS Lambda function recommendation.
1487
+ #
1488
+ # @!attribute [rw] function_arn
1489
+ # The Amazon Resource Name (ARN) of the current function.
1490
+ # @return [String]
1491
+ #
1492
+ # @!attribute [rw] function_version
1493
+ # The version number of the current function.
1494
+ # @return [String]
1495
+ #
1496
+ # @!attribute [rw] account_id
1497
+ # The AWS account ID of the function.
1498
+ # @return [String]
1499
+ #
1500
+ # @!attribute [rw] current_memory_size
1501
+ # The amount of memory, in MB, that's allocated to the current
1502
+ # function.
1503
+ # @return [Integer]
1504
+ #
1505
+ # @!attribute [rw] number_of_invocations
1506
+ # The number of times your function code was executed during the
1507
+ # look-back period.
1508
+ # @return [Integer]
1509
+ #
1510
+ # @!attribute [rw] utilization_metrics
1511
+ # An array of objects that describe the utilization metrics of the
1512
+ # function.
1513
+ # @return [Array<Types::LambdaFunctionUtilizationMetric>]
1514
+ #
1515
+ # @!attribute [rw] lookback_period_in_days
1516
+ # The number of days for which utilization metrics were analyzed for
1517
+ # the function.
1518
+ # @return [Float]
1519
+ #
1520
+ # @!attribute [rw] last_refresh_timestamp
1521
+ # The time stamp of when the function recommendation was last
1522
+ # refreshed.
1523
+ # @return [Time]
1524
+ #
1525
+ # @!attribute [rw] finding
1526
+ # The finding classification for the function.
1527
+ #
1528
+ # Findings for functions include:
1529
+ #
1530
+ # * <b> <code>Optimized</code> </b> — The function is correctly
1531
+ # provisioned to run your workload based on its current
1532
+ # configuration and its utilization history. This finding
1533
+ # classification does not include finding reason codes.
1534
+ #
1535
+ # * <b> <code>NotOptimized</code> </b> — The function is performing at
1536
+ # a higher level (over-provisioned) or at a lower level
1537
+ # (under-provisioned) than required for your workload because its
1538
+ # current configuration is not optimal. Over-provisioned resources
1539
+ # might lead to unnecessary infrastructure cost, and
1540
+ # under-provisioned resources might lead to poor application
1541
+ # performance. This finding classification can include the
1542
+ # `MemoryUnderprovisioned` and `MemoryUnderprovisioned` finding
1543
+ # reason codes.
1544
+ #
1545
+ # * <b> <code>Unavailable</code> </b> — Compute Optimizer was unable
1546
+ # to generate a recommendation for the function. This could be
1547
+ # because the function has not accumulated sufficient metric data,
1548
+ # or the function does not qualify for a recommendation. This
1549
+ # finding classification can include the `InsufficientData` and
1550
+ # `Inconclusive` finding reason codes.
1551
+ #
1552
+ # <note markdown="1"> Functions with a finding of unavailable are not returned unless
1553
+ # you specify the `filter` parameter with a value of `Unavailable`
1554
+ # in your `GetLambdaFunctionRecommendations` request.
1555
+ #
1556
+ # </note>
1557
+ # @return [String]
1558
+ #
1559
+ # @!attribute [rw] finding_reason_codes
1560
+ # The reason for the finding classification of the function.
1561
+ #
1562
+ # <note markdown="1"> Functions that have a finding classification of `Optimized` don't
1563
+ # have a finding reason code.
1564
+ #
1565
+ # </note>
1566
+ #
1567
+ # Reason codes include:
1568
+ #
1569
+ # * <b> <code>MemoryOverprovisioned</code> </b> — The function is
1570
+ # over-provisioned when its memory configuration can be sized down
1571
+ # while still meeting the performance requirements of your workload.
1572
+ # An over-provisioned function might lead to unnecessary
1573
+ # infrastructure cost. This finding reason code is part of the
1574
+ # `NotOptimized` finding classification.
1575
+ #
1576
+ # * <b> <code>MemoryUnderprovisioned</code> </b> — The function is
1577
+ # under-provisioned when its memory configuration doesn't meet the
1578
+ # performance requirements of the workload. An under-provisioned
1579
+ # function might lead to poor application performance. This finding
1580
+ # reason code is part of the `NotOptimized` finding classification.
1581
+ #
1582
+ # * <b> <code>InsufficientData</code> </b> — The function does not
1583
+ # have sufficient metric data for Compute Optimizer to generate a
1584
+ # recommendation. For more information, see the [Supported resources
1585
+ # and requirements][1] in the *AWS Compute Optimizer User Guide*.
1586
+ # This finding reason code is part of the `Unavailable` finding
1587
+ # classification.
1588
+ #
1589
+ # * <b> <code>Inconclusive</code> </b> — The function does not qualify
1590
+ # for a recommendation, or there was an internal error. This finding
1591
+ # reason code is part of the `Unavailable` finding classification.
1592
+ #
1593
+ #
1594
+ #
1595
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html
1596
+ # @return [Array<String>]
1597
+ #
1598
+ # @!attribute [rw] memory_size_recommendation_options
1599
+ # An array of objects that describe the memory configuration
1600
+ # recommendation options for the function.
1601
+ # @return [Array<Types::LambdaFunctionMemoryRecommendationOption>]
1602
+ #
1603
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionRecommendation AWS API Documentation
1604
+ #
1605
+ class LambdaFunctionRecommendation < Struct.new(
1606
+ :function_arn,
1607
+ :function_version,
1608
+ :account_id,
1609
+ :current_memory_size,
1610
+ :number_of_invocations,
1611
+ :utilization_metrics,
1612
+ :lookback_period_in_days,
1613
+ :last_refresh_timestamp,
1614
+ :finding,
1615
+ :finding_reason_codes,
1616
+ :memory_size_recommendation_options)
1617
+ SENSITIVE = []
1618
+ include Aws::Structure
1619
+ end
1620
+
1621
+ # Describes a filter that returns a more specific list of AWS Lambda
1622
+ # function recommendations.
1623
+ #
1624
+ # @note When making an API call, you may pass LambdaFunctionRecommendationFilter
1625
+ # data as a hash:
1626
+ #
1627
+ # {
1628
+ # name: "Finding", # accepts Finding, FindingReasonCode
1629
+ # values: ["FilterValue"],
1630
+ # }
1631
+ #
1632
+ # @!attribute [rw] name
1633
+ # The name of the filter.
1634
+ #
1635
+ # Specify `Finding` to return recommendations with a specific finding
1636
+ # classification (e.g., `NotOptimized`).
1637
+ #
1638
+ # Specify `FindingReasonCode` to return recommendations with a
1639
+ # specific finding reason code (e.g., `MemoryUnderprovisioned`).
1640
+ # @return [String]
1641
+ #
1642
+ # @!attribute [rw] values
1643
+ # The value of the filter.
1644
+ #
1645
+ # The valid values for this parameter are as follows, depending on
1646
+ # what you specify for the `name` parameter:
1647
+ #
1648
+ # * Specify `Optimized`, `NotOptimized`, or `Unavailable` if you
1649
+ # specified the `name` parameter as `Finding`.
1650
+ #
1651
+ # * Specify `MemoryOverprovisioned`, `MemoryUnderprovisioned`,
1652
+ # `InsufficientData`, or `Inconclusive` if you specified the `name`
1653
+ # parameter as `FindingReasonCode`.
1654
+ # @return [Array<String>]
1655
+ #
1656
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionRecommendationFilter AWS API Documentation
1657
+ #
1658
+ class LambdaFunctionRecommendationFilter < Struct.new(
1659
+ :name,
1660
+ :values)
1661
+ SENSITIVE = []
1662
+ include Aws::Structure
1663
+ end
1664
+
1665
+ # Describes a utilization metric of an AWS Lambda function.
1666
+ #
1667
+ # @!attribute [rw] name
1668
+ # The name of the utilization metric.
1669
+ # @return [String]
1670
+ #
1671
+ # @!attribute [rw] statistic
1672
+ # The statistic of the utilization metric.
1673
+ # @return [String]
1674
+ #
1675
+ # @!attribute [rw] value
1676
+ # The value of the utilization metric.
1677
+ # @return [Float]
1678
+ #
1679
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionUtilizationMetric AWS API Documentation
1680
+ #
1681
+ class LambdaFunctionUtilizationMetric < Struct.new(
1682
+ :name,
1683
+ :statistic,
1684
+ :value)
1685
+ SENSITIVE = []
1686
+ include Aws::Structure
1687
+ end
1688
+
1115
1689
  # The request exceeds a limit of the service.
1116
1690
  #
1117
1691
  # @!attribute [rw] message
@@ -1153,20 +1727,60 @@ module Aws::ComputeOptimizer
1153
1727
  end
1154
1728
 
1155
1729
  # Describes a projected utilization metric of a recommendation option,
1156
- # such as an Amazon EC2 instance.
1730
+ # such as an Amazon EC2 instance. This represents the projected
1731
+ # utilization of a recommendation option had you used that resource
1732
+ # during the analyzed period.
1733
+ #
1734
+ # Compare the utilization metric data of your resource against its
1735
+ # projected utilization metric data to determine the performance
1736
+ # difference between your current resource and the recommended option.
1737
+ #
1738
+ # <note markdown="1"> The `Cpu` and `Memory` metrics are the only projected utilization
1739
+ # metrics returned when you run the
1740
+ # `GetEC2RecommendationProjectedMetrics` action. Additionally, the
1741
+ # `Memory` metric is returned only for resources that have the unified
1742
+ # CloudWatch agent installed on them. For more information, see
1743
+ # [Enabling Memory Utilization with the CloudWatch Agent][1].
1744
+ #
1745
+ # </note>
1746
+ #
1747
+ #
1748
+ #
1749
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1157
1750
  #
1158
1751
  # @!attribute [rw] name
1159
1752
  # The name of the projected utilization metric.
1160
1753
  #
1161
- # <note markdown="1"> Memory metrics are only returned for resources that have the unified
1162
- # CloudWatch agent installed on them. For more information, see
1163
- # [Enabling Memory Utilization with the CloudWatch Agent][1].
1754
+ # The following projected utilization metrics are returned:
1164
1755
  #
1165
- # </note>
1756
+ # * `Cpu` - The projected percentage of allocated EC2 compute units
1757
+ # that would be in use on the recommendation option had you used
1758
+ # that resource during the analyzed period. This metric identifies
1759
+ # the processing power required to run an application on the
1760
+ # recommendation option.
1761
+ #
1762
+ # Depending on the instance type, tools in your operating system can
1763
+ # show a lower percentage than CloudWatch when the instance is not
1764
+ # allocated a full processor core.
1166
1765
  #
1766
+ # Units: Percent
1167
1767
  #
1768
+ # * `Memory` - The percentage of memory that would be in use on the
1769
+ # recommendation option had you used that resource during the
1770
+ # analyzed period. This metric identifies the amount of memory
1771
+ # required to run an application on the recommendation option.
1168
1772
  #
1169
- # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html
1773
+ # Units: Percent
1774
+ #
1775
+ # <note markdown="1"> The `Memory` metric is returned only for resources that have the
1776
+ # unified CloudWatch agent installed on them. For more information,
1777
+ # see [Enabling Memory Utilization with the CloudWatch Agent][1].
1778
+ #
1779
+ # </note>
1780
+ #
1781
+ #
1782
+ #
1783
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1170
1784
  # @return [String]
1171
1785
  #
1172
1786
  # @!attribute [rw] timestamps
@@ -1187,6 +1801,25 @@ module Aws::ComputeOptimizer
1187
1801
  include Aws::Structure
1188
1802
  end
1189
1803
 
1804
+ # A summary of a finding reason code.
1805
+ #
1806
+ # @!attribute [rw] name
1807
+ # The name of the finding reason code.
1808
+ # @return [String]
1809
+ #
1810
+ # @!attribute [rw] value
1811
+ # The value of the finding reason code summary.
1812
+ # @return [Float]
1813
+ #
1814
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ReasonCodeSummary AWS API Documentation
1815
+ #
1816
+ class ReasonCodeSummary < Struct.new(
1817
+ :name,
1818
+ :value)
1819
+ SENSITIVE = []
1820
+ include Aws::Structure
1821
+ end
1822
+
1190
1823
  # Describes a recommendation export job.
1191
1824
  #
1192
1825
  # Use the `DescribeRecommendationExportJobs` action to view your
@@ -1284,6 +1917,19 @@ module Aws::ComputeOptimizer
1284
1917
 
1285
1918
  # Describes a projected utilization metric of a recommendation option.
1286
1919
  #
1920
+ # <note markdown="1"> The `Cpu` and `Memory` metrics are the only projected utilization
1921
+ # metrics returned when you run the
1922
+ # `GetEC2RecommendationProjectedMetrics` action. Additionally, the
1923
+ # `Memory` metric is returned only for resources that have the unified
1924
+ # CloudWatch agent installed on them. For more information, see
1925
+ # [Enabling Memory Utilization with the CloudWatch Agent][1].
1926
+ #
1927
+ # </note>
1928
+ #
1929
+ #
1930
+ #
1931
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1932
+ #
1287
1933
  # @!attribute [rw] recommended_instance_type
1288
1934
  # The recommended instance type.
1289
1935
  # @return [String]
@@ -1425,11 +2071,16 @@ module Aws::ComputeOptimizer
1425
2071
  # The value of the recommendation summary.
1426
2072
  # @return [Float]
1427
2073
  #
2074
+ # @!attribute [rw] reason_code_summaries
2075
+ # An array of objects that summarize a finding reason code.
2076
+ # @return [Array<Types::ReasonCodeSummary>]
2077
+ #
1428
2078
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/Summary AWS API Documentation
1429
2079
  #
1430
2080
  class Summary < Struct.new(
1431
2081
  :name,
1432
- :value)
2082
+ :value,
2083
+ :reason_code_summaries)
1433
2084
  SENSITIVE = []
1434
2085
  include Aws::Structure
1435
2086
  end
@@ -1464,7 +2115,7 @@ module Aws::ComputeOptimizer
1464
2115
  #
1465
2116
  # @!attribute [rw] include_member_accounts
1466
2117
  # Indicates whether to enroll member accounts of the organization if
1467
- # the your account is the master account of an organization.
2118
+ # the your account is the management account of an organization.
1468
2119
  # @return [Boolean]
1469
2120
  #
1470
2121
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatusRequest AWS API Documentation
@@ -1498,22 +2149,76 @@ module Aws::ComputeOptimizer
1498
2149
  # Describes a utilization metric of a resource, such as an Amazon EC2
1499
2150
  # instance.
1500
2151
  #
2152
+ # Compare the utilization metric data of your resource against its
2153
+ # projected utilization metric data to determine the performance
2154
+ # difference between your current resource and the recommended option.
2155
+ #
1501
2156
  # @!attribute [rw] name
1502
2157
  # The name of the utilization metric.
1503
2158
  #
1504
- # <note markdown="1"> Memory metrics are only returned for resources that have the unified
1505
- # CloudWatch agent installed on them. For more information, see
1506
- # [Enabling Memory Utilization with the CloudWatch Agent][1].
2159
+ # The following utilization metrics are available:
1507
2160
  #
1508
- # </note>
2161
+ # * `Cpu` - The percentage of allocated EC2 compute units that are
2162
+ # currently in use on the instance. This metric identifies the
2163
+ # processing power required to run an application on the instance.
2164
+ #
2165
+ # Depending on the instance type, tools in your operating system can
2166
+ # show a lower percentage than CloudWatch when the instance is not
2167
+ # allocated a full processor core.
2168
+ #
2169
+ # Units: Percent
2170
+ #
2171
+ # * `Memory` - The percentage of memory that is currently in use on
2172
+ # the instance. This metric identifies the amount of memory required
2173
+ # to run an application on the instance.
2174
+ #
2175
+ # Units: Percent
2176
+ #
2177
+ # <note markdown="1"> The `Memory` metric is returned only for resources that have the
2178
+ # unified CloudWatch agent installed on them. For more information,
2179
+ # see [Enabling Memory Utilization with the CloudWatch Agent][1].
2180
+ #
2181
+ # </note>
2182
+ #
2183
+ # * `EBS_READ_OPS_PER_SECOND` - The completed read operations from all
2184
+ # EBS volumes attached to the instance in a specified period of
2185
+ # time.
2186
+ #
2187
+ # Unit: Count
2188
+ #
2189
+ # * `EBS_WRITE_OPS_PER_SECOND` - The completed write operations to all
2190
+ # EBS volumes attached to the instance in a specified period of
2191
+ # time.
1509
2192
  #
2193
+ # Unit: Count
1510
2194
  #
2195
+ # * `EBS_READ_BYTES_PER_SECOND` - The bytes read from all EBS volumes
2196
+ # attached to the instance in a specified period of time.
1511
2197
  #
1512
- # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html
2198
+ # Unit: Bytes
2199
+ #
2200
+ # * `EBS_WRITE_BYTES_PER_SECOND` - The bytes written to all EBS
2201
+ # volumes attached to the instance in a specified period of time.
2202
+ #
2203
+ # Unit: Bytes
2204
+ #
2205
+ #
2206
+ #
2207
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1513
2208
  # @return [String]
1514
2209
  #
1515
2210
  # @!attribute [rw] statistic
1516
2211
  # The statistic of the utilization metric.
2212
+ #
2213
+ # The following statistics are available:
2214
+ #
2215
+ # * `Average` - This is the value of Sum / SampleCount during the
2216
+ # specified period, or the average value observed during the
2217
+ # specified period.
2218
+ #
2219
+ # * `Maximum` - The highest value observed during the specified
2220
+ # period. Use this value to determine high volumes of activity for
2221
+ # your application.
1517
2222
  # @return [String]
1518
2223
  #
1519
2224
  # @!attribute [rw] value
@@ -1530,5 +2235,148 @@ module Aws::ComputeOptimizer
1530
2235
  include Aws::Structure
1531
2236
  end
1532
2237
 
2238
+ # Describes the configuration of an Amazon Elastic Block Store (Amazon
2239
+ # EBS) volume.
2240
+ #
2241
+ # @!attribute [rw] volume_type
2242
+ # The volume type.
2243
+ #
2244
+ # This can be `gp2` for General Purpose SSD, `io1` or `io2` for
2245
+ # Provisioned IOPS SSD, `st1` for Throughput Optimized HDD, `sc1` for
2246
+ # Cold HDD, or `standard` for Magnetic volumes.
2247
+ # @return [String]
2248
+ #
2249
+ # @!attribute [rw] volume_size
2250
+ # The size of the volume, in GiB.
2251
+ # @return [Integer]
2252
+ #
2253
+ # @!attribute [rw] volume_baseline_iops
2254
+ # The baseline IOPS of the volume.
2255
+ # @return [Integer]
2256
+ #
2257
+ # @!attribute [rw] volume_burst_iops
2258
+ # The burst IOPS of the volume.
2259
+ # @return [Integer]
2260
+ #
2261
+ # @!attribute [rw] volume_baseline_throughput
2262
+ # The baseline throughput of the volume.
2263
+ # @return [Integer]
2264
+ #
2265
+ # @!attribute [rw] volume_burst_throughput
2266
+ # The burst throughput of the volume.
2267
+ # @return [Integer]
2268
+ #
2269
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeConfiguration AWS API Documentation
2270
+ #
2271
+ class VolumeConfiguration < Struct.new(
2272
+ :volume_type,
2273
+ :volume_size,
2274
+ :volume_baseline_iops,
2275
+ :volume_burst_iops,
2276
+ :volume_baseline_throughput,
2277
+ :volume_burst_throughput)
2278
+ SENSITIVE = []
2279
+ include Aws::Structure
2280
+ end
2281
+
2282
+ # Describes an Amazon Elastic Block Store (Amazon EBS) volume
2283
+ # recommendation.
2284
+ #
2285
+ # @!attribute [rw] volume_arn
2286
+ # The Amazon Resource Name (ARN) of the current volume.
2287
+ # @return [String]
2288
+ #
2289
+ # @!attribute [rw] account_id
2290
+ # The AWS account ID of the volume.
2291
+ # @return [String]
2292
+ #
2293
+ # @!attribute [rw] current_configuration
2294
+ # An array of objects that describe the current configuration of the
2295
+ # volume.
2296
+ # @return [Types::VolumeConfiguration]
2297
+ #
2298
+ # @!attribute [rw] finding
2299
+ # The finding classification for the volume.
2300
+ #
2301
+ # Findings for volumes include:
2302
+ #
2303
+ # * <b> <code>NotOptimized</code> </b>—A volume is considered not
2304
+ # optimized when AWS Compute Optimizer identifies a recommendation
2305
+ # that can provide better performance for your workload.
2306
+ #
2307
+ # * <b> <code>Optimized</code> </b>—An volume is considered optimized
2308
+ # when Compute Optimizer determines that the volume is correctly
2309
+ # provisioned to run your workload based on the chosen volume type.
2310
+ # For optimized resources, Compute Optimizer might recommend a new
2311
+ # generation volume type.
2312
+ # @return [String]
2313
+ #
2314
+ # @!attribute [rw] utilization_metrics
2315
+ # An array of objects that describe the utilization metrics of the
2316
+ # volume.
2317
+ # @return [Array<Types::EBSUtilizationMetric>]
2318
+ #
2319
+ # @!attribute [rw] look_back_period_in_days
2320
+ # The number of days for which utilization metrics were analyzed for
2321
+ # the volume.
2322
+ # @return [Float]
2323
+ #
2324
+ # @!attribute [rw] volume_recommendation_options
2325
+ # An array of objects that describe the recommendation options for the
2326
+ # volume.
2327
+ # @return [Array<Types::VolumeRecommendationOption>]
2328
+ #
2329
+ # @!attribute [rw] last_refresh_timestamp
2330
+ # The time stamp of when the volume recommendation was last refreshed.
2331
+ # @return [Time]
2332
+ #
2333
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeRecommendation AWS API Documentation
2334
+ #
2335
+ class VolumeRecommendation < Struct.new(
2336
+ :volume_arn,
2337
+ :account_id,
2338
+ :current_configuration,
2339
+ :finding,
2340
+ :utilization_metrics,
2341
+ :look_back_period_in_days,
2342
+ :volume_recommendation_options,
2343
+ :last_refresh_timestamp)
2344
+ SENSITIVE = []
2345
+ include Aws::Structure
2346
+ end
2347
+
2348
+ # Describes a recommendation option for an Amazon Elastic Block Store
2349
+ # (Amazon EBS) instance.
2350
+ #
2351
+ # @!attribute [rw] configuration
2352
+ # An array of objects that describe a volume configuration.
2353
+ # @return [Types::VolumeConfiguration]
2354
+ #
2355
+ # @!attribute [rw] performance_risk
2356
+ # The performance risk of the volume recommendation option.
2357
+ #
2358
+ # Performance risk is the likelihood of the recommended volume type
2359
+ # not meeting the performance requirement of your workload.
2360
+ #
2361
+ # The lowest performance risk is categorized as `0`, and the highest
2362
+ # as `5`.
2363
+ # @return [Float]
2364
+ #
2365
+ # @!attribute [rw] rank
2366
+ # The rank of the volume recommendation option.
2367
+ #
2368
+ # The top recommendation option is ranked as `1`.
2369
+ # @return [Integer]
2370
+ #
2371
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeRecommendationOption AWS API Documentation
2372
+ #
2373
+ class VolumeRecommendationOption < Struct.new(
2374
+ :configuration,
2375
+ :performance_risk,
2376
+ :rank)
2377
+ SENSITIVE = []
2378
+ include Aws::Structure
2379
+ end
2380
+
1533
2381
  end
1534
2382
  end