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.
@@ -21,14 +21,14 @@ module Aws::CostExplorer
21
21
  include Aws::Structure
22
22
  end
23
23
 
24
- # Reservation coverage, in hours.
24
+ # Reservation coverage for a specified period, in hours.
25
25
  #
26
26
  # @!attribute [rw] time_period
27
27
  # The period over which this coverage was used.
28
28
  # @return [Types::DateInterval]
29
29
  #
30
30
  # @!attribute [rw] groups
31
- # The group of instances that a reservation covered.
31
+ # The groups of instances that are covered by a reservation.
32
32
  # @return [Array<Types::ReservationCoverageGroup>]
33
33
  #
34
34
  # @!attribute [rw] total
@@ -48,11 +48,13 @@ module Aws::CostExplorer
48
48
  # On-Demand.
49
49
  #
50
50
  # @!attribute [rw] on_demand_hours
51
- # The number of instance running hours covered by On-Demand Instances.
51
+ # The number of instance running hours that are covered by On-Demand
52
+ # Instances.
52
53
  # @return [String]
53
54
  #
54
55
  # @!attribute [rw] reserved_hours
55
- # The number of instance running hours covered by reservations.
56
+ # The number of instance running hours that are covered by
57
+ # reservations.
56
58
  # @return [String]
57
59
  #
58
60
  # @!attribute [rw] total_running_hours
@@ -60,7 +62,7 @@ module Aws::CostExplorer
60
62
  # @return [String]
61
63
  #
62
64
  # @!attribute [rw] coverage_hours_percentage
63
- # The percentage of instance hours covered by a reservation.
65
+ # The percentage of instance hours that are covered by a reservation.
64
66
  # @return [String]
65
67
  #
66
68
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CoverageHours AWS API Documentation
@@ -86,15 +88,15 @@ module Aws::CostExplorer
86
88
  # @!attribute [rw] start
87
89
  # The beginning of the time period that you want the usage and costs
88
90
  # for. The start date is inclusive. For example, if `start` is
89
- # `2017-01-01`, then the cost and usage data is retrieved starting at
91
+ # `2017-01-01`, AWS retrieves cost and usage data starting at
90
92
  # `2017-01-01` up to the end date.
91
93
  # @return [String]
92
94
  #
93
95
  # @!attribute [rw] end
94
96
  # The end of the time period that you want the usage and costs for.
95
- # The end date is exclusive. For example, if the `end` is
96
- # `2017-05-01`, then the cost and usage data is retrieved from the
97
- # start date but not including `2017-05-01`.
97
+ # The end date is exclusive. For example, if `end` is `2017-05-01`,
98
+ # AWS retrieves cost and usage data from the start date up to, but not
99
+ # including, `2017-05-01`.
98
100
  # @return [String]
99
101
  #
100
102
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DateInterval AWS API Documentation
@@ -155,13 +157,85 @@ module Aws::CostExplorer
155
157
  include Aws::Structure
156
158
  end
157
159
 
160
+ # Details about the EC2 instances that AWS recommends that you purchase.
161
+ #
162
+ # @!attribute [rw] family
163
+ # The instance family of the recommended reservation.
164
+ # @return [String]
165
+ #
166
+ # @!attribute [rw] instance_type
167
+ # The type of instance that AWS recommends.
168
+ # @return [String]
169
+ #
170
+ # @!attribute [rw] region
171
+ # The AWS Region of the recommended reservation.
172
+ # @return [String]
173
+ #
174
+ # @!attribute [rw] availability_zone
175
+ # The Availability Zone of the recommended reservation.
176
+ # @return [String]
177
+ #
178
+ # @!attribute [rw] platform
179
+ # The platform of the recommended reservation. The platform is the
180
+ # specific combination of operating system, license model, and
181
+ # software on an instance.
182
+ # @return [String]
183
+ #
184
+ # @!attribute [rw] tenancy
185
+ # Whether the recommended reservation is dedicated or shared.
186
+ # @return [String]
187
+ #
188
+ # @!attribute [rw] current_generation
189
+ # Whether the recommendation is for a current generation instance.
190
+ # @return [Boolean]
191
+ #
192
+ # @!attribute [rw] size_flex_eligible
193
+ # Whether the recommended reservation is size flexible.
194
+ # @return [Boolean]
195
+ #
196
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/EC2InstanceDetails AWS API Documentation
197
+ #
198
+ class EC2InstanceDetails < Struct.new(
199
+ :family,
200
+ :instance_type,
201
+ :region,
202
+ :availability_zone,
203
+ :platform,
204
+ :tenancy,
205
+ :current_generation,
206
+ :size_flex_eligible)
207
+ include Aws::Structure
208
+ end
209
+
210
+ # The EC2 hardware specifications that you want AWS to provide
211
+ # recommendations for.
212
+ #
213
+ # @note When making an API call, you may pass EC2Specification
214
+ # data as a hash:
215
+ #
216
+ # {
217
+ # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
218
+ # }
219
+ #
220
+ # @!attribute [rw] offering_class
221
+ # Whether you want a recommendation for standard or convertible
222
+ # reservations.
223
+ # @return [String]
224
+ #
225
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/EC2Specification AWS API Documentation
226
+ #
227
+ class EC2Specification < Struct.new(
228
+ :offering_class)
229
+ include Aws::Structure
230
+ end
231
+
158
232
  # Use `Expression` to filter by cost or by usage. There are two
