aws-sdk-costexplorer 1.28.0 → 1.29.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a736df7b3d87fb0c7b3c4d7baea49768462949c
4
- data.tar.gz: 55fc5e3971b5430ad65b2988b3e9d0607cba9ff2
3
+ metadata.gz: 66609ec229477b6ab3d86706a9d466d31b698018
4
+ data.tar.gz: f7faa946260d6825f5285ce27dfe1278e13c22e9
5
5
  SHA512:
6
- metadata.gz: 043c8b7c5c4266b0616fbc4ec6e1dca81ba1672e3a106fdc2bf97de15fcf018051714909270a37f0f8481db3bda8098484c90ae932eef1a9c45783f49f1c456f
7
- data.tar.gz: a631f8473dbb7322ec4379c5924604a06fdd31b793dae0f5d5e4714f54d8e862f8c55ddf59a15a5763d550974ddb7a5617d1512c2e2413711e1c7c241b96a96c
6
+ metadata.gz: 4a8ff47fe15bdb17c29b8f1b750fc02f45641bf2932e4ab5cf4c56000bdc3bbbc6f0a6537bdf90800f2cad8f4a743a03bfb904c82e14d029667468f8da5af199
7
+ data.tar.gz: a2fc7c132739cec212c13d855fb8ff9c03d6ff9b62d2250dac5f6214c41e7379950c36d43170217d5a397a0db9c1501363c1b421e458eb95b2ca3853a383a81c
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-costexplorer/customizations'
42
42
  # @service
43
43
  module Aws::CostExplorer
44
44
 
45
- GEM_VERSION = '1.28.0'
45
+ GEM_VERSION = '1.29.0'
46
46
 
47
47
  end
@@ -373,7 +373,7 @@ module Aws::CostExplorer
373
373
  # # recursive Expression
374
374
  # },
375
375
  # dimensions: {
376
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
376
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
377
377
  # values: ["Value"],
378
378
  # },
379
379
  # tags: {
@@ -496,7 +496,7 @@ module Aws::CostExplorer
496
496
  # # recursive Expression
497
497
  # },
498
498
  # dimensions: {
499
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
499
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
500
500
  # values: ["Value"],
501
501
  # },
502
502
  # tags: {
@@ -650,7 +650,7 @@ module Aws::CostExplorer
650
650
  # start: "YearMonthDay", # required
651
651
  # end: "YearMonthDay", # required
652
652
  # },
653
- # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
653
+ # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
654
654
  # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS
655
655
  # next_page_token: "NextPageToken",
656
656
  # })
@@ -838,7 +838,7 @@ module Aws::CostExplorer
838
838
  # # recursive Expression
839
839
  # },
840
840
  # dimensions: {
841
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
841
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
842
842
  # values: ["Value"],
843
843
  # },
844
844
  # tags: {
@@ -1156,7 +1156,7 @@ module Aws::CostExplorer
1156
1156
  # # recursive Expression
1157
1157
  # },
1158
1158
  # dimensions: {
1159
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
1159
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1160
1160
  # values: ["Value"],
1161
1161
  # },
1162
1162
  # tags: {
@@ -1230,6 +1230,177 @@ module Aws::CostExplorer
1230
1230
  req.send_request(options)
1231
1231
  end
1232
1232
 
