aws-sdk-costexplorer 1.0.0 → 1.1.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
  SHA1:
3
- metadata.gz: 27611725395f09a87a78c202ca035b52501b7581
4
- data.tar.gz: 487c6d0f12b585cf004012b36390f53a9284af36
3
+ metadata.gz: 4dbabc76e800c52c051795be31b2cef1306b5b24
4
+ data.tar.gz: b7baa6c43895ea437fff06172181ecfea24d4653
5
5
  SHA512:
6
- metadata.gz: d5e0021cf2949ad813a1d2e08f34466bb79e0dea2b177ecf9822892a8b268feb369e059c258156242741e442d8421c8adb9611b86b9e52c5deef8369ab28da1f
7
- data.tar.gz: 989d920c43000f9522ebb18ffdd7e915ecddb7c61bfc1ec670da7818b6ebf421f93890a40a28f8553becc6240ed1a5e4b90904a0e718782046932171faa14cf7
6
+ metadata.gz: 0c95854f198f07aa297e95bf3f4da9f6242b30f4240ee1e972dc25b0bcf136c4cb894541bbb1f75f578e8b2b680ae8ec8b376945b7dc20e502a1fa5a954dd2b1
7
+ data.tar.gz: 1256232d391c2c2c41f73cc1514fbf41b696ed39bae364146b06143d13f0122332d094bbfe8b248022be16f4e0493fb9a135b9c244e11e2daaac42ba3d4d80fb
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-costexplorer/customizations'
42
42
  # @service
43
43
  module Aws::CostExplorer
44
44
 
45
- GEM_VERSION = '1.0.0'
45
+ GEM_VERSION = '1.1.0'
46
46
 
47
47
  end
@@ -158,11 +158,10 @@ module Aws::CostExplorer
158
158
  # Retrieve cost and usage metrics for your account. You can specify
159
159
  # which cost and usage-related metric, such as `BlendedCosts` or
160
160
  # `UsageQuantity`, that you want the request to return. You can also
161
- # filter and group your data by various dimensions, such as `AWS
162
- # Service` or `AvailabilityZone`, in a specific time range. See the
163
- # `GetDimensionValues` action for a complete list of the valid
164
- # dimensions. Master accounts in an organization have access to all
165
- # member accounts.
161
+ # filter and group your data by various dimensions, such as `SERVICE` or
162
+ # `AZ`, in a specific time range. See the `GetDimensionValues` action
163
+ # for a complete list of the valid dimensions. Master accounts in an
164
+ # organization have access to all member accounts.
166
165
  #
167
166
  # @option params [Types::DateInterval] :time_period
168
167
  # Sets the start and end dates for retrieving AWS costs. The start date
@@ -172,19 +171,25 @@ module Aws::CostExplorer
172
171
  # but not including `2017-05-01`.
173
172
  #
174
173
  # @option params [String] :granularity
175
- # Sets the AWS cost granularity to `MONTHLY` or `DAILY`.
174
+ # Sets the AWS cost granularity to `MONTHLY` or `DAILY`. If
175
+ # `Granularity` isn't set, the response object doesn't include the
176
+ # `Granularity`, either `MONTHLY` or `DAILY`.
176
177
  #
177
178
  # @option params [Types::Expression] :filter
178
179
  # Filters AWS costs by different dimensions. For example, you can
179
- # specify `Service` and `Linked Account` and get the costs associated
180
+ # specify `SERVICE` and `LINKED_ACCOUNT` and get the costs associated
180
181
  # with that account's usage of that service. You can nest `Expression`
181
182
  # objects to define any combination of dimension filters. For more
182
- # information, see the `Expression` object or `More Examples`.
183
+ # information, see [Expression][1].
184
+ #
185
+ #
186
+ #
187
+ # [1]: http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
183
188
  #
184
189
  # @option params [Array<String>] :metrics
185
190
  # Which metrics are returned in the query. For more information about
186
- # blended and unblended rates, see
187
- # https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/.
191
+ # blended and unblended rates, see [Why does the "blended" annotation
192
+ # appear on some line items in my bill?][1].
188
193
  #
189
194
  # Valid values are `BlendedCost`, `UnblendedCost`, and `UsageQuantity`.
190
195
  #
@@ -197,6 +202,10 @@ module Aws::CostExplorer
197
202
  #
198
203
  # </note>
199
204
  #
205
+ #
206
+ #
207
+ # [1]: https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/
208
+ #
200
209
  # @option params [Array<Types::GroupDefinition>] :group_by
201
210
  # You can group AWS costs using up to two different groups, either
202
211
  # dimensions, tag keys, or both.
@@ -204,9 +213,9 @@ module Aws::CostExplorer
204
213
  # When you group by tag key, you get all tag values, including empty
205
214
  # strings.
206
215
  #
207
- # Valid values are: `AZ`, `INSTANCE_TYPE`, `LINKED_ACCCOUNT`,
208
- # `OPERATION`, `PURCHASE_TYPE`, `SERVICE`, `USAGE_TYPE`, `TAGS`, and
209
- # `PLATFORM`.
216
+ # Valid values are `AZ`, `INSTANCE_TYPE`, `LINKED_ACCOUNT`, `OPERATION`,
217
+ # `PLATFORM`, `PURCHASE_TYPE`, `SERVICE`, `TAGS`, `TENANCY`, and
218
+ # `USAGE_TYPE`.
210
219
  #
211
220
  # @option params [String] :next_page_token
212
221
  # The token to retrieve the next set of results. AWS provides the token
@@ -242,7 +251,7 @@ module Aws::CostExplorer
242
251
  # # recursive Expression
243
252
  # },
244
253
  # dimensions: {
245
- # 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
254
+ # 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
246
255
  # values: ["Value"],
247
256
  # },
248
257
  # tags: {
@@ -304,16 +313,16 @@ module Aws::CostExplorer
304
313
  # `2017-04-30` but not including `2017-05-01`.
305
314
  #
306
315
  # @option params [required, String] :dimension
307
- # The name of the dimension. Different `Dimensions`are available for
308
- # different `Context`s. For more information, see `Context`.
316
+ # The name of the dimension. Each `Dimensions`is available for different
317
+ # a `Context`. For more information, see `Context`.
309
318
  #
310
319
  # @option params [String] :context
311
320
  # The context for the call to `GetDimensionValues`. This can be
312
- # `RESERVED_INSTANCE` or `COST_AND_USAGE`. The default value is
313
- # `COST_AND_USAGE`. If the context is set to `RESERVED_INSTANCE`, the
321
+ # `RESERVATIONS` or `COST_AND_USAGE`. The default value is
322
+ # `COST_AND_USAGE`. If the context is set to `RESERVATIONS`, the
314
323
  # resulting dimension values can be used in the
315
324
  # `GetReservationUtilization` action. If the context is set to
316
- # `COST_AND_USAGE`, , the resulting dimension values can be used in the
325
+ # `COST_AND_USAGE`, the resulting dimension values can be used in the
317
326
  # `GetCostAndUsage` operation.
318
327
  #
319
328
  # If you set the context to `CostAndUsage`, you can use the following
@@ -321,51 +330,52 @@ module Aws::CostExplorer
321
330
  #
322
331
  # * AZ - The Availability Zone. An example is us-east-1a.
323
332
  #
