aws-sdk-computeoptimizer 1.8.0 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 account 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 account 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
@@ -568,11 +689,11 @@ module Aws::ComputeOptimizer
568
689
  # }
569
690
  #
570
691
  # @!attribute [rw] account_ids
571
- # The IDs of the AWS accounts for which to return Auto Scaling group
692
+ # The ID of the AWS account 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 account 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 ID of the AWS account 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 account 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
  #
@@ -682,11 +893,11 @@ module Aws::ComputeOptimizer
682
893
  # @return [Array<Types::Filter>]
683
894
  #
684
895
  # @!attribute [rw] account_ids
685
- # The IDs of the AWS accounts for which to return instance
896
+ # The ID of the AWS account 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 account 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 ID of the AWS account 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 account 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
@@ -860,11 +1167,11 @@ module Aws::ComputeOptimizer
860
1167
  # }
861
1168
  #
862
1169
  # @!attribute [rw] account_ids
863
- # The IDs of the AWS accounts for which to return recommendation
1170
+ # The ID of the AWS account 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 account 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,262 @@ 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 because Compute Optimizer cannot generate a
1591
+ # recommendation with a high degree of confidence. This finding
1592
+ # reason code is part of the `Unavailable` finding classification.
1593
+ #
1594
+ #
1595
+ #
1596
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html
1597
+ # @return [Array<String>]
1598
+ #
1599
+ # @!attribute [rw] memory_size_recommendation_options
1600
+ # An array of objects that describe the memory configuration
1601
+ # recommendation options for the function.
1602
+ # @return [Array<Types::LambdaFunctionMemoryRecommendationOption>]
1603
+ #
1604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionRecommendation AWS API Documentation
1605
+ #
1606
+ class LambdaFunctionRecommendation < Struct.new(
1607
+ :function_arn,
1608
+ :function_version,
1609
+ :account_id,
1610
+ :current_memory_size,
1611
+ :number_of_invocations,
1612
+ :utilization_metrics,
1613
+ :lookback_period_in_days,
1614
+ :last_refresh_timestamp,
1615
+ :finding,
1616
+ :finding_reason_codes,
1617
+ :memory_size_recommendation_options)
1618
+ SENSITIVE = []
1619
+ include Aws::Structure
1620
+ end
1621
+
1622
+ # Describes a filter that returns a more specific list of AWS Lambda
1623
+ # function recommendations.
1624
+ #
1625
+ # @note When making an API call, you may pass LambdaFunctionRecommendationFilter
1626
+ # data as a hash:
1627
+ #
1628
+ # {
1629
+ # name: "Finding", # accepts Finding, FindingReasonCode
1630
+ # values: ["FilterValue"],
1631
+ # }
1632
+ #
1633
+ # @!attribute [rw] name
1634
+ # The name of the filter.
1635
+ #
1636
+ # Specify `Finding` to return recommendations with a specific finding
1637
+ # classification (e.g., `NotOptimized`).
1638
+ #
1639
+ # Specify `FindingReasonCode` to return recommendations with a
1640
+ # specific finding reason code (e.g., `MemoryUnderprovisioned`).
1641
+ # @return [String]
1642
+ #
1643
+ # @!attribute [rw] values
1644
+ # The value of the filter.
1645
+ #
1646
+ # The valid values for this parameter are as follows, depending on
1647
+ # what you specify for the `name` parameter:
1648
+ #
1649
+ # * Specify `Optimized`, `NotOptimized`, or `Unavailable` if you
1650
+ # specified the `name` parameter as `Finding`.
1651
+ #
1652
+ # * Specify `MemoryOverprovisioned`, `MemoryUnderprovisioned`,
1653
+ # `InsufficientData`, or `Inconclusive` if you specified the `name`
1654
+ # parameter as `FindingReasonCode`.
1655
+ # @return [Array<String>]
1656
+ #
1657
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionRecommendationFilter AWS API Documentation
1658
+ #
1659
+ class LambdaFunctionRecommendationFilter < Struct.new(
1660
+ :name,
1661
+ :values)
1662
+ SENSITIVE = []
1663
+ include Aws::Structure
1664
+ end
1665
+
1666
+ # Describes a utilization metric of an AWS Lambda function.
1667
+ #
1668
+ # @!attribute [rw] name
1669
+ # The name of the utilization metric.
1670
+ # @return [String]
1671
+ #
1672
+ # @!attribute [rw] statistic
1673
+ # The statistic of the utilization metric.
1674
+ # @return [String]
1675
+ #
1676
+ # @!attribute [rw] value
1677
+ # The value of the utilization metric.
1678
+ # @return [Float]
1679
+ #
1680
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionUtilizationMetric AWS API Documentation
1681
+ #
1682
+ class LambdaFunctionUtilizationMetric < Struct.new(
1683
+ :name,
1684
+ :statistic,
1685
+ :value)
1686
+ SENSITIVE = []
1687
+ include Aws::Structure
1688
+ end
1689
+
1115
1690
  # The request exceeds a limit of the service.
