aws-sdk-costoptimizationhub 1.34.0 → 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9f1ba121aff31ca60fc366210f6c4c208e7e6a1b9bc204bb2598e61d2bad4d2
4
- data.tar.gz: cc9c43f77e856bb4c0672331fcdf191ecffc4b165d512f2a64c90e89e5529f84
3
+ metadata.gz: ede5c1c6502491a0b9ce395faff4c101b135083f20607368a1425520b54b0e90
4
+ data.tar.gz: 6939651877ccb6815920b923e298159cb82e8c05c2ee529b51c4f9b93950c2ae
5
5
  SHA512:
6
- metadata.gz: 0efb66163607d7dae2441893b0c38baded794d47d24ce6c95daf44d499d3d2ebe146676473fad8d6fb41ce7337ade3835c347e4d197c1b7dd1ed477a810a4546
7
- data.tar.gz: 1ca262da802cda2a98a9d7b265bd39624d09bee9899f3c7db6a1cfe5471eb74149e9965b3ccff91d7a2e3a72fb38651fced73d37cabb1bcfe6f4649a1a801453
6
+ metadata.gz: 721696b6e0b199e5a38a94e327053b71f9e550833b26a17430ac693e6de92dd7cd435da61dbae3414da4902482b09ee39cfe02ca77cff4dd5d1e17e863b1432c
7
+ data.tar.gz: 51f97a055d51f30d3e9a65c5a517477d977e89d1b35e14d6483b80bb7dba956b0585888e801f871e2f0916bb429e43b33f0256b93c6240e9128cfe32f3f39ddd
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.35.0 (2025-11-19)
5
+ ------------------
6
+
7
+ * Feature - Release ListEfficiencyMetrics API
8
+
4
9
  1.34.0 (2025-10-27)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.34.0
1
+ 1.35.0
@@ -1124,6 +1124,94 @@ module Aws::CostOptimizationHub
1124
1124
  req.send_request(options)
1125
1125
  end
1126
1126
 
1127
+ # Returns cost efficiency metrics aggregated over time and optionally
1128
+ # grouped by a specified dimension. The metrics provide insights into
1129
+ # your cost optimization progress by tracking estimated savings,
1130
+ # spending, and measures how effectively you're optimizing your Cloud
1131
+ # resources.
1132
+ #
1133
+ # The operation supports both daily and monthly time granularities and
1134
+ # allows grouping results by account ID, Amazon Web Services Region.
1135
+ # Results are returned as time-series data, enabling you to analyze
1136
+ # trends in your cost optimization performance over the specified time
1137
+ # period.
1138
+ #
1139
+ # @option params [String] :group_by
1140
+ # The dimension by which to group the cost efficiency metrics. Valid
1141
+ # values include account ID, Amazon Web Services Region. When no
1142
+ # grouping is specified, metrics are aggregated across all resources in
1143
+ # the specified time period.
1144
+ #
1145
+ # @option params [required, String] :granularity
1146
+ # The time granularity for the cost efficiency metrics. Specify `Daily`
1147
+ # for metrics aggregated by day, or `Monthly` for metrics aggregated by
1148
+ # month.
1149
+ #
1150
+ # @option params [required, Types::TimePeriod] :time_period
1151
+ # The time period for which to retrieve the cost efficiency metrics. The
1152
+ # start date is inclusive and the end date is exclusive. Dates can be
1153
+ # specified in either YYYY-MM-DD format or YYYY-MM format depending on
1154
+ # the desired granularity.
1155
+ #
1156
+ # @option params [Integer] :max_results
1157
+ # The maximum number of groups to return in the response. Valid values
1158
+ # range from 0 to 1000. Use in conjunction with `nextToken` to paginate
1159
+ # through results when the total number of groups exceeds this limit.
1160
+ #
1161
+ # @option params [Types::OrderBy] :order_by
1162
+ # The ordering specification for the results. Defines which dimension to
1163
+ # sort by and whether to sort in ascending or descending order.
1164
+ #
1165
+ # @option params [String] :next_token
1166
+ # The token to retrieve the next page of results. This value is returned
1167
+ # in the response when the number of groups exceeds the specified
1168
+ # `maxResults` value.
1169
+ #
1170
+ # @return [Types::ListEfficiencyMetricsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1171
+ #
1172
+ # * {Types::ListEfficiencyMetricsResponse#efficiency_metrics_by_group #efficiency_metrics_by_group} => Array<Types::EfficiencyMetricsByGroup>
1173
+ # * {Types::ListEfficiencyMetricsResponse#next_token #next_token} => String
1174
+ #
1175
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1176
+ #
1177
+ # @example Request syntax with placeholder values
1178
+ #
1179
+ # resp = client.list_efficiency_metrics({
1180
+ # group_by: "String",
1181
+ # granularity: "Daily", # required, accepts Daily, Monthly
1182
+ # time_period: { # required
1183
+ # start: "String", # required
1184
+ # end: "String", # required
1185
+ # },
1186
+ # max_results: 1,
1187
+ # order_by: {
1188
+ # dimension: "String",
1189
+ # order: "Asc", # accepts Asc, Desc
1190
+ # },
1191
+ # next_token: "String",
1192
+ # })
1193
+ #
1194
+ # @example Response structure
1195
+ #
1196
+ # resp.efficiency_metrics_by_group #=> Array
1197
+ # resp.efficiency_metrics_by_group[0].metrics_by_time #=> Array
1198
+ # resp.efficiency_metrics_by_group[0].metrics_by_time[0].score #=> Float
1199
+ # resp.efficiency_metrics_by_group[0].metrics_by_time[0].savings #=> Float
1200
+ # resp.efficiency_metrics_by_group[0].metrics_by_time[0].spend #=> Float
1201
+ # resp.efficiency_metrics_by_group[0].metrics_by_time[0].timestamp #=> String
1202
+ # resp.efficiency_metrics_by_group[0].group #=> String
1203
+ # resp.efficiency_metrics_by_group[0].message #=> String
1204
+ # resp.next_token #=> String
1205
+ #
1206
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListEfficiencyMetrics AWS API Documentation
1207
+ #
1208
+ # @overload list_efficiency_metrics(params = {})
1209
+ # @param [Hash] params ({})
1210
+ def list_efficiency_metrics(params = {}, options = {})
1211
+ req = build_request(:list_efficiency_metrics, params)
1212
+ req.send_request(options)
1213
+ end
1214
+
1127
1215
  # Retrieves the enrollment status for an account. It can also return the
