aws-sdk-costexplorer 1.1.0 → 1.2.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: 4dbabc76e800c52c051795be31b2cef1306b5b24
4
- data.tar.gz: b7baa6c43895ea437fff06172181ecfea24d4653
3
+ metadata.gz: 87fd4ca3923fa05af050f055cd46350ecaee4e56
4
+ data.tar.gz: 922c2e493f0550c59285e6f6a19317bcc1d36942
5
5
  SHA512:
6
- metadata.gz: 0c95854f198f07aa297e95bf3f4da9f6242b30f4240ee1e972dc25b0bcf136c4cb894541bbb1f75f578e8b2b680ae8ec8b376945b7dc20e502a1fa5a954dd2b1
7
- data.tar.gz: 1256232d391c2c2c41f73cc1514fbf41b696ed39bae364146b06143d13f0122332d094bbfe8b248022be16f4e0493fb9a135b9c244e11e2daaac42ba3d4d80fb
6
+ metadata.gz: 9488f467344b8eb01fb3ce1bae4b8324ee6725313b0e7a14dfdad98e6a7df633908b131a95f4f31d0491b0b7a311a1b74144ed304ef3d9794bac5d8851412255
7
+ data.tar.gz: 2d9b78663c7e2b68eea6c2ce794662ce3bc51b5438f35c9fc4c85d61f92072192a421ae05d51a6848ae51d2c1fa9c69e9c1016a7251588404113b57986c6d3c3
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-costexplorer/customizations'
42
42
  # @service
43
43
  module Aws::CostExplorer
44
44
 
45
- GEM_VERSION = '1.1.0'
45
+ GEM_VERSION = '1.2.0'
46
46
 
47
47
  end
@@ -155,13 +155,14 @@ module Aws::CostExplorer
155
155
 
156
156
  # @!group API Operations
157
157
 
158
- # Retrieve cost and usage metrics for your account. You can specify
158
+ # Retrieves 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
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.
162
+ # `AZ`, in a specific time range. For a complete list of valid
163
+ # dimensions, see the ` GetDimensionValues ` operation. Master accounts
164
+ # in an organization in AWS Organizations have access to all member
165
+ # accounts.
165
166
  #
166
167
  # @option params [Types::DateInterval] :time_period
167
168
  # Sets the start and end dates for retrieving AWS costs. The start date
@@ -177,10 +178,10 @@ module Aws::CostExplorer
177
178
  #
178
179
  # @option params [Types::Expression] :filter
179
180
  # Filters AWS costs by different dimensions. For example, you can
180
- # specify `SERVICE` and `LINKED_ACCOUNT` and get the costs associated
181
- # with that account's usage of that service. You can nest `Expression`
182
- # objects to define any combination of dimension filters. For more
183
- # information, see [Expression][1].
181
+ # specify `SERVICE` and `LINKED_ACCOUNT` and get the costs that are
182
+ # associated with that account's usage of that service. You can nest
183
+ # `Expression` objects to define any combination of dimension filters.
184
+ # For more information, see [Expression][1].
184
185
  #
185
186
  #
186
187
  #
@@ -202,6 +203,8 @@ module Aws::CostExplorer
202
203
  #
203
204
  # </note>
204
205
  #
206
+ # `Metrics` is required for `GetCostAndUsage` requests.
207
+ #
205
208
  #
206
209
  #
207
210
  # [1]: https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/
@@ -213,9 +216,9 @@ module Aws::CostExplorer
213
216
  # When you group by tag key, you get all tag values, including empty
214
217
  # strings.
215
218
  #
216
- # Valid values are `AZ`, `INSTANCE_TYPE`, `LINKED_ACCOUNT`, `OPERATION`,
217
- # `PLATFORM`, `PURCHASE_TYPE`, `SERVICE`, `TAGS`, `TENANCY`, and
218
- # `USAGE_TYPE`.
219
+ # Valid values are `AZ`, `INSTANCE_TYPE`, `LEGAL_ENTITY_NAME`,
220
+ # `LINKED_ACCOUNT`, `OPERATION`, `PLATFORM`, `PURCHASE_TYPE`, `SERVICE`,
221
+ # `TAGS`, `TENANCY`, and `USAGE_TYPE`.
219
222
  #
220
223
  # @option params [String] :next_page_token
221
224
  # The token to retrieve the next set of results. AWS provides the token
@@ -298,9 +301,9 @@ module Aws::CostExplorer
298
301
  req.send_request(options)
299
302
  end
300
303
 
301
- # You can use `GetDimensionValues` to retrieve all available filter
302
- # values for a specific filter over a period of time. You can search the
303
- # dimension values for an arbitrary string.
304
+ # Retrieves all available filter values for a specific filter over a
305
+ # period of time. You can search the dimension values for an arbitrary
306
+ # string.
304
307
  #
305
308
  # @option params [String] :search_string
306
309
  # The value that you want to search the filter values for.
@@ -313,7 +316,7 @@ module Aws::CostExplorer
313
316
  # `2017-04-30` but not including `2017-05-01`.
314
317
  #
315
318
  # @option params [required, String] :dimension