159
233
  # patterns:
160
234
  #
161
235
  # * Simple dimension values - You can set the dimension name and values
162
236
  # for the filters that you plan to use. For example, you can filter
163
237
  # for `INSTANCE_TYPE==m4.xlarge OR INSTANCE_TYPE==c4.large`. The
164
- # `Expression` for that looks like this.
238
+ # `Expression` for that looks like this:
165
239
  #
166
240
  # `\{ "Dimensions": \{ "Key": "INSTANCE_TYPE", "Values": [
167
241
  # "m4.xlarge", “c4.large” ] \} \}`
@@ -177,7 +251,7 @@ module Aws::CostExplorer
177
251
  # you to filter on more advanced options. For example, you can filter
178
252
  # on `((INSTANCE_TYPE == m4.large OR INSTANCE_TYPE == m3.large) OR
179
253
  # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
180
- # `Expression` for that looks like this.
254
+ # `Expression` for that looks like this:
181
255
  #
182
256
  # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "INSTANCE_TYPE",
183
257
  # "Values": [ "m4.x.large", "c4.large" ] \}\}, \{"Tag": \{ "Key":
@@ -186,7 +260,7 @@ module Aws::CostExplorer
186
260
  #
187
261
  # <note markdown="1"> Because each `Expression` can have only one operator, the service
188
262
  # returns an error if more than one is specified. The following
189
- # example shows an Expression object that will create an error.
263
+ # example shows an `Expression` object that creates an error.
190
264
  #
191
265
  # </note>
192
266
  #
@@ -273,7 +347,7 @@ module Aws::CostExplorer
273
347
  # }
274
348
  #
275
349
  # @!attribute [rw] or
276
- # Return results that match either `Dimension`.
350
+ # Return results that match either `Dimension` object.
277
351
  # @return [Array<Types::Expression>]
278
352
  #
279
353
  # @!attribute [rw] and
@@ -281,7 +355,7 @@ module Aws::CostExplorer
281
355
  # @return [Array<Types::Expression>]
282
356
  #
283
357
  # @!attribute [rw] not
284
- # Return results that don't match `Dimension`.
358
+ # Return results that don't match a `Dimension` object.
285
359
  # @return [Types::Expression]
286
360
  #
287
361
  # @!attribute [rw] dimensions
@@ -361,8 +435,8 @@ module Aws::CostExplorer
361
435
  #
362
436
  # @!attribute [rw] filter
363
437
  # Filters AWS costs by different dimensions. For example, you can
364
- # specify `SERVICE` and `LINKED_ACCOUNT` and get the costs associated
365
- # with that account's usage of that service. You can nest
438
+ # specify `SERVICE` and `LINKED_ACCOUNT` and get the costs that are
439
+ # associated with that account's usage of that service. You can nest
366
440
  # `Expression` objects to define any combination of dimension filters.
367
441
  # For more information, see [Expression][1].
368
442
  #
@@ -389,6 +463,8 @@ module Aws::CostExplorer
389
463
  #
390
464
  # </note>
391
465
  #
466
+ # `Metrics` is required for `GetCostAndUsage` requests.
467
+ #
392
468
  #
393
469
  #
394
470
  # [1]: https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/
@@ -401,9 +477,9 @@ module Aws::CostExplorer
401
477
  # When you group by tag key, you get all tag values, including empty
402
478
  # strings.
403
479
  #
404
- # Valid values are `AZ`, `INSTANCE_TYPE`, `LINKED_ACCOUNT`,
405
- # `OPERATION`, `PLATFORM`, `PURCHASE_TYPE`, `SERVICE`, `TAGS`,
406
- # `TENANCY`, and `USAGE_TYPE`.
480
+ # Valid values are `AZ`, `INSTANCE_TYPE`, `LEGAL_ENTITY_NAME`,
481
+ # `LINKED_ACCOUNT`, `OPERATION`, `PLATFORM`, `PURCHASE_TYPE`,
482
+ # `SERVICE`, `TAGS`, `TENANCY`, and `USAGE_TYPE`.
407
483
  # @return [Array<Types::GroupDefinition>]
408
484
  #
409
485
  # @!attribute [rw] next_page_token
@@ -431,12 +507,12 @@ module Aws::CostExplorer
431
507
  # @return [String]
432
508
  #