1128
1216
  # list of accounts that are enrolled under the organization.
1129
1217
  #
@@ -1357,9 +1445,8 @@ module Aws::CostOptimizationHub
1357
1445
  # Updates the enrollment (opt in and opt out) status of an account to
1358
1446
  # the Cost Optimization Hub service.
1359
1447
  #
1360
- # If the account is a management account or delegated administrator of
1361
- # an organization, this action can also be used to enroll member
1362
- # accounts of the organization.
1448
+ # If the account is a management account of an organization, this action
1449
+ # can also be used to enroll member accounts of the organization.
1363
1450
  #
1364
1451
  # You must have the appropriate permissions to opt in to Cost
1365
1452
  # Optimization Hub and to view its recommendations. When you opt in,
@@ -1463,7 +1550,7 @@ module Aws::CostOptimizationHub
1463
1550
  tracer: tracer
1464
1551
  )
1465
1552
  context[:gem_name] = 'aws-sdk-costoptimizationhub'
1466
- context[:gem_version] = '1.34.0'
1553
+ context[:gem_version] = '1.35.0'
1467
1554
  Seahorse::Client::Request.new(handlers, context)
1468
1555
  end
1469
1556
 
@@ -47,6 +47,8 @@ module Aws::CostOptimizationHub
47
47
  Ec2ReservedInstancesConfiguration = Shapes::StructureShape.new(name: 'Ec2ReservedInstancesConfiguration')
48
48
  EcsService = Shapes::StructureShape.new(name: 'EcsService')
49
49
  EcsServiceConfiguration = Shapes::StructureShape.new(name: 'EcsServiceConfiguration')
50
+ EfficiencyMetricsByGroup = Shapes::StructureShape.new(name: 'EfficiencyMetricsByGroup')
51
+ EfficiencyMetricsByGroupList = Shapes::ListShape.new(name: 'EfficiencyMetricsByGroupList')
50
52
  ElastiCacheReservedInstances = Shapes::StructureShape.new(name: 'ElastiCacheReservedInstances')