316
- # The name of the dimension. Each `Dimensions`is available for different
319
+ # The name of the dimension. Each `Dimension` is available for different
317
320
  # a `Context`. For more information, see `Context`.
318
321
  #
319
322
  # @option params [String] :context
@@ -321,38 +324,39 @@ module Aws::CostExplorer
321
324
  # `RESERVATIONS` or `COST_AND_USAGE`. The default value is
322
325
  # `COST_AND_USAGE`. If the context is set to `RESERVATIONS`, the
323
326
  # resulting dimension values can be used in the
324
- # `GetReservationUtilization` action. If the context is set to
325
- # `COST_AND_USAGE`, the resulting dimension values can be used in the
327
+ # `GetReservationUtilization` operation. If the context is set to
328
+ # `COST_AND_USAGE` the resulting dimension values can be used in the
326
329
  # `GetCostAndUsage` operation.
327
330
  #
328
331
  # If you set the context to `CostAndUsage`, you can use the following
329
332
  # dimensions for searching:
330
333
  #
331
- # * AZ - The Availability Zone. An example is us-east-1a.
334
+ # * AZ - The Availability Zone. An example is `us-east-1a`.
332
335
  #
333
- # * INSTANCE\_TYPE - The type of EC2 instance. An example is m4.xlarge.
336
+ # * INSTANCE\_TYPE - The type of instance. An example is an EC2
337
+ # `m4.xlarge`.
334
338
  #
335
339
  # * LINKED\_ACCOUNT - The description in the attribute map that includes
336
340
  # the full name of the member account. The value field contains the
337
- # AWS ID of the member account
341
+ # AWS ID of the member account.
338
342
  #
339
- # * OPERATION - The action performed. Examples include RunInstance and
340
- # CreateBucket.
343
+ # * OPERATION - The action performed. Examples include `RunInstance` and
344
+ # `CreateBucket`.
341
345
  #
342
346
  # * PURCHASE\_TYPE - The reservation type of the purchase to which this
343
- # usage is related. Examples include: On Demand Instances and Standard
344
- # Reserved Instances
347
+ # usage is related. Examples include On-Demand Instances and Standard
348
+ # Reserved Instances.
345
349
  #
346
350
  # * SERVICE - The AWS service such as DynamoDB.
347
351
  #
348
352
  # * 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.
353
+ # `DataTransfer-In-Bytes`. The response for the `GetDimensionValues`
354
+ # operation includes a unit attribute, examples of which include GB
355
+ # and Hrs.
352
356
  #
353
357
  # * USAGE\_TYPE\_GROUP - The grouping of common usage types. An example
354
- # is EC2: CloudWatch – Alarms. The response for this action includes a
355
- # unit attribute.
358
+ # is EC2: CloudWatch – Alarms. The response for this operation
359
+ # includes a unit attribute.
356
360
  #
357
361
  # * RECORD\_TYPE - The different types of charges such as RI fees, usage
358
362
  # costs, tax refunds, and credits.
@@ -360,20 +364,24 @@ module Aws::CostExplorer
360
364
  # If you set the context to `RESERVATIONS`, you can use the following
361
365
  # dimensions for searching:
362
366
  #
363
- # * AZ - The Availability Zone. An example is us-east-1a.
367
+ # * AZ - The Availability Zone. An example is `us-east-1a`.
364
368
  #
365
- # * INSTANCE\_TYPE - The type of EC2 instance. An example is m4.xlarge.
369
+ # * INSTANCE\_TYPE - The type of instance. An example is an EC2
370
+ # `m4.xlarge`.
366
371
  #
367
372
  # * LINKED\_ACCOUNT - The description in the attribute map that includes
368
373
  # the full name of the member account. The value field contains the
369
- # AWS ID of the member account
374
+ # AWS ID of the member account.
370
375
  #
371
- # * PLATFORM - The operating system. Examples are Windows or Linux.
376
+ # * PLATFORM - The specific combination of operating system, license
377
+ # model, and software on an instance. For example, a Windows instance
378
+ # with SQL Server Web and no license, or a Red Hat Enterprise Linux
379
+ # instance.
372
380
  #
373
- # * REGION - The AWS region.
381
+ # * REGION - The AWS Region.
374
382
  #
375
- # * SCOPE - The scope of a reserved instance (RI). Values are regional
376
- # or a single availability zone.
383
+ # * SCOPE - The scope of a Reserved Instance (RI). Values are regional
384
+ # or a single Availability Zone.
377
385
  #
378
386
  # * TENANCY - The tenancy of a resource. Examples are shared or
379
387
  # dedicated.
@@ -422,10 +430,13 @@ module Aws::CostExplorer
422
430
  req.send_request(options)
423
431
  end
424
432
 
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.
433
+ # Retrieves the reservation coverage for your account. This allows you
434
+ # to see how much of your Amazon Elastic Compute Cloud, Amazon
435
+ # ElastiCache, Amazon Relational Database Service, or Amazon Redshift
436
+ # usage is covered by a reservation. An organization's master account
437
+ # can see the coverage of the associated member accounts. For any time
438
+ # period, you can filter data about reservation usage by the following
439
+ # dimensions:
429
440
  #
430
441
  # * AZ
431
442
  #