1233
+ # Creates recommendations that helps you save cost by identifying idle
1234
+ # and underutilized Amazon EC2 instances.
1235
+ #
1236
+ # Recommendations are generated to either downsize or terminate
1237
+ # instances, along with providing savings detail and metrics. For
1238
+ # details on calculation and function, see [Optimizing Your Cost with
1239
+ # Rightsizing Recommendations][1].
1240
+ #
1241
+ #
1242
+ #
1243
+ # [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-what-is.html
1244
+ #
1245
+ # @option params [Types::Expression] :filter
1246
+ # Use `Expression` to filter by cost or by usage. There are two
1247
+ # patterns:
1248
+ #
1249
+ # * Simple dimension values - You can set the dimension name and values
1250
+ # for the filters that you plan to use. For example, you can filter
1251
+ # for `REGION==us-east-1 OR REGION==us-west-1`. The `Expression` for
1252
+ # that looks like this:
1253
+ #
1254
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
1255
+ # “us-west-1” ] \} \}`
1256
+ #
1257
+ # The list of dimension values are OR'd together to retrieve cost or
1258
+ # usage data. You can create `Expression` and `DimensionValues`
1259
+ # objects using either `with*` methods or `set*` methods in multiple
1260
+ # lines.
1261
+ #
1262
+ # * Compound dimension values with logical operations - You can use
1263
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
1264
+ # to create a list of one or more `Expression` objects. This allows
1265
+ # you to filter on more advanced options. For example, you can filter
1266
+ # on `((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type ==
1267
+ # Type1)) AND (USAGE_TYPE != DataTransfer)`. The `Expression` for that
1268
+ # looks like this:
1269
+ #
1270
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values":
1271
+ # [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
1272
+ # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
1273
+ # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
1274
+ #
1275
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
1276
+ # returns an error if more than one is specified. The following
1277
+ # example shows an `Expression` object that creates an error.
1278
+ #
1279
+ # </note>
1280
+ #
1281
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1282
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
1283
+ #
1284
+ # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and NOT
1285
+ # is not supported. OR is not supported between different dimensions, or
1286
+ # dimensions and tags. NOT operators aren't supported. Dimentions are
1287
+ # also limited to `LINKED_ACCOUNT`, `REGION`, or `RIGHTSIZING_TYPE`.
1288
+ #
1289
+ # </note>
1290
+ #
1291
+ # @option params [required, String] :service
1292
+ # The specific service that you want recommendations for.
1293
+ #
1294
+ # @option params [Integer] :page_size
1295
+ # The number of recommendations that you want returned in a single
1296
+ # response object.
1297
+ #
1298
+ # @option params [String] :next_page_token
1299
+ # The pagination token that indicates the next set of results that you
1300
+ # want to retrieve.
1301
+ #
1302
+ # @return [Types::GetRightsizingRecommendationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1303
+ #
1304
+ # * {Types::GetRightsizingRecommendationResponse#metadata #metadata} => Types::RightsizingRecommendationMetadata
1305
+ # * {Types::GetRightsizingRecommendationResponse#summary #summary} => Types::RightsizingRecommendationSummary
1306
+ # * {Types::GetRightsizingRecommendationResponse#rightsizing_recommendations #rightsizing_recommendations} => Array&lt;Types::RightsizingRecommendation&gt;
1307
+ # * {Types::GetRightsizingRecommendationResponse#next_page_token #next_page_token} => String
1308
+ #
1309
+ # @example Request syntax with placeholder values
1310
+ #
1311
+ # resp = client.get_rightsizing_recommendation({
1312
+ # filter: {
1313
+ # or: [
1314
+ # {
1315
+ # # recursive Expression
1316
+ # },
1317
+ # ],
1318
+ # and: [
1319
+ # {
1320
+ # # recursive Expression
1321
+ # },
1322
+ # ],
1323
+ # not: {
1324
+ # # recursive Expression
1325
+ # },
1326
+ # dimensions: {
1327
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1328
+ # values: ["Value"],
1329
+ # },
1330
+ # tags: {
1331
+ # key: "TagKey",
1332
+ # values: ["Value"],
1333
+ # },
1334
+ # },
1335
+ # service: "GenericString", # required
1336
+ # page_size: 1,
1337
+ # next_page_token: "NextPageToken",
1338
+ # })
1339
+ #
1340
+ # @example Response structure
1341
+ #
1342
+ # resp.metadata.recommendation_id #=> String
1343
+ # resp.metadata.generation_timestamp #=> String
1344
+ # resp.metadata.lookback_period_in_days #=> String, one of "SEVEN_DAYS", "THIRTY_DAYS", "SIXTY_DAYS"
1345
+ # resp.summary.total_recommendation_count #=> String
1346
+ # resp.summary.estimated_total_monthly_savings_amount #=> String
1347
+ # resp.summary.savings_currency_code #=> String
1348
+ # resp.summary.savings_percentage #=> String
1349
+ # resp.rightsizing_recommendations #=> Array
1350
+ # resp.rightsizing_recommendations[0].account_id #=> String
1351
+ # resp.rightsizing_recommendations[0].current_instance.resource_id #=> String
1352
+ # resp.rightsizing_recommendations[0].current_instance.tags #=> Array
1353
+ # resp.rightsizing_recommendations[0].current_instance.tags[0].key #=> String
1354
+ # resp.rightsizing_recommendations[0].current_instance.tags[0].values #=> Array
1355
+ # resp.rightsizing_recommendations[0].current_instance.tags[0].values[0] #=> String
1356
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.hourly_on_demand_rate #=> String
1357
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.instance_type #=> String
1358
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.platform #=> String
1359
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.region #=> String
1360
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.sku #=> String
1361
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.memory #=> String
1362
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.network_performance #=> String
1363
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.storage #=> String
1364
+ # resp.rightsizing_recommendations[0].current_instance.resource_details.ec2_resource_details.vcpu #=> String
1365
+ # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.max_cpu_utilization_percentage #=> String
1366
+ # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.max_memory_utilization_percentage #=> String
1367
+ # resp.rightsizing_recommendations[0].current_instance.resource_utilization.ec2_resource_utilization.max_storage_utilization_percentage #=> String
1368
+ # resp.rightsizing_recommendations[0].current_instance.reservation_covered_hours_in_lookback_period #=> String
1369
+ # resp.rightsizing_recommendations[0].current_instance.on_demand_hours_in_lookback_period #=> String
1370
+ # resp.rightsizing_recommendations[0].current_instance.total_running_hours_in_lookback_period #=> String
1371
+ # resp.rightsizing_recommendations[0].current_instance.monthly_cost #=> String
1372
+ # resp.rightsizing_recommendations[0].current_instance.currency_code #=> String
1373
+ # resp.rightsizing_recommendations[0].rightsizing_type #=> String, one of "TERMINATE", "MODIFY"
1374
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances #=> Array
1375
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].estimated_monthly_cost #=> String
1376
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].estimated_monthly_savings #=> String
1377
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].currency_code #=> String
1378
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].default_target_instance #=> Boolean
1379
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.hourly_on_demand_rate #=> String
1380
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.instance_type #=> String
1381
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.platform #=> String
1382
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.region #=> String
1383
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.sku #=> String
1384
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.memory #=> String
1385
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.network_performance #=> String
1386
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.storage #=> String
1387
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].resource_details.ec2_resource_details.vcpu #=> String
1388
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.max_cpu_utilization_percentage #=> String
1389
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.max_memory_utilization_percentage #=> String
1390
+ # resp.rightsizing_recommendations[0].modify_recommendation_detail.target_instances[0].expected_resource_utilization.ec2_resource_utilization.max_storage_utilization_percentage #=> String
1391
+ # resp.rightsizing_recommendations[0].terminate_recommendation_detail.estimated_monthly_savings #=> String
1392
+ # resp.rightsizing_recommendations[0].terminate_recommendation_detail.currency_code #=> String
1393
+ # resp.next_page_token #=> String
1394
+ #
1395
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation AWS API Documentation
1396
+ #
1397
+ # @overload get_rightsizing_recommendation(params = {})
1398
+ # @param [Hash] params ({})
1399
+ def get_rightsizing_recommendation(params = {}, options = {})
1400
+ req = build_request(:get_rightsizing_recommendation, params)
1401
+ req.send_request(options)
1402
+ end
1403
+
1233
1404
  # Queries for available tag keys and tag values for a specified period.
1234
1405
  # You can search the tag values for an arbitrary string.
1235
1406
  #
@@ -1356,7 +1527,7 @@ module Aws::CostExplorer
1356
1527
  # # recursive Expression
1357
1528
  # },
1358
1529
  # dimensions: {
1359
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
1530
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1360
1531
  # values: ["Value"],
1361
1532
  # },
1362
1533
  # tags: {
@@ -1400,7 +1571,7 @@ module Aws::CostExplorer
1400
1571
  params: params,
1401
1572
  config: config)
1402
1573
  context[:gem_name] = 'aws-sdk-costexplorer'
1403
- context[:gem_version] = '1.28.0'
1574
+ context[:gem_version] = '1.29.0'
1404
1575
  Seahorse::Client::Request.new(handlers, context)
1405
1576
  end
1406
1577
 
@@ -27,6 +27,7 @@ module Aws::CostExplorer
27
27
  CoverageNormalizedUnits = Shapes::StructureShape.new(name: 'CoverageNormalizedUnits')
28
28
  CoverageNormalizedUnitsPercentage = Shapes::StringShape.new(name: 'CoverageNormalizedUnitsPercentage')
29
29
  CoveragesByTime = Shapes::ListShape.new(name: 'CoveragesByTime')
30
+ CurrentInstance = Shapes::StructureShape.new(name: 'CurrentInstance')
30
31
  DataUnavailableException = Shapes::StructureShape.new(name: 'DataUnavailableException')
31
32
  DateInterval = Shapes::StructureShape.new(name: 'DateInterval')
32
33
  Dimension = Shapes::StringShape.new(name: 'Dimension')
@@ -34,6 +35,8 @@ module Aws::CostExplorer
34
35
  DimensionValuesWithAttributes = Shapes::StructureShape.new(name: 'DimensionValuesWithAttributes')
35
36
  DimensionValuesWithAttributesList = Shapes::ListShape.new(name: 'DimensionValuesWithAttributesList')
36
37
  EC2InstanceDetails = Shapes::StructureShape.new(name: 'EC2InstanceDetails')