1116
1691
  #
1117
1692
  # @!attribute [rw] message
@@ -1153,20 +1728,60 @@ module Aws::ComputeOptimizer
1153
1728
  end
1154
1729
 
1155
1730
  # Describes a projected utilization metric of a recommendation option,
1156
- # such as an Amazon EC2 instance.
1731
+ # such as an Amazon EC2 instance. This represents the projected
1732
+ # utilization of a recommendation option had you used that resource
1733
+ # during the analyzed period.
1734
+ #
1735
+ # Compare the utilization metric data of your resource against its
1736
+ # projected utilization metric data to determine the performance
1737
+ # difference between your current resource and the recommended option.
1738
+ #
1739
+ # <note markdown="1"> The `Cpu` and `Memory` metrics are the only projected utilization
1740
+ # metrics returned when you run the
1741
+ # `GetEC2RecommendationProjectedMetrics` action. Additionally, the
1742
+ # `Memory` metric is returned only for resources that have the unified
1743
+ # CloudWatch agent installed on them. For more information, see
1744
+ # [Enabling Memory Utilization with the CloudWatch Agent][1].
1745
+ #
1746
+ # </note>
1747
+ #
1748
+ #
1749
+ #
1750
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1157
1751
  #
1158
1752
  # @!attribute [rw] name
1159
1753
  # The name of the projected utilization metric.
1160
1754
  #
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].
1755
+ # The following projected utilization metrics are returned:
1164
1756
  #
1165
- # </note>
1757
+ # * `Cpu` - The projected percentage of allocated EC2 compute units
1758
+ # that would be in use on the recommendation option had you used
1759
+ # that resource during the analyzed period. This metric identifies
1760
+ # the processing power required to run an application on the
1761
+ # recommendation option.
1762
+ #
1763
+ # Depending on the instance type, tools in your operating system can
1764
+ # show a lower percentage than CloudWatch when the instance is not
1765
+ # allocated a full processor core.
1166
1766
  #
1767
+ # Units: Percent
1167
1768
  #
1769
+ # * `Memory` - The percentage of memory that would be in use on the
1770
+ # recommendation option had you used that resource during the
1771
+ # analyzed period. This metric identifies the amount of memory
1772
+ # required to run an application on the recommendation option.
1168
1773
  #
1169
- # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html
1774
+ # Units: Percent
1775
+ #
1776
+ # <note markdown="1"> The `Memory` metric is returned only for resources that have the
1777
+ # unified CloudWatch agent installed on them. For more information,
1778
+ # see [Enabling Memory Utilization with the CloudWatch Agent][1].
1779
+ #
1780
+ # </note>
1781
+ #
1782
+ #
1783
+ #
1784
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1170
1785
  # @return [String]
1171
1786
  #
1172
1787
  # @!attribute [rw] timestamps
@@ -1187,6 +1802,25 @@ module Aws::ComputeOptimizer
1187
1802
  include Aws::Structure
1188
1803
  end
1189
1804
 