@@ -445,14 +456,14 @@ module Aws::CostExplorer
445
456
  # @option params [required, Types::DateInterval] :time_period
446
457
  # The start and end dates of the period for which you want to retrieve
447
458
  # 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
459
+ # of 13 months: the last 12 months and the current month. The start date
449
460
  # is inclusive, but the end date is exclusive. For example, if `start`
450
461
  # is `2017-01-01` and `end` is `2017-05-01`, then the cost and usage
451
462
  # data is retrieved from `2017-01-01` up to and including `2017-04-30`
452
463
  # but not including `2017-05-01`.
453
464
  #
454
465
  # @option params [Array<Types::GroupDefinition>] :group_by
455
- # You can group the data by the following attributes.
466
+ # You can group the data by the following attributes:
456
467
  #
457
468
  # * AZ
458
469
  #
@@ -476,7 +487,7 @@ module Aws::CostExplorer
476
487
  #
477
488
  # @option params [Types::Expression] :filter
478
489
  # Filters utilization data by dimensions. You can filter by the
479
- # following dimensions.
490
+ # following dimensions:
480
491
  #
481
492
  # * AZ
482
493
  #
@@ -490,7 +501,7 @@ module Aws::CostExplorer
490
501
  #
491
502
  # * TENANCY
492
503
  #
493
- # `GetReservationCoverage` uses the same `Expression` object as the
504
+ # `GetReservationCoverage` uses the same ` Expression ` object as the
494
505
  # other operations, but only `AND` is supported among each dimension.
495
506
  # You can nest only one level deep. If there are multiple values for a
496
507
  # dimension, they are OR'd together.
@@ -577,11 +588,139 @@ module Aws::CostExplorer
577
588
  req.send_request(options)
578
589
  end
579
590
 