324
- # * InstanceType - The type of EC2 instance. An example is m4.xlarge.
333
+ # * INSTANCE\_TYPE - The type of EC2 instance. An example is m4.xlarge.
325
334
  #
326
- # * LinkedAccount - The description in the attribute map that includes
335
+ # * LINKED\_ACCOUNT - The description in the attribute map that includes
327
336
  # the full name of the member account. The value field contains the
328
337
  # AWS ID of the member account
329
338
  #
330
- # * Operation - The action performed. Examples include RunInstance and
339
+ # * OPERATION - The action performed. Examples include RunInstance and
331
340
  # CreateBucket.
332
341
  #
333
- # * PurchaseType - The reservation type of the purchase to which this
342
+ # * PURCHASE\_TYPE - The reservation type of the purchase to which this
334
343
  # usage is related. Examples include: On Demand Instances and Standard
335
344
  # Reserved Instances
336
345
  #
337
- # * Service - The AWS service such as DynamoDB.
346
+ # * SERVICE - The AWS service such as DynamoDB.
338
347
  #
339
- # * UsageType -The type of usage. An example is DataTransfer-In-Bytes.
340
- # The response for the GetDimensionValues action includes a unit
341
- # attribute, examples of which include GB and Hrs.
348
+ # * USAGE\_TYPE - The type of usage. An example is
349
+ # DataTransfer-In-Bytes. The response for the GetDimensionValues
350
+ # action includes a unit attribute, examples of which include GB and
351
+ # Hrs.
342
352
  #
343
- # * UsageTypeGroup - The grouping of common usage types. An example is
344
- # EC2: CloudWatch – Alarms. The response for this action includes a
353
+ # * USAGE\_TYPE\_GROUP - The grouping of common usage types. An example
354
+ # is EC2: CloudWatch – Alarms. The response for this action includes a
345
355
  # unit attribute.
346
356
  #
347
- # * RecordType - The different types of charges such as RI fees, usage
348
- # costs, tax refunds, and credits
357
+ # * RECORD\_TYPE - The different types of charges such as RI fees, usage
358
+ # costs, tax refunds, and credits.
349
359
  #
350
- # If you set the context to `ReservedInstance`, you can use the
351
- # following dimensions for searching:
360
+ # If you set the context to `RESERVATIONS`, you can use the following
361
+ # dimensions for searching:
352
362
  #
353
363
  # * AZ - The Availability Zone. An example is us-east-1a.
354
364
  #
355
- # * InstanceType - The type of EC2 instance. An example is m4.xlarge.
365
+ # * INSTANCE\_TYPE - The type of EC2 instance. An example is m4.xlarge.
356
366
  #
357
- # * LinkedAccount - The description in the attribute map that includes
367
+ # * LINKED\_ACCOUNT - The description in the attribute map that includes
358
368
  # the full name of the member account. The value field contains the
359
369
  # AWS ID of the member account
360
370
  #
361
- # * Platform - The operating system. Examples are Windows or Linux.
371
+ # * PLATFORM - The operating system. Examples are Windows or Linux.
362
372
  #
363
- # * Region - The AWS region.
373
+ # * REGION - The AWS region.
364
374
  #
365
- # * Scope - The scope of a reserved instance (RI). Values are regional
375
+ # * SCOPE - The scope of a reserved instance (RI). Values are regional
366
376
  # or a single availability zone.
367
377
  #
368
- # * Tenancy - The tenancy of a resource. Examples are shared or
378
+ # * TENANCY - The tenancy of a resource. Examples are shared or
369
379
  # dedicated.
370
380
  #
371
381
  # @option params [String] :next_page_token
@@ -388,7 +398,7 @@ module Aws::CostExplorer
388
398
  # start: "YearMonthDay", # required
389
399
  # end: "YearMonthDay", # required
390
400
  # },
391
- # 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
401
+ # 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
392
402
  # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS
393
403
  # next_page_token: "NextPageToken",
394
404
  # })
@@ -412,6 +422,161 @@ module Aws::CostExplorer
412
422
  req.send_request(options)
413
423
  end
414
424
 
425
+ # Retrieve the reservation coverage for your account. An organization's
426
+ # master account has access to the associated member accounts. For any
427
+ # time period, you can filter data about reservation usage by the
428
+ # following dimensions.
429
+ #
430
+ # * AZ
431
+ #
432
+ # * INSTANCE\_TYPE
433
+ #
434
+ # * LINKED\_ACCOUNT
435
+ #
436
+ # * PLATFORM
437
+ #
438
+ # * REGION
439
+ #
440
+ # * TENANCY
441
+ #
442
+ # To determine valid values for a dimension, use the
443
+ # `GetDimensionValues` operation.
444
+ #
445
+ # @option params [required, Types::DateInterval] :time_period
446
+ # The start and end dates of the period for which you want to retrieve
447
+ # data about reservation coverage. You can retrieve data for a maximum
448
+ # of 13 months-the last 12 months and the current month. The start date
449
+ # is inclusive, but the end date is exclusive. For example, if `start`
450
+ # is `2017-01-01` and `end` is `2017-05-01`, then the cost and usage
451
+ # data is retrieved from `2017-01-01` up to and including `2017-04-30`
452
+ # but not including `2017-05-01`.
453
+ #
454
+ # @option params [Array<Types::GroupDefinition>] :group_by
455
+ # You can group the data by the following attributes.
456
+ #
457
+ # * AZ
458
+ #
459
+ # * INSTANCE\_TYPE
460
+ #
461
+ # * LINKED\_ACCOUNT
462
+ #
463
+ # * PLATFORM
464
+ #
465
+ # * REGION
466
+ #
467
+ # * TENANCY
468
+ #
469
+ # @option params [String] :granularity
470
+ # The granularity of the AWS cost data for the reservation. Valid values
471
+ # are `MONTHLY` and `DAILY`.
472
+ #
473
+ # If `GroupBy` is set, `Granularity` can't be set. If `Granularity`
474
+ # isn't set, the response object doesn't include the `Granularity`,
475
+ # either `MONTHLY` or `DAILY`.
476
+ #
477
+ # @option params [Types::Expression] :filter
478
+ # Filters utilization data by dimensions. You can filter by the
479
+ # following dimensions.
480
+ #
481
+ # * AZ
482
+ #
483
+ # * INSTANCE\_TYPE
484
+ #
485
+ # * LINKED\_ACCOUNT
486
+ #
487
+ # * PLATFORM
488
+ #
489
+ # * REGION
490
+ #
491
+ # * TENANCY
492
+ #
493
+ # `GetReservationCoverage` uses the same `Expression` object as the
494
+ # other operations, but only `AND` is supported among each dimension.
495
+ # You can nest only one level deep. If there are multiple values for a
496
+ # dimension, they are OR'd together.
497
+ #
498
+ # @option params [String] :next_page_token
499
+ # The token to retrieve the next set of results. AWS provides the token
500
+ # when the response from a previous call has more results than the
501
+ # maximum page size.
502
+ #
503
+ # @return [Types::GetReservationCoverageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
504
+ #
505
+ # * {Types::GetReservationCoverageResponse#coverages_by_time #coverages_by_time} => Array&lt;Types::CoverageByTime&gt;
506
+ # * {Types::GetReservationCoverageResponse#total #total} => Types::Coverage
507
+ # * {Types::GetReservationCoverageResponse#next_page_token #next_page_token} => String
508
+ #
509
+ # @example Request syntax with placeholder values
510
+ #
511
+ # resp = client.get_reservation_coverage({
512
+ # time_period: { # required
513
+ # start: "YearMonthDay", # required
514
+ # end: "YearMonthDay", # required
515
+ # },
516
+ # group_by: [
517
+ # {
518
+ # type: "DIMENSION", # accepts DIMENSION, TAG
519
+ # key: "GroupDefinitionKey",
520
+ # },
521
+ # ],
522
+ # granularity: "DAILY", # accepts DAILY, MONTHLY
523
+ # filter: {
524
+ # or: [
525
+ # {
526
+ # # recursive Expression
527
+ # },
528
+ # ],
529
+ # and: [
530
+ # {
531
+ # # recursive Expression
532
+ # },
533
+ # ],
534
+ # not: {
535
+ # # recursive Expression
536
+ # },
537
+ # dimensions: {
538
+ # 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
539
+ # values: ["Value"],
540
+ # },
541
+ # tags: {
542
+ # key: "TagKey",
543
+ # values: ["Value"],
544
+ # },
545
+ # },
546
+ # next_page_token: "NextPageToken",
547
+ # })
548
+ #
549
+ # @example Response structure
550
+ #
551
+ # resp.coverages_by_time #=> Array
552
+ # resp.coverages_by_time[0].time_period.start #=> String
553
+ # resp.coverages_by_time[0].time_period.end #=> String
554
+ # resp.coverages_by_time[0].groups #=> Array
555
+ # resp.coverages_by_time[0].groups[0].attributes #=> Hash
556
+ # resp.coverages_by_time[0].groups[0].attributes["AttributeType"] #=> <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
557
+ # resp.coverages_by_time[0].groups[0].coverage.coverage_hours.on_demand_hours #=> String
558
+ # resp.coverages_by_time[0].groups[0].coverage.coverage_hours.reserved_hours #=> String
559
+ # resp.coverages_by_time[0].groups[0].coverage.coverage_hours.total_running_hours #=> String
560
+ # resp.coverages_by_time[0].groups[0].coverage.coverage_hours.coverage_hours_percentage #=> String
561
+ # resp.coverages_by_time[0].total.coverage_hours.on_demand_hours #=> String
562
+ # resp.coverages_by_time[0].total.coverage_hours.reserved_hours #=> String
563
+ # resp.coverages_by_time[0].total.coverage_hours.total_running_hours #=> String
564
+ # resp.coverages_by_time[0].total.coverage_hours.coverage_hours_percentage #=> String
565
+ # resp.total.coverage_hours.on_demand_hours #=> String
566
+ # resp.total.coverage_hours.reserved_hours #=> String
567
+ # resp.total.coverage_hours.total_running_hours #=> String
568
+ # resp.total.coverage_hours.coverage_hours_percentage #=> String
569
+ # resp.next_page_token #=> String
570
+ #
571
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage AWS API Documentation
572
+ #
573
+ # @overload get_reservation_coverage(params = {})
574
+ # @param [Hash] params ({})
575
+ def get_reservation_coverage(params = {}, options = {})
576
+ req = build_request(:get_reservation_coverage, params)
577
+ req.send_request(options)
578
+ end
579
+
415
580
  # You can retrieve the Reservation utilization for your account. Master