433
509
  # @!attribute [rw] group_definitions
434
- # The groups specified by the the `Filter` or `GroupBy` parameters in
435
- # the request.
510
+ # The groups that are specified by the `Filter` or `GroupBy`
511
+ # parameters in the request.
436
512
  # @return [Array<Types::GroupDefinition>]
437
513
  #
438
514
  # @!attribute [rw] results_by_time
439
- # The time period covered by the results in the response.
515
+ # The time period that is covered by the results in the response.
440
516
  # @return [Array<Types::ResultByTime>]
441
517
  #
442
518
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageResponse AWS API Documentation
@@ -475,7 +551,7 @@ module Aws::CostExplorer
475
551
  # @return [Types::DateInterval]
476
552
  #
477
553
  # @!attribute [rw] dimension
478
- # The name of the dimension. Each `Dimensions`is available for
554
+ # The name of the dimension. Each `Dimension` is available for
479
555
  # different a `Context`. For more information, see `Context`.
480
556
  # @return [String]
481
557
  #
@@ -484,39 +560,39 @@ module Aws::CostExplorer
484
560
  # `RESERVATIONS` or `COST_AND_USAGE`. The default value is
485
561
  # `COST_AND_USAGE`. If the context is set to `RESERVATIONS`, the
486
562
  # resulting dimension values can be used in the
487
- # `GetReservationUtilization` action. If the context is set to
488
- # `COST_AND_USAGE`, the resulting dimension values can be used in the
563
+ # `GetReservationUtilization` operation. If the context is set to
564
+ # `COST_AND_USAGE` the resulting dimension values can be used in the
489
565
  # `GetCostAndUsage` operation.
490
566
  #
491
567
  # If you set the context to `CostAndUsage`, you can use the following
492
568
  # dimensions for searching:
493
569
  #
494
- # * AZ - The Availability Zone. An example is us-east-1a.
570
+ # * AZ - The Availability Zone. An example is `us-east-1a`.
495
571
  #
496
- # * INSTANCE\_TYPE - The type of EC2 instance. An example is
497
- # m4.xlarge.
572
+ # * INSTANCE\_TYPE - The type of instance. An example is an EC2
573
+ # `m4.xlarge`.
498
574
  #
499
575
  # * LINKED\_ACCOUNT - The description in the attribute map that
500
576
  # includes the full name of the member account. The value field
501
- # contains the AWS ID of the member account
577
+ # contains the AWS ID of the member account.
502
578
  #
503
- # * OPERATION - The action performed. Examples include RunInstance and
504
- # CreateBucket.
579
+ # * OPERATION - The action performed. Examples include `RunInstance`
580
+ # and `CreateBucket`.
505
581
  #
506
582
  # * PURCHASE\_TYPE - The reservation type of the purchase to which
507
- # this usage is related. Examples include: On Demand Instances and
508
- # Standard Reserved Instances
583
+ # this usage is related. Examples include On-Demand Instances and
584
+ # Standard Reserved Instances.
509
585
  #
510
586
  # * SERVICE - The AWS service such as DynamoDB.
511
587
  #
512
588
  # * 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.
589
+ # `DataTransfer-In-Bytes`. The response for the `GetDimensionValues`
590
+ # operation includes a unit attribute, examples of which include GB
591
+ # and Hrs.
516
592
  #
517
593
  # * 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.
594
+ # example is EC2: CloudWatch – Alarms. The response for this
595
+ # operation includes a unit attribute.
520
596
  #
521
597
  # * RECORD\_TYPE - The different types of charges such as RI fees,
522
598
  # usage costs, tax refunds, and credits.
@@ -524,21 +600,24 @@ module Aws::CostExplorer
524
600
  # If you set the context to `RESERVATIONS`, you can use the following
525
601
  # dimensions for searching:
526
602
  #
527
- # * AZ - The Availability Zone. An example is us-east-1a.
603
+ # * AZ - The Availability Zone. An example is `us-east-1a`.
528
604
  #
529
- # * INSTANCE\_TYPE - The type of EC2 instance. An example is
530
- # m4.xlarge.
605
+ # * INSTANCE\_TYPE - The type of instance. An example is an EC2
606
+ # `m4.xlarge`.
531
607
  #
532
608
  # * LINKED\_ACCOUNT - The description in the attribute map that
533
609
  # includes the full name of the member account. The value field
534
- # contains the AWS ID of the member account
610
+ # contains the AWS ID of the member account.
535
611
  #
536
- # * PLATFORM - The operating system. Examples are Windows or Linux.
612
+ # * PLATFORM - The specific combination of operating system, license
613
+ # model, and software on an instance. For example, a Windows
614
+ # instance with SQL Server Web and no license, or a Red Hat
615
+ # Enterprise Linux instance.
537
616
  #
538
- # * REGION - The AWS region.
617
+ # * REGION - The AWS Region.
539
618
  #