580
- # You can retrieve the Reservation utilization for your account. Master
581
- # accounts in an organization have access to their associated member
582
- # accounts. You can filter data by dimensions in a time period. You can
583
- # use `GetDimensionValues` to determine the possible dimension values.
584
- # Currently, you can group only by `SUBSCRIPTION_ID`.
591
+ # Gets recommendations for which reservations to purchase. These
592
+ # recommendations could help you reduce your costs. Reservations provide
593
+ # a discounted hourly rate (up to 75%) compared to On-Demand pricing.
594
+ #
595
+ # AWS generates your recommendations by identifying your On-Demand usage
596
+ # during a specific time period and collecting your usage into
597
+ # categories that are eligible for a reservation. After AWS has these
598
+ # categories, it simulates every combination of reservations in each
599
+ # category of usage to identify the best number of each type of RI to
600
+ # purchase to maximize your estimated savings.
601
+ #
602
+ # For example, AWS automatically aggregates your EC2 Linux, shared
603
+ # tenancy, and c4 family usage in the US West (Oregon) Region and
604
+ # recommends that you buy size-flexible regional reservations to apply
605
+ # to the c4 family usage. AWS recommends the smallest size instance in
606
+ # an instance family. This makes it easier to purchase a size-flexible
607
+ # RI. AWS also shows the equal number of normalized units so that you
608
+ # can purchase any instance size that you want. For this example, your
609
+ # RI recommendation would be for `c4.large`, because that is the
610
+ # smallest size instance in the c4 instance family.
611
+ #
612
+ # @option params [String] :account_id
613
+ # The account ID that is associated with the recommendation.
614
+ #
615
+ # @option params [required, String] :service
616
+ # The specific service that you want recommendations for.
617
+ #
618
+ # @option params [String] :account_scope
619
+ # The account scope that you want recommendations for. The only valid
620
+ # value is `Payer`. This means that AWS includes the master account and
621
+ # any member accounts when it calculates its recommendations.
622
+ #
623
+ # @option params [String] :lookback_period_in_days
624
+ # The number of previous days that you want AWS to consider when it
625
+ # calculates your recommendations.
626
+ #
627
+ # @option params [String] :term_in_years
628
+ # The reservation term that you want recommendations for.
629
+ #
630
+ # @option params [String] :payment_option
631
+ # The reservation purchase option that you want recommendations for.
632
+ #
633
+ # @option params [Types::ServiceSpecification] :service_specification
634
+ # The specific service, such as EC2, that you want recommendations for.
635
+ #
636
+ # @option params [Integer] :page_size
637
+ # The number of recommendations that you want returned in a single
638
+ # response object.
639
+ #
640
+ # @option params [String] :next_page_token
641
+ # The pagination token that indicates the next set of results that you
642
+ # want to retrieve.
643
+ #
644
+ # @return [Types::GetReservationPurchaseRecommendationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
645
+ #
646
+ # * {Types::GetReservationPurchaseRecommendationResponse#metadata #metadata} => Types::ReservationPurchaseRecommendationMetadata
647
+ # * {Types::GetReservationPurchaseRecommendationResponse#recommendations #recommendations} => Array&lt;Types::ReservationPurchaseRecommendation&gt;
648
+ # * {Types::GetReservationPurchaseRecommendationResponse#next_page_token #next_page_token} => String
649
+ #
650
+ # @example Request syntax with placeholder values
651
+ #
652
+ # resp = client.get_reservation_purchase_recommendation({
653
+ # account_id: "GenericString",
654
+ # service: "GenericString", # required
655
+ # account_scope: "PAYER", # accepts PAYER
656
+ # lookback_period_in_days: "SEVEN_DAYS", # accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
657
+ # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
658
+ # payment_option: "NO_UPFRONT", # accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT
659
+ # service_specification: {
660
+ # ec2_specification: {
661
+ # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
662
+ # },
663
+ # },
664
+ # page_size: 1,
665
+ # next_page_token: "NextPageToken",
666
+ # })
667
+ #
668
+ # @example Response structure
669
+ #
670
+ # resp.metadata.recommendation_id #=> String
671
+ # resp.metadata.generation_timestamp #=> String
672
+ # resp.recommendations #=> Array
673
+ # resp.recommendations[0].account_scope #=> String, one of "PAYER"
674
+ # resp.recommendations[0].lookback_period_in_days #=> String, one of "SEVEN_DAYS", "THIRTY_DAYS", "SIXTY_DAYS"
675
+ # resp.recommendations[0].term_in_years #=> String, one of "ONE_YEAR", "THREE_YEARS"
676
+ # resp.recommendations[0].payment_option #=> String, one of "NO_UPFRONT", "PARTIAL_UPFRONT", "ALL_UPFRONT"
677
+ # resp.recommendations[0].service_specification.ec2_specification.offering_class #=> String, one of "STANDARD", "CONVERTIBLE"
678
+ # resp.recommendations[0].recommendation_details #=> Array
679
+ # resp.recommendations[0].recommendation_details[0].instance_details.ec2_instance_details.family #=> String
680
+ # resp.recommendations[0].recommendation_details[0].instance_details.ec2_instance_details.instance_type #=> String
681
+ # resp.recommendations[0].recommendation_details[0].instance_details.ec2_instance_details.region #=> String
682
+ # resp.recommendations[0].recommendation_details[0].instance_details.ec2_instance_details.availability_zone #=> String
683
+ # resp.recommendations[0].recommendation_details[0].instance_details.ec2_instance_details.platform #=> String
684
+ # resp.recommendations[0].recommendation_details[0].instance_details.ec2_instance_details.tenancy #=> String
685
+ # resp.recommendations[0].recommendation_details[0].instance_details.ec2_instance_details.current_generation #=> Boolean
686
+ # resp.recommendations[0].recommendation_details[0].instance_details.ec2_instance_details.size_flex_eligible #=> Boolean
687
+ # resp.recommendations[0].recommendation_details[0].recommended_number_of_instances_to_purchase #=> String
688
+ # resp.recommendations[0].recommendation_details[0].recommended_normalized_units_to_purchase #=> String
689
+ # resp.recommendations[0].recommendation_details[0].minimum_number_of_instances_used_per_hour #=> String
690
+ # resp.recommendations[0].recommendation_details[0].minimum_normalized_units_used_per_hour #=> String
691
+ # resp.recommendations[0].recommendation_details[0].maximum_number_of_instances_used_per_hour #=> String
692
+ # resp.recommendations[0].recommendation_details[0].maximum_normalized_units_used_per_hour #=> String
693
+ # resp.recommendations[0].recommendation_details[0].average_number_of_instances_used_per_hour #=> String
694
+ # resp.recommendations[0].recommendation_details[0].average_normalized_units_used_per_hour #=> String
695
+ # resp.recommendations[0].recommendation_details[0].average_utilization #=> String
696
+ # resp.recommendations[0].recommendation_details[0].estimated_break_even_in_months #=> String
697
+ # resp.recommendations[0].recommendation_details[0].currency_code #=> String
698
+ # resp.recommendations[0].recommendation_details[0].estimated_monthly_savings_amount #=> String
699
+ # resp.recommendations[0].recommendation_details[0].estimated_monthly_savings_percentage #=> String
700
+ # resp.recommendations[0].recommendation_details[0].estimated_monthly_on_demand_cost #=> String
701
+ # resp.recommendations[0].recommendation_details[0].estimated_reservation_cost_for_lookback_period #=> String
702
+ # resp.recommendations[0].recommendation_details[0].upfront_cost #=> String
703
+ # resp.recommendations[0].recommendation_details[0].recurring_standard_monthly_cost #=> String
704
+ # resp.recommendations[0].recommendation_summary.total_estimated_monthly_savings_amount #=> String
705
+ # resp.recommendations[0].recommendation_summary.total_estimated_monthly_savings_percentage #=> String
706
+ # resp.recommendations[0].recommendation_summary.currency_code #=> String
707
+ # resp.next_page_token #=> String
708
+ #
709
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation AWS API Documentation
710
+ #
711
+ # @overload get_reservation_purchase_recommendation(params = {})
712
+ # @param [Hash] params ({})
713
+ def get_reservation_purchase_recommendation(params = {}, options = {})
714
+ req = build_request(:get_reservation_purchase_recommendation, params)
715
+ req.send_request(options)
716
+ end
717
+
718
+ # You can retrieve the reservation utilization for your account. Master
719
+ # accounts in an organization in AWS Organizations have access to their
720
+ # associated member accounts. You can filter data by dimensions in a
721
+ # time period. You can use `GetDimensionValues` to determine the
722
+ # possible dimension values. Currently, you can group only by
723
+ # `SUBSCRIPTION_ID`.
585
724
  #