416
581
  # accounts in an organization have access to their associated member
417
582
  # accounts. You can filter data by dimensions in a time period. You can
@@ -427,14 +592,13 @@ module Aws::CostExplorer
427
592
  # `2017-05-01`.
428
593
  #
429
594
  # @option params [Array<Types::GroupDefinition>] :group_by
430
- # Groups only by `SubscriptionId`. Metadata is included.
595
+ # Groups only by `SUBSCRIPTION_ID`. Metadata is included.
431
596
  #
432
597
  # @option params [String] :granularity
433
- # Sets the AWS cost granularity to `MONTHLY` or `DAILY`. If both
434
- # `GroupBy` and `granularity` are not set, `GetReservationUtilization`
435
- # defaults to `DAILY`. If `GroupBy` is set, `Granularity` can't be set,
436
- # and the response object doesn't include `MONTHLY` or `DAILY`
437
- # granularity.
598
+ # If `GroupBy` is set, `Granularity` can't be set. If `Granularity`
599
+ # isn't set, the response object doesn't include the `Granularity`,
600
+ # either `MONTHLY` or `DAILY`. If both `GroupBy` and `Granularity`
601
+ # aren't set, `GetReservationUtilization` defaults to `DAILY`.
438
602
  #
439
603
  # @option params [Types::Expression] :filter
440
604
  # Filters utilization data by using different dimensions.
@@ -483,7 +647,7 @@ module Aws::CostExplorer
483
647
  # # recursive Expression
484
648
  # },
485
649
  # dimensions: {
486
- # 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
650
+ # 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
487
651
  # values: ["Value"],
488
652
  # },
489
653
  # tags: {
@@ -597,7 +761,7 @@ module Aws::CostExplorer
597
761
  params: params,
598
762
  config: config)
599
763
  context[:gem_name] = 'aws-sdk-costexplorer'
600
- context[:gem_version] = '1.0.0'
764
+ context[:gem_version] = '1.1.0'
601
765
  Seahorse::Client::Request.new(handlers, context)
602
766
  end
603
767
 
@@ -14,7 +14,14 @@ module Aws::CostExplorer
14
14
  AttributeType = Shapes::StringShape.new(name: 'AttributeType')
15
15
  AttributeValue = Shapes::StringShape.new(name: 'AttributeValue')
16
16
  Attributes = Shapes::MapShape.new(name: 'Attributes')
17
+ BillExpirationException = Shapes::StructureShape.new(name: 'BillExpirationException')
17
18
  Context = Shapes::StringShape.new(name: 'Context')
19
+ Coverage = Shapes::StructureShape.new(name: 'Coverage')
20
+ CoverageByTime = Shapes::StructureShape.new(name: 'CoverageByTime')
21
+ CoverageHours = Shapes::StructureShape.new(name: 'CoverageHours')
22
+ CoverageHoursPercentage = Shapes::StringShape.new(name: 'CoverageHoursPercentage')
23
+ CoveragesByTime = Shapes::ListShape.new(name: 'CoveragesByTime')
24
+ DataUnavailableException = Shapes::StructureShape.new(name: 'DataUnavailableException')
18
25
  DateInterval = Shapes::StructureShape.new(name: 'DateInterval')
19
26
  Dimension = Shapes::StringShape.new(name: 'Dimension')
20
27
  DimensionValues = Shapes::StructureShape.new(name: 'DimensionValues')
@@ -29,6 +36,8 @@ module Aws::CostExplorer
29
36
  GetCostAndUsageResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageResponse')
30
37
  GetDimensionValuesRequest = Shapes::StructureShape.new(name: 'GetDimensionValuesRequest')
31
38
  GetDimensionValuesResponse = Shapes::StructureShape.new(name: 'GetDimensionValuesResponse')
39
+ GetReservationCoverageRequest = Shapes::StructureShape.new(name: 'GetReservationCoverageRequest')
40
+ GetReservationCoverageResponse = Shapes::StructureShape.new(name: 'GetReservationCoverageResponse')
32
41
  GetReservationUtilizationRequest = Shapes::StructureShape.new(name: 'GetReservationUtilizationRequest')
