aws-sdk-computeoptimizer 1.9.0 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -257,6 +252,102 @@ module Aws::ComputeOptimizer
257
252
  include Aws::Structure
258
253
  end
259
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
+
260
351
  # @note When making an API call, you may pass ExportAutoScalingGroupRecommendationsRequest
261
352
  # data as a hash:
262
353
  #
@@ -281,8 +372,8 @@ module Aws::ComputeOptimizer
281
372
  # The IDs of the AWS accounts for which to export Auto Scaling group
282
373
  # recommendations.
283
374
  #
284
- # If your account is the master account of an organization, use this
285
- # 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
286
377
  # export recommendations.
287
378
  #
288
379
  # This parameter cannot be specified together with the include member
@@ -337,8 +428,8 @@ module Aws::ComputeOptimizer
337
428
  #
338
429
  # @!attribute [rw] include_member_accounts
339
430
  # Indicates whether to include recommendations for resources in all
340
- # member accounts of the organization if your account is the master
341
- # account of an organization.
431
+ # member accounts of the organization if your account is the
432
+ # management account of an organization.
342
433
  #
343
434
  # The member accounts must also be opted in to Compute Optimizer.
344
435
  #
@@ -427,8 +518,8 @@ module Aws::ComputeOptimizer
427
518
  # The IDs of the AWS accounts for which to export instance
428
519
  # recommendations.
429
520
  #
430
- # If your account is the master account of an organization, use this
431
- # 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
432
523
  # export recommendations.
433
524
  #
434
525
  # This parameter cannot be specified together with the include member
@@ -483,8 +574,8 @@ module Aws::ComputeOptimizer
483
574
  #
484
575
  # @!attribute [rw] include_member_accounts
485
576
  # Indicates whether to include recommendations for resources in all
486
- # member accounts of the organization if your account is the master
487
- # account of an organization.
577
+ # member accounts of the organization if your account is the
578
+ # management account of an organization.
488
579
  #
489
580
  # The member accounts must also be opted in to Compute Optimizer.
490
581
  #
@@ -532,6 +623,9 @@ module Aws::ComputeOptimizer
532
623
  # Describes a filter that returns a more specific list of
533
624
  # recommendations.
534
625
  #
626
+ # This filter is used with the `GetAutoScalingGroupRecommendations` and
627
+ # `GetEC2InstanceRecommendations` actions.
628
+ #
535
629
  # @note When making an API call, you may pass Filter
536
630
  # data as a hash:
537
631
  #
@@ -543,7 +637,7 @@ module Aws::ComputeOptimizer
543
637
  # @!attribute [rw] name
544
638
  # The name of the filter.
545
639
  #
546
- # Specify `Finding` to return recommendations with a specific findings
640
+ # Specify `Finding` to return recommendations with a specific finding
547
641
  # classification (e.g., `Overprovisioned`).
548
642
  #
549
643
  # Specify `RecommendationSourceType` to return recommendations of a
@@ -553,17 +647,20 @@ module Aws::ComputeOptimizer
553
647
  # @!attribute [rw] values
554
648
  # The value of the filter.
555
649
  #
556
- # If you specify the `name` parameter as `Finding`, and you request
557
- # recommendations for an *instance*, then the valid values are
558
- # `Underprovisioned`, `Overprovisioned`, `NotOptimized`, or
559
- # `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:
560
653
  #
561
- # If you specify the `name` parameter as `Finding`, and you request
562
- # recommendations for an *Auto Scaling group*, then the valid values
563
- # 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.
564
657
  #
565
- # If you specify the `name` parameter as `RecommendationSourceType`,
566
- # 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`.
567
664
  # @return [Array<String>]
568
665
  #
569
666
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/Filter AWS API Documentation
@@ -592,11 +689,11 @@ module Aws::ComputeOptimizer
592
689
  # }
593
690
  #
594
691
  # @!attribute [rw] account_ids
595
- # 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
596
693
  # recommendations.
597
694
  #
598
- # If your account is the master account of an organization, use this
599
- # 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
600
697
  # return Auto Scaling group recommendations.