51
53
  ElastiCacheReservedInstancesConfiguration = Shapes::StructureShape.new(name: 'ElastiCacheReservedInstancesConfiguration')
52
54
  EnrollmentStatus = Shapes::StringShape.new(name: 'EnrollmentStatus')
@@ -56,6 +58,7 @@ module Aws::CostOptimizationHub
56
58
  GetPreferencesResponse = Shapes::StructureShape.new(name: 'GetPreferencesResponse')
57
59
  GetRecommendationRequest = Shapes::StructureShape.new(name: 'GetRecommendationRequest')
58
60
  GetRecommendationResponse = Shapes::StructureShape.new(name: 'GetRecommendationResponse')
61
+ GranularityType = Shapes::StringShape.new(name: 'GranularityType')
59
62
  ImplementationEffort = Shapes::StringShape.new(name: 'ImplementationEffort')
60
63
  ImplementationEffortList = Shapes::ListShape.new(name: 'ImplementationEffortList')
61
64
  InstanceConfiguration = Shapes::StructureShape.new(name: 'InstanceConfiguration')
@@ -63,6 +66,9 @@ module Aws::CostOptimizationHub
63
66
  InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
64
67
  LambdaFunction = Shapes::StructureShape.new(name: 'LambdaFunction')
65
68
  LambdaFunctionConfiguration = Shapes::StructureShape.new(name: 'LambdaFunctionConfiguration')
69
+ ListEfficiencyMetricsRequest = Shapes::StructureShape.new(name: 'ListEfficiencyMetricsRequest')
70
+ ListEfficiencyMetricsRequestMaxResultsInteger = Shapes::IntegerShape.new(name: 'ListEfficiencyMetricsRequestMaxResultsInteger')
71
+ ListEfficiencyMetricsResponse = Shapes::StructureShape.new(name: 'ListEfficiencyMetricsResponse')
66
72
  ListEnrollmentStatusesRequest = Shapes::StructureShape.new(name: 'ListEnrollmentStatusesRequest')
67
73
  ListEnrollmentStatusesResponse = Shapes::StructureShape.new(name: 'ListEnrollmentStatusesResponse')
68
74
  ListRecommendationSummariesRequest = Shapes::StructureShape.new(name: 'ListRecommendationSummariesRequest')
@@ -75,6 +81,8 @@ module Aws::CostOptimizationHub
75
81
  MemberAccountDiscountVisibility = Shapes::StringShape.new(name: 'MemberAccountDiscountVisibility')
76
82
  MemoryDbReservedInstances = Shapes::StructureShape.new(name: 'MemoryDbReservedInstances')
77
83
  MemoryDbReservedInstancesConfiguration = Shapes::StructureShape.new(name: 'MemoryDbReservedInstancesConfiguration')
84
+ MetricsByTime = Shapes::StructureShape.new(name: 'MetricsByTime')
85
+ MetricsByTimeList = Shapes::ListShape.new(name: 'MetricsByTimeList')
78
86
  MixedInstanceConfiguration = Shapes::StructureShape.new(name: 'MixedInstanceConfiguration')
79
87
  MixedInstanceConfigurationList = Shapes::ListShape.new(name: 'MixedInstanceConfigurationList')
80
88
  OpenSearchReservedInstances = Shapes::StructureShape.new(name: 'OpenSearchReservedInstances')
@@ -123,6 +131,7 @@ module Aws::CostOptimizationHub
123
131
  TagList = Shapes::ListShape.new(name: 'TagList')
124
132
  Term = Shapes::StringShape.new(name: 'Term')
125
133
  ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
134
+ TimePeriod = Shapes::StructureShape.new(name: 'TimePeriod')
126
135
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
127
136
  UpdateEnrollmentStatusRequest = Shapes::StructureShape.new(name: 'UpdateEnrollmentStatusRequest')
128
137
  UpdateEnrollmentStatusResponse = Shapes::StructureShape.new(name: 'UpdateEnrollmentStatusResponse')
@@ -262,6 +271,13 @@ module Aws::CostOptimizationHub
262
271
  EcsServiceConfiguration.add_member(:compute, Shapes::ShapeRef.new(shape: ComputeConfiguration, location_name: "compute"))
263
272
  EcsServiceConfiguration.struct_class = Types::EcsServiceConfiguration