586
725
  # @option params [required, Types::DateInterval] :time_period
587
726
  # Sets the start and end dates for retrieving reserve instance (RI)
@@ -602,10 +741,10 @@ module Aws::CostExplorer
602
741
  #
603
742
  # @option params [Types::Expression] :filter
604
743
  # Filters utilization data by using different dimensions.
605
- # `GetReservationUtilization` uses the same `Expression` object as the
744
+ # `GetReservationUtilization` uses the same ` Expression ` object as the
606
745
  # other operations, but only `AND` is supported among each dimension,
607
- # and nesting is supported up to only one level deep. If there are
608
- # multiple values for a dimension, they are OR'd together.
746
+ # and nesting is supported to only one level deep. If there are multiple
747
+ # values for a dimension, they are OR'd together.
609
748
  #
610
749
  # @option params [String] :next_page_token
611
750
  # The token to retrieve the next set of results. AWS provides the token
@@ -761,7 +900,7 @@ module Aws::CostExplorer
761
900
  params: params,
762
901
  config: config)
763
902
  context[:gem_name] = 'aws-sdk-costexplorer'
764
- context[:gem_version] = '1.1.0'
903
+ context[:gem_version] = '1.2.0'
765
904
  Seahorse::Client::Request.new(handlers, context)
766
905
  end
767
906
 
@@ -11,6 +11,7 @@ module Aws::CostExplorer
11
11
 
12
12
  include Seahorse::Model
13
13
 
14
+ AccountScope = Shapes::StringShape.new(name: 'AccountScope')
14
15
  AttributeType = Shapes::StringShape.new(name: 'AttributeType')
15
16
  AttributeValue = Shapes::StringShape.new(name: 'AttributeValue')
16
17
  Attributes = Shapes::MapShape.new(name: 'Attributes')
@@ -27,17 +28,23 @@ module Aws::CostExplorer
27
28
  DimensionValues = Shapes::StructureShape.new(name: 'DimensionValues')
28
29
  DimensionValuesWithAttributes = Shapes::StructureShape.new(name: 'DimensionValuesWithAttributes')
29
30
  DimensionValuesWithAttributesList = Shapes::ListShape.new(name: 'DimensionValuesWithAttributesList')
31
+ EC2InstanceDetails = Shapes::StructureShape.new(name: 'EC2InstanceDetails')
32
+ EC2Specification = Shapes::StructureShape.new(name: 'EC2Specification')
30
33
  Entity = Shapes::StringShape.new(name: 'Entity')
31
34
  ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
32
35
  Estimated = Shapes::BooleanShape.new(name: 'Estimated')
33
36
  Expression = Shapes::StructureShape.new(name: 'Expression')
34
37
  Expressions = Shapes::ListShape.new(name: 'Expressions')
38
+ GenericBoolean = Shapes::BooleanShape.new(name: 'GenericBoolean')
39
+ GenericString = Shapes::StringShape.new(name: 'GenericString')
35
40
  GetCostAndUsageRequest = Shapes::StructureShape.new(name: 'GetCostAndUsageRequest')
36
41
  GetCostAndUsageResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageResponse')
37
42
  GetDimensionValuesRequest = Shapes::StructureShape.new(name: 'GetDimensionValuesRequest')
38
43
  GetDimensionValuesResponse = Shapes::StructureShape.new(name: 'GetDimensionValuesResponse')
39
44
  GetReservationCoverageRequest = Shapes::StructureShape.new(name: 'GetReservationCoverageRequest')
40
45
  GetReservationCoverageResponse = Shapes::StructureShape.new(name: 'GetReservationCoverageResponse')
46
+ GetReservationPurchaseRecommendationRequest = Shapes::StructureShape.new(name: 'GetReservationPurchaseRecommendationRequest')
47
+ GetReservationPurchaseRecommendationResponse = Shapes::StructureShape.new(name: 'GetReservationPurchaseRecommendationResponse')
41
48
  GetReservationUtilizationRequest = Shapes::StructureShape.new(name: 'GetReservationUtilizationRequest')
42
49
  GetReservationUtilizationResponse = Shapes::StructureShape.new(name: 'GetReservationUtilizationResponse')
43
50
  GetTagsRequest = Shapes::StructureShape.new(name: 'GetTagsRequest')
@@ -49,10 +56,12 @@ module Aws::CostExplorer
49
56
  GroupDefinitionType = Shapes::StringShape.new(name: 'GroupDefinitionType')
50
57
  GroupDefinitions = Shapes::ListShape.new(name: 'GroupDefinitions')
51
58
  Groups = Shapes::ListShape.new(name: 'Groups')
59
+ InstanceDetails = Shapes::StructureShape.new(name: 'InstanceDetails')
52
60
  InvalidNextTokenException = Shapes::StructureShape.new(name: 'InvalidNextTokenException')
53
61
  Key = Shapes::StringShape.new(name: 'Key')
54
62
  Keys = Shapes::ListShape.new(name: 'Keys')