33
42
  GetReservationUtilizationResponse = Shapes::StructureShape.new(name: 'GetReservationUtilizationResponse')
34
43
  GetTagsRequest = Shapes::StructureShape.new(name: 'GetTagsRequest')
@@ -40,6 +49,7 @@ module Aws::CostExplorer
40
49
  GroupDefinitionType = Shapes::StringShape.new(name: 'GroupDefinitionType')
41
50
  GroupDefinitions = Shapes::ListShape.new(name: 'GroupDefinitions')
42
51
  Groups = Shapes::ListShape.new(name: 'Groups')
52
+ InvalidNextTokenException = Shapes::StructureShape.new(name: 'InvalidNextTokenException')
43
53
  Key = Shapes::StringShape.new(name: 'Key')
44
54
  Keys = Shapes::ListShape.new(name: 'Keys')
45
55
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
@@ -50,13 +60,17 @@ module Aws::CostExplorer
50
60
  MetricValue = Shapes::StructureShape.new(name: 'MetricValue')
51
61
  Metrics = Shapes::MapShape.new(name: 'Metrics')
52
62
  NextPageToken = Shapes::StringShape.new(name: 'NextPageToken')
63
+ OnDemandHours = Shapes::StringShape.new(name: 'OnDemandHours')
53
64
  PageSize = Shapes::IntegerShape.new(name: 'PageSize')
54
65
  PurchasedHours = Shapes::StringShape.new(name: 'PurchasedHours')
55
66
  ReservationAggregates = Shapes::StructureShape.new(name: 'ReservationAggregates')
67
+ ReservationCoverageGroup = Shapes::StructureShape.new(name: 'ReservationCoverageGroup')
68
+ ReservationCoverageGroups = Shapes::ListShape.new(name: 'ReservationCoverageGroups')
56
69
  ReservationGroupKey = Shapes::StringShape.new(name: 'ReservationGroupKey')
57
70
  ReservationGroupValue = Shapes::StringShape.new(name: 'ReservationGroupValue')
58
71
  ReservationUtilizationGroup = Shapes::StructureShape.new(name: 'ReservationUtilizationGroup')
59
72
  ReservationUtilizationGroups = Shapes::ListShape.new(name: 'ReservationUtilizationGroups')
73
+ ReservedHours = Shapes::StringShape.new(name: 'ReservedHours')
60
74
  ResultByTime = Shapes::StructureShape.new(name: 'ResultByTime')
61
75
  ResultsByTime = Shapes::ListShape.new(name: 'ResultsByTime')
62
76
  SearchString = Shapes::StringShape.new(name: 'SearchString')
@@ -64,6 +78,7 @@ module Aws::CostExplorer
64
78
  TagList = Shapes::ListShape.new(name: 'TagList')
65
79
  TagValues = Shapes::StructureShape.new(name: 'TagValues')
66
80
  TotalActualHours = Shapes::StringShape.new(name: 'TotalActualHours')
81
+ TotalRunningHours = Shapes::StringShape.new(name: 'TotalRunningHours')
67
82
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
68
83
  UtilizationByTime = Shapes::StructureShape.new(name: 'UtilizationByTime')
69
84
  UtilizationPercentage = Shapes::StringShape.new(name: 'UtilizationPercentage')
@@ -75,6 +90,22 @@ module Aws::CostExplorer
75
90
  Attributes.key = Shapes::ShapeRef.new(shape: AttributeType)
76
91
  Attributes.value = Shapes::ShapeRef.new(shape: AttributeValue)
77
92
 
93
+ Coverage.add_member(:coverage_hours, Shapes::ShapeRef.new(shape: CoverageHours, location_name: "CoverageHours"))
94
+ Coverage.struct_class = Types::Coverage
95
+
96
+ CoverageByTime.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, location_name: "TimePeriod"))
97
+ CoverageByTime.add_member(:groups, Shapes::ShapeRef.new(shape: ReservationCoverageGroups, location_name: "Groups"))
98
+ CoverageByTime.add_member(:total, Shapes::ShapeRef.new(shape: Coverage, location_name: "Total"))
99
+ CoverageByTime.struct_class = Types::CoverageByTime
100
+
101
+ CoverageHours.add_member(:on_demand_hours, Shapes::ShapeRef.new(shape: OnDemandHours, location_name: "OnDemandHours"))
102
+ CoverageHours.add_member(:reserved_hours, Shapes::ShapeRef.new(shape: ReservedHours, location_name: "ReservedHours"))
103
+ CoverageHours.add_member(:total_running_hours, Shapes::ShapeRef.new(shape: TotalRunningHours, location_name: "TotalRunningHours"))
104
+ CoverageHours.add_member(:coverage_hours_percentage, Shapes::ShapeRef.new(shape: CoverageHoursPercentage, location_name: "CoverageHoursPercentage"))
105
+ CoverageHours.struct_class = Types::CoverageHours
106
+
107
+ CoveragesByTime.member = Shapes::ShapeRef.new(shape: CoverageByTime)
108
+
78
109
  DateInterval.add_member(:start, Shapes::ShapeRef.new(shape: YearMonthDay, required: true, location_name: "Start"))
79
110
  DateInterval.add_member(:end, Shapes::ShapeRef.new(shape: YearMonthDay, required: true, location_name: "End"))
80
111
  DateInterval.struct_class = Types::DateInterval
@@ -124,6 +155,18 @@ module Aws::CostExplorer
124
155
  GetDimensionValuesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
125
156
  GetDimensionValuesResponse.struct_class = Types::GetDimensionValuesResponse
126
157
 
158
+ GetReservationCoverageRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
159
+ GetReservationCoverageRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
160
+ GetReservationCoverageRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
161
+ GetReservationCoverageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
162
+ GetReservationCoverageRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
163
+ GetReservationCoverageRequest.struct_class = Types::GetReservationCoverageRequest
164
+
165
+ GetReservationCoverageResponse.add_member(:coverages_by_time, Shapes::ShapeRef.new(shape: CoveragesByTime, required: true, location_name: "CoveragesByTime"))
166
+ GetReservationCoverageResponse.add_member(:total, Shapes::ShapeRef.new(shape: Coverage, location_name: "Total"))
167
+ GetReservationCoverageResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
168
+ GetReservationCoverageResponse.struct_class = Types::GetReservationCoverageResponse
169
+
127
170
  GetReservationUtilizationRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
128
171
  GetReservationUtilizationRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
129
172
  GetReservationUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
@@ -177,6 +220,12 @@ module Aws::CostExplorer
177
220
  ReservationAggregates.add_member(:unused_hours, Shapes::ShapeRef.new(shape: UnusedHours, location_name: "UnusedHours"))
178
221
  ReservationAggregates.struct_class = Types::ReservationAggregates
179
222
 
223
+ ReservationCoverageGroup.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
224
+ ReservationCoverageGroup.add_member(:coverage, Shapes::ShapeRef.new(shape: Coverage, location_name: "Coverage"))
225
+ ReservationCoverageGroup.struct_class = Types::ReservationCoverageGroup
226
+
227
+ ReservationCoverageGroups.member = Shapes::ShapeRef.new(shape: ReservationCoverageGroup)
228
+
180
229
  ReservationUtilizationGroup.add_member(:key, Shapes::ShapeRef.new(shape: ReservationGroupKey, location_name: "Key"))
181
230
  ReservationUtilizationGroup.add_member(:value, Shapes::ShapeRef.new(shape: ReservationGroupValue, location_name: "Value"))