264
273
 
274
+ EfficiencyMetricsByGroup.add_member(:metrics_by_time, Shapes::ShapeRef.new(shape: MetricsByTimeList, location_name: "metricsByTime"))
275
+ EfficiencyMetricsByGroup.add_member(:group, Shapes::ShapeRef.new(shape: String, location_name: "group"))
276
+ EfficiencyMetricsByGroup.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
277
+ EfficiencyMetricsByGroup.struct_class = Types::EfficiencyMetricsByGroup
278
+
279
+ EfficiencyMetricsByGroupList.member = Shapes::ShapeRef.new(shape: EfficiencyMetricsByGroup)
280
+
265
281
  ElastiCacheReservedInstances.add_member(:configuration, Shapes::ShapeRef.new(shape: ElastiCacheReservedInstancesConfiguration, location_name: "configuration"))
266
282
  ElastiCacheReservedInstances.add_member(:cost_calculation, Shapes::ShapeRef.new(shape: ReservedInstancesCostCalculation, location_name: "costCalculation"))
267
283
  ElastiCacheReservedInstances.struct_class = Types::ElastiCacheReservedInstances
@@ -349,6 +365,18 @@ module Aws::CostOptimizationHub
349
365
  LambdaFunctionConfiguration.add_member(:compute, Shapes::ShapeRef.new(shape: ComputeConfiguration, location_name: "compute"))
350
366
  LambdaFunctionConfiguration.struct_class = Types::LambdaFunctionConfiguration
351
367
 
368
+ ListEfficiencyMetricsRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: String, location_name: "groupBy"))
369
+ ListEfficiencyMetricsRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: GranularityType, required: true, location_name: "granularity"))
370
+ ListEfficiencyMetricsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: TimePeriod, required: true, location_name: "timePeriod"))
371
+ ListEfficiencyMetricsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListEfficiencyMetricsRequestMaxResultsInteger, location_name: "maxResults"))
372
+ ListEfficiencyMetricsRequest.add_member(:order_by, Shapes::ShapeRef.new(shape: OrderBy, location_name: "orderBy"))
373
+ ListEfficiencyMetricsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
374
+ ListEfficiencyMetricsRequest.struct_class = Types::ListEfficiencyMetricsRequest
375
+
376
+ ListEfficiencyMetricsResponse.add_member(:efficiency_metrics_by_group, Shapes::ShapeRef.new(shape: EfficiencyMetricsByGroupList, location_name: "efficiencyMetricsByGroup"))
377
+ ListEfficiencyMetricsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
378
+ ListEfficiencyMetricsResponse.struct_class = Types::ListEfficiencyMetricsResponse
379
+
352
380
  ListEnrollmentStatusesRequest.add_member(:include_organization_info, Shapes::ShapeRef.new(shape: PrimitiveBoolean, location_name: "includeOrganizationInfo"))
353
381
  ListEnrollmentStatusesRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "accountId"))
354
382
  ListEnrollmentStatusesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
@@ -405,6 +433,14 @@ module Aws::CostOptimizationHub
405
433
  MemoryDbReservedInstancesConfiguration.add_member(:current_generation, Shapes::ShapeRef.new(shape: String, location_name: "currentGeneration"))
406
434
  MemoryDbReservedInstancesConfiguration.struct_class = Types::MemoryDbReservedInstancesConfiguration
407
435
 
436
+ MetricsByTime.add_member(:score, Shapes::ShapeRef.new(shape: Double, location_name: "score"))
437
+ MetricsByTime.add_member(:savings, Shapes::ShapeRef.new(shape: Double, location_name: "savings"))
438
+ MetricsByTime.add_member(:spend, Shapes::ShapeRef.new(shape: Double, location_name: "spend"))
439
+ MetricsByTime.add_member(:timestamp, Shapes::ShapeRef.new(shape: String, location_name: "timestamp"))
440
+ MetricsByTime.struct_class = Types::MetricsByTime
441
+
442
+ MetricsByTimeList.member = Shapes::ShapeRef.new(shape: MetricsByTime)
443
+
408
444
  MixedInstanceConfiguration.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "type"))
409
445
  MixedInstanceConfiguration.struct_class = Types::MixedInstanceConfiguration
410
446
 