540
- # * SCOPE - The scope of a reserved instance (RI). Values are regional
541
- # or a single availability zone.
619
+ # * SCOPE - The scope of a Reserved Instance (RI). Values are regional
620
+ # or a single Availability Zone.
542
621
  #
543
622
  # * TENANCY - The tenancy of a resource. Examples are shared or
544
623
  # dedicated.
@@ -568,32 +647,32 @@ module Aws::CostExplorer
568
647
  # If you set the context to `CostAndUsage`, you can use the following
569
648
  # dimensions for searching:
570
649
  #
571
- # * AZ - The Availability Zone. An example is us-east-1a.
650
+ # * AZ - The Availability Zone. An example is `us-east-1a`.
572
651
  #
573
- # * INSTANCE\_TYPE - The type of EC2 instance. An example is
574
- # m4.xlarge.
652
+ # * INSTANCE\_TYPE - The type of instance. An example is an EC2
653
+ # `m4.xlarge`.
575
654
  #
576
655
  # * LINKED\_ACCOUNT - The description in the attribute map that
577
656
  # includes the full name of the member account. The value field
578
- # contains the AWS ID of the member account
657
+ # contains the AWS ID of the member account.
579
658
  #
580
- # * OPERATION - The action performed. Examples include RunInstance and
581
- # CreateBucket.
659
+ # * OPERATION - The action performed. Examples include `RunInstance`
660
+ # and `CreateBucket`.
582
661
  #
583
662
  # * PURCHASE\_TYPE - The reservation type of the purchase to which
584
- # this usage is related. Examples include: On Demand Instances and
585
- # Standard Reserved Instances
663
+ # this usage is related. Examples include On-Demand Instances and
664
+ # Standard Reserved Instances.
586
665
  #
587
666
  # * SERVICE - The AWS service such as DynamoDB.
588
667
  #
589
668
  # * 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.
669
+ # `DataTransfer-In-Bytes`. The response for the `GetDimensionValues`
670
+ # operation includes a unit attribute, examples of which include GB
671
+ # and Hrs.
593
672
  #
594
673
  # * 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.
674
+ # example is EC2: CloudWatch – Alarms. The response for this
675
+ # operation includes a unit attribute.
597
676
  #
598
677
  # * RECORD\_TYPE - The different types of charges such as RI fees,
599
678
  # usage costs, tax refunds, and credits.
@@ -601,21 +680,24 @@ module Aws::CostExplorer
601
680
  # If you set the context to `RESERVATIONS`, you can use the following
602
681
  # dimensions for searching:
603
682
  #
604
- # * AZ - The Availability Zone. An example is us-east-1a.
683
+ # * AZ - The Availability Zone. An example is `us-east-1a`.
605
684
  #
606
- # * INSTANCE\_TYPE - The type of EC2 instance. An example is
607
- # m4.xlarge.
685
+ # * INSTANCE\_TYPE - The type of instance. An example is an EC2
686
+ # `m4.xlarge`.
608
687
  #
609
688
  # * LINKED\_ACCOUNT - The description in the attribute map that
610
689
  # includes the full name of the member account. The value field
611
- # contains the AWS ID of the member account
690
+ # contains the AWS ID of the member account.
612
691
  #
613
- # * PLATFORM - The operating system. Examples are Windows or Linux.
692
+ # * PLATFORM - The specific combination of operating system, license
693
+ # model, and software on an instance. For example, a Windows
694
+ # instance with SQL Server Web and no license, or a Red Hat
695
+ # Enterprise Linux instance.
614
696
  #
615
- # * REGION - The AWS region.
697
+ # * REGION - The AWS Region.
616
698
  #
617
- # * SCOPE - The scope of a reserved instance (RI). Values are regional
618
- # or a single availability zone.
699
+ # * SCOPE - The scope of a Reserved Instance (RI). Values are regional
700
+ # or a single Availability Zone.
619
701
  #
620
702
  # * TENANCY - The tenancy of a resource. Examples are shared or
621
703
  # dedicated.
@@ -645,8 +727,8 @@ module Aws::CostExplorer
645
727
  include Aws::Structure
646
728
  end
647
729
 
648
- # You can query for how much of your instance usage was covered by a
649
- # reservation.
730
+ # You can use the following request parameters to query for how much of
731
+ # your instance usage is covered by a reservation.
650
732
  #
651
733
  # @note When making an API call, you may pass GetReservationCoverageRequest
652
734
  # data as a hash:
@@ -692,7 +774,7 @@ module Aws::CostExplorer
692
774
  # @!attribute [rw] time_period
693
775
  # The start and end dates of the period for which you want to retrieve
694
776
  # 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
777
+ # of 13 months: the last 12 months and the current month. The start
696
778
  # date is inclusive, but the end date is exclusive. For example, if