38
+ EC2ResourceDetails = Shapes::StructureShape.new(name: 'EC2ResourceDetails')
39
+ EC2ResourceUtilization = Shapes::StructureShape.new(name: 'EC2ResourceUtilization')
37
40
  EC2Specification = Shapes::StructureShape.new(name: 'EC2Specification')
38
41
  ESInstanceDetails = Shapes::StructureShape.new(name: 'ESInstanceDetails')
39
42
  ElastiCacheInstanceDetails = Shapes::StructureShape.new(name: 'ElastiCacheInstanceDetails')
@@ -58,6 +61,8 @@ module Aws::CostExplorer
58
61
  GetReservationPurchaseRecommendationResponse = Shapes::StructureShape.new(name: 'GetReservationPurchaseRecommendationResponse')
59
62
  GetReservationUtilizationRequest = Shapes::StructureShape.new(name: 'GetReservationUtilizationRequest')
60
63
  GetReservationUtilizationResponse = Shapes::StructureShape.new(name: 'GetReservationUtilizationResponse')
64
+ GetRightsizingRecommendationRequest = Shapes::StructureShape.new(name: 'GetRightsizingRecommendationRequest')
65
+ GetRightsizingRecommendationResponse = Shapes::StructureShape.new(name: 'GetRightsizingRecommendationResponse')
61
66
  GetTagsRequest = Shapes::StructureShape.new(name: 'GetTagsRequest')
62
67
  GetTagsResponse = Shapes::StructureShape.new(name: 'GetTagsResponse')
63
68
  GetUsageForecastRequest = Shapes::StructureShape.new(name: 'GetUsageForecastRequest')
@@ -82,6 +87,7 @@ module Aws::CostExplorer
82
87
  MetricUnit = Shapes::StringShape.new(name: 'MetricUnit')
83
88
  MetricValue = Shapes::StructureShape.new(name: 'MetricValue')
84
89
  Metrics = Shapes::MapShape.new(name: 'Metrics')
90
+ ModifyRecommendationDetail = Shapes::StructureShape.new(name: 'ModifyRecommendationDetail')
85
91
  NetRISavings = Shapes::StringShape.new(name: 'NetRISavings')
86
92
  NextPageToken = Shapes::StringShape.new(name: 'NextPageToken')
87
93
  NonNegativeInteger = Shapes::IntegerShape.new(name: 'NonNegativeInteger')
@@ -113,14 +119,25 @@ module Aws::CostExplorer
113
119
  ReservationUtilizationGroups = Shapes::ListShape.new(name: 'ReservationUtilizationGroups')
114
120
  ReservedHours = Shapes::StringShape.new(name: 'ReservedHours')
115
121
  ReservedNormalizedUnits = Shapes::StringShape.new(name: 'ReservedNormalizedUnits')
122
+ ResourceDetails = Shapes::StructureShape.new(name: 'ResourceDetails')
123
+ ResourceUtilization = Shapes::StructureShape.new(name: 'ResourceUtilization')
116
124
  ResultByTime = Shapes::StructureShape.new(name: 'ResultByTime')
117
125
  ResultsByTime = Shapes::ListShape.new(name: 'ResultsByTime')
126
+ RightsizingRecommendation = Shapes::StructureShape.new(name: 'RightsizingRecommendation')
127
+ RightsizingRecommendationList = Shapes::ListShape.new(name: 'RightsizingRecommendationList')
128
+ RightsizingRecommendationMetadata = Shapes::StructureShape.new(name: 'RightsizingRecommendationMetadata')
129
+ RightsizingRecommendationSummary = Shapes::StructureShape.new(name: 'RightsizingRecommendationSummary')
130
+ RightsizingType = Shapes::StringShape.new(name: 'RightsizingType')
118
131
  SearchString = Shapes::StringShape.new(name: 'SearchString')
119
132
  ServiceSpecification = Shapes::StructureShape.new(name: 'ServiceSpecification')
120
133
  TagKey = Shapes::StringShape.new(name: 'TagKey')
121
134
  TagList = Shapes::ListShape.new(name: 'TagList')
122
135
  TagValues = Shapes::StructureShape.new(name: 'TagValues')
136
+ TagValuesList = Shapes::ListShape.new(name: 'TagValuesList')
137
+ TargetInstance = Shapes::StructureShape.new(name: 'TargetInstance')
138
+ TargetInstancesList = Shapes::ListShape.new(name: 'TargetInstancesList')
123
139
  TermInYears = Shapes::StringShape.new(name: 'TermInYears')
140
+ TerminateRecommendationDetail = Shapes::StructureShape.new(name: 'TerminateRecommendationDetail')
124
141
  TotalActualHours = Shapes::StringShape.new(name: 'TotalActualHours')
125
142
  TotalActualUnits = Shapes::StringShape.new(name: 'TotalActualUnits')
126
143
  TotalAmortizedFee = Shapes::StringShape.new(name: 'TotalAmortizedFee')
@@ -171,6 +188,17 @@ module Aws::CostExplorer
171
188
 
172
189
  CoveragesByTime.member = Shapes::ShapeRef.new(shape: CoverageByTime)
173
190
 
191
+ CurrentInstance.add_member(:resource_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "ResourceId"))
192
+ CurrentInstance.add_member(:tags, Shapes::ShapeRef.new(shape: TagValuesList, location_name: "Tags"))
193
+ CurrentInstance.add_member(:resource_details, Shapes::ShapeRef.new(shape: ResourceDetails, location_name: "ResourceDetails"))
194
+ CurrentInstance.add_member(:resource_utilization, Shapes::ShapeRef.new(shape: ResourceUtilization, location_name: "ResourceUtilization"))
195
+ CurrentInstance.add_member(:reservation_covered_hours_in_lookback_period, Shapes::ShapeRef.new(shape: GenericString, location_name: "ReservationCoveredHoursInLookbackPeriod"))
196
+ CurrentInstance.add_member(:on_demand_hours_in_lookback_period, Shapes::ShapeRef.new(shape: GenericString, location_name: "OnDemandHoursInLookbackPeriod"))
197
+ CurrentInstance.add_member(:total_running_hours_in_lookback_period, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalRunningHoursInLookbackPeriod"))
198
+ CurrentInstance.add_member(:monthly_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "MonthlyCost"))
199
+ CurrentInstance.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
200
+ CurrentInstance.struct_class = Types::CurrentInstance
201
+
174
202
  DataUnavailableException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
175
203
  DataUnavailableException.struct_class = Types::DataUnavailableException
176
204
 
@@ -198,6 +226,22 @@ module Aws::CostExplorer
198
226
  EC2InstanceDetails.add_member(:size_flex_eligible, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "SizeFlexEligible"))
199
227
  EC2InstanceDetails.struct_class = Types::EC2InstanceDetails
200
228
 