601
698
  #
602
699
  # Only one account ID can be specified per request.
@@ -667,6 +764,96 @@ module Aws::ComputeOptimizer
667
764
  include Aws::Structure
668
765
  end
669
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
+
670
857
  # @note When making an API call, you may pass GetEC2InstanceRecommendationsRequest
671
858
  # data as a hash:
672
859
  #
@@ -706,11 +893,11 @@ module Aws::ComputeOptimizer
706
893
  # @return [Array<Types::Filter>]
707
894
  #
708
895
  # @!attribute [rw] account_ids
709
- # The IDs of the AWS accounts for which to return instance
896
+ # The ID of the AWS account for which to return instance
710
897
  # recommendations.
711
898
  #
712
- # If your account is the master account of an organization, use this
713
- # 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
714
901
  # return instance recommendations.
715
902
  #
716
903
  # Only one account ID can be specified per request.
@@ -833,7 +1020,8 @@ module Aws::ComputeOptimizer
833
1020
  #
834
1021
  # @!attribute [rw] member_accounts_enrolled
835
1022
  # Confirms the enrollment status of member accounts within the
836
- # organization, if the account is a master account of an organization.
1023
+ # organization, if the account is a management account of an
1024
+ # organization.
837
1025
  # @return [Boolean]
838
1026
  #
839
1027
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatusResponse AWS API Documentation
@@ -846,6 +1034,101 @@ module Aws::ComputeOptimizer
846
1034
  include Aws::Structure
847
1035
  end
848
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
+
849
1132
  # Describes an error experienced when getting recommendations.
850
1133
  #
851
1134
  # For example, an error is returned if you request recommendations for
@@ -884,11 +1167,11 @@ module Aws::ComputeOptimizer
884
1167
  # }
885
1168
  #
886
1169
  # @!attribute [rw] account_ids
887
- # The IDs of the AWS accounts for which to return recommendation
1170
+ # The ID of the AWS account for which to return recommendation
888
1171
  # summaries.
889
1172
  #
890
- # If your account is the master account of an organization, use this
891
- # 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
892
1175
  # return recommendation summaries.
893
1176
  #
894
1177
  # Only one account ID can be specified per request.
@@ -980,11 +1263,6 @@ module Aws::ComputeOptimizer
980
1263
  # your workloads with optimal performance and infrastructure cost.
981
1264
  # For optimized resources, AWS Compute Optimizer might recommend a
982
1265
  # new generation instance type.
983
- #
984
- # <note markdown="1"> The values that are returned might be `UNDER_PROVISIONED`,
985
- # `OVER_PROVISIONED`, or `OPTIMIZED`.
986
- #
987
- # </note>
988
1266
  # @return [String]
989
1267
  #
990
1268
  # @!attribute [rw] utilization_metrics
@@ -1132,11 +1410,16 @@ module Aws::ComputeOptimizer
1132
1410
  # @!attribute [rw] values
1133
1411
  # The value of the filter.
1134
1412
  #
1135
- # If you specify the `name` parameter as `ResourceType`, the valid
1136
- # 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.
1137
1420
  #
1138
- # If you specify the `name` parameter as `JobStatus`, the valid values
1139
- # are `Queued`, `InProgress`, `Complete`, or `Failed`.
1421
+ # * Specify `Queued`, `InProgress`, `Complete`, or `Failed` if you
1422
+ # specified the `name` parameter as `JobStatus`.
1140
1423
  # @return [Array<String>]
1141
1424
  #
1142
1425
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/JobFilter AWS API Documentation
@@ -1148,6 +1431,269 @@ module Aws::ComputeOptimizer
1148
1431
  include Aws::Structure
1149
1432
  end