55
63
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
64
+ LookbackPeriodInDays = Shapes::StringShape.new(name: 'LookbackPeriodInDays')
56
65
  MetricAmount = Shapes::StringShape.new(name: 'MetricAmount')
57
66
  MetricName = Shapes::StringShape.new(name: 'MetricName')
58
67
  MetricNames = Shapes::ListShape.new(name: 'MetricNames')
@@ -60,23 +69,34 @@ module Aws::CostExplorer
60
69
  MetricValue = Shapes::StructureShape.new(name: 'MetricValue')
61
70
  Metrics = Shapes::MapShape.new(name: 'Metrics')
62
71
  NextPageToken = Shapes::StringShape.new(name: 'NextPageToken')
72
+ NonNegativeInteger = Shapes::IntegerShape.new(name: 'NonNegativeInteger')
73
+ OfferingClass = Shapes::StringShape.new(name: 'OfferingClass')
63
74
  OnDemandHours = Shapes::StringShape.new(name: 'OnDemandHours')
64
75
  PageSize = Shapes::IntegerShape.new(name: 'PageSize')
76
+ PaymentOption = Shapes::StringShape.new(name: 'PaymentOption')
65
77
  PurchasedHours = Shapes::StringShape.new(name: 'PurchasedHours')
66
78
  ReservationAggregates = Shapes::StructureShape.new(name: 'ReservationAggregates')
67
79
  ReservationCoverageGroup = Shapes::StructureShape.new(name: 'ReservationCoverageGroup')
68
80
  ReservationCoverageGroups = Shapes::ListShape.new(name: 'ReservationCoverageGroups')
69
81
  ReservationGroupKey = Shapes::StringShape.new(name: 'ReservationGroupKey')
70
82
  ReservationGroupValue = Shapes::StringShape.new(name: 'ReservationGroupValue')
83
+ ReservationPurchaseRecommendation = Shapes::StructureShape.new(name: 'ReservationPurchaseRecommendation')
84
+ ReservationPurchaseRecommendationDetail = Shapes::StructureShape.new(name: 'ReservationPurchaseRecommendationDetail')
85
+ ReservationPurchaseRecommendationDetails = Shapes::ListShape.new(name: 'ReservationPurchaseRecommendationDetails')
86
+ ReservationPurchaseRecommendationMetadata = Shapes::StructureShape.new(name: 'ReservationPurchaseRecommendationMetadata')
87
+ ReservationPurchaseRecommendationSummary = Shapes::StructureShape.new(name: 'ReservationPurchaseRecommendationSummary')
88
+ ReservationPurchaseRecommendations = Shapes::ListShape.new(name: 'ReservationPurchaseRecommendations')
71
89
  ReservationUtilizationGroup = Shapes::StructureShape.new(name: 'ReservationUtilizationGroup')
72
90
  ReservationUtilizationGroups = Shapes::ListShape.new(name: 'ReservationUtilizationGroups')
73
91
  ReservedHours = Shapes::StringShape.new(name: 'ReservedHours')
74
92
  ResultByTime = Shapes::StructureShape.new(name: 'ResultByTime')
75
93
  ResultsByTime = Shapes::ListShape.new(name: 'ResultsByTime')
76
94
  SearchString = Shapes::StringShape.new(name: 'SearchString')
95
+ ServiceSpecification = Shapes::StructureShape.new(name: 'ServiceSpecification')
77
96
  TagKey = Shapes::StringShape.new(name: 'TagKey')
78
97
  TagList = Shapes::ListShape.new(name: 'TagList')
79
98
  TagValues = Shapes::StructureShape.new(name: 'TagValues')
99
+ TermInYears = Shapes::StringShape.new(name: 'TermInYears')
80
100
  TotalActualHours = Shapes::StringShape.new(name: 'TotalActualHours')
81
101
  TotalRunningHours = Shapes::StringShape.new(name: 'TotalRunningHours')
82
102
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
@@ -120,6 +140,19 @@ module Aws::CostExplorer
120
140
 
121
141
  DimensionValuesWithAttributesList.member = Shapes::ShapeRef.new(shape: DimensionValuesWithAttributes)
122
142
 
143
+ EC2InstanceDetails.add_member(:family, Shapes::ShapeRef.new(shape: GenericString, location_name: "Family"))
144
+ EC2InstanceDetails.add_member(:instance_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceType"))
145
+ EC2InstanceDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
146
+ EC2InstanceDetails.add_member(:availability_zone, Shapes::ShapeRef.new(shape: GenericString, location_name: "AvailabilityZone"))
147
+ EC2InstanceDetails.add_member(:platform, Shapes::ShapeRef.new(shape: GenericString, location_name: "Platform"))
148
+ EC2InstanceDetails.add_member(:tenancy, Shapes::ShapeRef.new(shape: GenericString, location_name: "Tenancy"))
149
+ EC2InstanceDetails.add_member(:current_generation, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "CurrentGeneration"))
150
+ EC2InstanceDetails.add_member(:size_flex_eligible, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "SizeFlexEligible"))
151
+ EC2InstanceDetails.struct_class = Types::EC2InstanceDetails
152
+
153
+ EC2Specification.add_member(:offering_class, Shapes::ShapeRef.new(shape: OfferingClass, location_name: "OfferingClass"))
154
+ EC2Specification.struct_class = Types::EC2Specification
155
+
123
156
  Expression.add_member(:or, Shapes::ShapeRef.new(shape: Expressions, location_name: "Or"))