229
+ EC2ResourceDetails.add_member(:hourly_on_demand_rate, Shapes::ShapeRef.new(shape: GenericString, location_name: "HourlyOnDemandRate"))
230
+ EC2ResourceDetails.add_member(:instance_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceType"))
231
+ EC2ResourceDetails.add_member(:platform, Shapes::ShapeRef.new(shape: GenericString, location_name: "Platform"))
232
+ EC2ResourceDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
233
+ EC2ResourceDetails.add_member(:sku, Shapes::ShapeRef.new(shape: GenericString, location_name: "Sku"))
234
+ EC2ResourceDetails.add_member(:memory, Shapes::ShapeRef.new(shape: GenericString, location_name: "Memory"))
235
+ EC2ResourceDetails.add_member(:network_performance, Shapes::ShapeRef.new(shape: GenericString, location_name: "NetworkPerformance"))
236
+ EC2ResourceDetails.add_member(:storage, Shapes::ShapeRef.new(shape: GenericString, location_name: "Storage"))
237
+ EC2ResourceDetails.add_member(:vcpu, Shapes::ShapeRef.new(shape: GenericString, location_name: "Vcpu"))
238
+ EC2ResourceDetails.struct_class = Types::EC2ResourceDetails
239
+
240
+ EC2ResourceUtilization.add_member(:max_cpu_utilization_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "MaxCpuUtilizationPercentage"))
241
+ EC2ResourceUtilization.add_member(:max_memory_utilization_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "MaxMemoryUtilizationPercentage"))
242
+ EC2ResourceUtilization.add_member(:max_storage_utilization_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "MaxStorageUtilizationPercentage"))
243
+ EC2ResourceUtilization.struct_class = Types::EC2ResourceUtilization
244
+
201
245
  EC2Specification.add_member(:offering_class, Shapes::ShapeRef.new(shape: OfferingClass, location_name: "OfferingClass"))
202
246
  EC2Specification.struct_class = Types::EC2Specification
203
247
 
@@ -311,6 +355,18 @@ module Aws::CostExplorer
311
355
  GetReservationUtilizationResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
312
356
  GetReservationUtilizationResponse.struct_class = Types::GetReservationUtilizationResponse
313
357
 
358
+ GetRightsizingRecommendationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
359
+ GetRightsizingRecommendationRequest.add_member(:service, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "Service"))
360
+ GetRightsizingRecommendationRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: NonNegativeInteger, location_name: "PageSize"))
361
+ GetRightsizingRecommendationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
362
+ GetRightsizingRecommendationRequest.struct_class = Types::GetRightsizingRecommendationRequest
363
+
364
+ GetRightsizingRecommendationResponse.add_member(:metadata, Shapes::ShapeRef.new(shape: RightsizingRecommendationMetadata, location_name: "Metadata"))
365
+ GetRightsizingRecommendationResponse.add_member(:summary, Shapes::ShapeRef.new(shape: RightsizingRecommendationSummary, location_name: "Summary"))
366
+ GetRightsizingRecommendationResponse.add_member(:rightsizing_recommendations, Shapes::ShapeRef.new(shape: RightsizingRecommendationList, location_name: "RightsizingRecommendations"))
367
+ GetRightsizingRecommendationResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
368
+ GetRightsizingRecommendationResponse.struct_class = Types::GetRightsizingRecommendationResponse
369
+
314
370
  GetTagsRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
315
371
  GetTagsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
316
372
  GetTagsRequest.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, location_name: "TagKey"))
@@ -370,6 +426,9 @@ module Aws::CostExplorer
370
426
  Metrics.key = Shapes::ShapeRef.new(shape: MetricName)
371
427
  Metrics.value = Shapes::ShapeRef.new(shape: MetricValue)
372
428
 
429
+ ModifyRecommendationDetail.add_member(:target_instances, Shapes::ShapeRef.new(shape: TargetInstancesList, location_name: "TargetInstances"))
430
+ ModifyRecommendationDetail.struct_class = Types::ModifyRecommendationDetail
431
+
373
432
  RDSInstanceDetails.add_member(:family, Shapes::ShapeRef.new(shape: GenericString, location_name: "Family"))
374
433
  RDSInstanceDetails.add_member(:instance_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceType"))
375
434
  RDSInstanceDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
@@ -464,6 +523,12 @@ module Aws::CostExplorer
464
523
 
465
524
  ReservationUtilizationGroups.member = Shapes::ShapeRef.new(shape: ReservationUtilizationGroup)
466
525
 
526
+ ResourceDetails.add_member(:ec2_resource_details, Shapes::ShapeRef.new(shape: EC2ResourceDetails, location_name: "EC2ResourceDetails"))
527
+ ResourceDetails.struct_class = Types::ResourceDetails
528
+
529
+ ResourceUtilization.add_member(:ec2_resource_utilization, Shapes::ShapeRef.new(shape: EC2ResourceUtilization, location_name: "EC2ResourceUtilization"))
530
+ ResourceUtilization.struct_class = Types::ResourceUtilization
531
+
467
532
  ResultByTime.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, location_name: "TimePeriod"))
468
533
  ResultByTime.add_member(:total, Shapes::ShapeRef.new(shape: Metrics, location_name: "Total"))
469
534
  ResultByTime.add_member(:groups, Shapes::ShapeRef.new(shape: Groups, location_name: "Groups"))
@@ -472,6 +537,26 @@ module Aws::CostExplorer
472
537
 
473
538
  ResultsByTime.member = Shapes::ShapeRef.new(shape: ResultByTime)
474
539
 
540
+ RightsizingRecommendation.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
541
+ RightsizingRecommendation.add_member(:current_instance, Shapes::ShapeRef.new(shape: CurrentInstance, location_name: "CurrentInstance"))
542
+ RightsizingRecommendation.add_member(:rightsizing_type, Shapes::ShapeRef.new(shape: RightsizingType, location_name: "RightsizingType"))
543
+ RightsizingRecommendation.add_member(:modify_recommendation_detail, Shapes::ShapeRef.new(shape: ModifyRecommendationDetail, location_name: "ModifyRecommendationDetail"))
544
+ RightsizingRecommendation.add_member(:terminate_recommendation_detail, Shapes::ShapeRef.new(shape: TerminateRecommendationDetail, location_name: "TerminateRecommendationDetail"))
545
+ RightsizingRecommendation.struct_class = Types::RightsizingRecommendation
546
+
547
+ RightsizingRecommendationList.member = Shapes::ShapeRef.new(shape: RightsizingRecommendation)
548
+
549
+ RightsizingRecommendationMetadata.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendationId"))
550
+ RightsizingRecommendationMetadata.add_member(:generation_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "GenerationTimestamp"))
551
+ RightsizingRecommendationMetadata.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
552
+ RightsizingRecommendationMetadata.struct_class = Types::RightsizingRecommendationMetadata
553
+
554
+ RightsizingRecommendationSummary.add_member(:total_recommendation_count, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalRecommendationCount"))
555
+ RightsizingRecommendationSummary.add_member(:estimated_total_monthly_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedTotalMonthlySavingsAmount"))
556
+ RightsizingRecommendationSummary.add_member(:savings_currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "SavingsCurrencyCode"))
557
+ RightsizingRecommendationSummary.add_member(:savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "SavingsPercentage"))
558
+ RightsizingRecommendationSummary.struct_class = Types::RightsizingRecommendationSummary
559
+
475
560
  ServiceSpecification.add_member(:ec2_specification, Shapes::ShapeRef.new(shape: EC2Specification, location_name: "EC2Specification"))
