aws-sdk-costexplorer 1.30.0 → 1.31.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -63,6 +63,14 @@ module Aws::CostExplorer
63
63
  GetReservationUtilizationResponse = Shapes::StructureShape.new(name: 'GetReservationUtilizationResponse')
64
64
  GetRightsizingRecommendationRequest = Shapes::StructureShape.new(name: 'GetRightsizingRecommendationRequest')
65
65
  GetRightsizingRecommendationResponse = Shapes::StructureShape.new(name: 'GetRightsizingRecommendationResponse')
66
+ GetSavingsPlansCoverageRequest = Shapes::StructureShape.new(name: 'GetSavingsPlansCoverageRequest')
67
+ GetSavingsPlansCoverageResponse = Shapes::StructureShape.new(name: 'GetSavingsPlansCoverageResponse')
68
+ GetSavingsPlansPurchaseRecommendationRequest = Shapes::StructureShape.new(name: 'GetSavingsPlansPurchaseRecommendationRequest')
69
+ GetSavingsPlansPurchaseRecommendationResponse = Shapes::StructureShape.new(name: 'GetSavingsPlansPurchaseRecommendationResponse')
70
+ GetSavingsPlansUtilizationDetailsRequest = Shapes::StructureShape.new(name: 'GetSavingsPlansUtilizationDetailsRequest')
71
+ GetSavingsPlansUtilizationDetailsResponse = Shapes::StructureShape.new(name: 'GetSavingsPlansUtilizationDetailsResponse')
72
+ GetSavingsPlansUtilizationRequest = Shapes::StructureShape.new(name: 'GetSavingsPlansUtilizationRequest')
73
+ GetSavingsPlansUtilizationResponse = Shapes::StructureShape.new(name: 'GetSavingsPlansUtilizationResponse')
66
74
  GetTagsRequest = Shapes::StructureShape.new(name: 'GetTagsRequest')
67
75
  GetTagsResponse = Shapes::StructureShape.new(name: 'GetTagsResponse')
68
76
  GetUsageForecastRequest = Shapes::StructureShape.new(name: 'GetUsageForecastRequest')
@@ -80,6 +88,7 @@ module Aws::CostExplorer
80
88
  Keys = Shapes::ListShape.new(name: 'Keys')
81
89
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
82
90
  LookbackPeriodInDays = Shapes::StringShape.new(name: 'LookbackPeriodInDays')
91
+ MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
83
92
  Metric = Shapes::StringShape.new(name: 'Metric')
84
93
  MetricAmount = Shapes::StringShape.new(name: 'MetricAmount')
85
94
  MetricName = Shapes::StringShape.new(name: 'MetricName')
@@ -128,8 +137,27 @@ module Aws::CostExplorer
128
137
  RightsizingRecommendationMetadata = Shapes::StructureShape.new(name: 'RightsizingRecommendationMetadata')
129
138
  RightsizingRecommendationSummary = Shapes::StructureShape.new(name: 'RightsizingRecommendationSummary')
130
139
  RightsizingType = Shapes::StringShape.new(name: 'RightsizingType')
140
+ SavingsPlanArn = Shapes::StringShape.new(name: 'SavingsPlanArn')
141
+ SavingsPlansAmortizedCommitment = Shapes::StructureShape.new(name: 'SavingsPlansAmortizedCommitment')
142
+ SavingsPlansCoverage = Shapes::StructureShape.new(name: 'SavingsPlansCoverage')
143
+ SavingsPlansCoverageData = Shapes::StructureShape.new(name: 'SavingsPlansCoverageData')
144
+ SavingsPlansCoverages = Shapes::ListShape.new(name: 'SavingsPlansCoverages')
145
+ SavingsPlansDetails = Shapes::StructureShape.new(name: 'SavingsPlansDetails')
146
+ SavingsPlansPurchaseRecommendation = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendation')
147
+ SavingsPlansPurchaseRecommendationDetail = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationDetail')
148
+ SavingsPlansPurchaseRecommendationDetailList = Shapes::ListShape.new(name: 'SavingsPlansPurchaseRecommendationDetailList')
149
+ SavingsPlansPurchaseRecommendationMetadata = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationMetadata')
150
+ SavingsPlansPurchaseRecommendationSummary = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationSummary')
151
+ SavingsPlansSavings = Shapes::StructureShape.new(name: 'SavingsPlansSavings')
152
+ SavingsPlansUtilization = Shapes::StructureShape.new(name: 'SavingsPlansUtilization')
153
+ SavingsPlansUtilizationAggregates = Shapes::StructureShape.new(name: 'SavingsPlansUtilizationAggregates')
154
+ SavingsPlansUtilizationByTime = Shapes::StructureShape.new(name: 'SavingsPlansUtilizationByTime')
155
+ SavingsPlansUtilizationDetail = Shapes::StructureShape.new(name: 'SavingsPlansUtilizationDetail')
156
+ SavingsPlansUtilizationDetails = Shapes::ListShape.new(name: 'SavingsPlansUtilizationDetails')
157
+ SavingsPlansUtilizationsByTime = Shapes::ListShape.new(name: 'SavingsPlansUtilizationsByTime')
131
158
  SearchString = Shapes::StringShape.new(name: 'SearchString')
132
159
  ServiceSpecification = Shapes::StructureShape.new(name: 'ServiceSpecification')
160
+ SupportedSavingsPlansType = Shapes::StringShape.new(name: 'SupportedSavingsPlansType')
133
161
  TagKey = Shapes::StringShape.new(name: 'TagKey')
134
162
  TagList = Shapes::ListShape.new(name: 'TagList')
135
163
  TagValues = Shapes::StructureShape.new(name: 'TagValues')
@@ -193,6 +221,7 @@ module Aws::CostExplorer
193
221
  CurrentInstance.add_member(:resource_details, Shapes::ShapeRef.new(shape: ResourceDetails, location_name: "ResourceDetails"))
194
222
  CurrentInstance.add_member(:resource_utilization, Shapes::ShapeRef.new(shape: ResourceUtilization, location_name: "ResourceUtilization"))
195
223
  CurrentInstance.add_member(:reservation_covered_hours_in_lookback_period, Shapes::ShapeRef.new(shape: GenericString, location_name: "ReservationCoveredHoursInLookbackPeriod"))
224
+ CurrentInstance.add_member(:savings_plans_covered_hours_in_lookback_period, Shapes::ShapeRef.new(shape: GenericString, location_name: "SavingsPlansCoveredHoursInLookbackPeriod"))
196
225
  CurrentInstance.add_member(:on_demand_hours_in_lookback_period, Shapes::ShapeRef.new(shape: GenericString, location_name: "OnDemandHoursInLookbackPeriod"))
197
226
  CurrentInstance.add_member(:total_running_hours_in_lookback_period, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalRunningHoursInLookbackPeriod"))
198
227
  CurrentInstance.add_member(:monthly_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "MonthlyCost"))
@@ -367,6 +396,53 @@ module Aws::CostExplorer
367
396
  GetRightsizingRecommendationResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
368
397
  GetRightsizingRecommendationResponse.struct_class = Types::GetRightsizingRecommendationResponse
369
398
 
399
+ GetSavingsPlansCoverageRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
400
+ GetSavingsPlansCoverageRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
401
+ GetSavingsPlansCoverageRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
402
+ GetSavingsPlansCoverageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
403
+ GetSavingsPlansCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
404
+ GetSavingsPlansCoverageRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
405
+ GetSavingsPlansCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
406
+ GetSavingsPlansCoverageRequest.struct_class = Types::GetSavingsPlansCoverageRequest
407
+
408
+ GetSavingsPlansCoverageResponse.add_member(:savings_plans_coverages, Shapes::ShapeRef.new(shape: SavingsPlansCoverages, required: true, location_name: "SavingsPlansCoverages"))
409
+ GetSavingsPlansCoverageResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
410
+ GetSavingsPlansCoverageResponse.struct_class = Types::GetSavingsPlansCoverageResponse
411
+
412
+ GetSavingsPlansPurchaseRecommendationRequest.add_member(:savings_plans_type, Shapes::ShapeRef.new(shape: SupportedSavingsPlansType, required: true, location_name: "SavingsPlansType"))
413
+ GetSavingsPlansPurchaseRecommendationRequest.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, required: true, location_name: "TermInYears"))
414
+ GetSavingsPlansPurchaseRecommendationRequest.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, required: true, location_name: "PaymentOption"))
415
+ GetSavingsPlansPurchaseRecommendationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
416
+ GetSavingsPlansPurchaseRecommendationRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: NonNegativeInteger, location_name: "PageSize"))
417
+ GetSavingsPlansPurchaseRecommendationRequest.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, required: true, location_name: "LookbackPeriodInDays"))
418
+ GetSavingsPlansPurchaseRecommendationRequest.struct_class = Types::GetSavingsPlansPurchaseRecommendationRequest
419
+
420
+ GetSavingsPlansPurchaseRecommendationResponse.add_member(:metadata, Shapes::ShapeRef.new(shape: SavingsPlansPurchaseRecommendationMetadata, location_name: "Metadata"))
421
+ GetSavingsPlansPurchaseRecommendationResponse.add_member(:savings_plans_purchase_recommendation, Shapes::ShapeRef.new(shape: SavingsPlansPurchaseRecommendation, location_name: "SavingsPlansPurchaseRecommendation"))
422
+ GetSavingsPlansPurchaseRecommendationResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
423
+ GetSavingsPlansPurchaseRecommendationResponse.struct_class = Types::GetSavingsPlansPurchaseRecommendationResponse
424
+
425
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
426
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
427
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
428
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
429
+ GetSavingsPlansUtilizationDetailsRequest.struct_class = Types::GetSavingsPlansUtilizationDetailsRequest
430
+
431
+ GetSavingsPlansUtilizationDetailsResponse.add_member(:savings_plans_utilization_details, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationDetails, required: true, location_name: "SavingsPlansUtilizationDetails"))
432
+ GetSavingsPlansUtilizationDetailsResponse.add_member(:total, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationAggregates, location_name: "Total"))
433
+ GetSavingsPlansUtilizationDetailsResponse.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
434
+ GetSavingsPlansUtilizationDetailsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
435
+ GetSavingsPlansUtilizationDetailsResponse.struct_class = Types::GetSavingsPlansUtilizationDetailsResponse
436
+
437
+ GetSavingsPlansUtilizationRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
438
+ GetSavingsPlansUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
439
+ GetSavingsPlansUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
440
+ GetSavingsPlansUtilizationRequest.struct_class = Types::GetSavingsPlansUtilizationRequest
441
+
442
+ GetSavingsPlansUtilizationResponse.add_member(:savings_plans_utilizations_by_time, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationsByTime, location_name: "SavingsPlansUtilizationsByTime"))
443
+ GetSavingsPlansUtilizationResponse.add_member(:total, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationAggregates, required: true, location_name: "Total"))
444
+ GetSavingsPlansUtilizationResponse.struct_class = Types::GetSavingsPlansUtilizationResponse
445
+
370
446
  GetTagsRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