697
779
  # `start` is `2017-01-01` and `end` is `2017-05-01`, then the cost and
698
780
  # usage data is retrieved from `2017-01-01` up to and including
@@ -700,7 +782,7 @@ module Aws::CostExplorer
700
782
  # @return [Types::DateInterval]
701
783
  #
702
784
  # @!attribute [rw] group_by
703
- # You can group the data by the following attributes.
785
+ # You can group the data by the following attributes:
704
786
  #
705
787
  # * AZ
706
788
  #
@@ -726,7 +808,7 @@ module Aws::CostExplorer
726
808
  #
727
809
  # @!attribute [rw] filter
728
810
  # Filters utilization data by dimensions. You can filter by the
729
- # following dimensions.
811
+ # following dimensions:
730
812
  #
731
813
  # * AZ
732
814
  #
@@ -740,7 +822,7 @@ module Aws::CostExplorer
740
822
  #
741
823
  # * TENANCY
742
824
  #
743
- # `GetReservationCoverage` uses the same `Expression` object as the
825
+ # `GetReservationCoverage` uses the same ` Expression ` object as the
744
826
  # other operations, but only `AND` is supported among each dimension.
745
827
  # You can nest only one level deep. If there are multiple values for a
746
828
  # dimension, they are OR'd together.
@@ -768,7 +850,7 @@ module Aws::CostExplorer
768
850
  # @return [Array<Types::CoverageByTime>]
769
851
  #
770
852
  # @!attribute [rw] total
771
- # The total amount of instance usage covered by a reservation.
853
+ # The total amount of instance usage that is covered by a reservation.
772
854
  # @return [Types::Coverage]
773
855
  #
774
856
  # @!attribute [rw] next_page_token
@@ -786,6 +868,104 @@ module Aws::CostExplorer
786
868
  include Aws::Structure
787
869
  end
788
870
 
871
+ # @note When making an API call, you may pass GetReservationPurchaseRecommendationRequest
872
+ # data as a hash:
873
+ #
874
+ # {
875
+ # account_id: "GenericString",
876
+ # service: "GenericString", # required
877
+ # account_scope: "PAYER", # accepts PAYER
878
+ # lookback_period_in_days: "SEVEN_DAYS", # accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
879
+ # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
880
+ # payment_option: "NO_UPFRONT", # accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT
881
+ # service_specification: {
882
+ # ec2_specification: {
883
+ # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
884
+ # },
885
+ # },
886
+ # page_size: 1,
887
+ # next_page_token: "NextPageToken",
888
+ # }
889
+ #
890
+ # @!attribute [rw] account_id
891
+ # The account ID that is associated with the recommendation.
892
+ # @return [String]
893
+ #
894
+ # @!attribute [rw] service
895
+ # The specific service that you want recommendations for.
896
+ # @return [String]
897
+ #
898
+ # @!attribute [rw] account_scope
899
+ # The account scope that you want recommendations for. The only valid
900
+ # value is `Payer`. This means that AWS includes the master account
901
+ # and any member accounts when it calculates its recommendations.
902
+ # @return [String]
903
+ #
904
+ # @!attribute [rw] lookback_period_in_days
905
+ # The number of previous days that you want AWS to consider when it
906
+ # calculates your recommendations.
907
+ # @return [String]
908
+ #
909
+ # @!attribute [rw] term_in_years
910
+ # The reservation term that you want recommendations for.
911
+ # @return [String]
912
+ #
913
+ # @!attribute [rw] payment_option
914
+ # The reservation purchase option that you want recommendations for.
915
+ # @return [String]
916
+ #
917
+ # @!attribute [rw] service_specification
918
+ # The specific service, such as EC2, that you want recommendations
919
+ # for.
920
+ # @return [Types::ServiceSpecification]
921
+ #
922
+ # @!attribute [rw] page_size
923
+ # The number of recommendations that you want returned in a single
924
+ # response object.
925
+ # @return [Integer]
926
+ #
927
+ # @!attribute [rw] next_page_token
928
+ # The pagination token that indicates the next set of results that you
929
+ # want to retrieve.
930
+ # @return [String]
931
+ #
932
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendationRequest AWS API Documentation
933
+ #
934
+ class GetReservationPurchaseRecommendationRequest < Struct.new(
935
+ :account_id,
936
+ :service,
937
+ :account_scope,
938
+ :lookback_period_in_days,
939
+ :term_in_years,
940
+ :payment_option,
941
+ :service_specification,
942
+ :page_size,
943
+ :next_page_token)
944
+ include Aws::Structure
945
+ end
946
+
947
+ # @!attribute [rw] metadata
948
+ # Information about this specific recommendation call, such as the
949
+ # time stamp for when Cost Explorer generated this recommendation.
950
+ # @return [Types::ReservationPurchaseRecommendationMetadata]
951
+ #
952
+ # @!attribute [rw] recommendations
953
+ # Recommendations for reservations to purchase.
954
+ # @return [Array<Types::ReservationPurchaseRecommendation>]
955
+ #
956
+ # @!attribute [rw] next_page_token
957
+ # The pagination token for the next set of retrievable results.
958
+ # @return [String]
959
+ #
960
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendationResponse AWS API Documentation
961
+ #
962
+ class GetReservationPurchaseRecommendationResponse < Struct.new(
963
+ :metadata,
964
+ :recommendations,
965
+ :next_page_token)
966
+ include Aws::Structure
967
+ end
968
+
789
969
  # @note When making an API call, you may pass GetReservationUtilizationRequest
