aws-sdk-costexplorer 1.0.0 → 1.1.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: 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