@@ -637,6 +673,10 @@ module Aws::CostOptimizationHub
637
673
  ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
638
674
  ThrottlingException.struct_class = Types::ThrottlingException
639
675
 
676
+ TimePeriod.add_member(:start, Shapes::ShapeRef.new(shape: String, required: true, location_name: "start"))
677
+ TimePeriod.add_member(:end, Shapes::ShapeRef.new(shape: String, required: true, location_name: "end"))
678
+ TimePeriod.struct_class = Types::TimePeriod
679
+
640
680
  UpdateEnrollmentStatusRequest.add_member(:status, Shapes::ShapeRef.new(shape: EnrollmentStatus, required: true, location_name: "status"))
641
681
  UpdateEnrollmentStatusRequest.add_member(:include_member_accounts, Shapes::ShapeRef.new(shape: Boolean, location_name: "includeMemberAccounts"))
642
682
  UpdateEnrollmentStatusRequest.struct_class = Types::UpdateEnrollmentStatusRequest
@@ -720,6 +760,24 @@ module Aws::CostOptimizationHub
720
760
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
721
761
  end)
722
762
 
763
+ api.add_operation(:list_efficiency_metrics, Seahorse::Model::Operation.new.tap do |o|
764
+ o.name = "ListEfficiencyMetrics"
765
+ o.http_method = "POST"
766
+ o.http_request_uri = "/"
767
+ o.input = Shapes::ShapeRef.new(shape: ListEfficiencyMetricsRequest)
768
+ o.output = Shapes::ShapeRef.new(shape: ListEfficiencyMetricsResponse)
769
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
770
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
771
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
772
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
773
+ o[:pager] = Aws::Pager.new(
774
+ limit_key: "max_results",
775
+ tokens: {
776
+ "next_token" => "next_token"
777
+ }
778
+ )
779
+ end)
780
+
723
781
  api.add_operation(:list_enrollment_statuses, Seahorse::Model::Operation.new.tap do |o|
724
782
  o.name = "ListEnrollmentStatuses"
725
783
  o.http_method = "POST"
@@ -454,7 +454,7 @@ module Aws::CostOptimizationHub
454
454
  # @return [String]
455
455
  #
456
456
  # @!attribute [rw] instance_family
457
- # The instance family of the recommended Savings Plan.
457
+ # The instance family of the recommended Savings Plans.
458
458
  # @return [String]
459
459
  #
460
460
  # @!attribute [rw] savings_plans_region
@@ -623,6 +623,43 @@ module Aws::CostOptimizationHub
623
623
  include Aws::Structure
624
624
  end
625
625
 
626
+ # Contains cost efficiency metrics for a specific group over time. The
627
+ # group is defined by the grouping dimension specified in the request,
628
+ # such as account ID, Amazon Web Services Region.
629
+ #
630
+ # @!attribute [rw] metrics_by_time
631
+ # A list of time-series data points containing efficiency metrics for
632
+ # this group. Each data point includes an efficiency score, estimated
633
+ # savings, spending, and a timestamp corresponding to the specified
634
+ # granularity. This field is null when efficiency metrics cannot be
635
+ # calculated for the group, in which case the message field provides
636
+ # an explanation.
637
+ # @return [Array<Types::MetricsByTime>]
638
+ #
639
+ # @!attribute [rw] group
640
+ # The value of the grouping dimension for this set of metrics. For
641
+ # example, if grouped by account ID, this field contains the account
642
+ # ID. If no grouping is specified, this field is empty.
643
+ # @return [String]
644
+ #
645
+ # @!attribute [rw] message
646
+ # An explanation of why efficiency metrics could not be calculated for
647
+ # this group when the metricsByTime field is null. Common reasons
648
+ # include insufficient or inconclusive cost and usage data during the
649
+ # specified time period. This field is null or empty when metrics are
650
+ # successfully calculated.
651
+ # @return [String]
652
+ #
653
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/EfficiencyMetricsByGroup AWS API Documentation
654
+ #
655
+ class EfficiencyMetricsByGroup < Struct.new(
656
+ :metrics_by_time,
657
+ :group,
658
+ :message)
659
+ SENSITIVE = []
660
+ include Aws::Structure
661
+ end
662
+
626
663
  # The ElastiCache reserved instances recommendation details.
627
664
  #
628
665
  # @!attribute [rw] configuration
@@ -1047,6 +1084,80 @@ module Aws::CostOptimizationHub
1047
1084
  include Aws::Structure
1048
1085
  end
1049
1086
 
1087
+ # @!attribute [rw] group_by
1088
+ # The dimension by which to group the cost efficiency metrics. Valid
1089
+ # values include account ID, Amazon Web Services Region. When no
1090
+ # grouping is specified, metrics are aggregated across all resources
1091
+ # in the specified time period.
1092
+ # @return [String]
1093
+ #
1094
+ # @!attribute [rw] granularity
1095
+ # The time granularity for the cost efficiency metrics. Specify
1096
+ # `Daily` for metrics aggregated by day, or `Monthly` for metrics
1097
+ # aggregated by month.
1098
+ # @return [String]
1099
+ #
1100
+ # @!attribute [rw] time_period
1101
+ # The time period for which to retrieve the cost efficiency metrics.
1102
+ # The start date is inclusive and the end date is exclusive. Dates can
1103
+ # be specified in either YYYY-MM-DD format or YYYY-MM format depending
1104
+ # on the desired granularity.
1105
+ # @return [Types::TimePeriod]
1106
+ #
1107
+ # @!attribute [rw] max_results
1108
+ # The maximum number of groups to return in the response. Valid values
1109
+ # range from 0 to 1000. Use in conjunction with `nextToken` to
1110
+ # paginate through results when the total number of groups exceeds
1111
+ # this limit.
1112
+ # @return [Integer]
1113
+ #
1114
+ # @!attribute [rw] order_by
1115
+ # The ordering specification for the results. Defines which dimension
1116
+ # to sort by and whether to sort in ascending or descending order.
1117
+ # @return [Types::OrderBy]
1118
+ #
1119
+ # @!attribute [rw] next_token
1120
+ # The token to retrieve the next page of results. This value is
1121
+ # returned in the response when the number of groups exceeds the
1122
+ # specified `maxResults` value.
1123
+ # @return [String]
1124
+ #
1125
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListEfficiencyMetricsRequest AWS API Documentation
1126
+ #
1127
+ class ListEfficiencyMetricsRequest < Struct.new(
1128
+ :group_by,
1129
+ :granularity,
1130
+ :time_period,
1131
+ :max_results,
1132
+ :order_by,
1133
+ :next_token)
1134
+ SENSITIVE = []
1135
+ include Aws::Structure
1136
+ end
1137
+
1138
+ # @!attribute [rw] efficiency_metrics_by_group
1139
+ # A list of cost efficiency metrics grouped by the specified
1140
+ # dimension. Each group contains time-series data points with cost
1141
+ # efficiency, potential savings, and optimzable spend for the
1142
+ # specified time period.
1143
+ # @return [Array<Types::EfficiencyMetricsByGroup>]
1144
+ #
1145
+ # @!attribute [rw] next_token
1146
+ # The token to retrieve the next page of results. When this value is
1147
+ # present in the response, additional groups are available. Pass this
1148
+ # token in the `nextToken` parameter of a subsequent request to
1149
+ # retrieve the next page.
1150
+ # @return [String]
1151
+ #
1152
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListEfficiencyMetricsResponse AWS API Documentation
1153
+ #
1154
+ class ListEfficiencyMetricsResponse < Struct.new(
1155
+ :efficiency_metrics_by_group,
1156
+ :next_token)
1157
+ SENSITIVE = []
1158
+ include Aws::Structure
1159
+ end
1160
+
1050
1161
  # @!attribute [rw] include_organization_info
1051
1162
  # Indicates whether to return the enrollment status for the
1052
1163
  # organization.
@@ -1334,6 +1445,42 @@ module Aws::CostOptimizationHub
1334
1445
  include Aws::Structure
1335
1446
  end
1336
1447
 
1448
+ # Contains efficiency metrics for a specific point in time, including an
1449
+ # efficiency score, potential savings, optimizable spend, and timestamp.
1450
+ #
1451
+ # @!attribute [rw] score
1452
+ # The efficiency score for this time period. The score represents a
1453
+ # measure of how effectively the cloud resources are being optimized,
1454
+ # with higher scores indicating better optimization performance.
1455
+ # @return [Float]
1456
+ #
1457
+ # @!attribute [rw] savings
1458
+ # The estimated savings amount for this time period, representing the
1459
+ # potential cost reduction achieved through optimization
1460
+ # recommendations.
1461
+ # @return [Float]
1462
+ #
1463
+ # @!attribute [rw] spend
1464
+ # The total spending amount for this time period.
1465
+ # @return [Float]
1466
+ #
1467
+ # @!attribute [rw] timestamp
1468
+ # The timestamp for this data point. The format depends on the
1469
+ # granularity: YYYY-MM-DD for daily metrics, or YYYY-MM for monthly
1470
+ # metrics.
1471
+ # @return [String]
1472
+ #
1473
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/MetricsByTime AWS API Documentation
1474
+ #
1475
+ class MetricsByTime < Struct.new(
1476
+ :score,
1477
+ :savings,
1478
+ :spend,
1479
+ :timestamp)
1480
+ SENSITIVE = []
1481
+ include Aws::Structure
1482
+ end
1483
+
1337
1484
  # The configuration for the EC2 Auto Scaling group with mixed instance
1338
1485
  # types.
1339
1486
  #
@@ -2232,23 +2379,24 @@ module Aws::CostOptimizationHub
2232
2379
  include Aws::Structure
2233
2380
  end
2234
2381
 
2235
- # Pricing information about a Savings Plan.
2382
+ # Pricing information about a Savings Plans.
2236
2383
  #
2237
2384
  # @!attribute [rw] monthly_savings_plans_eligible_cost
2238
- # The cost of paying for the recommended Savings Plan monthly.
2385
+ # The cost of paying for the recommended Savings Plans monthly.
2239
2386
  # @return [Float]
2240
2387
  #
2241
2388
  # @!attribute [rw] estimated_monthly_commitment
2242
- # Estimated monthly commitment for the Savings Plan.
2389
+ # Estimated monthly commitment for the Savings Plans.
2243
2390
  # @return [Float]
2244
2391
  #
2245
2392
  # @!attribute [rw] savings_percentage
2246
2393
  # Estimated savings as a percentage of your overall costs after buying
2247
- # the Savings Plan.
2394
+ # the Savings Plans.
2248
2395
  # @return [Float]
2249
2396
  #
2250
2397
  # @!attribute [rw] estimated_on_demand_cost
2251
- # Estimated On-Demand cost you will pay after buying the Savings Plan.
2398
+ # Estimated On-Demand cost you will pay after buying the Savings
2399
+ # Plans.
2252
2400
  # @return [Float]
2253
2401
  #
2254
2402
  # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/SavingsPlansPricing AWS API Documentation
@@ -2334,6 +2482,28 @@ module Aws::CostOptimizationHub
2334
2482
  include Aws::Structure
2335
2483
  end
2336
2484
 
2485
+ # Specifies a date range for retrieving efficiency metrics. The start
2486
+ # date is inclusive and the end date is exclusive.
2487
+ #
2488
+ # @!attribute [rw] start
2489
+ # The beginning of the time period (inclusive). Specify the date in
2490
+ # ISO 8601 format, such as 2024-01-01.
2491
+ # @return [String]
2492
+ #
2493
+ # @!attribute [rw] end
2494
+ # The end of the time period (exclusive). Specify the date in ISO 8601
2495
+ # format, such as 2024-12-31.
2496
+ # @return [String]
2497
+ #
2498
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/TimePeriod AWS API Documentation
2499
+ #
2500
+ class TimePeriod < Struct.new(
2501
+ :start,
2502
+ :end)
2503
+ SENSITIVE = []
2504
+ include Aws::Structure
2505
+ end
2506
+
2337
2507
  # @!attribute [rw] status
2338
2508
  # Sets the account status.
2339
2509
  # @return [String]
@@ -55,7 +55,7 @@ module Aws::CostOptimizationHub
55
55
  autoload :EndpointProvider, 'aws-sdk-costoptimizationhub/endpoint_provider'
56
56
  autoload :Endpoints, 'aws-sdk-costoptimizationhub/endpoints'
57
57
 
58
- GEM_VERSION = '1.34.0'
58
+ GEM_VERSION = '1.35.0'
59
59
 
60
60
  end
61
61
 
data/sig/client.rbs CHANGED
@@ -122,6 +122,28 @@ module Aws
122
122
  ) -> _GetRecommendationResponseSuccess