1150
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
+ #
1671
+ # The following utilization metrics are available:
1672
+ #
1673
+ # * `Duration` - The amount of time that your function code spends
1674
+ # processing an event.
1675
+ #
1676
+ # * `Memory` - The amount of memory used per invocation.
1677
+ # @return [String]
1678
+ #
1679
+ # @!attribute [rw] statistic
1680
+ # The statistic of the utilization metric.
1681
+ # @return [String]
1682
+ #
1683
+ # @!attribute [rw] value
1684
+ # The value of the utilization metric.
1685
+ # @return [Float]
1686
+ #
1687
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LambdaFunctionUtilizationMetric AWS API Documentation
1688
+ #
1689
+ class LambdaFunctionUtilizationMetric < Struct.new(
1690
+ :name,
1691
+ :statistic,
1692
+ :value)
1693
+ SENSITIVE = []
1694
+ include Aws::Structure
1695
+ end
1696
+
1151
1697
  # The request exceeds a limit of the service.
1152
1698
  #
1153
1699
  # @!attribute [rw] message
@@ -1189,7 +1735,13 @@ module Aws::ComputeOptimizer
1189
1735
  end
1190
1736
 
1191
1737
  # Describes a projected utilization metric of a recommendation option,
1192
- # such as an Amazon EC2 instance.
1738
+ # such as an Amazon EC2 instance. This represents the projected
1739
+ # utilization of a recommendation option had you used that resource
1740
+ # during the analyzed period.
1741
+ #
1742
+ # Compare the utilization metric data of your resource against its
1743
+ # projected utilization metric data to determine the performance
1744
+ # difference between your current resource and the recommended option.
1193
1745
  #
1194
1746
  # <note markdown="1"> The `Cpu` and `Memory` metrics are the only projected utilization
1195
1747
  # metrics returned when you run the
@@ -1206,6 +1758,37 @@ module Aws::ComputeOptimizer
1206
1758
  #
1207
1759
  # @!attribute [rw] name
1208
1760
  # The name of the projected utilization metric.
1761
+ #
1762
+ # The following projected utilization metrics are returned:
1763
+ #
1764
+ # * `Cpu` - The projected percentage of allocated EC2 compute units
1765
+ # that would be in use on the recommendation option had you used
1766
+ # that resource during the analyzed period. This metric identifies
1767
+ # the processing power required to run an application on the
1768
+ # recommendation option.
1769
+ #
1770
+ # Depending on the instance type, tools in your operating system can
1771
+ # show a lower percentage than CloudWatch when the instance is not
1772
+ # allocated a full processor core.
1773
+ #
1774
+ # Units: Percent
1775
+ #
1776
+ # * `Memory` - The percentage of memory that would be in use on the
1777
+ # recommendation option had you used that resource during the
1778
+ # analyzed period. This metric identifies the amount of memory
1779
+ # required to run an application on the recommendation option.
1780
+ #
1781
+ # Units: Percent
1782
+ #
1783
+ # <note markdown="1"> The `Memory` metric is returned only for resources that have the
1784
+ # unified CloudWatch agent installed on them. For more information,
1785
+ # see [Enabling Memory Utilization with the CloudWatch Agent][1].
1786
+ #
1787
+ # </note>
1788
+ #
1789
+ #
1790
+ #
1791
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
1209
1792
  # @return [String]
1210
1793
  #
1211
1794
  # @!attribute [rw] timestamps
@@ -1226,6 +1809,25 @@ module Aws::ComputeOptimizer
1226
1809
  include Aws::Structure
1227
1810
  end
1228
1811
 
1812
+ # A summary of a finding reason code.
1813
+ #
1814
+ # @!attribute [rw] name
1815
+ # The name of the finding reason code.
1816
+ # @return [String]
1817
+ #
1818
+ # @!attribute [rw] value
1819
+ # The value of the finding reason code summary.
1820
+ # @return [Float]
1821
+ #
1822
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ReasonCodeSummary AWS API Documentation
1823
+ #
1824
+ class ReasonCodeSummary < Struct.new(
1825
+ :name,
1826
+ :value)
1827
+ SENSITIVE = []
1828
+ include Aws::Structure
1829
+ end
1830
+
1229
1831
  # Describes a recommendation export job.
1230
1832
  #
1231
1833
  # Use the `DescribeRecommendationExportJobs` action to view your