1805
+ # A summary of a finding reason code.
1806
+ #
1807
+ # @!attribute [rw] name
1808
+ # The name of the finding reason code.
1809
+ # @return [String]
1810
+ #
1811
+ # @!attribute [rw] value
1812
+ # The value of the finding reason code summary.
1813
+ # @return [Float]
1814
+ #
1815
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ReasonCodeSummary AWS API Documentation
1816
+ #
1817
+ class ReasonCodeSummary < Struct.new(
1818
+ :name,
1819
+ :value)
1820
+ SENSITIVE = []
1821
+ include Aws::Structure
1822
+ end
1823
+
1190
1824
  # Describes a recommendation export job.
1191
1825
  #
1192
1826
  # Use the `DescribeRecommendationExportJobs` action to view your
@@ -1284,6 +1918,19 @@ module Aws::ComputeOptimizer
1284
1918
 
1285
1919
  # Describes a projected utilization metric of a recommendation option.
1286
1920
  #
1921
+ # <note markdown="1"> The `Cpu` and `Memory` metrics are the only projected utilization
1922
+ # metrics returned when you run the
1923
+ # `GetEC2RecommendationProjectedMetrics` action. Additionally, the
1924
+ # `Memory` metric is returned only for resources that have the unified
1925
+ # CloudWatch agent installed on them. For more information, see
1926
+ # [Enabling Memory Utilization with the CloudWatch Agent][1].
1927
+ #
1928
+ # </note>
1929
+ #
1930
+ #
1931
+ #
1932
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1933
+ #
1287
1934
  # @!attribute [rw] recommended_instance_type
1288
1935
  # The recommended instance type.
1289
1936
  # @return [String]
@@ -1425,11 +2072,16 @@ module Aws::ComputeOptimizer
1425
2072
  # The value of the recommendation summary.
1426
2073
  # @return [Float]
1427
2074
  #
2075
+ # @!attribute [rw] reason_code_summaries
2076
+ # An array of objects that summarize a finding reason code.
2077
+ # @return [Array<Types::ReasonCodeSummary>]
2078
+ #
1428
2079
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/Summary AWS API Documentation
1429
2080
  #
1430
2081
  class Summary < Struct.new(
1431
2082
  :name,
1432
- :value)
2083
+ :value,
2084
+ :reason_code_summaries)
1433
2085
  SENSITIVE = []
1434
2086
  include Aws::Structure
1435
2087
  end
@@ -1464,7 +2116,7 @@ module Aws::ComputeOptimizer
1464
2116
  #
1465
2117
  # @!attribute [rw] include_member_accounts
1466
2118
  # Indicates whether to enroll member accounts of the organization if
1467
- # the your account is the master account of an organization.
2119
+ # the your account is the management account of an organization.
1468
2120
  # @return [Boolean]
1469
2121
  #
1470
2122
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatusRequest AWS API Documentation
@@ -1498,22 +2150,76 @@ module Aws::ComputeOptimizer
1498
2150
  # Describes a utilization metric of a resource, such as an Amazon EC2
1499
2151
  # instance.
1500
2152
  #
2153
+ # Compare the utilization metric data of your resource against its
2154
+ # projected utilization metric data to determine the performance
2155
+ # difference between your current resource and the recommended option.
2156
+ #
1501
2157
  # @!attribute [rw] name
1502
2158
  # The name of the utilization metric.
1503
2159
  #
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].
2160
+ # The following utilization metrics are available:
1507
2161
  #