123
123
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetRecommendationResponseSuccess
124
124
 
125
+ interface _ListEfficiencyMetricsResponseSuccess
126
+ include ::Seahorse::Client::_ResponseSuccess[Types::ListEfficiencyMetricsResponse]
127
+ def efficiency_metrics_by_group: () -> ::Array[Types::EfficiencyMetricsByGroup]
128
+ def next_token: () -> ::String
129
+ end
130
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CostOptimizationHub/Client.html#list_efficiency_metrics-instance_method
131
+ def list_efficiency_metrics: (
132
+ ?group_by: ::String,
133
+ granularity: ("Daily" | "Monthly"),
134
+ time_period: {
135
+ start: ::String,
136
+ end: ::String
137
+ },
138
+ ?max_results: ::Integer,
139
+ ?order_by: {
140
+ dimension: ::String?,
141
+ order: ("Asc" | "Desc")?
142
+ },
143
+ ?next_token: ::String
144
+ ) -> _ListEfficiencyMetricsResponseSuccess
145
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListEfficiencyMetricsResponseSuccess
146
+
125
147
  interface _ListEnrollmentStatusesResponseSuccess
126
148
  include ::Seahorse::Client::_ResponseSuccess[Types::ListEnrollmentStatusesResponse]
127
149
  def items: () -> ::Array[Types::AccountEnrollmentStatus]