@@ -1477,11 +2079,16 @@ module Aws::ComputeOptimizer
1477
2079
  # The value of the recommendation summary.
1478
2080
  # @return [Float]
1479
2081
  #
2082
+ # @!attribute [rw] reason_code_summaries
2083
+ # An array of objects that summarize a finding reason code.
2084
+ # @return [Array<Types::ReasonCodeSummary>]
2085
+ #
1480
2086
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/Summary AWS API Documentation
1481
2087
  #
1482
2088
  class Summary < Struct.new(
1483
2089
  :name,
1484
- :value)
2090
+ :value,
2091
+ :reason_code_summaries)
1485
2092
  SENSITIVE = []
1486
2093
  include Aws::Structure
1487
2094
  end
@@ -1510,13 +2117,32 @@ module Aws::ComputeOptimizer
1510
2117
  # @!attribute [rw] status
1511
2118
  # The new enrollment status of the account.
1512
2119
  #
1513
- # Accepted options are `Active` or `Inactive`. You will get an error
1514
- # if `Pending` or `Failed` are specified.
2120
+ # The following status options are available:
2121
+ #
2122
+ # * `Active` - Opts in your account to the Compute Optimizer service.
2123
+ # Compute Optimizer begins analyzing the configuration and
2124
+ # utilization metrics of your AWS resources after you opt in. For
2125
+ # more information, see [Metrics analyzed by AWS Compute
2126
+ # Optimizer][1] in the *Compute Optimizer User Guide*.
2127
+ #
2128
+ # * `Inactive` - Opts out your account from the Compute Optimizer
2129
+ # service. Your account's recommendations and related metrics data
2130
+ # will be deleted from Compute Optimizer after you opt out.
2131
+ #
2132
+ # <note markdown="1"> The `Pending` and `Failed` options cannot be used to update the
2133
+ # enrollment status of an account. They are returned in the response
2134
+ # of a request to update the enrollment status of an account.
2135
+ #
2136
+ # </note>
2137
+ #
2138
+ #
2139
+ #
2140
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/ug/metrics.html
1515
2141
  # @return [String]
1516
2142
  #
1517
2143
  # @!attribute [rw] include_member_accounts
1518
2144
  # Indicates whether to enroll member accounts of the organization if
1519
- # the your account is the master account of an organization.
2145
+ # the account is the management account of an organization.
1520
2146
  # @return [Boolean]
1521
2147
  #
1522
2148
  # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatusRequest AWS API Documentation
@@ -1550,14 +2176,58 @@ module Aws::ComputeOptimizer
1550
2176
  # Describes a utilization metric of a resource, such as an Amazon EC2
1551
2177
  # instance.
1552
2178
  #
2179
+ # Compare the utilization metric data of your resource against its
2180
+ # projected utilization metric data to determine the performance
2181
+ # difference between your current resource and the recommended option.
2182
+ #
1553
2183
  # @!attribute [rw] name
1554
2184
  # The name of the utilization metric.
1555
2185
  #
1556
- # <note markdown="1"> The `Memory` metric is returned only for resources that have the
1557
- # unified CloudWatch agent installed on them. For more information,
1558
- # see [Enabling Memory Utilization with the CloudWatch Agent][1].
2186
+ # The following utilization metrics are available:
1559
2187
  #