182
231
  ReservationUtilizationGroup.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
@@ -231,6 +280,9 @@ module Aws::CostExplorer
231
280
  o.input = Shapes::ShapeRef.new(shape: GetCostAndUsageRequest)
232
281
  o.output = Shapes::ShapeRef.new(shape: GetCostAndUsageResponse)
233
282
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
283
+ o.errors << Shapes::ShapeRef.new(shape: BillExpirationException)
284
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
285
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
234
286
  end)
235
287
 
236
288
  api.add_operation(:get_dimension_values, Seahorse::Model::Operation.new.tap do |o|
@@ -240,6 +292,19 @@ module Aws::CostExplorer
240
292
  o.input = Shapes::ShapeRef.new(shape: GetDimensionValuesRequest)
241
293
  o.output = Shapes::ShapeRef.new(shape: GetDimensionValuesResponse)
242
294
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
295
+ o.errors << Shapes::ShapeRef.new(shape: BillExpirationException)
296
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
297
+ end)
298
+
299
+ api.add_operation(:get_reservation_coverage, Seahorse::Model::Operation.new.tap do |o|
300
+ o.name = "GetReservationCoverage"
301
+ o.http_method = "POST"
302
+ o.http_request_uri = "/"
303
+ o.input = Shapes::ShapeRef.new(shape: GetReservationCoverageRequest)
304
+ o.output = Shapes::ShapeRef.new(shape: GetReservationCoverageResponse)
305
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
306
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
307
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
243
308
  end)
244
309
 
245
310
  api.add_operation(:get_reservation_utilization, Seahorse::Model::Operation.new.tap do |o|
@@ -249,6 +314,8 @@ module Aws::CostExplorer
249
314
  o.input = Shapes::ShapeRef.new(shape: GetReservationUtilizationRequest)
250
315
  o.output = Shapes::ShapeRef.new(shape: GetReservationUtilizationResponse)
251
316
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
317
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
318
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
252
319
  end)
253
320
 
254
321
  api.add_operation(:get_tags, Seahorse::Model::Operation.new.tap do |o|
@@ -258,6 +325,8 @@ module Aws::CostExplorer
258
325
  o.input = Shapes::ShapeRef.new(shape: GetTagsRequest)
259
326
  o.output = Shapes::ShapeRef.new(shape: GetTagsResponse)
260
327
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
328
+ o.errors << Shapes::ShapeRef.new(shape: BillExpirationException)
329
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
261
330
  end)
262
331
  end
263
332
 
@@ -8,6 +8,71 @@
8
8
  module Aws::CostExplorer
9
9
  module Types
10
10
 
11
+ # The amount of instance usage that a reservation covered.
12
+ #
13
+ # @!attribute [rw] coverage_hours
14
+ # The amount of instance usage that a reservation covered, in hours.
15
+ # @return [Types::CoverageHours]
16
+ #
17
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Coverage AWS API Documentation
18
+ #
19
+ class Coverage < Struct.new(
20
+ :coverage_hours)
21
+ include Aws::Structure
22
+ end
23
+
24
+ # Reservation coverage, in hours.
25
+ #
26
+ # @!attribute [rw] time_period
27
+ # The period over which this coverage was used.
28
+ # @return [Types::DateInterval]
29
+ #
30
+ # @!attribute [rw] groups
31
+ # The group of instances that a reservation covered.
32
+ # @return [Array<Types::ReservationCoverageGroup>]
33
+ #
34
+ # @!attribute [rw] total
35
+ # The total reservation coverage, in hours.
36
+ # @return [Types::Coverage]
37
+ #
38
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CoverageByTime AWS API Documentation
39
+ #
40
+ class CoverageByTime < Struct.new(
41
+ :time_period,
42
+ :groups,
43
+ :total)
44
+ include Aws::Structure
45
+ end
46
+
47
+ # How long a running instance either used a reservation or was
48
+ # On-Demand.
49
+ #
50
+ # @!attribute [rw] on_demand_hours
51
+ # The number of instance running hours covered by On-Demand Instances.
52
+ # @return [String]
53
+ #
54
+ # @!attribute [rw] reserved_hours
55
+ # The number of instance running hours covered by reservations.
56
+ # @return [String]
57
+ #
58
+ # @!attribute [rw] total_running_hours
59
+ # The total instance usage, in hours.
60
+ # @return [String]
61
+ #
62
+ # @!attribute [rw] coverage_hours_percentage
63
+ # The percentage of instance hours covered by a reservation.
64
+ # @return [String]
65
+ #
66
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CoverageHours AWS API Documentation
67
+ #
68
+ class CoverageHours < Struct.new(
69
+ :on_demand_hours,
70
+ :reserved_hours,
71
+ :total_running_hours,
72
+ :coverage_hours_percentage)
73
+ include Aws::Structure
74
+ end
75
+
11
76
  # The time period that you want the usage and costs for.
12
77
  #
13
78
  # @note When making an API call, you may pass DateInterval
@@ -47,7 +112,7 @@ module Aws::CostExplorer
47
112
  # data as a hash:
48
113
  #
49
114
  # {
50
- # 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
115
+ # 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
51
116
  # values: ["Value"],
52
117
  # }
53
118
  #
@@ -95,11 +160,11 @@ module Aws::CostExplorer
95
160
  #
96
161
  # * Simple dimension values - You can set the dimension name and values
97
162
  # for the filters that you plan to use. For example, you can filter
98
- # for `InstanceType==m4.xlarge OR InstanceType==c4.large`. The
163
+ # for `INSTANCE_TYPE==m4.xlarge OR INSTANCE_TYPE==c4.large`. The
99
164
  # `Expression` for that looks like this.
100
165
  #
101
- # `\{ "Dimensions": \{ "Key": "InstanceType", "Values": [ "m4.xlarge",
102
- # “c4.large” ] \} \}`
166
+ # `\{ "Dimensions": \{ "Key": "INSTANCE_TYPE", "Values": [
167
+ # "m4.xlarge", “c4.large” ] \} \}`
103
168
  #
104
169
  # The list of dimension values are OR'd together to retrieve cost or
105
170
  # usage data. You can create `Expression` and `DimensionValues`
@@ -110,14 +175,14 @@ module Aws::CostExplorer
110
175
  # multiple `Expression` types and the logical operators `AND/OR/NOT`
111
176
  # to create a list of one or more `Expression` objects. This allows
112
177
  # you to filter on more advanced options. For example, you can filter
113
- # on `((InstanceType == m4.large OR InstanceType == m3.large) OR
114
- # (Tag.Type == Type1)) AND (UsageType != DataTransfer)`. The
178
+ # on `((INSTANCE_TYPE == m4.large OR INSTANCE_TYPE == m3.large) OR
179
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
115
180
  # `Expression` for that looks like this.
116
181
  #
117
- # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "InstanceType",
182
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "INSTANCE_TYPE",
118
183
  # "Values": [ "m4.x.large", "c4.large" ] \}\}, \{"Tag": \{ "Key":
119
184
  # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not": \{"dimensions":
120
- # \{ "Key": "UsageType", "Values": ["DataTransfer"] \}\}\} ] \} `
185
+ # \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"] \}\}\} ] \} `
121
186
  #
122
187
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
123
188
  # returns an error if more than one is specified. The following