790
970
  # data as a hash:
791
971
  #
@@ -849,10 +1029,10 @@ module Aws::CostExplorer
849
1029
  #
850
1030
  # @!attribute [rw] filter
851
1031
  # Filters utilization data by using different dimensions.
852
- # `GetReservationUtilization` uses the same `Expression` object as the
853
- # other operations, but only `AND` is supported among each dimension,
854
- # and nesting is supported up to only one level deep. If there are
855
- # multiple values for a dimension, they are OR'd together.
1032
+ # `GetReservationUtilization` uses the same ` Expression ` object as
1033
+ # the other operations, but only `AND` is supported among each
1034
+ # dimension, and nesting is supported to only one level deep. If there
1035
+ # are multiple values for a dimension, they are OR'd together.
856
1036
  # @return [Types::Expression]
857
1037
  #
858
1038
  # @!attribute [rw] next_page_token
@@ -971,11 +1151,11 @@ module Aws::CostExplorer
971
1151
  # One level of grouped data within the results.
972
1152
  #
973
1153
  # @!attribute [rw] keys
974
- # The keys included in this group.
1154
+ # The keys that are included in this group.
975
1155
  # @return [Array<String>]
976
1156
  #
977
1157
  # @!attribute [rw] metrics
978
- # The metrics included in this group.
1158
+ # The metrics that are included in this group.
979
1159
  # @return [Hash<String,Types::MetricValue>]
980
1160
  #
981
1161
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Group AWS API Documentation
@@ -1013,6 +1193,19 @@ module Aws::CostExplorer
1013
1193
  include Aws::Structure
1014
1194
  end
1015
1195
 
1196
+ # Details about the instances that AWS recommends that you purchase.
1197
+ #
1198
+ # @!attribute [rw] ec2_instance_details
1199
+ # The EC2 instances that AWS recommends that you purchase.
1200
+ # @return [Types::EC2InstanceDetails]
1201
+ #
1202
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/InstanceDetails AWS API Documentation
1203
+ #
1204
+ class InstanceDetails < Struct.new(
1205
+ :ec2_instance_details)
1206
+ include Aws::Structure
1207
+ end
1208
+
1016
1209
  # The aggregated value for a metric.
1017
1210
  #
1018
1211
  # @!attribute [rw] amount
@@ -1038,7 +1231,7 @@ module Aws::CostExplorer
1038
1231
  # @return [String]
1039
1232
  #
1040
1233
  # @!attribute [rw] purchased_hours
1041
- # How many RI hours you purchased.
1234
+ # How many RI hours that you purchased.
1042
1235
  # @return [String]
1043
1236
  #
1044
1237
  # @!attribute [rw] total_actual_hours
@@ -1077,6 +1270,219 @@ module Aws::CostExplorer
1077
1270
  include Aws::Structure
1078
1271
  end
1079
1272
 