1560
- # </note>
2188
+ # * `Cpu` - The percentage of allocated EC2 compute units that are
2189
+ # currently in use on the instance. This metric identifies the
2190
+ # processing power required to run an application on the instance.
2191
+ #
2192
+ # Depending on the instance type, tools in your operating system can
2193
+ # show a lower percentage than CloudWatch when the instance is not
2194
+ # allocated a full processor core.
2195
+ #
2196
+ # Units: Percent
2197
+ #
2198
+ # * `Memory` - The percentage of memory that is currently in use on
2199
+ # the instance. This metric identifies the amount of memory required
2200
+ # to run an application on the instance.
2201
+ #
2202
+ # Units: Percent
2203
+ #
2204
+ # <note markdown="1"> The `Memory` metric is returned only for resources that have the
2205
+ # unified CloudWatch agent installed on them. For more information,
2206
+ # see [Enabling Memory Utilization with the CloudWatch Agent][1].
2207
+ #
2208
+ # </note>
2209
+ #
2210
+ # * `EBS_READ_OPS_PER_SECOND` - The completed read operations from all
2211
+ # EBS volumes attached to the instance in a specified period of
2212
+ # time.
2213
+ #
2214
+ # Unit: Count
2215
+ #
2216
+ # * `EBS_WRITE_OPS_PER_SECOND` - The completed write operations to all
2217
+ # EBS volumes attached to the instance in a specified period of
2218
+ # time.
2219
+ #
2220
+ # Unit: Count
2221
+ #
2222
+ # * `EBS_READ_BYTES_PER_SECOND` - The bytes read from all EBS volumes
2223
+ # attached to the instance in a specified period of time.
2224
+ #
2225
+ # Unit: Bytes
2226
+ #
2227
+ # * `EBS_WRITE_BYTES_PER_SECOND` - The bytes written to all EBS
2228
+ # volumes attached to the instance in a specified period of time.
2229
+ #
2230
+ # Unit: Bytes
1561
2231
  #
1562
2232
  #
1563
2233
  #
@@ -1566,6 +2236,16 @@ module Aws::ComputeOptimizer
1566
2236
  #
1567
2237
  # @!attribute [rw] statistic
1568
2238
  # The statistic of the utilization metric.
2239
+ #
2240
+ # The following statistics are available:
2241
+ #
2242
+ # * `Average` - This is the value of Sum / SampleCount during the
2243
+ # specified period, or the average value observed during the
2244
+ # specified period.
2245
+ #
2246
+ # * `Maximum` - The highest value observed during the specified
2247
+ # period. Use this value to determine high volumes of activity for
2248
+ # your application.
1569
2249
  # @return [String]
1570
2250
  #
1571
2251
  # @!attribute [rw] value
@@ -1582,5 +2262,148 @@ module Aws::ComputeOptimizer
1582
2262
  include Aws::Structure
1583
2263
  end
1584
2264
 
