aws-sdk-computeoptimizer 1.9.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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