1273
+ # A specific reservation that AWS recommends for purchase.
1274
+ #
1275
+ # @!attribute [rw] account_scope
1276
+ # The account scope that AWS recommends that you purchase this
1277
+ # instance for. For example, you can purchase this reservation for an
1278
+ # entire organization in AWS Organizations.
1279
+ # @return [String]
1280
+ #
1281
+ # @!attribute [rw] lookback_period_in_days
1282
+ # How many days of previous usage that AWS takes into consideration
1283
+ # when making this recommendation.
1284
+ # @return [String]
1285
+ #
1286
+ # @!attribute [rw] term_in_years
1287
+ # The term of the reservation that you want recommendations for, in
1288
+ # years.
1289
+ # @return [String]
1290
+ #
1291
+ # @!attribute [rw] payment_option
1292
+ # The payment option for the reservation. For example, `AllUpfront` or
1293
+ # `NoUpfront`.
1294
+ # @return [String]
1295
+ #
1296
+ # @!attribute [rw] service_specification
1297
+ # Hardware specifications for the service that you want
1298
+ # recommendations for.
1299
+ # @return [Types::ServiceSpecification]
1300
+ #
1301
+ # @!attribute [rw] recommendation_details
1302
+ # Details about the recommended purchases.
1303
+ # @return [Array<Types::ReservationPurchaseRecommendationDetail>]
1304
+ #
1305
+ # @!attribute [rw] recommendation_summary
1306
+ # A summary about the recommended purchase.
1307
+ # @return [Types::ReservationPurchaseRecommendationSummary]
1308
+ #
1309
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ReservationPurchaseRecommendation AWS API Documentation
1310
+ #
1311
+ class ReservationPurchaseRecommendation < Struct.new(
1312
+ :account_scope,
1313
+ :lookback_period_in_days,
1314
+ :term_in_years,
1315
+ :payment_option,
1316
+ :service_specification,
1317
+ :recommendation_details,
1318
+ :recommendation_summary)
1319
+ include Aws::Structure
1320
+ end
1321
+
1322
+ # Details about your recommended reservation purchase.
1323
+ #
1324
+ # @!attribute [rw] instance_details
1325
+ # Details about the instances that AWS recommends that you purchase.
1326
+ # @return [Types::InstanceDetails]
1327
+ #
1328
+ # @!attribute [rw] recommended_number_of_instances_to_purchase
1329
+ # The number of instances that AWS recommends that you purchase.
1330
+ # @return [String]
1331
+ #
1332
+ # @!attribute [rw] recommended_normalized_units_to_purchase
1333
+ # The number of normalized units that AWS recommends that you
1334
+ # purchase.
1335
+ # @return [String]
1336
+ #
1337
+ # @!attribute [rw] minimum_number_of_instances_used_per_hour
1338
+ # The minimum number of instances that you used in an hour during the
1339
+ # historical period. AWS uses this to calculate your recommended
1340
+ # reservation purchases.
1341
+ # @return [String]
1342
+ #
1343
+ # @!attribute [rw] minimum_normalized_units_used_per_hour
1344
+ # The minimum number of hours that you used in an hour during the
1345
+ # historical period. AWS uses this to calculate your recommended
1346
+ # reservation purchases.
1347
+ # @return [String]
1348
+ #
1349
+ # @!attribute [rw] maximum_number_of_instances_used_per_hour
1350
+ # The maximum number of instances that you used in an hour during the
1351
+ # historical period. AWS uses this to calculate your recommended
1352
+ # reservation purchases.
1353
+ # @return [String]
1354
+ #
1355
+ # @!attribute [rw] maximum_normalized_units_used_per_hour
1356
+ # The maximum number of normalized units that you used in an hour
1357
+ # during the historical period. AWS uses this to calculate your
1358
+ # recommended reservation purchases.
1359
+ # @return [String]
1360
+ #
1361
+ # @!attribute [rw] average_number_of_instances_used_per_hour
1362
+ # The average number of instances that you used in an hour during the
1363
+ # historical period. AWS uses this to calculate your recommended
1364
+ # reservation purchases.
1365
+ # @return [String]
1366
+ #
1367
+ # @!attribute [rw] average_normalized_units_used_per_hour
1368
+ # The average number of normalized units that you used in an hour
1369
+ # during the historical period. AWS uses this to calculate your
1370
+ # recommended reservation purchases.
1371
+ # @return [String]
1372
+ #
1373
+ # @!attribute [rw] average_utilization
1374
+ # The average utilization of your instances. AWS uses this to
1375
+ # calculate your recommended reservation purchases.
1376
+ # @return [String]
1377
+ #
1378
+ # @!attribute [rw] estimated_break_even_in_months
1379
+ # How long AWS estimates that it takes for this instance to start
1380
+ # saving you money, in months.
1381
+ # @return [String]
1382
+ #
1383
+ # @!attribute [rw] currency_code
1384
+ # The currency code that AWS used to calculate the costs for this
1385
+ # instance.
1386
+ # @return [String]
1387
+ #
1388
+ # @!attribute [rw] estimated_monthly_savings_amount
1389
+ # How much AWS estimates that this specific recommendation could save
1390
+ # you in a month.
1391
+ # @return [String]
1392
+ #
1393
+ # @!attribute [rw] estimated_monthly_savings_percentage
1394
+ # How much AWS estimates that this specific recommendation could save
1395
+ # you in a month, as a percentage of your overall costs.
1396
+ # @return [String]
1397
+ #
1398
+ # @!attribute [rw] estimated_monthly_on_demand_cost
1399
+ # How much AWS estimates that you spend on On-Demand Instances in a
1400
+ # month.
1401
+ # @return [String]
1402
+ #
1403
+ # @!attribute [rw] estimated_reservation_cost_for_lookback_period
1404
+ # How much AWS estimates that you spent on Reserved Instances during
1405
+ # the specified historical period.
1406
+ # @return [String]
1407
+ #
1408
+ # @!attribute [rw] upfront_cost
1409
+ # How much purchasing this instance costs you upfront.
1410
+ # @return [String]
1411
+ #
1412
+ # @!attribute [rw] recurring_standard_monthly_cost
1413
+ # How much purchasing this instance costs you on a monthly basis.
1414
+ # @return [String]
1415
+ #
1416
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ReservationPurchaseRecommendationDetail AWS API Documentation
1417
+ #
1418
+ class ReservationPurchaseRecommendationDetail < Struct.new(
1419
+ :instance_details,
1420
+ :recommended_number_of_instances_to_purchase,
1421
+ :recommended_normalized_units_to_purchase,
1422
+ :minimum_number_of_instances_used_per_hour,
1423
+ :minimum_normalized_units_used_per_hour,
1424
+ :maximum_number_of_instances_used_per_hour,
1425
+ :maximum_normalized_units_used_per_hour,
1426
+ :average_number_of_instances_used_per_hour,
1427
+ :average_normalized_units_used_per_hour,
1428
+ :average_utilization,
1429
+ :estimated_break_even_in_months,
1430
+ :currency_code,
1431
+ :estimated_monthly_savings_amount,
1432
+ :estimated_monthly_savings_percentage,
1433
+ :estimated_monthly_on_demand_cost,
1434
+ :estimated_reservation_cost_for_lookback_period,
1435
+ :upfront_cost,
1436
+ :recurring_standard_monthly_cost)
1437
+ include Aws::Structure
1438
+ end
1439
+
1440
+ # Information about this specific recommendation, such as the time stamp
1441
+ # for when AWS made a specific recommendation.
1442
+ #
1443
+ # @!attribute [rw] recommendation_id
1444
+ # The ID for this specific recommendation.
1445
+ # @return [String]
1446
+ #
1447
+ # @!attribute [rw] generation_timestamp
1448
+ # The time stamp for when AWS made this recommendation.
1449
+ # @return [String]
1450
+ #
1451
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ReservationPurchaseRecommendationMetadata AWS API Documentation
1452
+ #
1453
+ class ReservationPurchaseRecommendationMetadata < Struct.new(
1454
+ :recommendation_id,
1455
+ :generation_timestamp)
1456
+ include Aws::Structure
1457
+ end
1458
+
1459
+ # A summary about this recommendation, such as the currency code, the
1460
+ # amount that AWS estimates you could save, and the total amount of
1461
+ # reservation to purchase.
1462
+ #
1463
+ # @!attribute [rw] total_estimated_monthly_savings_amount
1464
+ # The total amount that AWS estimates that this recommendation could
1465
+ # save you in a month.
1466
+ # @return [String]
1467
+ #
1468
+ # @!attribute [rw] total_estimated_monthly_savings_percentage
1469
+ # The total amount that AWS estimates that this recommendation could
1470
+ # save you in a month, as a percentage of your costs.
1471
+ # @return [String]
1472
+ #
1473
+ # @!attribute [rw] currency_code
1474
+ # The currency code used for this recommendation.
1475
+ # @return [String]
1476
+ #
1477
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ReservationPurchaseRecommendationSummary AWS API Documentation
1478
+ #
1479
+ class ReservationPurchaseRecommendationSummary < Struct.new(
1480
+ :total_estimated_monthly_savings_amount,
1481
+ :total_estimated_monthly_savings_percentage,
1482
+ :currency_code)
1483
+ include Aws::Structure
1484
+ end
1485
+
1080
1486
  # A group of RIs that share a set of attributes.