476
561
  ServiceSpecification.struct_class = Types::ServiceSpecification
477
562
 
@@ -481,6 +566,22 @@ module Aws::CostExplorer
481
566
  TagValues.add_member(:values, Shapes::ShapeRef.new(shape: Values, location_name: "Values"))
482
567
  TagValues.struct_class = Types::TagValues
483
568
 
569
+ TagValuesList.member = Shapes::ShapeRef.new(shape: TagValues)
570
+
571
+ TargetInstance.add_member(:estimated_monthly_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlyCost"))
572
+ TargetInstance.add_member(:estimated_monthly_savings, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavings"))
573
+ TargetInstance.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
574
+ TargetInstance.add_member(:default_target_instance, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "DefaultTargetInstance"))
575
+ TargetInstance.add_member(:resource_details, Shapes::ShapeRef.new(shape: ResourceDetails, location_name: "ResourceDetails"))
576
+ TargetInstance.add_member(:expected_resource_utilization, Shapes::ShapeRef.new(shape: ResourceUtilization, location_name: "ExpectedResourceUtilization"))
577
+ TargetInstance.struct_class = Types::TargetInstance
578
+
579
+ TargetInstancesList.member = Shapes::ShapeRef.new(shape: TargetInstance)
580
+
581
+ TerminateRecommendationDetail.add_member(:estimated_monthly_savings, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavings"))
582
+ TerminateRecommendationDetail.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
583
+ TerminateRecommendationDetail.struct_class = Types::TerminateRecommendationDetail
584
+
484
585
  UnresolvableUsageUnitException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
485
586
  UnresolvableUsageUnitException.struct_class = Types::UnresolvableUsageUnitException
486
587
 
@@ -582,6 +683,16 @@ module Aws::CostExplorer
582
683
  o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
583
684
  end)
584
685
 
686
+ api.add_operation(:get_rightsizing_recommendation, Seahorse::Model::Operation.new.tap do |o|
687
+ o.name = "GetRightsizingRecommendation"
688
+ o.http_method = "POST"
689
+ o.http_request_uri = "/"
690
+ o.input = Shapes::ShapeRef.new(shape: GetRightsizingRecommendationRequest)
691
+ o.output = Shapes::ShapeRef.new(shape: GetRightsizingRecommendationResponse)
692
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
693
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
694
+ end)
695
+
585
696
  api.add_operation(:get_tags, Seahorse::Model::Operation.new.tap do |o|
586
697
  o.name = "GetTags"
587
698
  o.http_method = "POST"
@@ -155,6 +155,64 @@ module Aws::CostExplorer
155
155
  include Aws::Structure
156
156
  end
157
157
 
158
+ # Context about the current instance.
159
+ #
160
+ # @!attribute [rw] resource_id
161
+ # Resource ID of the current instance.
162
+ # @return [String]
163
+ #
164
+ # @!attribute [rw] tags
165
+ # Cost allocation resource tags applied to the instance.
166
+ # @return [Array<Types::TagValues>]
167
+ #
168
+ # @!attribute [rw] resource_details
169
+ # Details about the resource and utilization.
170
+ # @return [Types::ResourceDetails]
171
+ #
172
+ # @!attribute [rw] resource_utilization
173
+ # Utilization information of the current instance during the lookback
174
+ # period.
175
+ # @return [Types::ResourceUtilization]
176
+ #
177
+ # @!attribute [rw] reservation_covered_hours_in_lookback_period
178
+ # Number of hours during the lookback period covered by reservations.
179
+ # @return [String]
180
+ #
181
+ # @!attribute [rw] on_demand_hours_in_lookback_period
182
+ # Number of hours during the lookback period billed at On Demand
183
+ # rates.
184
+ # @return [String]
185
+ #
186
+ # @!attribute [rw] total_running_hours_in_lookback_period
187
+ # The total number of hours the instance ran during the lookback
188
+ # period.
189
+ # @return [String]
190
+ #
191
+ # @!attribute [rw] monthly_cost
192
+ # Current On Demand cost of operating this instance on a monthly
193
+ # basis.
194
+ # @return [String]
195
+ #
196
+ # @!attribute [rw] currency_code
197
+ # The currency code that Amazon Web Services used to calculate the
198
+ # costs for this instance.
199
+ # @return [String]
200
+ #
201
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CurrentInstance AWS API Documentation
202
+ #
203
+ class CurrentInstance < Struct.new(
204
+ :resource_id,
205
+ :tags,
206
+ :resource_details,
207
+ :resource_utilization,
208
+ :reservation_covered_hours_in_lookback_period,
209
+ :on_demand_hours_in_lookback_period,
210
+ :total_running_hours_in_lookback_period,
211
+ :monthly_cost,
212
+ :currency_code)
213
+ include Aws::Structure
214
+ end
215
+
158
216
  # The requested data is unavailable.
159
217
  #
160
218
  # @!attribute [rw] message
@@ -206,7 +264,7 @@ module Aws::CostExplorer
206
264
  # data as a hash:
207
265
  #
208
266
  # {
209
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
267
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
210
268
  # values: ["Value"],
211
269
  # }
212
270
  #
@@ -305,6 +363,86 @@ module Aws::CostExplorer
305
363
  include Aws::Structure
306
364
  end
307
365
 
366
+ # Details on the Amazon EC2 Resource.
367
+ #
368
+ # @!attribute [rw] hourly_on_demand_rate
369
+ # Hourly public On Demand rate for the instance type.
370
+ # @return [String]
371
+ #
372
+ # @!attribute [rw] instance_type
373
+ # The type of Amazon Web Services instance.
374
+ # @return [String]
375
+ #
376
+ # @!attribute [rw] platform
377
+ # The platform of the Amazon Web Services instance. The platform is
378
+ # the specific combination of operating system, license model, and
379
+ # software on an instance.
380
+ # @return [String]
381
+ #
382
+ # @!attribute [rw] region
383
+ # The Amazon Web Services Region of the instance.
384
+ # @return [String]
385
+ #
386
+ # @!attribute [rw] sku
387
+ # The SKU of the product.
388
+ # @return [String]
389
+ #
390
+ # @!attribute [rw] memory
391
+ # Memory capacity of Amazon Web Services instance.
392
+ # @return [String]
393
+ #
394
+ # @!attribute [rw] network_performance
395
+ # Network performance capacity of the Amazon Web Services instance.
396
+ # @return [String]
397
+ #
398
+ # @!attribute [rw] storage
399
+ # The disk storage of the Amazon Web Services instance (Not EBS
400
+ # storage).
401
+ # @return [String]
402
+ #
403
+ # @!attribute [rw] vcpu
404
+ # Number of VCPU cores in the Amazon Web Services instance type.
405
+ # @return [String]
406
+ #
407
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/EC2ResourceDetails AWS API Documentation
408
+ #
409
+ class EC2ResourceDetails < Struct.new(
410
+ :hourly_on_demand_rate,
411
+ :instance_type,
412
+ :platform,
413
+ :region,
414
+ :sku,
415
+ :memory,
416
+ :network_performance,
417
+ :storage,
418
+ :vcpu)
419
+ include Aws::Structure
420
+ end
421
+
422
+ # Utilization metrics of the instance.
423
+ #
424
+ # @!attribute [rw] max_cpu_utilization_percentage
425
+ # Maximum observed or expected CPU utilization of the instance.
426
+ # @return [String]
427
+ #
428
+ # @!attribute [rw] max_memory_utilization_percentage
429
+ # Maximum observed or expected memory utilization of the instance.
430
+ # @return [String]
431
+ #
432
+ # @!attribute [rw] max_storage_utilization_percentage
433
+ # Maximum observed or expected storage utilization of the instance
434
+ # (does not measure EBS storage).
435
+ # @return [String]
436
+ #
437
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/EC2ResourceUtilization AWS API Documentation
438
+ #
439
+ class EC2ResourceUtilization < Struct.new(
440
+ :max_cpu_utilization_percentage,
441
+ :max_memory_utilization_percentage,
442
+ :max_storage_utilization_percentage)
443
+ include Aws::Structure
444
+ end
445
+
308
446
  # The Amazon EC2 hardware specifications that you want AWS to provide
309
447
  # recommendations for.
310
448
  #
@@ -405,11 +543,11 @@ module Aws::CostExplorer
405
543
  #
406
544
  # * Simple dimension values - You can set the dimension name and values
407
545
  # for the filters that you plan to use. For example, you can filter
408
- # for `INSTANCE_TYPE==m4.xlarge OR INSTANCE_TYPE==c4.large`. The
409
- # `Expression` for that looks like this:
546
+ # for `REGION==us-east-1 OR REGION==us-west-1`. The `Expression` for
547
+ # that looks like this:
410
548
  #
411
- # `\{ "Dimensions": \{ "Key": "INSTANCE_TYPE", "Values": [
412
- # "m4.xlarge", c4.large” ] \} \}`
549
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
550
+ # “us-west-1” ] \} \}`
413
551
  #
414
552
  # The list of dimension values are OR'd together to retrieve cost or
415
553
  # usage data. You can create `Expression` and `DimensionValues`
@@ -420,14 +558,14 @@ module Aws::CostExplorer
420
558
  # multiple `Expression` types and the logical operators `AND/OR/NOT`
421
559
  # to create a list of one or more `Expression` objects. This allows
422
560
  # you to filter on more advanced options. For example, you can filter
423
- # on `((INSTANCE_TYPE == m4.large OR INSTANCE_TYPE == m3.large) OR
424
- # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
425
- # `Expression` for that looks like this:
561
+ # on `((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type ==
562
+ # Type1)) AND (USAGE_TYPE != DataTransfer)`. The `Expression` for that
563
+ # looks like this:
426
564
  #
427
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "INSTANCE_TYPE",
428
- # "Values": [ "m4.x.large", "c4.large" ] \}\}, \{"Tags": \{ "Key":
429
- # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions":
430
- # \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
565
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION", "Values":
566
+ # [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key": "TagName",
567
+ # "Values": ["Value1"] \} \} ]\}, \{"Not": \{"Dimensions": \{ "Key":
568
+ # "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
431
569
  #
432
570
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
433
571
  # returns an error if more than one is specified. The following
@@ -438,6 +576,13 @@ module Aws::CostExplorer
438
576
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
439
577
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
440
578
  #
579
+ # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and NOT
580
+ # is not supported. OR is not supported between different dimensions, or
581
+ # dimensions and tags. NOT operators aren't supported. Dimentions are
582
+ # also limited to `LINKED_ACCOUNT`, `REGION`, or `RIGHTSIZING_TYPE`.
583
+ #
584
+ # </note>
585
+ #
441
586
  # @note When making an API call, you may pass Expression
442
587
  # data as a hash:
443
588
  #
@@ -454,7 +599,7 @@ module Aws::CostExplorer
454
599
  # # recursive Expression
455
600
  # },
456
601
  # dimensions: {
457
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
602
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
458
603
  # values: ["Value"],
459
604
  # },
460
605
  # tags: {
@@ -475,7 +620,7 @@ module Aws::CostExplorer
475
620
  # # recursive Expression
476
621
  # },
477
622
  # dimensions: {
478
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
623
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
479
624
  # values: ["Value"],
480
625
  # },
481
626
  # tags: {
@@ -499,7 +644,7 @@ module Aws::CostExplorer
499
644
  # # recursive Expression
500
645
  # },
501
646
  # dimensions: {
502
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
647
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
503
648
  # values: ["Value"],
504
649
  # },
505
650
  # tags: {
@@ -508,7 +653,7 @@ module Aws::CostExplorer
508
653
  # },
509
654
  # },
510
655
  # dimensions: {
511
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
656
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
512
657
  # values: ["Value"],
513
658
  # },
514
659
  # tags: {
@@ -600,7 +745,7 @@ module Aws::CostExplorer
600
745
  # # recursive Expression
601
746
  # },
602
747
  # dimensions: {
603
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
748
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
604
749
  # values: ["Value"],
605
750
  # },
606
751
  # tags: {
@@ -752,7 +897,7 @@ module Aws::CostExplorer
752
897
  # # recursive Expression
753
898
  # },
754
899
  # dimensions: {
755
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
900
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
756
901
  # values: ["Value"],
757
902
  # },
758
903
  # tags: {
@@ -850,7 +995,7 @@ module Aws::CostExplorer
850
995
  # start: "YearMonthDay", # required
851
996
  # end: "YearMonthDay", # required
852
997
  # },
853
- # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
998
+ # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
854
999
  # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS
855
1000
  # next_page_token: "NextPageToken",
856
1001
  # }
@@ -1113,7 +1258,7 @@ module Aws::CostExplorer
1113
1258
  # # recursive Expression
1114
1259
  # },
1115
1260
  # dimensions: {
1116
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
1261
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1117
1262
  # values: ["Value"],
1118
1263
  # },
1119
1264
  # tags: {
@@ -1392,7 +1537,7 @@ module Aws::CostExplorer
1392
1537
  # # recursive Expression
1393
1538
  # },
1394
1539
  # dimensions: {
1395
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
1540
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1396
1541
  # values: ["Value"],
1397
1542
  # },
1398
1543
  # tags: {
@@ -1503,6 +1648,137 @@ module Aws::CostExplorer
1503
1648
  include Aws::Structure
1504
1649
  end
1505
1650
 
1651
+ # @note When making an API call, you may pass GetRightsizingRecommendationRequest
1652
+ # data as a hash:
1653
+ #
1654
+ # {
1655
+ # filter: {
1656
+ # or: [
1657
+ # {
1658
+ # # recursive Expression
1659
+ # },
1660
+ # ],
1661
+ # and: [
1662
+ # {
1663
+ # # recursive Expression
1664
+ # },
1665
+ # ],
1666
+ # not: {
1667
+ # # recursive Expression
1668
+ # },
1669
+ # dimensions: {
1670
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1671
+ # values: ["Value"],
1672
+ # },
1673
+ # tags: {
1674
+ # key: "TagKey",
1675
+ # values: ["Value"],
1676
+ # },
1677
+ # },
1678
+ # service: "GenericString", # required
1679
+ # page_size: 1,
1680
+ # next_page_token: "NextPageToken",
1681
+ # }
1682
+ #
1683
+ # @!attribute [rw] filter
1684
+ # Use `Expression` to filter by cost or by usage. There are two
1685
+ # patterns:
1686
+ #
1687
+ # * Simple dimension values - You can set the dimension name and
1688
+ # values for the filters that you plan to use. For example, you can
1689
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. The
1690
+ # `Expression` for that looks like this:
1691
+ #
1692
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
1693
+ # “us-west-1” ] \} \}`
1694
+ #
1695
+ # The list of dimension values are OR'd together to retrieve cost
1696
+ # or usage data. You can create `Expression` and `DimensionValues`
1697
+ # objects using either `with*` methods or `set*` methods in multiple
1698
+ # lines.
1699
+ #
1700
+ # * Compound dimension values with logical operations - You can use
1701
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
1702
+ # to create a list of one or more `Expression` objects. This allows
1703
+ # you to filter on more advanced options. For example, you can
1704
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
1705
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
1706
+ # `Expression` for that looks like this:
1707
+ #
1708
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
1709
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
1710
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
1711
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
1712
+ # \}\}\} ] \} `
1713
+ #
1714
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
1715
+ # returns an error if more than one is specified. The following
1716
+ # example shows an `Expression` object that creates an error.
1717
+ #
1718
+ # </note>
1719
+ #
1720
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1721
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
1722
+ #
1723
+ # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and
1724
+ # NOT is not supported. OR is not supported between different
1725
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
1726
+ # Dimentions are also limited to `LINKED_ACCOUNT`, `REGION`, or
1727
+ # `RIGHTSIZING_TYPE`.
1728
+ #
1729
+ # </note>
1730
+ # @return [Types::Expression]
1731
+ #
1732
+ # @!attribute [rw] service
1733
+ # The specific service that you want recommendations for.
1734
+ # @return [String]
1735
+ #
1736
+ # @!attribute [rw] page_size
1737
+ # The number of recommendations that you want returned in a single
1738
+ # response object.
1739
+ # @return [Integer]
1740
+ #
1741
+ # @!attribute [rw] next_page_token
1742
+ # The pagination token that indicates the next set of results that you
1743
+ # want to retrieve.
1744
+ # @return [String]
1745
+ #
1746
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendationRequest AWS API Documentation
1747
+ #
1748
+ class GetRightsizingRecommendationRequest < Struct.new(
1749
+ :filter,
1750
+ :service,
1751
+ :page_size,
1752
+ :next_page_token)
1753
+ include Aws::Structure
1754
+ end
1755
+
1756
+ # @!attribute [rw] metadata
1757
+ # Information regarding this specific recommendation set.
1758
+ # @return [Types::RightsizingRecommendationMetadata]
1759
+ #
1760
+ # @!attribute [rw] summary
1761
+ # Summary of this recommendation set.
1762
+ # @return [Types::RightsizingRecommendationSummary]
1763
+ #
1764
+ # @!attribute [rw] rightsizing_recommendations
1765
+ # Recommendations to rightsize resources.
1766
+ # @return [Array<Types::RightsizingRecommendation>]
1767
+ #
1768
+ # @!attribute [rw] next_page_token
1769
+ # The token to retrieve the next set of results.
1770
+ # @return [String]
1771
+ #
1772
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendationResponse AWS API Documentation
1773
+ #
1774
+ class GetRightsizingRecommendationResponse < Struct.new(
1775
+ :metadata,
1776
+ :summary,
1777
+ :rightsizing_recommendations,
1778
+ :next_page_token)
1779
+ include Aws::Structure
1780
+ end
1781
+
1506
1782
  # @note When making an API call, you may pass GetTagsRequest
1507
1783
  # data as a hash:
1508
1784
  #
@@ -1601,7 +1877,7 @@ module Aws::CostExplorer
1601
1877
  # # recursive Expression
1602
1878
  # },
1603
1879
  # dimensions: {
1604
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID
1880
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1605
1881
  # values: ["Value"],
1606
1882
  # },
1607
1883
  # tags: {
@@ -1802,6 +2078,20 @@ module Aws::CostExplorer
1802
2078
  include Aws::Structure
1803
2079
  end
1804
2080
 
2081
+ # Details on the modification recommendation.
2082
+ #
2083
+ # @!attribute [rw] target_instances
2084
+ # Identifies whether this instance type is the Amazon Web Services
2085
+ # default recommendation.
2086
+ # @return [Array<Types::TargetInstance>]
2087
+ #
2088
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ModifyRecommendationDetail AWS API Documentation
2089
+ #
2090
+ class ModifyRecommendationDetail < Struct.new(
2091
+ :target_instances)
2092
+ include Aws::Structure
2093
+ end
2094
+
1805
2095
  # Details about the Amazon RDS instances that AWS recommends that you
1806
2096
  # purchase.
1807
2097
  #
@@ -2260,6 +2550,32 @@ module Aws::CostExplorer
2260
2550
  include Aws::Structure
2261
2551
  end
2262
2552
 
2553
+ # Details on the resource.
2554
+ #
2555
+ # @!attribute [rw] ec2_resource_details
2556
+ # Details on the Amazon EC2 resource.
2557
+ # @return [Types::EC2ResourceDetails]
2558
+ #
2559
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceDetails AWS API Documentation
2560
+ #
2561
+ class ResourceDetails < Struct.new(
2562
+ :ec2_resource_details)
2563
+ include Aws::Structure
2564
+ end
2565
+
2566
+ # Resource utilization of current resource.
2567
+ #
2568
+ # @!attribute [rw] ec2_resource_utilization
2569
+ # Utilization of current Amazon EC2 Instance
2570
+ # @return [Types::EC2ResourceUtilization]
2571
+ #
2572
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceUtilization AWS API Documentation
2573
+ #
2574
+ class ResourceUtilization < Struct.new(
2575
+ :ec2_resource_utilization)
2576
+ include Aws::Structure
2577
+ end
2578
+
2263
2579
  # The result that is associated with a time period.
2264
2580
  #
2265
2581
  # @!attribute [rw] time_period
@@ -2288,6 +2604,95 @@ module Aws::CostExplorer
2288
2604
  include Aws::Structure
2289
2605
  end
2290
2606
 
2607
+ # Recommendations to rightsize resources.
2608
+ #
2609
+ # @!attribute [rw] account_id
2610
+ # The account that this recommendation is for.
2611
+ # @return [String]
2612
+ #
2613
+ # @!attribute [rw] current_instance
2614
+ # Context regarding the current instance.
2615
+ # @return [Types::CurrentInstance]
2616
+ #
2617
+ # @!attribute [rw] rightsizing_type
2618
+ # Recommendation to either terminate or modify the resource.
2619
+ # @return [String]
2620
+ #
2621
+ # @!attribute [rw] modify_recommendation_detail
2622
+ # Details for modification recommendations.
2623
+ # @return [Types::ModifyRecommendationDetail]
2624
+ #
2625
+ # @!attribute [rw] terminate_recommendation_detail
2626
+ # Details for termination recommendations.
2627
+ # @return [Types::TerminateRecommendationDetail]
2628
+ #
2629
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RightsizingRecommendation AWS API Documentation
2630
+ #
2631
+ class RightsizingRecommendation < Struct.new(
2632
+ :account_id,
2633
+ :current_instance,
2634
+ :rightsizing_type,
2635
+ :modify_recommendation_detail,
2636
+ :terminate_recommendation_detail)
2637
+ include Aws::Structure
2638
+ end
2639
+
2640
+ # Metadata for this recommendation set.
2641
+ #
2642
+ # @!attribute [rw] recommendation_id
2643
+ # The ID for this specific recommendation.
2644
+ # @return [String]
2645
+ #
2646
+ # @!attribute [rw] generation_timestamp
2647
+ # The time stamp for when Amazon Web Services made this
2648
+ # recommendation.
2649
+ # @return [String]
2650
+ #
2651
+ # @!attribute [rw] lookback_period_in_days
2652
+ # How many days of previous usage that Amazon Web Services considers
2653
+ # when making this recommendation.
2654
+ # @return [String]
2655
+ #
2656
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RightsizingRecommendationMetadata AWS API Documentation
2657
+ #
2658
+ class RightsizingRecommendationMetadata < Struct.new(
2659
+ :recommendation_id,
2660
+ :generation_timestamp,
2661
+ :lookback_period_in_days)
2662
+ include Aws::Structure
2663
+ end
2664
+
2665
+ # Summary of rightsizing recommendations
2666
+ #
2667
+ # @!attribute [rw] total_recommendation_count
2668
+ # Total number of instance recommendations.
2669
+ # @return [String]
2670
+ #
2671
+ # @!attribute [rw] estimated_total_monthly_savings_amount
2672
+ # Estimated total savings resulting from modifications, on a monthly
2673
+ # basis.
2674
+ # @return [String]
2675
+ #
2676
+ # @!attribute [rw] savings_currency_code
2677
+ # The currency code that Amazon Web Services used to calculate the
2678
+ # savings.
2679
+ # @return [String]
2680
+ #
2681
+ # @!attribute [rw] savings_percentage
2682
+ # Savings percentage based on the recommended modifications, relative
2683
+ # to the total On Demand costs associated with these instances.
2684
+ # @return [String]
2685
+ #
2686
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RightsizingRecommendationSummary AWS API Documentation
2687
+ #
2688
+ class RightsizingRecommendationSummary < Struct.new(
2689
+ :total_recommendation_count,
2690
+ :estimated_total_monthly_savings_amount,
2691
+ :savings_currency_code,
2692
+ :savings_percentage)
2693
+ include Aws::Structure
2694
+ end
2695
+
2291
2696
  # Hardware specifications for the service that you want recommendations
2292
2697
  # for.
2293
2698
  #
@@ -2338,9 +2743,68 @@ module Aws::CostExplorer
2338
2743
  include Aws::Structure
2339
2744
  end
2340
2745
 
2746
+ # Details on recommended instance.
2747
+ #
2748
+ # @!attribute [rw] estimated_monthly_cost
2749
+ # Expected cost to operate this instance type on a monthly basis.
2750
+ # @return [String]
2751
+ #
2752
+ # @!attribute [rw] estimated_monthly_savings
2753
+ # Estimated savings resulting from modification, on a monthly basis.
2754
+ # @return [String]
2755
+ #
2756
+ # @!attribute [rw] currency_code
2757
+ # The currency code that Amazon Web Services used to calculate the
2758
+ # costs for this instance.
2759
+ # @return [String]
2760
+ #
2761
+ # @!attribute [rw] default_target_instance
2762
+ # Indicates whether or not this recommendation is the defaulted Amazon
2763
+ # Web Services recommendation.
2764
+ # @return [Boolean]
2765
+ #
2766
+ # @!attribute [rw] resource_details
2767
+ # Details on the target instance type.
2768
+ # @return [Types::ResourceDetails]
2769
+ #
2770
+ # @!attribute [rw] expected_resource_utilization
2771
+ # Expected utilization metrics for target instance type.
2772
+ # @return [Types::ResourceUtilization]
2773
+ #
2774
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TargetInstance AWS API Documentation
2775
+ #
2776
+ class TargetInstance < Struct.new(
2777
+ :estimated_monthly_cost,
2778
+ :estimated_monthly_savings,
2779
+ :currency_code,
2780
+ :default_target_instance,
2781
+ :resource_details,
2782
+ :expected_resource_utilization)
2783
+ include Aws::Structure
2784
+ end
2785
+
2786
+ # Details on termination recommendation.
2787
+ #
2788
+ # @!attribute [rw] estimated_monthly_savings
2789
+ # Estimated savings resulting from modification, on a monthly basis.
2790
+ # @return [String]
2791
+ #
2792
+ # @!attribute [rw] currency_code
2793
+ # The currency code that Amazon Web Services used to calculate the
2794
+ # costs for this instance.
2795
+ # @return [String]
2796
+ #
2797
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/TerminateRecommendationDetail AWS API Documentation
2798
+ #
2799
+ class TerminateRecommendationDetail < Struct.new(
2800
+ :estimated_monthly_savings,
2801
+ :currency_code)
2802
+ include Aws::Structure
2803
+ end
2804
+
2341
2805
  # Cost Explorer was unable to identify the usage unit. Provide
2342
2806
  # `UsageType/UsageTypeGroup` filter selections that contain matching
2343
- # units, for example: `hours`.(
2807
+ # units, for example: `hours`.
2344
2808
  #
2345
2809
  # @!attribute [rw] message
2346
2810
  # @return [String]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-costexplorer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.28.0
4
+ version: 1.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-25 00:00:00.000000000 Z
11
+ date: 2019-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core