1508
- # </note>
2162
+ # * `Cpu` - The percentage of allocated EC2 compute units that are
2163
+ # currently in use on the instance. This metric identifies the
2164
+ # processing power required to run an application on the instance.
2165
+ #
2166
+ # Depending on the instance type, tools in your operating system can
2167
+ # show a lower percentage than CloudWatch when the instance is not
2168
+ # allocated a full processor core.
2169
+ #
2170
+ # Units: Percent
2171
+ #
2172
+ # * `Memory` - The percentage of memory that is currently in use on
2173
+ # the instance. This metric identifies the amount of memory required
2174
+ # to run an application on the instance.
2175
+ #
2176
+ # Units: Percent
2177
+ #
2178
+ # <note markdown="1"> The `Memory` metric is returned only for resources that have the
2179
+ # unified CloudWatch agent installed on them. For more information,
2180
+ # see [Enabling Memory Utilization with the CloudWatch Agent][1].
2181
+ #
2182
+ # </note>
2183
+ #
2184
+ # * `EBS_READ_OPS_PER_SECOND` - The completed read operations from all
2185
+ # EBS volumes attached to the instance in a specified period of
2186
+ # time.
2187
+ #
2188
+ # Unit: Count
2189
+ #
2190
+ # * `EBS_WRITE_OPS_PER_SECOND` - The completed write operations to all
2191
+ # EBS volumes attached to the instance in a specified period of
2192
+ # time.
1509
2193
  #
2194
+ # Unit: Count
1510
2195
  #
2196
+ # * `EBS_READ_BYTES_PER_SECOND` - The bytes read from all EBS volumes
2197
+ # attached to the instance in a specified period of time.
1511
2198
  #
1512
- # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html
2199
+ # Unit: Bytes
2200
+ #
2201
+ # * `EBS_WRITE_BYTES_PER_SECOND` - The bytes written to all EBS
2202
+ # volumes attached to the instance in a specified period of time.
2203
+ #
2204
+ # Unit: Bytes
2205
+ #
2206
+ #
2207
+ #
2208
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1513
2209
  # @return [String]
1514
2210
  #
1515
2211
  # @!attribute [rw] statistic
1516
2212
  # The statistic of the utilization metric.
2213
+ #
2214
+ # The following statistics are available:
2215
+ #
2216
+ # * `Average` - This is the value of Sum / SampleCount during the
2217
+ # specified period, or the average value observed during the
2218
+ # specified period.
2219
+ #
2220
+ # * `Maximum` - The highest value observed during the specified
2221
+ # period. Use this value to determine high volumes of activity for
2222
+ # your application.
1517
2223
  # @return [String]
1518
2224
  #
1519
2225
  # @!attribute [rw] value
@@ -1530,5 +2236,148 @@ module Aws::ComputeOptimizer
1530
2236
  include Aws::Structure
1531
2237
  end
1532
2238
 