@@ -125,8 +190,8 @@ module Aws::CostExplorer
125
190
  #
126
191
  # </note>
127
192
  #
128
- # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension": "UsageType",
129
- # "Values": [ "DataTransfer" ] \} \} `
193
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
194
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
130
195
  #
131
196
  # @note When making an API call, you may pass Expression
132
197
  # data as a hash:
@@ -144,7 +209,7 @@ module Aws::CostExplorer
144
209
  # # recursive Expression
145
210
  # },
146
211
  # dimensions: {
147
- # 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
212
+ # 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
148
213
  # values: ["Value"],
149
214
  # },
150
215
  # tags: {
@@ -165,7 +230,7 @@ module Aws::CostExplorer
165
230
  # # recursive Expression
166
231
  # },
167
232
  # dimensions: {
168
- # 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
233
+ # 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
169
234
  # values: ["Value"],
170
235
  # },
171
236
  # tags: {
@@ -189,7 +254,7 @@ module Aws::CostExplorer
189
254
  # # recursive Expression
190
255
  # },
191
256
  # dimensions: {
192
- # 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
257
+ # 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
193
258
  # values: ["Value"],
194
259
  # },
195
260
  # tags: {
@@ -198,7 +263,7 @@ module Aws::CostExplorer
198
263
  # },
199
264
  # },
200
265
  # dimensions: {
201
- # 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
266
+ # 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
202
267
  # values: ["Value"],
203
268
  # },
204
269
  # tags: {
@@ -262,7 +327,7 @@ module Aws::CostExplorer
262
327
  # # recursive Expression
263
328
  # },
264
329
  # dimensions: {
265
- # 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
330
+ # 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
266
331
  # values: ["Value"],
267
332
  # },
268
333
  # tags: {
@@ -289,22 +354,27 @@ module Aws::CostExplorer
289
354
  # @return [Types::DateInterval]
290
355
  #
291
356
  # @!attribute [rw] granularity
292
- # Sets the AWS cost granularity to `MONTHLY` or `DAILY`.
357
+ # Sets the AWS cost granularity to `MONTHLY` or `DAILY`. If
358
+ # `Granularity` isn't set, the response object doesn't include the
359
+ # `Granularity`, either `MONTHLY` or `DAILY`.
293
360
  # @return [String]
294
361
  #
295
362
  # @!attribute [rw] filter
296
363
  # Filters AWS costs by different dimensions. For example, you can
297
- # specify `Service` and `Linked Account` and get the costs associated
364
+ # specify `SERVICE` and `LINKED_ACCOUNT` and get the costs associated
298
365
  # with that account's usage of that service. You can nest
299
366
  # `Expression` objects to define any combination of dimension filters.
300
- # For more information, see the `Expression` object or `More
301
- # Examples`.
367
+ # For more information, see [Expression][1].
368
+ #
369
+ #
370
+ #
371
+ # [1]: http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
302
372
  # @return [Types::Expression]
303
373
  #
304
374
  # @!attribute [rw] metrics
305
375
  # Which metrics are returned in the query. For more information about
306
- # blended and unblended rates, see
307
- # https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/.
376
+ # blended and unblended rates, see [Why does the "blended"
377
+ # annotation appear on some line items in my bill?][1].
308
378
  #
309
379
  # Valid values are `BlendedCost`, `UnblendedCost`, and
310
380
  # `UsageQuantity`.
@@ -318,6 +388,10 @@ module Aws::CostExplorer
318
388
  # `UsageTypeGroups`.
319
389
  #
320
390
  # </note>
391
+ #
392
+ #
393
+ #
394
+ # [1]: https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/
321
395
  # @return [Array<String>]
322
396
  #
323
397
  # @!attribute [rw] group_by
@@ -327,9 +401,9 @@ module Aws::CostExplorer
327
401
  # When you group by tag key, you get all tag values, including empty
328
402
  # strings.
329
403
  #
330
- # Valid values are: `AZ`, `INSTANCE_TYPE`, `LINKED_ACCCOUNT`,
331
- # `OPERATION`, `PURCHASE_TYPE`, `SERVICE`, `USAGE_TYPE`, `TAGS`, and
332
- # `PLATFORM`.
404
+ # Valid values are `AZ`, `INSTANCE_TYPE`, `LINKED_ACCOUNT`,
405
+ # `OPERATION`, `PLATFORM`, `PURCHASE_TYPE`, `SERVICE`, `TAGS`,
406
+ # `TENANCY`, and `USAGE_TYPE`.
333
407
  # @return [Array<Types::GroupDefinition>]
334
408
  #
335
409
  # @!attribute [rw] next_page_token
@@ -383,7 +457,7 @@ module Aws::CostExplorer
383
457
  # start: "YearMonthDay", # required
384
458
  # end: "YearMonthDay", # required
385
459
  # },
386
- # 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
460
+ # 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
387
461
  # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS
388
462
  # next_page_token: "NextPageToken",
389
463
  # }
@@ -401,69 +475,72 @@ module Aws::CostExplorer
401
475
  # @return [Types::DateInterval]
402
476
  #
403
477
  # @!attribute [rw] dimension
404
- # The name of the dimension. Different `Dimensions`are available for
405
- # different `Context`s. For more information, see `Context`.
478
+ # The name of the dimension. Each `Dimensions`is available for
479
+ # different a `Context`. For more information, see `Context`.
406
480
  # @return [String]
407
481
  #
408
482
  # @!attribute [rw] context
409
483
  # The context for the call to `GetDimensionValues`. This can be
410
- # `RESERVED_INSTANCE` or `COST_AND_USAGE`. The default value is
411
- # `COST_AND_USAGE`. If the context is set to `RESERVED_INSTANCE`, the
484
+ # `RESERVATIONS` or `COST_AND_USAGE`. The default value is
485
+ # `COST_AND_USAGE`. If the context is set to `RESERVATIONS`, the
412
486
  # resulting dimension values can be used in the
413
487
  # `GetReservationUtilization` action. If the context is set to
414
- # `COST_AND_USAGE`, , the resulting dimension values can be used in
415
- # the `GetCostAndUsage` operation.
488
+ # `COST_AND_USAGE`, the resulting dimension values can be used in the
489
+ # `GetCostAndUsage` operation.
416
490
  #
417
491
  # If you set the context to `CostAndUsage`, you can use the following
418
492
  # dimensions for searching:
419
493
  #
420
494
  # * AZ - The Availability Zone. An example is us-east-1a.
421
495
  #
422
- # * InstanceType - The type of EC2 instance. An example is m4.xlarge.
496
+ # * INSTANCE\_TYPE - The type of EC2 instance. An example is
497
+ # m4.xlarge.
423
498
  #
424
- # * LinkedAccount - The description in the attribute map that includes
425
- # the full name of the member account. The value field contains the
426
- # AWS ID of the member account
499
+ # * LINKED\_ACCOUNT - The description in the attribute map that
500
+ # includes the full name of the member account. The value field
501
+ # contains the AWS ID of the member account
427
502
  #
428
- # * Operation - The action performed. Examples include RunInstance and
503
+ # * OPERATION - The action performed. Examples include RunInstance and
429
504
  # CreateBucket.
430
505
  #
431
- # * PurchaseType - The reservation type of the purchase to which this
432
- # usage is related. Examples include: On Demand Instances and
506
+ # * PURCHASE\_TYPE - The reservation type of the purchase to which
507
+ # this usage is related. Examples include: On Demand Instances and
433
508
  # Standard Reserved Instances