124
157
  Expression.add_member(:and, Shapes::ShapeRef.new(shape: Expressions, location_name: "And"))
125
158
  Expression.add_member(:not, Shapes::ShapeRef.new(shape: Expression, location_name: "Not"))
@@ -167,6 +200,22 @@ module Aws::CostExplorer
167
200
  GetReservationCoverageResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
168
201
  GetReservationCoverageResponse.struct_class = Types::GetReservationCoverageResponse
169
202
 
203
+ GetReservationPurchaseRecommendationRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
204
+ GetReservationPurchaseRecommendationRequest.add_member(:service, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "Service"))
205
+ GetReservationPurchaseRecommendationRequest.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
206
+ GetReservationPurchaseRecommendationRequest.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
207
+ GetReservationPurchaseRecommendationRequest.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
208
+ GetReservationPurchaseRecommendationRequest.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "PaymentOption"))
209
+ GetReservationPurchaseRecommendationRequest.add_member(:service_specification, Shapes::ShapeRef.new(shape: ServiceSpecification, location_name: "ServiceSpecification"))
210
+ GetReservationPurchaseRecommendationRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: NonNegativeInteger, location_name: "PageSize"))
211
+ GetReservationPurchaseRecommendationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
212
+ GetReservationPurchaseRecommendationRequest.struct_class = Types::GetReservationPurchaseRecommendationRequest
213
+
214
+ GetReservationPurchaseRecommendationResponse.add_member(:metadata, Shapes::ShapeRef.new(shape: ReservationPurchaseRecommendationMetadata, location_name: "Metadata"))
215
+ GetReservationPurchaseRecommendationResponse.add_member(:recommendations, Shapes::ShapeRef.new(shape: ReservationPurchaseRecommendations, location_name: "Recommendations"))
216
+ GetReservationPurchaseRecommendationResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
217
+ GetReservationPurchaseRecommendationResponse.struct_class = Types::GetReservationPurchaseRecommendationResponse
218
+
170
219
  GetReservationUtilizationRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
171
220
  GetReservationUtilizationRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
172
221
  GetReservationUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
@@ -203,6 +252,9 @@ module Aws::CostExplorer
203
252
 
204
253
  Groups.member = Shapes::ShapeRef.new(shape: Group)
205
254
 
255
+ InstanceDetails.add_member(:ec2_instance_details, Shapes::ShapeRef.new(shape: EC2InstanceDetails, location_name: "EC2InstanceDetails"))
256
+ InstanceDetails.struct_class = Types::InstanceDetails
257
+
206
258
  Keys.member = Shapes::ShapeRef.new(shape: Key)
207
259
 
208
260
  MetricNames.member = Shapes::ShapeRef.new(shape: MetricName)
@@ -226,6 +278,48 @@ module Aws::CostExplorer
226
278
 
227
279
  ReservationCoverageGroups.member = Shapes::ShapeRef.new(shape: ReservationCoverageGroup)
228
280
 