2265
+ # Describes the configuration of an Amazon Elastic Block Store (Amazon
2266
+ # EBS) volume.
2267
+ #
2268
+ # @!attribute [rw] volume_type
2269
+ # The volume type.
2270
+ #
2271
+ # This can be `gp2` for General Purpose SSD, `io1` or `io2` for
2272
+ # Provisioned IOPS SSD, `st1` for Throughput Optimized HDD, `sc1` for
2273
+ # Cold HDD, or `standard` for Magnetic volumes.
2274
+ # @return [String]
2275
+ #
2276
+ # @!attribute [rw] volume_size
2277
+ # The size of the volume, in GiB.
2278
+ # @return [Integer]
2279
+ #
2280
+ # @!attribute [rw] volume_baseline_iops
2281
+ # The baseline IOPS of the volume.
2282
+ # @return [Integer]
2283
+ #
2284
+ # @!attribute [rw] volume_burst_iops
2285
+ # The burst IOPS of the volume.
2286
+ # @return [Integer]
2287
+ #
2288
+ # @!attribute [rw] volume_baseline_throughput
2289
+ # The baseline throughput of the volume.
2290
+ # @return [Integer]
2291
+ #
2292
+ # @!attribute [rw] volume_burst_throughput
2293
+ # The burst throughput of the volume.
2294
+ # @return [Integer]
2295
+ #
2296
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeConfiguration AWS API Documentation
2297
+ #
2298
+ class VolumeConfiguration < Struct.new(
2299
+ :volume_type,
2300
+ :volume_size,
2301
+ :volume_baseline_iops,
2302
+ :volume_burst_iops,
2303
+ :volume_baseline_throughput,
2304
+ :volume_burst_throughput)
2305
+ SENSITIVE = []
2306
+ include Aws::Structure
2307
+ end
2308
+
2309
+ # Describes an Amazon Elastic Block Store (Amazon EBS) volume
2310
+ # recommendation.
2311
+ #
2312
+ # @!attribute [rw] volume_arn
2313
+ # The Amazon Resource Name (ARN) of the current volume.
2314
+ # @return [String]
2315
+ #
2316
+ # @!attribute [rw] account_id
2317
+ # The AWS account ID of the volume.
2318
+ # @return [String]
2319
+ #
2320
+ # @!attribute [rw] current_configuration
2321
+ # An array of objects that describe the current configuration of the
2322
+ # volume.
2323
+ # @return [Types::VolumeConfiguration]
2324
+ #
2325
+ # @!attribute [rw] finding
2326
+ # The finding classification for the volume.
2327
+ #
2328
+ # Findings for volumes include:
2329
+ #
2330
+ # * <b> <code>NotOptimized</code> </b>—A volume is considered not
2331
+ # optimized when AWS Compute Optimizer identifies a recommendation
2332
+ # that can provide better performance for your workload.
2333
+ #
2334
+ # * <b> <code>Optimized</code> </b>—An volume is considered optimized
2335
+ # when Compute Optimizer determines that the volume is correctly
2336
+ # provisioned to run your workload based on the chosen volume type.
2337
+ # For optimized resources, Compute Optimizer might recommend a new
2338
+ # generation volume type.
2339
+ # @return [String]
2340
+ #
2341
+ # @!attribute [rw] utilization_metrics
2342
+ # An array of objects that describe the utilization metrics of the
2343
+ # volume.
2344
+ # @return [Array<Types::EBSUtilizationMetric>]
2345
+ #
2346
+ # @!attribute [rw] look_back_period_in_days
2347
+ # The number of days for which utilization metrics were analyzed for
2348
+ # the volume.
2349
+ # @return [Float]
2350
+ #
2351
+ # @!attribute [rw] volume_recommendation_options
2352
+ # An array of objects that describe the recommendation options for the
2353
+ # volume.
2354
+ # @return [Array<Types::VolumeRecommendationOption>]
2355
+ #
2356
+ # @!attribute [rw] last_refresh_timestamp
2357
+ # The time stamp of when the volume recommendation was last refreshed.
2358
+ # @return [Time]
2359
+ #
2360
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeRecommendation AWS API Documentation
2361
+ #
2362
+ class VolumeRecommendation < Struct.new(
2363
+ :volume_arn,
2364
+ :account_id,
2365
+ :current_configuration,
2366
+ :finding,
2367
+ :utilization_metrics,
2368
+ :look_back_period_in_days,
2369
+ :volume_recommendation_options,
2370
+ :last_refresh_timestamp)
2371
+ SENSITIVE = []
2372
+ include Aws::Structure
2373
+ end
2374
+
2375
+ # Describes a recommendation option for an Amazon Elastic Block Store
2376
+ # (Amazon EBS) instance.
2377
+ #
2378
+ # @!attribute [rw] configuration
2379
+ # An array of objects that describe a volume configuration.
2380
+ # @return [Types::VolumeConfiguration]
2381
+ #
2382
+ # @!attribute [rw] performance_risk
2383
+ # The performance risk of the volume recommendation option.
2384
+ #
2385
+ # Performance risk is the likelihood of the recommended volume type
2386
+ # not meeting the performance requirement of your workload.
2387
+ #
2388
+ # The lowest performance risk is categorized as `0`, and the highest
2389
+ # as `5`.
2390
+ # @return [Float]
2391
+ #
2392
+ # @!attribute [rw] rank
2393
+ # The rank of the volume recommendation option.
2394
+ #
2395
+ # The top recommendation option is ranked as `1`.
2396
+ # @return [Integer]
2397
+ #
2398
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/VolumeRecommendationOption AWS API Documentation
2399
+ #
2400
+ class VolumeRecommendationOption < Struct.new(
2401
+ :configuration,
2402
+ :performance_risk,
2403
+ :rank)
2404
+ SENSITIVE = []
2405
+ include Aws::Structure
2406
+ end
2407
+
1585
2408
  end
1586
2409
  end