1081
1487
  #
1082
1488
  # @!attribute [rw] key
@@ -1120,7 +1526,7 @@ module Aws::CostExplorer
1120
1526
  # @return [Array<Types::Group>]
1121
1527
  #
1122
1528
  # @!attribute [rw] estimated
1123
- # Whether or not this result is estimated.
1529
+ # Whether this result is estimated.
1124
1530
  # @return [Boolean]
1125
1531
  #
1126
1532
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResultByTime AWS API Documentation
@@ -1133,6 +1539,30 @@ module Aws::CostExplorer
1133
1539
  include Aws::Structure
1134
1540
  end
1135
1541
 
1542
+ # Hardware specifications for the service that you want recommendations
1543
+ # for.
1544
+ #
1545
+ # @note When making an API call, you may pass ServiceSpecification
1546
+ # data as a hash:
1547
+ #
1548
+ # {
1549
+ # ec2_specification: {
1550
+ # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
1551
+ # },
1552
+ # }
1553
+ #
1554
+ # @!attribute [rw] ec2_specification
1555
+ # The EC2 hardware specifications that you want AWS to provide
1556
+ # recommendations for.
1557
+ # @return [Types::EC2Specification]
1558
+ #
1559
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ServiceSpecification AWS API Documentation
1560
+ #
1561
+ class ServiceSpecification < Struct.new(
1562
+ :ec2_specification)
1563
+ include Aws::Structure
1564
+ end
1565
+
1136
1566
  # The values that are available for a tag.
1137
1567
  #
1138
1568
  # @note When making an API call, you may pass TagValues