281
+ ReservationPurchaseRecommendation.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
282
+ ReservationPurchaseRecommendation.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
283
+ ReservationPurchaseRecommendation.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
284
+ ReservationPurchaseRecommendation.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "PaymentOption"))
285
+ ReservationPurchaseRecommendation.add_member(:service_specification, Shapes::ShapeRef.new(shape: ServiceSpecification, location_name: "ServiceSpecification"))
286
+ ReservationPurchaseRecommendation.add_member(:recommendation_details, Shapes::ShapeRef.new(shape: ReservationPurchaseRecommendationDetails, location_name: "RecommendationDetails"))
287
+ ReservationPurchaseRecommendation.add_member(:recommendation_summary, Shapes::ShapeRef.new(shape: ReservationPurchaseRecommendationSummary, location_name: "RecommendationSummary"))
288
+ ReservationPurchaseRecommendation.struct_class = Types::ReservationPurchaseRecommendation
289
+
290
+ ReservationPurchaseRecommendationDetail.add_member(:instance_details, Shapes::ShapeRef.new(shape: InstanceDetails, location_name: "InstanceDetails"))
291
+ ReservationPurchaseRecommendationDetail.add_member(:recommended_number_of_instances_to_purchase, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendedNumberOfInstancesToPurchase"))
292
+ ReservationPurchaseRecommendationDetail.add_member(:recommended_normalized_units_to_purchase, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendedNormalizedUnitsToPurchase"))
293
+ ReservationPurchaseRecommendationDetail.add_member(:minimum_number_of_instances_used_per_hour, Shapes::ShapeRef.new(shape: GenericString, location_name: "MinimumNumberOfInstancesUsedPerHour"))
294
+ ReservationPurchaseRecommendationDetail.add_member(:minimum_normalized_units_used_per_hour, Shapes::ShapeRef.new(shape: GenericString, location_name: "MinimumNormalizedUnitsUsedPerHour"))
295
+ ReservationPurchaseRecommendationDetail.add_member(:maximum_number_of_instances_used_per_hour, Shapes::ShapeRef.new(shape: GenericString, location_name: "MaximumNumberOfInstancesUsedPerHour"))
296
+ ReservationPurchaseRecommendationDetail.add_member(:maximum_normalized_units_used_per_hour, Shapes::ShapeRef.new(shape: GenericString, location_name: "MaximumNormalizedUnitsUsedPerHour"))
297
+ ReservationPurchaseRecommendationDetail.add_member(:average_number_of_instances_used_per_hour, Shapes::ShapeRef.new(shape: GenericString, location_name: "AverageNumberOfInstancesUsedPerHour"))
298
+ ReservationPurchaseRecommendationDetail.add_member(:average_normalized_units_used_per_hour, Shapes::ShapeRef.new(shape: GenericString, location_name: "AverageNormalizedUnitsUsedPerHour"))
299
+ ReservationPurchaseRecommendationDetail.add_member(:average_utilization, Shapes::ShapeRef.new(shape: GenericString, location_name: "AverageUtilization"))
300
+ ReservationPurchaseRecommendationDetail.add_member(:estimated_break_even_in_months, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedBreakEvenInMonths"))
301
+ ReservationPurchaseRecommendationDetail.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
302
+ ReservationPurchaseRecommendationDetail.add_member(:estimated_monthly_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavingsAmount"))
303
+ ReservationPurchaseRecommendationDetail.add_member(:estimated_monthly_savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavingsPercentage"))
304
+ ReservationPurchaseRecommendationDetail.add_member(:estimated_monthly_on_demand_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlyOnDemandCost"))
305
+ ReservationPurchaseRecommendationDetail.add_member(:estimated_reservation_cost_for_lookback_period, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedReservationCostForLookbackPeriod"))
306
+ ReservationPurchaseRecommendationDetail.add_member(:upfront_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "UpfrontCost"))
307
+ ReservationPurchaseRecommendationDetail.add_member(:recurring_standard_monthly_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecurringStandardMonthlyCost"))
308
+ ReservationPurchaseRecommendationDetail.struct_class = Types::ReservationPurchaseRecommendationDetail
309
+
310
+ ReservationPurchaseRecommendationDetails.member = Shapes::ShapeRef.new(shape: ReservationPurchaseRecommendationDetail)
311
+
312
+ ReservationPurchaseRecommendationMetadata.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendationId"))
313
+ ReservationPurchaseRecommendationMetadata.add_member(:generation_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "GenerationTimestamp"))
314
+ ReservationPurchaseRecommendationMetadata.struct_class = Types::ReservationPurchaseRecommendationMetadata
315
+
316
+ ReservationPurchaseRecommendationSummary.add_member(:total_estimated_monthly_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalEstimatedMonthlySavingsAmount"))
317
+ ReservationPurchaseRecommendationSummary.add_member(:total_estimated_monthly_savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalEstimatedMonthlySavingsPercentage"))
318
+ ReservationPurchaseRecommendationSummary.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
319
+ ReservationPurchaseRecommendationSummary.struct_class = Types::ReservationPurchaseRecommendationSummary
320
+
321
+ ReservationPurchaseRecommendations.member = Shapes::ShapeRef.new(shape: ReservationPurchaseRecommendation)
322
+
229
323
  ReservationUtilizationGroup.add_member(:key, Shapes::ShapeRef.new(shape: ReservationGroupKey, location_name: "Key"))
230
324
  ReservationUtilizationGroup.add_member(:value, Shapes::ShapeRef.new(shape: ReservationGroupValue, location_name: "Value"))
231
325
  ReservationUtilizationGroup.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
@@ -242,6 +336,9 @@ module Aws::CostExplorer
242
336
 
243
337
  ResultsByTime.member = Shapes::ShapeRef.new(shape: ResultByTime)
244
338
 
339
+ ServiceSpecification.add_member(:ec2_specification, Shapes::ShapeRef.new(shape: EC2Specification, location_name: "EC2Specification"))
340
+ ServiceSpecification.struct_class = Types::ServiceSpecification
341
+
245
342
  TagList.member = Shapes::ShapeRef.new(shape: Entity)
246
343
 
247
344
  TagValues.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, location_name: "Key"))
@@ -307,6 +404,17 @@ module Aws::CostExplorer
307
404
  o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
308
405
  end)
309
406
 
407
+ api.add_operation(:get_reservation_purchase_recommendation, Seahorse::Model::Operation.new.tap do |o|
408
+ o.name = "GetReservationPurchaseRecommendation"
409
+ o.http_method = "POST"
410
+ o.http_request_uri = "/"
411
+ o.input = Shapes::ShapeRef.new(shape: GetReservationPurchaseRecommendationRequest)
412
+ o.output = Shapes::ShapeRef.new(shape: GetReservationPurchaseRecommendationResponse)
413
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
414
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
415
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
416
+ end)
417
+
310
418
  api.add_operation(:get_reservation_utilization, Seahorse::Model::Operation.new.tap do |o|
311
419
  o.name = "GetReservationUtilization"
312
420
  o.http_method = "POST"