371
447
  GetTagsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
372
448
  GetTagsRequest.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, location_name: "TagKey"))
@@ -557,6 +633,104 @@ module Aws::CostExplorer
557
633
  RightsizingRecommendationSummary.add_member(:savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "SavingsPercentage"))
558
634
  RightsizingRecommendationSummary.struct_class = Types::RightsizingRecommendationSummary
559
635
 
636
+ SavingsPlansAmortizedCommitment.add_member(:amortized_recurring_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "AmortizedRecurringCommitment"))
637
+ SavingsPlansAmortizedCommitment.add_member(:amortized_upfront_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "AmortizedUpfrontCommitment"))
638
+ SavingsPlansAmortizedCommitment.add_member(:total_amortized_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalAmortizedCommitment"))
639
+ SavingsPlansAmortizedCommitment.struct_class = Types::SavingsPlansAmortizedCommitment
640
+
641
+ SavingsPlansCoverage.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
642
+ SavingsPlansCoverage.add_member(:coverage, Shapes::ShapeRef.new(shape: SavingsPlansCoverageData, location_name: "Coverage"))
643
+ SavingsPlansCoverage.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, location_name: "TimePeriod"))
644
+ SavingsPlansCoverage.struct_class = Types::SavingsPlansCoverage
645
+
646
+ SavingsPlansCoverageData.add_member(:spend_covered_by_savings_plans, Shapes::ShapeRef.new(shape: GenericString, location_name: "SpendCoveredBySavingsPlans"))
647
+ SavingsPlansCoverageData.add_member(:on_demand_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "OnDemandCost"))
648
+ SavingsPlansCoverageData.add_member(:total_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalCost"))
649
+ SavingsPlansCoverageData.add_member(:coverage_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "CoveragePercentage"))
650
+ SavingsPlansCoverageData.struct_class = Types::SavingsPlansCoverageData
651
+
652
+ SavingsPlansCoverages.member = Shapes::ShapeRef.new(shape: SavingsPlansCoverage)
653
+
654
+ SavingsPlansDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
655
+ SavingsPlansDetails.add_member(:instance_family, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceFamily"))
656
+ SavingsPlansDetails.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
657
+ SavingsPlansDetails.struct_class = Types::SavingsPlansDetails
658
+
659
+ SavingsPlansPurchaseRecommendation.add_member(:savings_plans_type, Shapes::ShapeRef.new(shape: SupportedSavingsPlansType, location_name: "SavingsPlansType"))
660
+ SavingsPlansPurchaseRecommendation.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
661
+ SavingsPlansPurchaseRecommendation.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "PaymentOption"))
662
+ SavingsPlansPurchaseRecommendation.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
663
+ SavingsPlansPurchaseRecommendation.add_member(:savings_plans_purchase_recommendation_details, Shapes::ShapeRef.new(shape: SavingsPlansPurchaseRecommendationDetailList, location_name: "SavingsPlansPurchaseRecommendationDetails"))
664
+ SavingsPlansPurchaseRecommendation.add_member(:savings_plans_purchase_recommendation_summary, Shapes::ShapeRef.new(shape: SavingsPlansPurchaseRecommendationSummary, location_name: "SavingsPlansPurchaseRecommendationSummary"))
665
+ SavingsPlansPurchaseRecommendation.struct_class = Types::SavingsPlansPurchaseRecommendation
666
+
667
+ SavingsPlansPurchaseRecommendationDetail.add_member(:savings_plans_details, Shapes::ShapeRef.new(shape: SavingsPlansDetails, location_name: "SavingsPlansDetails"))
668
+ SavingsPlansPurchaseRecommendationDetail.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
669
+ SavingsPlansPurchaseRecommendationDetail.add_member(:upfront_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "UpfrontCost"))
670
+ SavingsPlansPurchaseRecommendationDetail.add_member(:estimated_roi, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedROI"))
671
+ SavingsPlansPurchaseRecommendationDetail.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
672
+ SavingsPlansPurchaseRecommendationDetail.add_member(:estimated_sp_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSPCost"))
673
+ SavingsPlansPurchaseRecommendationDetail.add_member(:estimated_on_demand_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedOnDemandCost"))
674
+ SavingsPlansPurchaseRecommendationDetail.add_member(:estimated_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsAmount"))
675
+ SavingsPlansPurchaseRecommendationDetail.add_member(:estimated_savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsPercentage"))
676
+ SavingsPlansPurchaseRecommendationDetail.add_member(:hourly_commitment_to_purchase, Shapes::ShapeRef.new(shape: GenericString, location_name: "HourlyCommitmentToPurchase"))
677
+ SavingsPlansPurchaseRecommendationDetail.add_member(:estimated_average_utilization, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedAverageUtilization"))
678
+ SavingsPlansPurchaseRecommendationDetail.add_member(:estimated_monthly_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavingsAmount"))
679
+ SavingsPlansPurchaseRecommendationDetail.add_member(:current_minimum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMinimumHourlyOnDemandSpend"))
680
+ SavingsPlansPurchaseRecommendationDetail.add_member(:current_maximum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMaximumHourlyOnDemandSpend"))
681
+ SavingsPlansPurchaseRecommendationDetail.add_member(:current_average_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentAverageHourlyOnDemandSpend"))
682
+ SavingsPlansPurchaseRecommendationDetail.struct_class = Types::SavingsPlansPurchaseRecommendationDetail
683
+
684
+ SavingsPlansPurchaseRecommendationDetailList.member = Shapes::ShapeRef.new(shape: SavingsPlansPurchaseRecommendationDetail)
685
+
686
+ SavingsPlansPurchaseRecommendationMetadata.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendationId"))
687
+ SavingsPlansPurchaseRecommendationMetadata.add_member(:generation_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "GenerationTimestamp"))
688
+ SavingsPlansPurchaseRecommendationMetadata.struct_class = Types::SavingsPlansPurchaseRecommendationMetadata
689
+
690
+ SavingsPlansPurchaseRecommendationSummary.add_member(:estimated_roi, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedROI"))
691
+ SavingsPlansPurchaseRecommendationSummary.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
692
+ SavingsPlansPurchaseRecommendationSummary.add_member(:estimated_total_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedTotalCost"))
693
+ SavingsPlansPurchaseRecommendationSummary.add_member(:current_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentOnDemandSpend"))
694
+ SavingsPlansPurchaseRecommendationSummary.add_member(:estimated_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsAmount"))
695
+ SavingsPlansPurchaseRecommendationSummary.add_member(:total_recommendation_count, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalRecommendationCount"))
696
+ SavingsPlansPurchaseRecommendationSummary.add_member(:daily_commitment_to_purchase, Shapes::ShapeRef.new(shape: GenericString, location_name: "DailyCommitmentToPurchase"))
697
+ SavingsPlansPurchaseRecommendationSummary.add_member(:hourly_commitment_to_purchase, Shapes::ShapeRef.new(shape: GenericString, location_name: "HourlyCommitmentToPurchase"))
698
+ SavingsPlansPurchaseRecommendationSummary.add_member(:estimated_savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsPercentage"))
699
+ SavingsPlansPurchaseRecommendationSummary.add_member(:estimated_monthly_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavingsAmount"))
700
+ SavingsPlansPurchaseRecommendationSummary.struct_class = Types::SavingsPlansPurchaseRecommendationSummary
701
+
702
+ SavingsPlansSavings.add_member(:net_savings, Shapes::ShapeRef.new(shape: GenericString, location_name: "NetSavings"))
703
+ SavingsPlansSavings.add_member(:on_demand_cost_equivalent, Shapes::ShapeRef.new(shape: GenericString, location_name: "OnDemandCostEquivalent"))
704
+ SavingsPlansSavings.struct_class = Types::SavingsPlansSavings
705
+
706
+ SavingsPlansUtilization.add_member(:total_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalCommitment"))
707
+ SavingsPlansUtilization.add_member(:used_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "UsedCommitment"))
708
+ SavingsPlansUtilization.add_member(:unused_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "UnusedCommitment"))
709
+ SavingsPlansUtilization.add_member(:utilization_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "UtilizationPercentage"))
710
+ SavingsPlansUtilization.struct_class = Types::SavingsPlansUtilization
711
+
712
+ SavingsPlansUtilizationAggregates.add_member(:utilization, Shapes::ShapeRef.new(shape: SavingsPlansUtilization, required: true, location_name: "Utilization"))
713
+ SavingsPlansUtilizationAggregates.add_member(:savings, Shapes::ShapeRef.new(shape: SavingsPlansSavings, location_name: "Savings"))
714
+ SavingsPlansUtilizationAggregates.add_member(:amortized_commitment, Shapes::ShapeRef.new(shape: SavingsPlansAmortizedCommitment, location_name: "AmortizedCommitment"))
715
+ SavingsPlansUtilizationAggregates.struct_class = Types::SavingsPlansUtilizationAggregates
716
+
717
+ SavingsPlansUtilizationByTime.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
718
+ SavingsPlansUtilizationByTime.add_member(:utilization, Shapes::ShapeRef.new(shape: SavingsPlansUtilization, required: true, location_name: "Utilization"))
719
+ SavingsPlansUtilizationByTime.add_member(:savings, Shapes::ShapeRef.new(shape: SavingsPlansSavings, location_name: "Savings"))
720
+ SavingsPlansUtilizationByTime.add_member(:amortized_commitment, Shapes::ShapeRef.new(shape: SavingsPlansAmortizedCommitment, location_name: "AmortizedCommitment"))
721
+ SavingsPlansUtilizationByTime.struct_class = Types::SavingsPlansUtilizationByTime
722
+
723
+ SavingsPlansUtilizationDetail.add_member(:savings_plan_arn, Shapes::ShapeRef.new(shape: SavingsPlanArn, location_name: "SavingsPlanArn"))
724
+ SavingsPlansUtilizationDetail.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
725
+ SavingsPlansUtilizationDetail.add_member(:utilization, Shapes::ShapeRef.new(shape: SavingsPlansUtilization, location_name: "Utilization"))
726
+ SavingsPlansUtilizationDetail.add_member(:savings, Shapes::ShapeRef.new(shape: SavingsPlansSavings, location_name: "Savings"))
727
+ SavingsPlansUtilizationDetail.add_member(:amortized_commitment, Shapes::ShapeRef.new(shape: SavingsPlansAmortizedCommitment, location_name: "AmortizedCommitment"))
728
+ SavingsPlansUtilizationDetail.struct_class = Types::SavingsPlansUtilizationDetail
729
+
730
+ SavingsPlansUtilizationDetails.member = Shapes::ShapeRef.new(shape: SavingsPlansUtilizationDetail)
731
+
732
+ SavingsPlansUtilizationsByTime.member = Shapes::ShapeRef.new(shape: SavingsPlansUtilizationByTime)
733
+
560
734
  ServiceSpecification.add_member(:ec2_specification, Shapes::ShapeRef.new(shape: EC2Specification, location_name: "EC2Specification"))
561
735
  ServiceSpecification.struct_class = Types::ServiceSpecification
562
736
 
@@ -693,6 +867,60 @@ module Aws::CostExplorer
693
867
  o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
694
868
  end)
695
869
 
870
+ api.add_operation(:get_savings_plans_coverage, Seahorse::Model::Operation.new.tap do |o|
871
+ o.name = "GetSavingsPlansCoverage"
872
+ o.http_method = "POST"
873
+ o.http_request_uri = "/"
874
+ o.input = Shapes::ShapeRef.new(shape: GetSavingsPlansCoverageRequest)
875
+ o.output = Shapes::ShapeRef.new(shape: GetSavingsPlansCoverageResponse)
876
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
877
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
878
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
879
+ o[:pager] = Aws::Pager.new(
880
+ limit_key: "max_results",
881
+ tokens: {
882
+ "next_token" => "next_token"
883
+ }
884
+ )
885
+ end)
886
+
887
+ api.add_operation(:get_savings_plans_purchase_recommendation, Seahorse::Model::Operation.new.tap do |o|
888
+ o.name = "GetSavingsPlansPurchaseRecommendation"
889
+ o.http_method = "POST"
890
+ o.http_request_uri = "/"
891
+ o.input = Shapes::ShapeRef.new(shape: GetSavingsPlansPurchaseRecommendationRequest)
892
+ o.output = Shapes::ShapeRef.new(shape: GetSavingsPlansPurchaseRecommendationResponse)
893
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
894
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
895
+ end)
896
+
897
+ api.add_operation(:get_savings_plans_utilization, Seahorse::Model::Operation.new.tap do |o|
898
+ o.name = "GetSavingsPlansUtilization"
899
+ o.http_method = "POST"
900
+ o.http_request_uri = "/"
901
+ o.input = Shapes::ShapeRef.new(shape: GetSavingsPlansUtilizationRequest)
902
+ o.output = Shapes::ShapeRef.new(shape: GetSavingsPlansUtilizationResponse)
903
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
904
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
905
+ end)
906
+
907
+ api.add_operation(:get_savings_plans_utilization_details, Seahorse::Model::Operation.new.tap do |o|
908
+ o.name = "GetSavingsPlansUtilizationDetails"
909
+ o.http_method = "POST"
910
+ o.http_request_uri = "/"
911
+ o.input = Shapes::ShapeRef.new(shape: GetSavingsPlansUtilizationDetailsRequest)
912
+ o.output = Shapes::ShapeRef.new(shape: GetSavingsPlansUtilizationDetailsResponse)
913
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
914
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
915
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
916
+ o[:pager] = Aws::Pager.new(
917
+ limit_key: "max_results",
918
+ tokens: {
919
+ "next_token" => "next_token"
920
+ }
921
+ )
922
+ end)
923
+
696
924
  api.add_operation(:get_tags, Seahorse::Model::Operation.new.tap do |o|
697
925
  o.name = "GetTags"
698
926
  o.http_method = "POST"
@@ -178,6 +178,10 @@ module Aws::CostExplorer
178
178
  # Number of hours during the lookback period covered by reservations.
179
179
  # @return [String]
180
180
  #
181
+ # @!attribute [rw] savings_plans_covered_hours_in_lookback_period
182
+ # Number of hours during the lookback period covered by Savings Plans.
183
+ # @return [String]
184
+ #
181
185
  # @!attribute [rw] on_demand_hours_in_lookback_period
182
186
  # Number of hours during the lookback period billed at On Demand
183
187
  # rates.
@@ -206,6 +210,7 @@ module Aws::CostExplorer
206
210
  :resource_details,
207
211
  :resource_utilization,
208
212
  :reservation_covered_hours_in_lookback_period,
213
+ :savings_plans_covered_hours_in_lookback_period,
209
214
  :on_demand_hours_in_lookback_period,
210
215
  :total_running_hours_in_lookback_period,
211
216
  :monthly_cost,
@@ -264,7 +269,7 @@ module Aws::CostExplorer
264
269
  # data as a hash:
265
270
  #
266
271
  # {
267
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
272
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
268
273
  # values: ["Value"],
269
274
  # }
270
275
  #
@@ -578,7 +583,7 @@ module Aws::CostExplorer
578
583
  #
579
584
  # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and NOT
580
585
  # is not supported. OR is not supported between different dimensions, or
581
- # dimensions and tags. NOT operators aren't supported. Dimentions are
586
+ # dimensions and tags. NOT operators aren't supported. Dimensions are
582
587
  # also limited to `LINKED_ACCOUNT`, `REGION`, or `RIGHTSIZING_TYPE`.
583
588
  #
584
589
  # </note>
@@ -599,7 +604,7 @@ module Aws::CostExplorer
599
604
  # # recursive Expression
600
605
  # },
601
606
  # dimensions: {
602
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
607
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
603
608
  # values: ["Value"],
604
609
  # },
605
610
  # tags: {
@@ -620,7 +625,7 @@ module Aws::CostExplorer
620
625
  # # recursive Expression
621
626
  # },
622
627
  # dimensions: {
623
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
628
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
624
629
  # values: ["Value"],
625
630
  # },
626
631
  # tags: {
@@ -644,7 +649,7 @@ module Aws::CostExplorer
644
649
  # # recursive Expression
645
650
  # },
646
651
  # dimensions: {
647
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
652
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
648
653
  # values: ["Value"],
649
654
  # },
650
655
  # tags: {
@@ -653,7 +658,7 @@ module Aws::CostExplorer
653
658
  # },
654
659
  # },
655
660
  # dimensions: {
656
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
661
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
657
662
  # values: ["Value"],
658
663
  # },
659
664
  # tags: {
@@ -745,7 +750,7 @@ module Aws::CostExplorer
745
750
  # # recursive Expression
746
751
  # },
747
752
  # dimensions: {
748
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
753
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
749
754
  # values: ["Value"],
750
755
  # },
751
756
  # tags: {
@@ -897,7 +902,7 @@ module Aws::CostExplorer
897
902
  # # recursive Expression
898
903
  # },
899
904
  # dimensions: {
900
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
905
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
901
906
  # values: ["Value"],
902
907
  # },
903
908
  # tags: {
@@ -995,8 +1000,8 @@ module Aws::CostExplorer
995
1000
  # start: "YearMonthDay", # required
996
1001
  # end: "YearMonthDay", # required
997
1002
  # },
998
- # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
999
- # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS
1003
+ # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1004
+ # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS, SAVINGS_PLANS
1000
1005
  # next_page_token: "NextPageToken",
1001
1006
  # }
1002
1007
  #
@@ -1101,6 +1106,26 @@ module Aws::CostExplorer
1101
1106
  #
1102
1107
  # * TENANCY - The tenancy of a resource. Examples are shared or
1103
1108
  # dedicated.
1109
+ #
1110
+ # If you set the context to `SAVINGS_PLANS`, you can use the following
1111
+ # dimensions for searching:
1112
+ #
1113
+ # * SAVINGS\_PLANS\_TYPE - Type of Savings Plans (EC2 Instance or
1114
+ # Compute)
1115
+ #
1116
+ # * PAYMENT\_OPTION - Payment option for the given Savings Plans (for
1117
+ # example, All Upfront)
1118
+ #
1119
+ # * REGION - The AWS Region.
1120
+ #
1121
+ # * INSTANCE\_TYPE\_FAMILY - The family of instances (For example,
1122
+ # `m5`)
1123
+ #
1124
+ # * LINKED\_ACCOUNT - The description in the attribute map that
1125
+ # includes the full name of the member account. The value field
1126
+ # contains the AWS ID of the member account.
1127
+ #
1128
+ # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plan
1104
1129
  # @return [String]
1105
1130
  #
1106
1131
  # @!attribute [rw] next_page_token
@@ -1199,6 +1224,26 @@ module Aws::CostExplorer
1199
1224
  #
1200
1225
  # * TENANCY - The tenancy of a resource. Examples are shared or
1201
1226
  # dedicated.
1227
+ #
1228
+ # If you set the context to `SAVINGS_PLANS`, you can use the following
1229
+ # dimensions for searching:
1230
+ #
1231
+ # * SAVINGS\_PLANS\_TYPE - Type of Savings Plans (EC2 Instance or
1232
+ # Compute)
1233
+ #
1234
+ # * PAYMENT\_OPTION - Payment option for the given Savings Plans (for
1235
+ # example, All Upfront)
1236
+ #
1237
+ # * REGION - The AWS Region.
1238
+ #
1239
+ # * INSTANCE\_TYPE\_FAMILY - The family of instances (For example,
1240
+ # `m5`)
1241
+ #
1242
+ # * LINKED\_ACCOUNT - The description in the attribute map that
1243
+ # includes the full name of the member account. The value field
1244
+ # contains the AWS ID of the member account.
1245
+ #
1246
+ # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plan
1202
1247
  # @return [Array<Types::DimensionValuesWithAttributes>]
1203
1248
  #
1204
1249
  # @!attribute [rw] return_size
@@ -1258,7 +1303,7 @@ module Aws::CostExplorer
1258
1303
  # # recursive Expression
1259
1304
  # },
1260
1305
  # dimensions: {
1261
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1306
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1262
1307
  # values: ["Value"],
1263
1308
  # },
1264
1309
  # tags: {
@@ -1537,7 +1582,7 @@ module Aws::CostExplorer
1537
1582
  # # recursive Expression
1538
1583
  # },
1539
1584
  # dimensions: {
1540
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1585
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1541
1586
  # values: ["Value"],
1542
1587
  # },
1543
1588
  # tags: {
@@ -1667,7 +1712,7 @@ module Aws::CostExplorer
1667
1712
  # # recursive Expression
1668
1713
  # },
1669
1714
  # dimensions: {
1670
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
1715
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1671
1716
  # values: ["Value"],
1672
1717
  # },
1673
1718
  # tags: {
@@ -1723,14 +1768,15 @@ module Aws::CostExplorer
1723
1768
  # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and
1724
1769
  # NOT is not supported. OR is not supported between different
1725
1770
  # dimensions, or dimensions and tags. NOT operators aren't supported.
1726
- # Dimentions are also limited to `LINKED_ACCOUNT`, `REGION`, or
1771
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
1727
1772
  # `RIGHTSIZING_TYPE`.
1728
1773
  #
1729
1774
  # </note>
1730
1775
  # @return [Types::Expression]
1731
1776
  #
1732
1777
  # @!attribute [rw] service
1733
- # The specific service that you want recommendations for.
1778
+ # The specific service that you want recommendations for. The only
1779
+ # valid value for `GetRightsizingRecommendation` is "`AmazonEC2`".
1734
1780
  # @return [String]
1735
1781
  #
1736
1782
  # @!attribute [rw] page_size
@@ -1779,80 +1825,212 @@ module Aws::CostExplorer
1779
1825
  include Aws::Structure
1780
1826
  end
1781
1827
 
1782
- # @note When making an API call, you may pass GetTagsRequest
1828
+ # @note When making an API call, you may pass GetSavingsPlansCoverageRequest
1783
1829
  # data as a hash:
1784
1830
  #
1785
1831
  # {
1786
- # search_string: "SearchString",
1787
1832
  # time_period: { # required
1788
1833
  # start: "YearMonthDay", # required
1789
1834
  # end: "YearMonthDay", # required
1790
1835
  # },
1791
- # tag_key: "TagKey",
1792
- # next_page_token: "NextPageToken",
1836
+ # group_by: [
1837
+ # {
1838
+ # type: "DIMENSION", # accepts DIMENSION, TAG
1839
+ # key: "GroupDefinitionKey",
1840
+ # },
1841
+ # ],
1842
+ # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
1843
+ # filter: {
1844
+ # or: [
1845
+ # {
1846
+ # # recursive Expression
1847
+ # },
1848
+ # ],
1849
+ # and: [
1850
+ # {
1851
+ # # recursive Expression
1852
+ # },
1853
+ # ],
1854
+ # not: {
1855
+ # # recursive Expression
1856
+ # },
1857
+ # dimensions: {
1858
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1859
+ # values: ["Value"],
1860
+ # },
1861
+ # tags: {
1862
+ # key: "TagKey",
1863
+ # values: ["Value"],
1864
+ # },
1865
+ # },
1866
+ # metrics: ["MetricName"],
1867
+ # next_token: "NextPageToken",
1868
+ # max_results: 1,
1793
1869
  # }
1794
1870
  #
1795
- # @!attribute [rw] search_string
1796
- # The value that you want to search for.
1797
- # @return [String]
1798
- #
1799
1871
  # @!attribute [rw] time_period
1800
- # The start and end dates for retrieving the dimension values. The
1801
- # start date is inclusive, but the end date is exclusive. For example,
1802
- # if `start` is `2017-01-01` and `end` is `2017-05-01`, then the cost
1803
- # and usage data is retrieved from `2017-01-01` up to and including
1804
- # `2017-04-30` but not including `2017-05-01`.
1872
+ # The time period that you want the usage and costs for. The `Start`
1873
+ # date must be within 13 months. The `End` date must be after the
1874
+ # `Start` date, and before the current date. Future dates can't be
1875
+ # used as an `End` date.
1805
1876
  # @return [Types::DateInterval]
1806
1877
  #
1807
- # @!attribute [rw] tag_key
1808
- # The key of the tag that you want to return values for.
1878
+ # @!attribute [rw] group_by
1879
+ # You can group the data using the attributes `INSTANCE_FAMILY`,
1880
+ # `REGION`, or `SERVICE`.
1881
+ # @return [Array<Types::GroupDefinition>]
1882
+ #
1883
+ # @!attribute [rw] granularity
1884
+ # The granularity of the Amazon Web Services cost data for your
1885
+ # Savings Plans. `Granularity` can't be set if `GroupBy` is set.
1809
1886
  # @return [String]
1810
1887
  #
1811
- # @!attribute [rw] next_page_token
1812
- # The token to retrieve the next set of results. AWS provides the
1813
- # token when the response from a previous call has more results than
1814
- # the maximum page size.
1888
+ # @!attribute [rw] filter
1889
+ # Filters Savings Plans coverage data by dimensions. You can filter
1890
+ # data for Savings Plans usage with the following dimensions:
1891
+ #
1892
+ # * `LINKED_ACCOUNT`
1893
+ #
1894
+ # * `REGION`
1895
+ #
1896
+ # * `SERVICE`
1897
+ #
1898
+ # * `INSTANCE_FAMILY`
1899
+ #
1900
+ # `GetSavingsPlansCoverage` uses the same [Expression][1] object as
1901
+ # the other operations, but only `AND` is supported among each
1902
+ # dimension. If there are multiple values for a dimension, they are
1903
+ # OR'd together.
1904
+ #
1905
+ #
1906
+ #
1907
+ # [1]: http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
1908
+ # @return [Types::Expression]
1909
+ #
1910
+ # @!attribute [rw] metrics
1911
+ # The measurement that you want your Savings Plans coverage reported
1912
+ # in. The only valid value is `spendCoveredBySavingsPlans`.
1913
+ # @return [Array<String>]
1914
+ #
1915
+ # @!attribute [rw] next_token
1916
+ # The token to retrieve the next set of results. Amazon Web Services
1917
+ # provides the token when the response from a previous call has more
1918
+ # results than the maximum page size.
1815
1919
  # @return [String]
1816
1920
  #
1817
- # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTagsRequest AWS API Documentation
1921
+ # @!attribute [rw] max_results
1922
+ # The number of items to be returned in a response. The default is
1923
+ # `20`, with a minimum value of `1`.
1924
+ # @return [Integer]
1818
1925
  #
1819
- class GetTagsRequest < Struct.new(
1820
- :search_string,
1926
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverageRequest AWS API Documentation
1927
+ #
1928
+ class GetSavingsPlansCoverageRequest < Struct.new(
1821
1929
  :time_period,
1822
- :tag_key,
1823
- :next_page_token)
1930
+ :group_by,
1931
+ :granularity,
1932
+ :filter,
1933
+ :metrics,
1934
+ :next_token,
1935
+ :max_results)
1824
1936
  include Aws::Structure
1825
1937
  end
1826
1938
 
1827
- # @!attribute [rw] next_page_token
1828
- # The token for the next set of retrievable results. AWS provides the
1829
- # token when the response from a previous call has more results than
1830
- # the maximum page size.
1939
+ # @!attribute [rw] savings_plans_coverages
1940
+ # The amount of spend that your Savings Plans covered.
1941
+ # @return [Array<Types::SavingsPlansCoverage>]
1942
+ #
1943
+ # @!attribute [rw] next_token
1944
+ # The token to retrieve the next set of results. Amazon Web Services
1945
+ # provides the token when the response from a previous call has more
1946
+ # results than the maximum page size.
1831
1947
  # @return [String]
1832
1948
  #
1833
- # @!attribute [rw] tags
1834
- # The tags that match your request.
1835
- # @return [Array<String>]
1949
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverageResponse AWS API Documentation
1836
1950
  #
1837
- # @!attribute [rw] return_size
1838
- # The number of query results that AWS returns at a time.
1839
- # @return [Integer]
1951
+ class GetSavingsPlansCoverageResponse < Struct.new(
1952
+ :savings_plans_coverages,
1953
+ :next_token)
1954
+ include Aws::Structure
1955
+ end
1956
+
1957
+ # @note When making an API call, you may pass GetSavingsPlansPurchaseRecommendationRequest
1958
+ # data as a hash:
1840
1959
  #
1841
- # @!attribute [rw] total_size
1842
- # The total number of query results.
1960
+ # {
1961
+ # savings_plans_type: "COMPUTE_SP", # required, accepts COMPUTE_SP, EC2_INSTANCE_SP
1962
+ # term_in_years: "ONE_YEAR", # required, accepts ONE_YEAR, THREE_YEARS
1963
+ # payment_option: "NO_UPFRONT", # required, accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT, LIGHT_UTILIZATION, MEDIUM_UTILIZATION, HEAVY_UTILIZATION
1964
+ # next_page_token: "NextPageToken",
1965
+ # page_size: 1,
1966
+ # lookback_period_in_days: "SEVEN_DAYS", # required, accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
1967
+ # }
1968
+ #
1969
+ # @!attribute [rw] savings_plans_type
1970
+ # The Savings Plans recommendation type requested.
1971
+ # @return [String]
1972
+ #
1973
+ # @!attribute [rw] term_in_years
1974
+ # The savings plan recommendation term used to generated these
1975
+ # recommendations.
1976
+ # @return [String]
1977
+ #
1978
+ # @!attribute [rw] payment_option
1979
+ # The payment option used to generate these recommendations.
1980
+ # @return [String]
1981
+ #
1982
+ # @!attribute [rw] next_page_token
1983
+ # The token to retrieve the next set of results. Amazon Web Services
1984
+ # provides the token when the response from a previous call has more
1985
+ # results than the maximum page size.
1986
+ # @return [String]
1987
+ #
1988
+ # @!attribute [rw] page_size
1989
+ # The number of recommendations that you want returned in a single
1990
+ # response object.
1843
1991
  # @return [Integer]
1844
1992
  #
1845
- # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTagsResponse AWS API Documentation
1993
+ # @!attribute [rw] lookback_period_in_days
1994
+ # The lookback period used to generate the recommendation.
1995
+ # @return [String]
1846
1996
  #
1847
- class GetTagsResponse < Struct.new(
1997
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendationRequest AWS API Documentation
1998
+ #
1999
+ class GetSavingsPlansPurchaseRecommendationRequest < Struct.new(
2000
+ :savings_plans_type,
2001
+ :term_in_years,
2002
+ :payment_option,
1848
2003
  :next_page_token,
1849
- :tags,
1850
- :return_size,
1851
- :total_size)
2004
+ :page_size,
2005
+ :lookback_period_in_days)
1852
2006
  include Aws::Structure
1853
2007
  end
1854
2008
 
1855
- # @note When making an API call, you may pass GetUsageForecastRequest
2009
+ # @!attribute [rw] metadata
2010
+ # The accountIDs these recommendations are generated for.
2011
+ # @return [Types::SavingsPlansPurchaseRecommendationMetadata]
2012
+ #
2013
+ # @!attribute [rw] savings_plans_purchase_recommendation
2014
+ # Contains your request parameters, Savings Plan Recommendations
2015
+ # Summary, and Details.
2016
+ # @return [Types::SavingsPlansPurchaseRecommendation]
2017
+ #
2018
+ # @!attribute [rw] next_page_token
2019
+ # The token for the next set of retrievable results. AWS provides the
2020
+ # token when the response from a previous call has more results than
2021
+ # the maximum page size.
2022
+ # @return [String]
2023
+ #
2024
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendationResponse AWS API Documentation
2025
+ #
2026
+ class GetSavingsPlansPurchaseRecommendationResponse < Struct.new(
2027
+ :metadata,
2028
+ :savings_plans_purchase_recommendation,
2029
+ :next_page_token)
2030
+ include Aws::Structure
2031
+ end
2032
+
2033
+ # @note When making an API call, you may pass GetSavingsPlansUtilizationDetailsRequest
1856
2034
  # data as a hash:
1857
2035
  #
1858
2036
  # {
@@ -1860,8 +2038,6 @@ module Aws::CostExplorer
1860
2038
  # start: "YearMonthDay", # required
1861
2039
  # end: "YearMonthDay", # required
1862
2040
  # },
1863
- # metric: "BLENDED_COST", # required, accepts BLENDED_COST, UNBLENDED_COST, AMORTIZED_COST, NET_UNBLENDED_COST, NET_AMORTIZED_COST, USAGE_QUANTITY, NORMALIZED_USAGE_AMOUNT
1864
- # granularity: "DAILY", # required, accepts DAILY, MONTHLY, HOURLY
1865
2041
  # filter: {
1866
2042
  # or: [
1867
2043
  # {
@@ -1877,7 +2053,7 @@ module Aws::CostExplorer
1877
2053
  # # recursive Expression
1878
2054
  # },
1879
2055
  # dimensions: {
1880
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE
2056
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1881
2057
  # values: ["Value"],
1882
2058
  # },
1883
2059
  # tags: {
@@ -1885,108 +2061,398 @@ module Aws::CostExplorer
1885
2061
  # values: ["Value"],
1886
2062
  # },
1887
2063
  # },
1888
- # prediction_interval_level: 1,
2064
+ # next_token: "NextPageToken",
2065
+ # max_results: 1,
1889
2066
  # }
1890
2067
  #
1891
2068
  # @!attribute [rw] time_period
1892
- # The start and end dates of the period that you want to retrieve
1893
- # usage forecast for. The start date is inclusive, but the end date is
1894
- # exclusive. For example, if `start` is `2017-01-01` and `end` is
1895
- # `2017-05-01`, then the cost and usage data is retrieved from
1896
- # `2017-01-01` up to and including `2017-04-30` but not including
1897
- # `2017-05-01`.
2069
+ # The time period that you want the usage and costs for. The `Start`
2070
+ # date must be within 13 months. The `End` date must be after the
2071
+ # `Start` date, and before the current date. Future dates can't be
2072
+ # used as an `End` date.
1898
2073
  # @return [Types::DateInterval]
1899
2074
  #
1900
- # @!attribute [rw] metric
1901
- # Which metric Cost Explorer uses to create your forecast.
2075
+ # @!attribute [rw] filter
2076
+ # Filters Savings Plans utilization coverage data for active Savings
2077
+ # Plans dimensions. You can filter data with the following dimensions:
1902
2078
  #
1903
- # Valid values for a `GetUsageForecast` call are the following:
2079
+ # * `LINKED_ACCOUNT`
1904
2080
  #
1905
- # * USAGE\_QUANTITY
2081
+ # * `SAVINGS_PLAN_ARN`
1906
2082
  #
1907
- # * NORMALIZED\_USAGE\_AMOUNT
1908
- # @return [String]
2083
+ # * `REGION`
1909
2084
  #
1910
- # @!attribute [rw] granularity
1911
- # How granular you want the forecast to be. You can get 3 months of
1912
- # `DAILY` forecasts or 12 months of `MONTHLY` forecasts.
2085
+ # * `PAYMENT_OPTIONS`
1913
2086
  #
1914
- # The `GetUsageForecast` operation supports only `DAILY` and `MONTHLY`
1915
- # granularities.
1916
- # @return [String]
2087
+ # * `INSTANCE_TYPE_FAMILY`
1917
2088
  #
1918
- # @!attribute [rw] filter
1919
- # The filters that you want to use to filter your forecast. Cost
1920
- # Explorer API supports all of the Cost Explorer filters.
2089
+ # `GetSavingsPlansUtilizationDetails` uses the same [Expression][1]
2090
+ # object as the other operations, but only `AND` is supported among
2091
+ # each dimension. If there are multiple values for a dimension, they
2092
+ # are OR'd together.
2093
+ #
2094
+ #
2095
+ #
2096
+ # [1]: http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
1921
2097
  # @return [Types::Expression]
1922
2098
  #
1923
- # @!attribute [rw] prediction_interval_level
1924
- # Cost Explorer always returns the mean forecast as a single point.
1925
- # You can request a prediction interval around the mean by specifying
1926
- # a confidence level. The higher the confidence level, the more
1927
- # confident Cost Explorer is about the actual value falling in the
1928
- # prediction interval. Higher confidence levels result in wider
1929
- # prediction intervals.
2099
+ # @!attribute [rw] next_token
2100
+ # The token to retrieve the next set of results. Amazon Web Services
2101
+ # provides the token when the response from a previous call has more
2102
+ # results than the maximum page size.
2103
+ # @return [String]
2104
+ #
2105
+ # @!attribute [rw] max_results
2106
+ # The number of items to be returned in a response. The default is
2107
+ # `20`, with a minimum value of `1`.
1930
2108
  # @return [Integer]
1931
2109
  #
1932
- # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecastRequest AWS API Documentation
2110
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetailsRequest AWS API Documentation
1933
2111
  #
1934
- class GetUsageForecastRequest < Struct.new(
2112
+ class GetSavingsPlansUtilizationDetailsRequest < Struct.new(
1935
2113
  :time_period,
1936
- :metric,
1937
- :granularity,
1938
2114
  :filter,
1939
- :prediction_interval_level)
2115
+ :next_token,
2116
+ :max_results)
1940
2117
  include Aws::Structure
1941
2118
  end
1942
2119
 
1943
- # @!attribute [rw] total
1944
- # How much you're forecasted to use over the forecast period.
1945
- # @return [Types::MetricValue]
1946
- #
1947
- # @!attribute [rw] forecast_results_by_time
1948
- # The forecasts for your query, in order. For `DAILY` forecasts, this
1949
- # is a list of days. For `MONTHLY` forecasts, this is a list of
1950
- # months.
1951
- # @return [Array<Types::ForecastResult>]
1952
- #
1953
- # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecastResponse AWS API Documentation
2120
+ # @!attribute [rw] savings_plans_utilization_details
2121
+ # Retrieves a single daily or monthly Savings Plans utilization rate
2122
+ # and details for your account.
2123
+ # @return [Array<Types::SavingsPlansUtilizationDetail>]
1954
2124
  #
1955
- class GetUsageForecastResponse < Struct.new(
1956
- :total,
1957
- :forecast_results_by_time)
1958
- include Aws::Structure
1959
- end
1960
-
1961
- # One level of grouped data in the results.
2125
+ # @!attribute [rw] total
2126
+ # The total Savings Plans utilization, regardless of time period.
2127
+ # @return [Types::SavingsPlansUtilizationAggregates]
1962
2128
  #
1963
- # @!attribute [rw] keys
1964
- # The keys that are included in this group.
1965
- # @return [Array<String>]
2129
+ # @!attribute [rw] time_period
2130
+ # The time period that you want the usage and costs for.
2131
+ # @return [Types::DateInterval]
1966
2132
  #
1967
- # @!attribute [rw] metrics
1968
- # The metrics that are included in this group.
1969
- # @return [Hash<String,Types::MetricValue>]
2133
+ # @!attribute [rw] next_token
2134
+ # The token to retrieve the next set of results. Amazon Web Services
2135
+ # provides the token when the response from a previous call has more
2136
+ # results than the maximum page size.
2137
+ # @return [String]
1970
2138
  #
1971
- # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Group AWS API Documentation
2139
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetailsResponse AWS API Documentation
1972
2140
  #
1973
- class Group < Struct.new(
1974
- :keys,
1975
- :metrics)
2141
+ class GetSavingsPlansUtilizationDetailsResponse < Struct.new(
2142
+ :savings_plans_utilization_details,
2143
+ :total,
2144
+ :time_period,
2145
+ :next_token)
1976
2146
  include Aws::Structure
1977
2147
  end
1978
2148
 
1979
- # Represents a group when you specify a group by criteria or in the
1980
- # response to a query with a specific grouping.
1981
- #
1982
- # @note When making an API call, you may pass GroupDefinition
2149
+ # @note When making an API call, you may pass GetSavingsPlansUtilizationRequest
1983
2150
  # data as a hash:
1984
2151
  #
1985
2152
  # {
1986
- # type: "DIMENSION", # accepts DIMENSION, TAG
1987
- # key: "GroupDefinitionKey",
1988
- # }
1989
- #
2153
+ # time_period: { # required
2154
+ # start: "YearMonthDay", # required
2155
+ # end: "YearMonthDay", # required
2156
+ # },
2157
+ # granularity: "DAILY", # accepts DAILY, MONTHLY, HOURLY
2158
+ # filter: {
2159
+ # or: [
2160
+ # {
2161
+ # # recursive Expression
2162
+ # },
2163
+ # ],
2164
+ # and: [
2165
+ # {
2166
+ # # recursive Expression
2167
+ # },
2168
+ # ],
2169
+ # not: {
2170
+ # # recursive Expression
2171
+ # },
2172
+ # dimensions: {
2173
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
2174
+ # values: ["Value"],
2175
+ # },
2176
+ # tags: {
2177
+ # key: "TagKey",
2178
+ # values: ["Value"],
2179
+ # },
2180
+ # },
2181
+ # }
2182
+ #
2183
+ # @!attribute [rw] time_period
2184
+ # The time period that you want the usage and costs for. The `Start`
2185
+ # date must be within 13 months. The `End` date must be after the
2186
+ # `Start` date, and before the current date. Future dates can't be
2187
+ # used as an `End` date.
2188
+ # @return [Types::DateInterval]
2189
+ #
2190
+ # @!attribute [rw] granularity
2191
+ # The granularity of the Amazon Web Services utillization data for
2192
+ # your Savings Plans.
2193
+ # @return [String]
2194
+ #
2195
+ # @!attribute [rw] filter
2196
+ # Filters Savings Plans utilization coverage data for active Savings
2197
+ # Plans dimensions. You can filter data with the following dimensions:
2198
+ #
2199
+ # * `LINKED_ACCOUNT`
2200
+ #
2201
+ # * `SAVINGS_PLAN_ARN`
2202
+ #
2203
+ # * `SAVINGS_PLANS_TYPE`
2204
+ #
2205
+ # * `REGION`
2206
+ #
2207
+ # * `PAYMENT_OPTIONS`
2208
+ #
2209
+ # * `INSTANCE_TYPE_FAMILY`
2210
+ #
2211
+ # `GetSavingsPlansUtilization` uses the same [Expression][1] object as
2212
+ # the other operations, but only `AND` is supported among each
2213
+ # dimension. If there are multiple values for a dimension, they are
2214
+ # OR'd together.
2215
+ #
2216
+ #
2217
+ #
2218
+ # [1]: http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
2219
+ # @return [Types::Expression]
2220
+ #
2221
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationRequest AWS API Documentation
2222
+ #
2223
+ class GetSavingsPlansUtilizationRequest < Struct.new(
2224
+ :time_period,
2225
+ :granularity,
2226
+ :filter)
2227
+ include Aws::Structure
2228
+ end
2229
+
2230
+ # @!attribute [rw] savings_plans_utilizations_by_time
2231
+ # The amount of time (in hours) ou used your Savings Plans. This
2232
+ # allows you to specify date ranges.
2233
+ # @return [Array<Types::SavingsPlansUtilizationByTime>]
2234
+ #
2235
+ # @!attribute [rw] total
2236
+ # The total amount of time that you used your Savings Plans,
2237
+ # regardless of date ranges.
2238
+ # @return [Types::SavingsPlansUtilizationAggregates]
2239
+ #
2240
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationResponse AWS API Documentation
2241
+ #
2242
+ class GetSavingsPlansUtilizationResponse < Struct.new(
2243
+ :savings_plans_utilizations_by_time,
2244
+ :total)
2245
+ include Aws::Structure
2246
+ end
2247
+
2248
+ # @note When making an API call, you may pass GetTagsRequest
2249
+ # data as a hash:
2250
+ #
2251
+ # {
2252
+ # search_string: "SearchString",
2253
+ # time_period: { # required
2254
+ # start: "YearMonthDay", # required
2255
+ # end: "YearMonthDay", # required
2256
+ # },
2257
+ # tag_key: "TagKey",
2258
+ # next_page_token: "NextPageToken",
2259
+ # }
2260
+ #
2261
+ # @!attribute [rw] search_string
2262
+ # The value that you want to search for.
2263
+ # @return [String]
2264
+ #
2265
+ # @!attribute [rw] time_period
2266
+ # The start and end dates for retrieving the dimension values. The
2267
+ # start date is inclusive, but the end date is exclusive. For example,
2268
+ # if `start` is `2017-01-01` and `end` is `2017-05-01`, then the cost
2269
+ # and usage data is retrieved from `2017-01-01` up to and including
2270
+ # `2017-04-30` but not including `2017-05-01`.
2271
+ # @return [Types::DateInterval]
2272
+ #
2273
+ # @!attribute [rw] tag_key
2274
+ # The key of the tag that you want to return values for.
2275
+ # @return [String]
2276
+ #
2277
+ # @!attribute [rw] next_page_token
2278
+ # The token to retrieve the next set of results. AWS provides the
2279
+ # token when the response from a previous call has more results than
2280
+ # the maximum page size.
2281
+ # @return [String]
2282
+ #
2283
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTagsRequest AWS API Documentation
2284
+ #
2285
+ class GetTagsRequest < Struct.new(
2286
+ :search_string,
2287
+ :time_period,
2288
+ :tag_key,
2289
+ :next_page_token)
2290
+ include Aws::Structure
2291
+ end
2292
+
2293
+ # @!attribute [rw] next_page_token
2294
+ # The token for the next set of retrievable results. AWS provides the
2295
+ # token when the response from a previous call has more results than
2296
+ # the maximum page size.
2297
+ # @return [String]
2298
+ #
2299
+ # @!attribute [rw] tags
2300
+ # The tags that match your request.
2301
+ # @return [Array<String>]
2302
+ #
2303
+ # @!attribute [rw] return_size
2304
+ # The number of query results that AWS returns at a time.
2305
+ # @return [Integer]
2306
+ #
2307
+ # @!attribute [rw] total_size
2308
+ # The total number of query results.
2309
+ # @return [Integer]
2310
+ #
2311
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTagsResponse AWS API Documentation
2312
+ #
2313
+ class GetTagsResponse < Struct.new(
2314
+ :next_page_token,
2315
+ :tags,
2316
+ :return_size,
2317
+ :total_size)
2318
+ include Aws::Structure
2319
+ end
2320
+
2321
+ # @note When making an API call, you may pass GetUsageForecastRequest
2322
+ # data as a hash:
2323
+ #
2324
+ # {
2325
+ # time_period: { # required
2326
+ # start: "YearMonthDay", # required
2327
+ # end: "YearMonthDay", # required
2328
+ # },
2329
+ # metric: "BLENDED_COST", # required, accepts BLENDED_COST, UNBLENDED_COST, AMORTIZED_COST, NET_UNBLENDED_COST, NET_AMORTIZED_COST, USAGE_QUANTITY, NORMALIZED_USAGE_AMOUNT
2330
+ # granularity: "DAILY", # required, accepts DAILY, MONTHLY, HOURLY
2331
+ # filter: {
2332
+ # or: [
2333
+ # {
2334
+ # # recursive Expression
2335
+ # },
2336
+ # ],
2337
+ # and: [
2338
+ # {
2339
+ # # recursive Expression
2340
+ # },
2341
+ # ],
2342
+ # not: {
2343
+ # # recursive Expression
2344
+ # },
2345
+ # dimensions: {
2346
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
2347
+ # values: ["Value"],
2348
+ # },
2349
+ # tags: {
2350
+ # key: "TagKey",
2351
+ # values: ["Value"],
2352
+ # },
2353
+ # },
2354
+ # prediction_interval_level: 1,
2355
+ # }
2356
+ #
2357
+ # @!attribute [rw] time_period
2358
+ # The start and end dates of the period that you want to retrieve
2359
+ # usage forecast for. The start date is inclusive, but the end date is
2360
+ # exclusive. For example, if `start` is `2017-01-01` and `end` is
2361
+ # `2017-05-01`, then the cost and usage data is retrieved from
2362
+ # `2017-01-01` up to and including `2017-04-30` but not including
2363
+ # `2017-05-01`.
2364
+ # @return [Types::DateInterval]
2365
+ #
2366
+ # @!attribute [rw] metric
2367
+ # Which metric Cost Explorer uses to create your forecast.
2368
+ #
2369
+ # Valid values for a `GetUsageForecast` call are the following:
2370
+ #
2371
+ # * USAGE\_QUANTITY
2372
+ #
2373
+ # * NORMALIZED\_USAGE\_AMOUNT
2374
+ # @return [String]
2375
+ #
2376
+ # @!attribute [rw] granularity
2377
+ # How granular you want the forecast to be. You can get 3 months of
2378
+ # `DAILY` forecasts or 12 months of `MONTHLY` forecasts.
2379
+ #
2380
+ # The `GetUsageForecast` operation supports only `DAILY` and `MONTHLY`
2381
+ # granularities.
2382
+ # @return [String]
2383
+ #
2384
+ # @!attribute [rw] filter
2385
+ # The filters that you want to use to filter your forecast. Cost
2386
+ # Explorer API supports all of the Cost Explorer filters.
2387
+ # @return [Types::Expression]
2388
+ #
2389
+ # @!attribute [rw] prediction_interval_level
2390
+ # Cost Explorer always returns the mean forecast as a single point.
2391
+ # You can request a prediction interval around the mean by specifying
2392
+ # a confidence level. The higher the confidence level, the more
2393
+ # confident Cost Explorer is about the actual value falling in the
2394
+ # prediction interval. Higher confidence levels result in wider
2395
+ # prediction intervals.
2396
+ # @return [Integer]
2397
+ #
2398
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecastRequest AWS API Documentation
2399
+ #
2400
+ class GetUsageForecastRequest < Struct.new(
2401
+ :time_period,
2402
+ :metric,
2403
+ :granularity,
2404
+ :filter,
2405
+ :prediction_interval_level)
2406
+ include Aws::Structure
2407
+ end
2408
+
2409
+ # @!attribute [rw] total
2410
+ # How much you're forecasted to use over the forecast period.
2411
+ # @return [Types::MetricValue]
2412
+ #
2413
+ # @!attribute [rw] forecast_results_by_time
2414
+ # The forecasts for your query, in order. For `DAILY` forecasts, this
2415
+ # is a list of days. For `MONTHLY` forecasts, this is a list of
2416
+ # months.
2417
+ # @return [Array<Types::ForecastResult>]
2418
+ #
2419
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecastResponse AWS API Documentation
2420
+ #
2421
+ class GetUsageForecastResponse < Struct.new(
2422
+ :total,
2423
+ :forecast_results_by_time)
2424
+ include Aws::Structure
2425
+ end
2426
+
2427
+ # One level of grouped data in the results.
2428
+ #
2429
+ # @!attribute [rw] keys
2430
+ # The keys that are included in this group.
2431
+ # @return [Array<String>]
2432
+ #
2433
+ # @!attribute [rw] metrics
2434
+ # The metrics that are included in this group.
2435
+ # @return [Hash<String,Types::MetricValue>]
2436
+ #
2437
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Group AWS API Documentation
2438
+ #
2439
+ class Group < Struct.new(
2440
+ :keys,
2441
+ :metrics)
2442
+ include Aws::Structure
2443
+ end
2444
+
2445
+ # Represents a group when you specify a group by criteria or in the
2446
+ # response to a query with a specific grouping.
2447
+ #
2448
+ # @note When making an API call, you may pass GroupDefinition
2449
+ # data as a hash:
2450
+ #
2451
+ # {
2452
+ # type: "DIMENSION", # accepts DIMENSION, TAG
2453
+ # key: "GroupDefinitionKey",
2454
+ # }
2455
+ #
1990
2456
  # @!attribute [rw] type
1991
2457
  # The string that represents the type of group.
1992
2458
  # @return [String]
@@ -2440,7 +2906,7 @@ module Aws::CostExplorer
2440
2906
  #
2441
2907
  # @!attribute [rw] estimated_reservation_cost_for_lookback_period
2442
2908
  # How much AWS estimates that you would have spent for all usage
2443
- # during the specified historical period if you had had a reservation.
2909
+ # during the specified historical period if you had a reservation.
2444
2910
  # @return [String]
2445
2911
  #
2446
2912
  # @!attribute [rw] upfront_cost
@@ -2693,6 +3159,496 @@ module Aws::CostExplorer
2693
3159
  include Aws::Structure
2694
3160
  end
2695
3161
 
3162
+ # The amortized amount of Savings Plans purchased in a specific account
3163
+ # during a specific time interval.
3164
+ #
3165
+ # @!attribute [rw] amortized_recurring_commitment
3166
+ # The amortized amount of your Savings Plans commitment that was
3167
+ # purchased with either a `Partial` or a `NoUpfront`.
3168
+ # @return [String]
3169
+ #
3170
+ # @!attribute [rw] amortized_upfront_commitment
3171
+ # The amortized amount of your Savings Plans commitment that was
3172
+ # purchased with an `Upfront` or `PartialUpfront` Savings Plans.
3173
+ # @return [String]
3174
+ #
3175
+ # @!attribute [rw] total_amortized_commitment
3176
+ # The total amortized amount of your Savings Plans commitment,
3177
+ # regardless of your Savings Plans purchase method.
3178
+ # @return [String]
3179
+ #
3180
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansAmortizedCommitment AWS API Documentation
3181
+ #
3182
+ class SavingsPlansAmortizedCommitment < Struct.new(
3183
+ :amortized_recurring_commitment,
3184
+ :amortized_upfront_commitment,
3185
+ :total_amortized_commitment)
3186
+ include Aws::Structure
3187
+ end
3188
+
3189
+ # The amount of Savings Plans eligible usage that is covered by Savings
3190
+ # Plans. All calculations consider the On-Demand equivalent of your
3191
+ # Savings Plans usage.
3192
+ #
3193
+ # @!attribute [rw] attributes
3194
+ # The attribute that applies to a specific `Dimension`.
3195
+ # @return [Hash<String,String>]
3196
+ #
3197
+ # @!attribute [rw] coverage
3198
+ # The amount of Savings Plans eligible usage that the Savings Plans
3199
+ # covered.
3200
+ # @return [Types::SavingsPlansCoverageData]
3201
+ #
3202
+ # @!attribute [rw] time_period
3203
+ # The time period that you want the usage and costs for.
3204
+ # @return [Types::DateInterval]
3205
+ #
3206
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansCoverage AWS API Documentation
3207
+ #
3208
+ class SavingsPlansCoverage < Struct.new(
3209
+ :attributes,
3210
+ :coverage,
3211
+ :time_period)
3212
+ include Aws::Structure
3213
+ end
3214
+
3215
+ # Specific coverage percentage, On-Demand costs, and spend covered by
3216
+ # Savings Plans, and total Savings Plans costs for an account.
3217
+ #
3218
+ # @!attribute [rw] spend_covered_by_savings_plans
3219
+ # The amount of your Amazon Web Services usage that is covered by a
3220
+ # Savings Plans.
3221
+ # @return [String]
3222
+ #
3223
+ # @!attribute [rw] on_demand_cost
3224
+ # The cost of your Amazon Web Services usage at the public On-Demand
3225
+ # rate.
3226
+ # @return [String]
3227
+ #
3228
+ # @!attribute [rw] total_cost
3229
+ # The total cost of your Amazon Web Services usage, regardless of your
3230
+ # purchase option.
3231
+ # @return [String]
3232
+ #
3233
+ # @!attribute [rw] coverage_percentage
3234
+ # The percentage of your existing Savings Planscovered usage, divided
3235
+ # by all of your eligible Savings Plans usage in an account(or set of
3236
+ # accounts).
3237
+ # @return [String]
3238
+ #
3239
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansCoverageData AWS API Documentation
3240
+ #
3241
+ class SavingsPlansCoverageData < Struct.new(
3242
+ :spend_covered_by_savings_plans,
3243
+ :on_demand_cost,
3244
+ :total_cost,
3245
+ :coverage_percentage)
3246
+ include Aws::Structure
3247
+ end
3248
+
3249
+ # Attribute details on a specific Savings Plan.
3250
+ #
3251
+ # @!attribute [rw] region
3252
+ # A geographic location where the Savings Plans is hosted.
3253
+ # @return [String]
3254
+ #
3255
+ # @!attribute [rw] instance_family
3256
+ # A group of instance types that Savings Plans applies to.
3257
+ # @return [String]
3258
+ #
3259
+ # @!attribute [rw] offering_id
3260
+ # The unique ID used to distinguish Savings Plans from one another.
3261
+ # @return [String]
3262
+ #
3263
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansDetails AWS API Documentation
3264
+ #
3265
+ class SavingsPlansDetails < Struct.new(
3266
+ :region,
3267
+ :instance_family,
3268
+ :offering_id)
3269
+ include Aws::Structure
3270
+ end
3271
+
3272
+ # Contains your request parameters, Savings Plan Recommendations
3273
+ # Summary, and Details.
3274
+ #
3275
+ # @!attribute [rw] savings_plans_type
3276
+ # The requested Savings Plans recommendation type.
3277
+ # @return [String]
3278
+ #
3279
+ # @!attribute [rw] term_in_years
3280
+ # The Savings Plans recommendation term in years, used to generate the
3281
+ # recommendation.
3282
+ # @return [String]
3283
+ #
3284
+ # @!attribute [rw] payment_option
3285
+ # The payment option used to generate the recommendation.
3286
+ # @return [String]
3287
+ #
3288
+ # @!attribute [rw] lookback_period_in_days
3289
+ # The lookback period in days, used to generate the recommendation.
3290
+ # @return [String]
3291
+ #
3292
+ # @!attribute [rw] savings_plans_purchase_recommendation_details
3293
+ # Details for the Savings Plans we recommend you to purchase to cover
3294
+ # existing, Savings Plans eligible workloads.
3295
+ # @return [Array<Types::SavingsPlansPurchaseRecommendationDetail>]
3296
+ #
3297
+ # @!attribute [rw] savings_plans_purchase_recommendation_summary
3298
+ # Summary metrics for your Savings Plans Recommendations.
3299
+ # @return [Types::SavingsPlansPurchaseRecommendationSummary]
3300
+ #
3301
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansPurchaseRecommendation AWS API Documentation
3302
+ #
3303
+ class SavingsPlansPurchaseRecommendation < Struct.new(
3304
+ :savings_plans_type,
3305
+ :term_in_years,
3306
+ :payment_option,
3307
+ :lookback_period_in_days,
3308
+ :savings_plans_purchase_recommendation_details,
3309
+ :savings_plans_purchase_recommendation_summary)
3310
+ include Aws::Structure
3311
+ end
3312
+
3313
+ # Details for your recommended Savings Plans.
3314
+ #
3315
+ # @!attribute [rw] savings_plans_details
3316
+ # Details for your recommended Savings Plans.
3317
+ # @return [Types::SavingsPlansDetails]
3318
+ #
3319
+ # @!attribute [rw] account_id
3320
+ # The `AccountID` the recommendation is generated for.
3321
+ # @return [String]
3322
+ #
3323
+ # @!attribute [rw] upfront_cost
3324
+ # The upfront cost of the recommended Savings Plans, based on the
3325
+ # selected payment option.
3326
+ # @return [String]
3327
+ #
3328
+ # @!attribute [rw] estimated_roi
3329
+ # The estimated return on investment based on the recommended Savings
3330
+ # Plans purchased. This is calculated as `estimatedSavingsAmount`/
3331
+ # `estimatedSPCost`*100.
3332
+ # @return [String]
3333
+ #
3334
+ # @!attribute [rw] currency_code
3335
+ # The currency code Amazon Web Services used to generate the
3336
+ # recommendations and present potential savings.
3337
+ # @return [String]
3338
+ #
3339
+ # @!attribute [rw] estimated_sp_cost
3340
+ # The cost of the recommended Savings Plans over the length of the
3341
+ # lookback period.
3342
+ # @return [String]
3343
+ #
3344
+ # @!attribute [rw] estimated_on_demand_cost
3345
+ # The remaining On-Demand cost estimated to not be covered by the
3346
+ # recommended Savings Plans, over the length of the lookback period.
3347
+ # @return [String]
3348
+ #
3349
+ # @!attribute [rw] estimated_savings_amount
3350
+ # The estimated savings amount based on the recommended Savings Plans
3351
+ # over the length of the lookback period.
3352
+ # @return [String]
3353
+ #
3354
+ # @!attribute [rw] estimated_savings_percentage
3355
+ # The estimated savings percentage relative to the total cost of
3356
+ # applicable On-Demand usage over the lookback period.
3357
+ # @return [String]
3358
+ #
3359
+ # @!attribute [rw] hourly_commitment_to_purchase
3360
+ # The recommended hourly commitment level for the Savings Plans type,
3361
+ # and configuration based on the usage during the lookback period.
3362
+ # @return [String]
3363
+ #
3364
+ # @!attribute [rw] estimated_average_utilization
3365
+ # The estimated utilization of the recommended Savings Plans.
3366
+ # @return [String]
3367
+ #
3368
+ # @!attribute [rw] estimated_monthly_savings_amount
3369
+ # The estimated monthly savings amount, based on the recommended
3370
+ # Savings Plans.
3371
+ # @return [String]
3372
+ #
3373
+ # @!attribute [rw] current_minimum_hourly_on_demand_spend
3374
+ # The lowest value of hourly On-Demand spend over the lookback period
3375
+ # of the applicable usage type.
3376
+ # @return [String]
3377
+ #
3378
+ # @!attribute [rw] current_maximum_hourly_on_demand_spend
3379
+ # The highest value of hourly On-Demand spend over the lookback period
3380
+ # of the applicable usage type.
3381
+ # @return [String]
3382
+ #
3383
+ # @!attribute [rw] current_average_hourly_on_demand_spend
3384
+ # The average value of hourly On-Demand spend over the lookback period
3385
+ # of the applicable usage type.
3386
+ # @return [String]
3387
+ #
3388
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansPurchaseRecommendationDetail AWS API Documentation
3389
+ #
3390
+ class SavingsPlansPurchaseRecommendationDetail < Struct.new(
3391
+ :savings_plans_details,
3392
+ :account_id,
3393
+ :upfront_cost,
3394
+ :estimated_roi,
3395
+ :currency_code,
3396
+ :estimated_sp_cost,
3397
+ :estimated_on_demand_cost,
3398
+ :estimated_savings_amount,
3399
+ :estimated_savings_percentage,
3400
+ :hourly_commitment_to_purchase,
3401
+ :estimated_average_utilization,
3402
+ :estimated_monthly_savings_amount,
3403
+ :current_minimum_hourly_on_demand_spend,
3404
+ :current_maximum_hourly_on_demand_spend,
3405
+ :current_average_hourly_on_demand_spend)
3406
+ include Aws::Structure
3407
+ end
3408
+
3409
+ # Metadata about your Savings Plans Purchase Recommendations.
3410
+ #
3411
+ # @!attribute [rw] recommendation_id
3412
+ # The unique identifier for the recommendation set.
3413
+ # @return [String]
3414
+ #
3415
+ # @!attribute [rw] generation_timestamp
3416
+ # The timestamp showing when the recommendations were generated.
3417
+ # @return [String]
3418
+ #
3419
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansPurchaseRecommendationMetadata AWS API Documentation
3420
+ #
3421
+ class SavingsPlansPurchaseRecommendationMetadata < Struct.new(
3422
+ :recommendation_id,
3423
+ :generation_timestamp)
3424
+ include Aws::Structure
3425
+ end
3426
+
3427
+ # Summary metrics for your Savings Plans Purchase Recommendations.
3428
+ #
3429
+ # @!attribute [rw] estimated_roi
3430
+ # The estimated return on investment based on the recommended Savings
3431
+ # Plans and estimated savings.
3432
+ # @return [String]
3433
+ #
3434
+ # @!attribute [rw] currency_code
3435
+ # The currency code Amazon Web Services used to generate the
3436
+ # recommendations and present potential savings.
3437
+ # @return [String]
3438
+ #
3439
+ # @!attribute [rw] estimated_total_cost
3440
+ # The estimated total cost of the usage after purchasing the
3441
+ # recommended Savings Plans. This is a sum of the cost of Savings
3442
+ # Plans during this term, and the remaining On-Demand usage.
3443
+ # @return [String]
3444
+ #
3445
+ # @!attribute [rw] current_on_demand_spend
3446
+ # The current total on demand spend of the applicable usage types over
3447
+ # the lookback period.
3448
+ # @return [String]
3449
+ #
3450
+ # @!attribute [rw] estimated_savings_amount
3451
+ # The estimated total savings over the lookback period, based on the
3452
+ # purchase of the recommended Savings Plans.
3453
+ # @return [String]
3454
+ #
3455
+ # @!attribute [rw] total_recommendation_count
3456
+ # The aggregate number of Savings Plans recommendations that exist for
3457
+ # your account.
3458
+ # @return [String]
3459
+ #
3460
+ # @!attribute [rw] daily_commitment_to_purchase
3461
+ # The recommended Savings Plans cost on a daily (24 hourly) basis.
3462
+ # @return [String]
3463
+ #
3464
+ # @!attribute [rw] hourly_commitment_to_purchase
3465
+ # The recommended hourly commitment based on the recommendation
3466
+ # parameters.
3467
+ # @return [String]
3468
+ #
3469
+ # @!attribute [rw] estimated_savings_percentage
3470
+ # The estimated savings relative to the total cost of On-Demand usage,
3471
+ # over the lookback period. This is calculated as
3472
+ # `estimatedSavingsAmount`/ `CurrentOnDemandSpend`*100.
3473
+ # @return [String]
3474
+ #
3475
+ # @!attribute [rw] estimated_monthly_savings_amount
3476
+ # The estimated monthly savings amount, based on the recommended
3477
+ # Savings Plans purchase.
3478
+ # @return [String]
3479
+ #
3480
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansPurchaseRecommendationSummary AWS API Documentation
3481
+ #
3482
+ class SavingsPlansPurchaseRecommendationSummary < Struct.new(
3483
+ :estimated_roi,
3484
+ :currency_code,
3485
+ :estimated_total_cost,
3486
+ :current_on_demand_spend,
3487
+ :estimated_savings_amount,
3488
+ :total_recommendation_count,
3489
+ :daily_commitment_to_purchase,
3490
+ :hourly_commitment_to_purchase,
3491
+ :estimated_savings_percentage,
3492
+ :estimated_monthly_savings_amount)
3493
+ include Aws::Structure
3494
+ end
3495
+
3496
+ # The amount of savings you're accumulating, against the public
3497
+ # On-Demand rate of the usage accrued in an account.
3498
+ #
3499
+ # @!attribute [rw] net_savings
3500
+ # The savings amount that you are accumulating for the usage that is
3501
+ # covered by a Savings Plans, when compared to the On-Demand
3502
+ # equivalent of the same usage.
3503
+ # @return [String]
3504
+ #
3505
+ # @!attribute [rw] on_demand_cost_equivalent
3506
+ # How much the amount that the usage would have cost if it was accrued
3507
+ # at the On-Demand rate.
3508
+ # @return [String]
3509
+ #
3510
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansSavings AWS API Documentation
3511
+ #
3512
+ class SavingsPlansSavings < Struct.new(
3513
+ :net_savings,
3514
+ :on_demand_cost_equivalent)
3515
+ include Aws::Structure
3516
+ end
3517
+
3518
+ # The measurement of how well you are using your existing Savings Plans.
3519
+ #
3520
+ # @!attribute [rw] total_commitment
3521
+ # The total amount of Savings Plans commitment that's been purchased
3522
+ # in an account (or set of accounts).
3523
+ # @return [String]
3524
+ #
3525
+ # @!attribute [rw] used_commitment
3526
+ # The amount of your Savings Plans commitment that was not consumed
3527
+ # from Savings Plans eligible usage in a specific period.
3528
+ # @return [String]
3529
+ #
3530
+ # @!attribute [rw] unused_commitment
3531
+ # The amount of your Savings Plans commitment that was not consumed
3532
+ # from Savings Plans eligible usage in a specific period.
3533
+ # @return [String]
3534
+ #
3535
+ # @!attribute [rw] utilization_percentage
3536
+ # The amount of `UsedCommitment` divided by the `TotalCommitment` for
3537
+ # your Savings Plans.
3538
+ # @return [String]
3539
+ #
3540
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansUtilization AWS API Documentation
3541
+ #
3542
+ class SavingsPlansUtilization < Struct.new(
3543
+ :total_commitment,
3544
+ :used_commitment,
3545
+ :unused_commitment,
3546
+ :utilization_percentage)
3547
+ include Aws::Structure
3548
+ end
3549
+
3550
+ # The aggregated utilization metrics for your Savings Plans usage.
3551
+ #
3552
+ # @!attribute [rw] utilization
3553
+ # A ratio of your effectiveness of using existing Savings Plans to
3554
+ # apply to workloads that are Savings Plans eligible.
3555
+ # @return [Types::SavingsPlansUtilization]
3556
+ #
3557
+ # @!attribute [rw] savings
3558
+ # The amount saved by using existing Savings Plans. Savings returns
3559
+ # both net savings from Savings Plans, as well as the
3560
+ # `onDemandCostEquivalent` of the Savings Plans when considering the
3561
+ # utilization rate.
3562
+ # @return [Types::SavingsPlansSavings]
3563
+ #
3564
+ # @!attribute [rw] amortized_commitment
3565
+ # The total amortized commitment for a Savings Plans. This includes
3566
+ # the sum of the upfront and recurring Savings Plans fees.
3567
+ # @return [Types::SavingsPlansAmortizedCommitment]
3568
+ #
3569
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansUtilizationAggregates AWS API Documentation
3570
+ #
3571
+ class SavingsPlansUtilizationAggregates < Struct.new(
3572
+ :utilization,
3573
+ :savings,
3574
+ :amortized_commitment)
3575
+ include Aws::Structure
3576
+ end
3577
+
3578
+ # The amount of Savings Plans utilization, in hours.
3579
+ #
3580
+ # @!attribute [rw] time_period
3581
+ # The time period that you want the usage and costs for.
3582
+ # @return [Types::DateInterval]
3583
+ #
3584
+ # @!attribute [rw] utilization
3585
+ # A ratio of your effectiveness of using existing Savings Plans to
3586
+ # apply to workloads that are Savings Plans eligible.
3587
+ # @return [Types::SavingsPlansUtilization]
3588
+ #
3589
+ # @!attribute [rw] savings
3590
+ # The amount saved by using existing Savings Plans. Savings returns
3591
+ # both net savings from Savings Plans as well as the
3592
+ # `onDemandCostEquivalent` of the Savings Plans when considering the
3593
+ # utilization rate.
3594
+ # @return [Types::SavingsPlansSavings]
3595
+ #
3596
+ # @!attribute [rw] amortized_commitment
3597
+ # The total amortized commitment for a Savings Plans. This includes
3598
+ # the sum of the upfront and recurring Savings Plans fees.
3599
+ # @return [Types::SavingsPlansAmortizedCommitment]
3600
+ #
3601
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansUtilizationByTime AWS API Documentation
3602
+ #
3603
+ class SavingsPlansUtilizationByTime < Struct.new(
3604
+ :time_period,
3605
+ :utilization,
3606
+ :savings,
3607
+ :amortized_commitment)
3608
+ include Aws::Structure
3609
+ end
3610
+
3611
+ # A single daily or monthly Savings Plans utilization rate, and details
3612
+ # for your account. Master accounts in an organization have access to
3613
+ # member accounts. You can use `GetDimensionValues` to determine the
3614
+ # possible dimension values.
3615
+ #
3616
+ # @!attribute [rw] savings_plan_arn
3617
+ # The unique Amazon Resource Name (ARN) for a particular Savings Plan.
3618
+ # @return [String]
3619
+ #
3620
+ # @!attribute [rw] attributes
3621
+ # The attribute that applies to a specific `Dimension`.
3622
+ # @return [Hash<String,String>]
3623
+ #
3624
+ # @!attribute [rw] utilization
3625
+ # A ratio of your effectiveness of using existing Savings Plans to
3626
+ # apply to workloads that are Savings Plans eligible.
3627
+ # @return [Types::SavingsPlansUtilization]
3628
+ #
3629
+ # @!attribute [rw] savings
3630
+ # The amount saved by using existing Savings Plans. Savings returns
3631
+ # both net savings from savings plans as well as the
3632
+ # `onDemandCostEquivalent` of the Savings Plans when considering the
3633
+ # utilization rate.
3634
+ # @return [Types::SavingsPlansSavings]
3635
+ #
3636
+ # @!attribute [rw] amortized_commitment
3637
+ # The total amortized commitment for a Savings Plans. Includes the sum
3638
+ # of the upfront and recurring Savings Plans fees.
3639
+ # @return [Types::SavingsPlansAmortizedCommitment]
3640
+ #
3641
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansUtilizationDetail AWS API Documentation
3642
+ #
3643
+ class SavingsPlansUtilizationDetail < Struct.new(
3644
+ :savings_plan_arn,
3645
+ :attributes,
3646
+ :utilization,
3647
+ :savings,
3648
+ :amortized_commitment)
3649
+ include Aws::Structure
3650
+ end
3651
+
2696
3652
  # Hardware specifications for the service that you want recommendations
2697
3653
  # for.
2698
3654
  #