2239
+ # Describes the configuration of an Amazon Elastic Block Store (Amazon
2240
+ # EBS) volume.
2241
+ #
2242
+ # @!attribute [rw] volume_type
2243
+ # The volume type.
2244
+ #
2245
+ # This can be `gp2` for General Purpose SSD, `io1` or `io2` for
2246
+ # Provisioned IOPS SSD, `st1` for Throughput Optimized HDD, `sc1` for
2247
+ # Cold HDD, or `standard` for Magnetic volumes.
2248
+ # @return [String]
2249
+ #
2250
+ # @!attribute [rw] volume_size
2251
+ # The size of the volume, in GiB.
2252
+ # @return [Integer]
2253
+ #
2254
+ # @!attribute [rw] volume_baseline_iops
2255
+ # The baseline IOPS of the volume.
2256
+ # @return [Integer]
2257
+ #
2258
+ # @!attribute [rw] volume_burst_iops
2259
+ # The burst IOPS of the volume.
2260
+ # @return [Integer]
2261
+ #
2262
+ # @!attribute [rw] volume_baseline_throughput
2263
+ # The baseline throughput of the volume.
2264
+ # @return [Integer]
2265
+ #
2266
+ # @!attribute [rw] volume_burst_throughput
2267
+ # The burst throughput of the volume.
2268
+ # @return [Integer]
2269
+ #
2270
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeConfiguration AWS API Documentation
2271
+ #
2272
+ class VolumeConfiguration < Struct.new(
2273
+ :volume_type,
2274
+ :volume_size,
2275
+ :volume_baseline_iops,
2276
+ :volume_burst_iops,
2277
+ :volume_baseline_throughput,
2278
+ :volume_burst_throughput)
2279
+ SENSITIVE = []
2280
+ include Aws::Structure
2281
+ end
2282
+
2283
+ # Describes an Amazon Elastic Block Store (Amazon EBS) volume
2284
+ # recommendation.
2285
+ #
2286
+ # @!attribute [rw] volume_arn
2287
+ # The Amazon Resource Name (ARN) of the current volume.
2288
+ # @return [String]
2289
+ #
2290
+ # @!attribute [rw] account_id
2291
+ # The AWS account ID of the volume.
2292
+ # @return [String]
2293
+ #
2294
+ # @!attribute [rw] current_configuration
2295
+ # An array of objects that describe the current configuration of the
2296
+ # volume.
2297
+ # @return [Types::VolumeConfiguration]
2298
+ #
2299
+ # @!attribute [rw] finding
2300
+ # The finding classification for the volume.
2301
+ #
2302
+ # Findings for volumes include:
2303
+ #
2304
+ # * <b> <code>NotOptimized</code> </b>—A volume is considered not
2305
+ # optimized when AWS Compute Optimizer identifies a recommendation
2306
+ # that can provide better performance for your workload.
2307
+ #
2308
+ # * <b> <code>Optimized</code> </b>—An volume is considered optimized
2309
+ # when Compute Optimizer determines that the volume is correctly
2310
+ # provisioned to run your workload based on the chosen volume type.
2311
+ # For optimized resources, Compute Optimizer might recommend a new
2312
+ # generation volume type.
2313
+ # @return [String]
2314
+ #
2315
+ # @!attribute [rw] utilization_metrics
2316
+ # An array of objects that describe the utilization metrics of the
2317
+ # volume.
2318
+ # @return [Array<Types::EBSUtilizationMetric>]
2319
+ #
2320
+ # @!attribute [rw] look_back_period_in_days
2321
+ # The number of days for which utilization metrics were analyzed for
2322
+ # the volume.
2323
+ # @return [Float]
2324
+ #
2325
+ # @!attribute [rw] volume_recommendation_options
2326
+ # An array of objects that describe the recommendation options for the
2327
+ # volume.
2328
+ # @return [Array<Types::VolumeRecommendationOption>]
2329
+ #
2330
+ # @!attribute [rw] last_refresh_timestamp
2331
+ # The time stamp of when the volume recommendation was last refreshed.
2332
+ # @return [Time]
2333
+ #
2334
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeRecommendation AWS API Documentation
2335
+ #
2336
+ class VolumeRecommendation < Struct.new(
2337
+ :volume_arn,
2338
+ :account_id,
2339
+ :current_configuration,
2340
+ :finding,
2341
+ :utilization_metrics,
2342
+ :look_back_period_in_days,
2343
+ :volume_recommendation_options,
2344
+ :last_refresh_timestamp)
2345
+ SENSITIVE = []
2346
+ include Aws::Structure
2347
+ end
2348
+
2349
+ # Describes a recommendation option for an Amazon Elastic Block Store
2350
+ # (Amazon EBS) instance.
2351
+ #
2352
+ # @!attribute [rw] configuration
2353
+ # An array of objects that describe a volume configuration.
2354
+ # @return [Types::VolumeConfiguration]
2355
+ #
2356
+ # @!attribute [rw] performance_risk
2357
+ # The performance risk of the volume recommendation option.
2358
+ #
2359
+ # Performance risk is the likelihood of the recommended volume type
2360
+ # not meeting the performance requirement of your workload.
2361
+ #
2362
+ # The lowest performance risk is categorized as `0`, and the highest
2363
+ # as `5`.
2364
+ # @return [Float]
2365
+ #
2366
+ # @!attribute [rw] rank
2367
+ # The rank of the volume recommendation option.
2368
+ #
2369
+ # The top recommendation option is ranked as `1`.
2370
+ # @return [Integer]
2371
+ #
2372
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeRecommendationOption AWS API Documentation
2373
+ #
2374
+ class VolumeRecommendationOption < Struct.new(
2375
+ :configuration,
2376
+ :performance_risk,
2377
+ :rank)
2378
+ SENSITIVE = []
2379
+ include Aws::Structure
2380
+ end
2381
+
1533
2382
  end
1534
2383
  end