434
509
  #
435
- # * Service - The AWS service such as DynamoDB.
510
+ # * SERVICE - The AWS service such as DynamoDB.
436
511
  #
437
- # * UsageType -The type of usage. An example is DataTransfer-In-Bytes.
438
- # The response for the GetDimensionValues action includes a unit
439
- # attribute, examples of which include GB and Hrs.
512
+ # * USAGE\_TYPE - The type of usage. An example is
513
+ # DataTransfer-In-Bytes. The response for the GetDimensionValues
514
+ # action includes a unit attribute, examples of which include GB and
515
+ # Hrs.
440
516
  #
441
- # * UsageTypeGroup - The grouping of common usage types. An example is
442
- # EC2: CloudWatch – Alarms. The response for this action includes a
443
- # unit attribute.
517
+ # * USAGE\_TYPE\_GROUP - The grouping of common usage types. An
518
+ # example is EC2: CloudWatch – Alarms. The response for this action
519
+ # includes a unit attribute.
444
520
  #
445
- # * RecordType - The different types of charges such as RI fees, usage
446
- # costs, tax refunds, and credits
521
+ # * RECORD\_TYPE - The different types of charges such as RI fees,
522
+ # usage costs, tax refunds, and credits.
447
523
  #
448
- # If you set the context to `ReservedInstance`, you can use the
449
- # following dimensions for searching:
524
+ # If you set the context to `RESERVATIONS`, you can use the following
525
+ # dimensions for searching:
450
526
  #
451
527
  # * AZ - The Availability Zone. An example is us-east-1a.
452
528
  #
453
- # * InstanceType - The type of EC2 instance. An example is m4.xlarge.
529
+ # * INSTANCE\_TYPE - The type of EC2 instance. An example is
530
+ # m4.xlarge.
454
531
  #
455
- # * LinkedAccount - The description in the attribute map that includes
456
- # the full name of the member account. The value field contains the
457
- # AWS ID of the member account
532
+ # * LINKED\_ACCOUNT - The description in the attribute map that
533
+ # includes the full name of the member account. The value field
534
+ # contains the AWS ID of the member account
458
535
  #
459
- # * Platform - The operating system. Examples are Windows or Linux.
536
+ # * PLATFORM - The operating system. Examples are Windows or Linux.
460
537
  #
461
- # * Region - The AWS region.
538
+ # * REGION - The AWS region.
462
539
  #
463
- # * Scope - The scope of a reserved instance (RI). Values are regional
540
+ # * SCOPE - The scope of a reserved instance (RI). Values are regional
464
541
  # or a single availability zone.
465
542
  #
466
- # * Tenancy - The tenancy of a resource. Examples are shared or
543
+ # * TENANCY - The tenancy of a resource. Examples are shared or
467
544
  # dedicated.
468
545
  # @return [String]
469
546
  #
@@ -493,51 +570,54 @@ module Aws::CostExplorer
493
570
  #
494
571
  # * AZ - The Availability Zone. An example is us-east-1a.
495
572
  #
496
- # * InstanceType - The type of EC2 instance. An example is m4.xlarge.
573
+ # * INSTANCE\_TYPE - The type of EC2 instance. An example is
574
+ # m4.xlarge.
497
575
  #
498
- # * LinkedAccount - The description in the attribute map that includes
499
- # the full name of the member account. The value field contains the
500
- # AWS ID of the member account
576
+ # * LINKED\_ACCOUNT - The description in the attribute map that
577
+ # includes the full name of the member account. The value field
578
+ # contains the AWS ID of the member account
501
579
  #
502
- # * Operation - The action performed. Examples include RunInstance and
580
+ # * OPERATION - The action performed. Examples include RunInstance and
503
581
  # CreateBucket.
504
582
  #
505
- # * PurchaseType - The reservation type of the purchase to which this
506
- # usage is related. Examples include: On Demand Instances and
583
+ # * PURCHASE\_TYPE - The reservation type of the purchase to which
584
+ # this usage is related. Examples include: On Demand Instances and
507
585
  # Standard Reserved Instances
508
586
  #
509
- # * Service - The AWS service such as DynamoDB.
587
+ # * SERVICE - The AWS service such as DynamoDB.
510
588
  #
511
- # * UsageType -The type of usage. An example is DataTransfer-In-Bytes.
512
- # The response for the GetDimensionValues action includes a unit
513
- # attribute, examples of which include GB and Hrs.
589
+ # * USAGE\_TYPE - The type of usage. An example is
590
+ # DataTransfer-In-Bytes. The response for the GetDimensionValues
591
+ # action includes a unit attribute, examples of which include GB and
592
+ # Hrs.
514
593
  #
515
- # * UsageTypeGroup - The grouping of common usage types. An example is
516
- # EC2: CloudWatch – Alarms. The response for this action includes a
517
- # unit attribute.
594
+ # * USAGE\_TYPE\_GROUP - The grouping of common usage types. An
595
+ # example is EC2: CloudWatch – Alarms. The response for this action
596
+ # includes a unit attribute.
518
597
  #
519
- # * RecordType - The different types of charges such as RI fees, usage
520
- # costs, tax refunds, and credits
598
+ # * RECORD\_TYPE - The different types of charges such as RI fees,
599
+ # usage costs, tax refunds, and credits.
521
600
  #
522
- # If you set the context to `ReservedInstance`, you can use the
523
- # following dimensions for searching:
601
+ # If you set the context to `RESERVATIONS`, you can use the following
602
+ # dimensions for searching:
524
603
  #
525
604
  # * AZ - The Availability Zone. An example is us-east-1a.
526
605
  #
527
- # * InstanceType - The type of EC2 instance. An example is m4.xlarge.
606
+ # * INSTANCE\_TYPE - The type of EC2 instance. An example is
607
+ # m4.xlarge.
528
608
  #
529
- # * LinkedAccount - The description in the attribute map that includes
530
- # the full name of the member account. The value field contains the
531
- # AWS ID of the member account
609
+ # * LINKED\_ACCOUNT - The description in the attribute map that
610
+ # includes the full name of the member account. The value field
611
+ # contains the AWS ID of the member account
532
612
  #
533
- # * Platform - The operating system. Examples are Windows or Linux.
613
+ # * PLATFORM - The operating system. Examples are Windows or Linux.
534
614
  #
535
- # * Region - The AWS region.
615
+ # * REGION - The AWS region.
536
616
  #
537
- # * Scope - The scope of a reserved instance (RI). Values are regional
617
+ # * SCOPE - The scope of a reserved instance (RI). Values are regional
538
618
  # or a single availability zone.
539
619
  #
540
- # * Tenancy - The tenancy of a resource. Examples are shared or
620
+ # * TENANCY - The tenancy of a resource. Examples are shared or
541
621
  # dedicated.
542
622
  # @return [Array<Types::DimensionValuesWithAttributes>]
543
623
  #
@@ -565,6 +645,147 @@ module Aws::CostExplorer
565
645
  include Aws::Structure
566
646
  end
567
647
 