data/sig/types.rbs CHANGED
@@ -175,6 +175,13 @@ module Aws::CostOptimizationHub
175
175
  SENSITIVE: []
176
176
  end
177
177
 
178
+ class EfficiencyMetricsByGroup
179
+ attr_accessor metrics_by_time: ::Array[Types::MetricsByTime]
180
+ attr_accessor group: ::String
181
+ attr_accessor message: ::String
182
+ SENSITIVE: []
183
+ end
184
+
178
185
  class ElastiCacheReservedInstances
179
186
  attr_accessor configuration: Types::ElastiCacheReservedInstancesConfiguration
180
187
  attr_accessor cost_calculation: Types::ReservedInstancesCostCalculation
@@ -283,6 +290,22 @@ module Aws::CostOptimizationHub
283
290
  SENSITIVE: []
284
291
  end
285
292
 
293
+ class ListEfficiencyMetricsRequest
294
+ attr_accessor group_by: ::String
295
+ attr_accessor granularity: ("Daily" | "Monthly")
296
+ attr_accessor time_period: Types::TimePeriod
297
+ attr_accessor max_results: ::Integer
298
+ attr_accessor order_by: Types::OrderBy
299
+ attr_accessor next_token: ::String
300
+ SENSITIVE: []
301
+ end
302
+
303
+ class ListEfficiencyMetricsResponse
304
+ attr_accessor efficiency_metrics_by_group: ::Array[Types::EfficiencyMetricsByGroup]
305
+ attr_accessor next_token: ::String
306
+ SENSITIVE: []
307
+ end
308
+
286
309
  class ListEnrollmentStatusesRequest
287
310
  attr_accessor include_organization_info: bool
288
311
  attr_accessor account_id: ::String
@@ -355,6 +378,14 @@ module Aws::CostOptimizationHub
355
378
  SENSITIVE: []
356
379
  end
357
380
 
381
+ class MetricsByTime
382
+ attr_accessor score: ::Float
383
+ attr_accessor savings: ::Float
384
+ attr_accessor spend: ::Float
385
+ attr_accessor timestamp: ::String
386
+ SENSITIVE: []
387
+ end
388
+
358
389
  class MixedInstanceConfiguration
359
390
  attr_accessor type: ::String
360
391
  SENSITIVE: []
@@ -645,6 +676,12 @@ module Aws::CostOptimizationHub
645
676
  SENSITIVE: []
646
677
  end
647
678
 
679
+ class TimePeriod
680
+ attr_accessor start: ::String
681
+ attr_accessor end: ::String
682
+ SENSITIVE: []
683
+ end
684
+
648
685
  class UpdateEnrollmentStatusRequest
649
686
  attr_accessor status: ("Active" | "Inactive")
650
687
  attr_accessor include_member_accounts: bool
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-costoptimizationhub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.34.0
4
+ version: 1.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services