648
+ # You can query for how much of your instance usage was covered by a
649
+ # reservation.
650
+ #
651
+ # @note When making an API call, you may pass GetReservationCoverageRequest
652
+ # data as a hash:
653
+ #
654
+ # {
655
+ # time_period: { # required
656
+ # start: "YearMonthDay", # required
657
+ # end: "YearMonthDay", # required
658
+ # },
659
+ # group_by: [
660
+ # {
661
+ # type: "DIMENSION", # accepts DIMENSION, TAG
662
+ # key: "GroupDefinitionKey",
663
+ # },
664
+ # ],
665
+ # granularity: "DAILY", # accepts DAILY, MONTHLY
666
+ # filter: {
667
+ # or: [
668
+ # {
669
+ # # recursive Expression
670
+ # },
671
+ # ],
672
+ # and: [
673
+ # {
674
+ # # recursive Expression
675
+ # },
676
+ # ],
677
+ # not: {
678
+ # # recursive Expression
679
+ # },
680
+ # dimensions: {
681
+ # 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
682
+ # values: ["Value"],
683
+ # },
684
+ # tags: {
685
+ # key: "TagKey",
686
+ # values: ["Value"],
687
+ # },
688
+ # },
689
+ # next_page_token: "NextPageToken",
690
+ # }
691
+ #
692
+ # @!attribute [rw] time_period
693
+ # The start and end dates of the period for which you want to retrieve
694
+ # data about reservation coverage. You can retrieve data for a maximum
695
+ # of 13 months-the last 12 months and the current month. The start
696
+ # date is inclusive, but the end date is exclusive. For example, if
697
+ # `start` is `2017-01-01` and `end` is `2017-05-01`, then the cost and
698
+ # usage data is retrieved from `2017-01-01` up to and including
699
+ # `2017-04-30` but not including `2017-05-01`.
700
+ # @return [Types::DateInterval]
701
+ #
702
+ # @!attribute [rw] group_by
703
+ # You can group the data by the following attributes.
704
+ #
705
+ # * AZ
706
+ #
707
+ # * INSTANCE\_TYPE
708
+ #
709
+ # * LINKED\_ACCOUNT
710
+ #
711
+ # * PLATFORM
712
+ #
713
+ # * REGION
714
+ #
715
+ # * TENANCY
716
+ # @return [Array<Types::GroupDefinition>]
717
+ #
718
+ # @!attribute [rw] granularity
719
+ # The granularity of the AWS cost data for the reservation. Valid
720
+ # values are `MONTHLY` and `DAILY`.
721
+ #
722
+ # If `GroupBy` is set, `Granularity` can't be set. If `Granularity`
723
+ # isn't set, the response object doesn't include the `Granularity`,
724
+ # either `MONTHLY` or `DAILY`.
725
+ # @return [String]
726
+ #
727
+ # @!attribute [rw] filter
728
+ # Filters utilization data by dimensions. You can filter by the
729
+ # following dimensions.
730
+ #
731
+ # * AZ
732
+ #
733
+ # * INSTANCE\_TYPE
734
+ #
735
+ # * LINKED\_ACCOUNT
736
+ #
737
+ # * PLATFORM
738
+ #
739
+ # * REGION
740
+ #
741
+ # * TENANCY
742
+ #
743
+ # `GetReservationCoverage` uses the same `Expression` object as the
744
+ # other operations, but only `AND` is supported among each dimension.
745
+ # You can nest only one level deep. If there are multiple values for a
746
+ # dimension, they are OR'd together.
747
+ # @return [Types::Expression]
748
+ #
749
+ # @!attribute [rw] next_page_token
750
+ # The token to retrieve the next set of results. AWS provides the
751
+ # token when the response from a previous call has more results than
752
+ # the maximum page size.
753
+ # @return [String]
754
+ #
755
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverageRequest AWS API Documentation
756
+ #
757
+ class GetReservationCoverageRequest < Struct.new(
758
+ :time_period,
759
+ :group_by,
760
+ :granularity,
761
+ :filter,
762
+ :next_page_token)
763
+ include Aws::Structure
764
+ end
765
+
766
+ # @!attribute [rw] coverages_by_time
767
+ # The amount of time that your reservations covered.
768
+ # @return [Array<Types::CoverageByTime>]
769
+ #
770
+ # @!attribute [rw] total
771
+ # The total amount of instance usage covered by a reservation.
772
+ # @return [Types::Coverage]
773
+ #
774
+ # @!attribute [rw] next_page_token
775
+ # The token for the next set of retrievable results. AWS provides the
776
+ # token when the response from a previous call has more results than
777
+ # the maximum page size.
778
+ # @return [String]
779
+ #
780
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverageResponse AWS API Documentation
781
+ #
782
+ class GetReservationCoverageResponse < Struct.new(
783
+ :coverages_by_time,
784
+ :total,
785
+ :next_page_token)
786
+ include Aws::Structure
787
+ end
788
+
568
789
  # @note When making an API call, you may pass GetReservationUtilizationRequest
569
790
  # data as a hash:
570
791
  #
@@ -595,7 +816,7 @@ module Aws::CostExplorer
595
816
  # # recursive Expression
596
817
  # },
597
818
  # dimensions: {
598
- # 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
819
+ # 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
599
820
  # values: ["Value"],
600
821
  # },
601
822
  # tags: {
@@ -616,15 +837,14 @@ module Aws::CostExplorer
616
837
  # @return [Types::DateInterval]
617
838
  #
618
839
  # @!attribute [rw] group_by
619
- # Groups only by `SubscriptionId`. Metadata is included.
840
+ # Groups only by `SUBSCRIPTION_ID`. Metadata is included.
620
841
  # @return [Array<Types::GroupDefinition>]
621
842
  #
622
843
  # @!attribute [rw] granularity
623
- # Sets the AWS cost granularity to `MONTHLY` or `DAILY`. If both
624
- # `GroupBy` and `granularity` are not set, `GetReservationUtilization`
625
- # defaults to `DAILY`. If `GroupBy` is set, `Granularity` can't be
626
- # set, and the response object doesn't include `MONTHLY` or `DAILY`
627
- # granularity.
844
+ # If `GroupBy` is set, `Granularity` can't be set. If `Granularity`
845
+ # isn't set, the response object doesn't include the `Granularity`,
846
+ # either `MONTHLY` or `DAILY`. If both `GroupBy` and `Granularity`
847
+ # aren't set, `GetReservationUtilization` defaults to `DAILY`.
628
848
  # @return [String]
629
849
  #
630
850
  # @!attribute [rw] filter
@@ -839,6 +1059,24 @@ module Aws::CostExplorer
839
1059
  include Aws::Structure
840
1060
  end
841
1061
 
1062
+ # A group of reservations that share a set of attributes.
1063
+ #
1064
+ # @!attribute [rw] attributes
1065
+ # The attributes for this group of reservations.
1066
+ # @return [Hash<String,String>]
1067
+ #
1068
+ # @!attribute [rw] coverage
1069
+ # How much instance usage this group of reservations covered.
1070
+ # @return [Types::Coverage]
1071
+ #
1072
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ReservationCoverageGroup AWS API Documentation
1073
+ #
1074
+ class ReservationCoverageGroup < Struct.new(
1075
+ :attributes,
1076
+ :coverage)
1077
+ include Aws::Structure
1078
+ end
1079
+
842
1080
  # A group of RIs that share a set of attributes.
843
1081
  #
844
1082
  # @!attribute [rw] key
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.0.0
4
+ version: 1.1.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: 2017-11-20 00:00:00.000000000 Z
11
+ date: 2018-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core