aws-sdk-costexplorer 1.52.0 → 1.57.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -35,6 +35,7 @@ module Aws::CostExplorer
35
35
  CostCategory = Shapes::StructureShape.new(name: 'CostCategory')
36
36
  CostCategoryMaxResults = Shapes::IntegerShape.new(name: 'CostCategoryMaxResults')
37
37
  CostCategoryName = Shapes::StringShape.new(name: 'CostCategoryName')
38
+ CostCategoryNamesList = Shapes::ListShape.new(name: 'CostCategoryNamesList')
38
39
  CostCategoryProcessingStatus = Shapes::StructureShape.new(name: 'CostCategoryProcessingStatus')
39
40
  CostCategoryProcessingStatusList = Shapes::ListShape.new(name: 'CostCategoryProcessingStatusList')
40
41
  CostCategoryReference = Shapes::StructureShape.new(name: 'CostCategoryReference')
@@ -103,6 +104,8 @@ module Aws::CostExplorer
103
104
  GetCostAndUsageResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageResponse')
104
105
  GetCostAndUsageWithResourcesRequest = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesRequest')
105
106
  GetCostAndUsageWithResourcesResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesResponse')
107
+ GetCostCategoriesRequest = Shapes::StructureShape.new(name: 'GetCostCategoriesRequest')
108
+ GetCostCategoriesResponse = Shapes::StructureShape.new(name: 'GetCostCategoriesResponse')
106
109
  GetCostForecastRequest = Shapes::StructureShape.new(name: 'GetCostForecastRequest')
107
110
  GetCostForecastResponse = Shapes::StructureShape.new(name: 'GetCostForecastResponse')
108
111
  GetDimensionValuesRequest = Shapes::StructureShape.new(name: 'GetDimensionValuesRequest')
@@ -154,6 +157,7 @@ module Aws::CostExplorer
154
157
  MetricValue = Shapes::StructureShape.new(name: 'MetricValue')
155
158
  Metrics = Shapes::MapShape.new(name: 'Metrics')
156
159
  ModifyRecommendationDetail = Shapes::StructureShape.new(name: 'ModifyRecommendationDetail')
160
+ MonitorArnList = Shapes::ListShape.new(name: 'MonitorArnList')
157
161
  MonitorDimension = Shapes::StringShape.new(name: 'MonitorDimension')
158
162
  MonitorType = Shapes::StringShape.new(name: 'MonitorType')
159
163
  NetRISavings = Shapes::StringShape.new(name: 'NetRISavings')
@@ -174,6 +178,8 @@ module Aws::CostExplorer
174
178
  PurchasedHours = Shapes::StringShape.new(name: 'PurchasedHours')
175
179
  PurchasedUnits = Shapes::StringShape.new(name: 'PurchasedUnits')
176
180
  RDSInstanceDetails = Shapes::StructureShape.new(name: 'RDSInstanceDetails')
181
+ RICostForUnusedHours = Shapes::StringShape.new(name: 'RICostForUnusedHours')
182
+ RealizedSavings = Shapes::StringShape.new(name: 'RealizedSavings')
177
183
  RecommendationTarget = Shapes::StringShape.new(name: 'RecommendationTarget')
178
184
  RedshiftInstanceDetails = Shapes::StructureShape.new(name: 'RedshiftInstanceDetails')
179
185
  RequestChangedException = Shapes::StructureShape.new(name: 'RequestChangedException')
@@ -210,6 +216,8 @@ module Aws::CostExplorer
210
216
  SavingsPlansCoverage = Shapes::StructureShape.new(name: 'SavingsPlansCoverage')
211
217
  SavingsPlansCoverageData = Shapes::StructureShape.new(name: 'SavingsPlansCoverageData')
212
218
  SavingsPlansCoverages = Shapes::ListShape.new(name: 'SavingsPlansCoverages')
219
+ SavingsPlansDataType = Shapes::StringShape.new(name: 'SavingsPlansDataType')
220
+ SavingsPlansDataTypes = Shapes::ListShape.new(name: 'SavingsPlansDataTypes')
213
221
  SavingsPlansDetails = Shapes::StructureShape.new(name: 'SavingsPlansDetails')
214
222
  SavingsPlansPurchaseRecommendation = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendation')
215
223
  SavingsPlansPurchaseRecommendationDetail = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationDetail')
@@ -226,6 +234,10 @@ module Aws::CostExplorer
226
234
  SearchString = Shapes::StringShape.new(name: 'SearchString')
227
235
  ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
228
236
  ServiceSpecification = Shapes::StructureShape.new(name: 'ServiceSpecification')
237
+ SortDefinition = Shapes::StructureShape.new(name: 'SortDefinition')
238
+ SortDefinitionKey = Shapes::StringShape.new(name: 'SortDefinitionKey')
239
+ SortDefinitions = Shapes::ListShape.new(name: 'SortDefinitions')
240
+ SortOrder = Shapes::StringShape.new(name: 'SortOrder')
229
241
  Subscriber = Shapes::StructureShape.new(name: 'Subscriber')
230
242
  SubscriberAddress = Shapes::StringShape.new(name: 'SubscriberAddress')
231
243
  SubscriberStatus = Shapes::StringShape.new(name: 'SubscriberStatus')
@@ -249,6 +261,7 @@ module Aws::CostExplorer
249
261
  TotalRunningNormalizedUnits = Shapes::StringShape.new(name: 'TotalRunningNormalizedUnits')
250
262
  UnknownMonitorException = Shapes::StructureShape.new(name: 'UnknownMonitorException')
251
263
  UnknownSubscriptionException = Shapes::StructureShape.new(name: 'UnknownSubscriptionException')
264
+ UnrealizedSavings = Shapes::StringShape.new(name: 'UnrealizedSavings')
252
265
  UnresolvableUsageUnitException = Shapes::StructureShape.new(name: 'UnresolvableUsageUnitException')
253
266
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
254
267
  UnusedUnits = Shapes::StringShape.new(name: 'UnusedUnits')
@@ -303,7 +316,7 @@ module Aws::CostExplorer
303
316
 
304
317
  AnomalySubscription.add_member(:subscription_arn, Shapes::ShapeRef.new(shape: GenericString, location_name: "SubscriptionArn"))
305
318
  AnomalySubscription.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
306
- AnomalySubscription.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: Values, required: true, location_name: "MonitorArnList"))
319
+ AnomalySubscription.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: MonitorArnList, required: true, location_name: "MonitorArnList"))
307
320
  AnomalySubscription.add_member(:subscribers, Shapes::ShapeRef.new(shape: Subscribers, required: true, location_name: "Subscribers"))
308
321
  AnomalySubscription.add_member(:threshold, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, required: true, location_name: "Threshold"))
309
322
  AnomalySubscription.add_member(:frequency, Shapes::ShapeRef.new(shape: AnomalySubscriptionFrequency, required: true, location_name: "Frequency"))
@@ -327,6 +340,8 @@ module Aws::CostExplorer
327
340
  CostCategory.add_member(:processing_status, Shapes::ShapeRef.new(shape: CostCategoryProcessingStatusList, location_name: "ProcessingStatus"))
328
341
  CostCategory.struct_class = Types::CostCategory
329
342
 
343
+ CostCategoryNamesList.member = Shapes::ShapeRef.new(shape: CostCategoryName)
344
+
330
345
  CostCategoryProcessingStatus.add_member(:component, Shapes::ShapeRef.new(shape: CostCategoryStatusComponent, location_name: "Component"))
331
346
  CostCategoryProcessingStatus.add_member(:status, Shapes::ShapeRef.new(shape: CostCategoryStatus, location_name: "Status"))
332
347
  CostCategoryProcessingStatus.struct_class = Types::CostCategoryProcessingStatus
@@ -571,6 +586,7 @@ module Aws::CostExplorer
571
586
  GetCostAndUsageResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
572
587
  GetCostAndUsageResponse.add_member(:group_definitions, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupDefinitions"))
573
588
  GetCostAndUsageResponse.add_member(:results_by_time, Shapes::ShapeRef.new(shape: ResultsByTime, location_name: "ResultsByTime"))
589
+ GetCostAndUsageResponse.add_member(:dimension_value_attributes, Shapes::ShapeRef.new(shape: DimensionValuesWithAttributesList, location_name: "DimensionValueAttributes"))
574
590
  GetCostAndUsageResponse.struct_class = Types::GetCostAndUsageResponse
575
591
 
576
592
  GetCostAndUsageWithResourcesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
@@ -584,8 +600,25 @@ module Aws::CostExplorer
584
600
  GetCostAndUsageWithResourcesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
585
601
  GetCostAndUsageWithResourcesResponse.add_member(:group_definitions, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupDefinitions"))
586
602
  GetCostAndUsageWithResourcesResponse.add_member(:results_by_time, Shapes::ShapeRef.new(shape: ResultsByTime, location_name: "ResultsByTime"))
603
+ GetCostAndUsageWithResourcesResponse.add_member(:dimension_value_attributes, Shapes::ShapeRef.new(shape: DimensionValuesWithAttributesList, location_name: "DimensionValueAttributes"))
587
604
  GetCostAndUsageWithResourcesResponse.struct_class = Types::GetCostAndUsageWithResourcesResponse
588
605
 
606
+ GetCostCategoriesRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
607
+ GetCostCategoriesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
608
+ GetCostCategoriesRequest.add_member(:cost_category_name, Shapes::ShapeRef.new(shape: CostCategoryName, location_name: "CostCategoryName"))
609
+ GetCostCategoriesRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
610
+ GetCostCategoriesRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
611
+ GetCostCategoriesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
612
+ GetCostCategoriesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
613
+ GetCostCategoriesRequest.struct_class = Types::GetCostCategoriesRequest
614
+
615
+ GetCostCategoriesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
616
+ GetCostCategoriesResponse.add_member(:cost_category_names, Shapes::ShapeRef.new(shape: CostCategoryNamesList, location_name: "CostCategoryNames"))
617
+ GetCostCategoriesResponse.add_member(:cost_category_values, Shapes::ShapeRef.new(shape: CostCategoryValuesList, location_name: "CostCategoryValues"))
618
+ GetCostCategoriesResponse.add_member(:return_size, Shapes::ShapeRef.new(shape: PageSize, required: true, location_name: "ReturnSize"))
619
+ GetCostCategoriesResponse.add_member(:total_size, Shapes::ShapeRef.new(shape: PageSize, required: true, location_name: "TotalSize"))
620
+ GetCostCategoriesResponse.struct_class = Types::GetCostCategoriesResponse
621
+
589
622
  GetCostForecastRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
590
623
  GetCostForecastRequest.add_member(:metric, Shapes::ShapeRef.new(shape: Metric, required: true, location_name: "Metric"))
591
624
  GetCostForecastRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, required: true, location_name: "Granularity"))
@@ -601,6 +634,9 @@ module Aws::CostExplorer
601
634
  GetDimensionValuesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
602
635
  GetDimensionValuesRequest.add_member(:dimension, Shapes::ShapeRef.new(shape: Dimension, required: true, location_name: "Dimension"))
603
636
  GetDimensionValuesRequest.add_member(:context, Shapes::ShapeRef.new(shape: Context, location_name: "Context"))
637
+ GetDimensionValuesRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
638
+ GetDimensionValuesRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
639
+ GetDimensionValuesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
604
640
  GetDimensionValuesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
605
641
  GetDimensionValuesRequest.struct_class = Types::GetDimensionValuesRequest
606
642
 
@@ -616,6 +652,8 @@ module Aws::CostExplorer
616
652
  GetReservationCoverageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
617
653
  GetReservationCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
618
654
  GetReservationCoverageRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
655
+ GetReservationCoverageRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
656
+ GetReservationCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
619
657
  GetReservationCoverageRequest.struct_class = Types::GetReservationCoverageRequest
620
658
 
621
659
  GetReservationCoverageResponse.add_member(:coverages_by_time, Shapes::ShapeRef.new(shape: CoveragesByTime, required: true, location_name: "CoveragesByTime"))
@@ -625,6 +663,7 @@ module Aws::CostExplorer
625
663
 
626
664
  GetReservationPurchaseRecommendationRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
627
665
  GetReservationPurchaseRecommendationRequest.add_member(:service, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "Service"))
666
+ GetReservationPurchaseRecommendationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
628
667
  GetReservationPurchaseRecommendationRequest.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
629
668
  GetReservationPurchaseRecommendationRequest.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
630
669
  GetReservationPurchaseRecommendationRequest.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
@@ -643,7 +682,9 @@ module Aws::CostExplorer
643
682
  GetReservationUtilizationRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
644
683
  GetReservationUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
645
684
  GetReservationUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
685
+ GetReservationUtilizationRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
646
686
  GetReservationUtilizationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
687
+ GetReservationUtilizationRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
647
688
  GetReservationUtilizationRequest.struct_class = Types::GetReservationUtilizationRequest
648
689
 
649
690
  GetReservationUtilizationResponse.add_member(:utilizations_by_time, Shapes::ShapeRef.new(shape: UtilizationsByTime, required: true, location_name: "UtilizationsByTime"))
@@ -672,6 +713,7 @@ module Aws::CostExplorer
672
713
  GetSavingsPlansCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
673
714
  GetSavingsPlansCoverageRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
674
715
  GetSavingsPlansCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
716
+ GetSavingsPlansCoverageRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
675
717
  GetSavingsPlansCoverageRequest.struct_class = Types::GetSavingsPlansCoverageRequest
676
718
 
677
719
  GetSavingsPlansCoverageResponse.add_member(:savings_plans_coverages, Shapes::ShapeRef.new(shape: SavingsPlansCoverages, required: true, location_name: "SavingsPlansCoverages"))
@@ -695,8 +737,10 @@ module Aws::CostExplorer
695
737
 
696
738
  GetSavingsPlansUtilizationDetailsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
697
739
  GetSavingsPlansUtilizationDetailsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
740
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:data_type, Shapes::ShapeRef.new(shape: SavingsPlansDataTypes, location_name: "DataType"))
698
741
  GetSavingsPlansUtilizationDetailsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
699
742
  GetSavingsPlansUtilizationDetailsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
743
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
700
744
  GetSavingsPlansUtilizationDetailsRequest.struct_class = Types::GetSavingsPlansUtilizationDetailsRequest
701
745
 
702
746
  GetSavingsPlansUtilizationDetailsResponse.add_member(:savings_plans_utilization_details, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationDetails, required: true, location_name: "SavingsPlansUtilizationDetails"))
@@ -708,6 +752,7 @@ module Aws::CostExplorer
708
752
  GetSavingsPlansUtilizationRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
709
753
  GetSavingsPlansUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
710
754
  GetSavingsPlansUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
755
+ GetSavingsPlansUtilizationRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
711
756
  GetSavingsPlansUtilizationRequest.struct_class = Types::GetSavingsPlansUtilizationRequest
712
757
 
713
758
  GetSavingsPlansUtilizationResponse.add_member(:savings_plans_utilizations_by_time, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationsByTime, location_name: "SavingsPlansUtilizationsByTime"))
@@ -717,6 +762,9 @@ module Aws::CostExplorer
717
762
  GetTagsRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
718
763
  GetTagsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
719
764
  GetTagsRequest.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, location_name: "TagKey"))
765
+ GetTagsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
766
+ GetTagsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
767
+ GetTagsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
720
768
  GetTagsRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
721
769
  GetTagsRequest.struct_class = Types::GetTagsRequest
722
770
 
@@ -791,6 +839,8 @@ module Aws::CostExplorer
791
839
  ModifyRecommendationDetail.add_member(:target_instances, Shapes::ShapeRef.new(shape: TargetInstancesList, location_name: "TargetInstances"))
792
840
  ModifyRecommendationDetail.struct_class = Types::ModifyRecommendationDetail
793
841
 
842
+ MonitorArnList.member = Shapes::ShapeRef.new(shape: Arn)
843
+
794
844
  ProvideAnomalyFeedbackRequest.add_member(:anomaly_id, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "AnomalyId"))
795
845
  ProvideAnomalyFeedbackRequest.add_member(:feedback, Shapes::ShapeRef.new(shape: AnomalyFeedbackType, required: true, location_name: "Feedback"))
796
846
  ProvideAnomalyFeedbackRequest.struct_class = Types::ProvideAnomalyFeedbackRequest
@@ -833,6 +883,9 @@ module Aws::CostExplorer
833
883
  ReservationAggregates.add_member(:amortized_upfront_fee, Shapes::ShapeRef.new(shape: AmortizedUpfrontFee, location_name: "AmortizedUpfrontFee"))
834
884
  ReservationAggregates.add_member(:amortized_recurring_fee, Shapes::ShapeRef.new(shape: AmortizedRecurringFee, location_name: "AmortizedRecurringFee"))
835
885
  ReservationAggregates.add_member(:total_amortized_fee, Shapes::ShapeRef.new(shape: TotalAmortizedFee, location_name: "TotalAmortizedFee"))
886
+ ReservationAggregates.add_member(:ri_cost_for_unused_hours, Shapes::ShapeRef.new(shape: RICostForUnusedHours, location_name: "RICostForUnusedHours"))
887
+ ReservationAggregates.add_member(:realized_savings, Shapes::ShapeRef.new(shape: RealizedSavings, location_name: "RealizedSavings"))
888
+ ReservationAggregates.add_member(:unrealized_savings, Shapes::ShapeRef.new(shape: UnrealizedSavings, location_name: "UnrealizedSavings"))
836
889
  ReservationAggregates.struct_class = Types::ReservationAggregates
837
890
 
838
891
  ReservationCoverageGroup.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
@@ -925,6 +978,7 @@ module Aws::CostExplorer
925
978
  RightsizingRecommendationMetadata.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendationId"))
926
979
  RightsizingRecommendationMetadata.add_member(:generation_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "GenerationTimestamp"))
927
980
  RightsizingRecommendationMetadata.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
981
+ RightsizingRecommendationMetadata.add_member(:additional_metadata, Shapes::ShapeRef.new(shape: GenericString, location_name: "AdditionalMetadata"))
928
982
  RightsizingRecommendationMetadata.struct_class = Types::RightsizingRecommendationMetadata
929
983
 
930
984
  RightsizingRecommendationSummary.add_member(:total_recommendation_count, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalRecommendationCount"))
@@ -959,6 +1013,8 @@ module Aws::CostExplorer
959
1013
 
960
1014
  SavingsPlansCoverages.member = Shapes::ShapeRef.new(shape: SavingsPlansCoverage)
961
1015
 
1016
+ SavingsPlansDataTypes.member = Shapes::ShapeRef.new(shape: SavingsPlansDataType)
1017
+
962
1018
  SavingsPlansDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
963
1019
  SavingsPlansDetails.add_member(:instance_family, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceFamily"))
964
1020
  SavingsPlansDetails.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
@@ -995,6 +1051,7 @@ module Aws::CostExplorer
995
1051
 
996
1052
  SavingsPlansPurchaseRecommendationMetadata.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendationId"))
997
1053
  SavingsPlansPurchaseRecommendationMetadata.add_member(:generation_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "GenerationTimestamp"))
1054
+ SavingsPlansPurchaseRecommendationMetadata.add_member(:additional_metadata, Shapes::ShapeRef.new(shape: GenericString, location_name: "AdditionalMetadata"))
998
1055
  SavingsPlansPurchaseRecommendationMetadata.struct_class = Types::SavingsPlansPurchaseRecommendationMetadata
999
1056
 
1000
1057
  SavingsPlansPurchaseRecommendationSummary.add_member(:estimated_roi, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedROI"))
@@ -1048,6 +1105,12 @@ module Aws::CostExplorer
1048
1105
  ServiceSpecification.add_member(:ec2_specification, Shapes::ShapeRef.new(shape: EC2Specification, location_name: "EC2Specification"))
1049
1106
  ServiceSpecification.struct_class = Types::ServiceSpecification
1050
1107
 
1108
+ SortDefinition.add_member(:key, Shapes::ShapeRef.new(shape: SortDefinitionKey, required: true, location_name: "Key"))
1109
+ SortDefinition.add_member(:sort_order, Shapes::ShapeRef.new(shape: SortOrder, location_name: "SortOrder"))
1110
+ SortDefinition.struct_class = Types::SortDefinition
1111
+
1112
+ SortDefinitions.member = Shapes::ShapeRef.new(shape: SortDefinition)
1113
+
1051
1114
  Subscriber.add_member(:address, Shapes::ShapeRef.new(shape: SubscriberAddress, location_name: "Address"))
1052
1115
  Subscriber.add_member(:type, Shapes::ShapeRef.new(shape: SubscriberType, location_name: "Type"))
1053
1116
  Subscriber.add_member(:status, Shapes::ShapeRef.new(shape: SubscriberStatus, location_name: "Status"))
@@ -1102,7 +1165,7 @@ module Aws::CostExplorer
1102
1165
  UpdateAnomalySubscriptionRequest.add_member(:subscription_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "SubscriptionArn"))
1103
1166
  UpdateAnomalySubscriptionRequest.add_member(:threshold, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, location_name: "Threshold"))
1104
1167
  UpdateAnomalySubscriptionRequest.add_member(:frequency, Shapes::ShapeRef.new(shape: AnomalySubscriptionFrequency, location_name: "Frequency"))
1105
- UpdateAnomalySubscriptionRequest.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: Values, location_name: "MonitorArnList"))
1168
+ UpdateAnomalySubscriptionRequest.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: MonitorArnList, location_name: "MonitorArnList"))
1106
1169
  UpdateAnomalySubscriptionRequest.add_member(:subscribers, Shapes::ShapeRef.new(shape: Subscribers, location_name: "Subscribers"))
1107
1170
  UpdateAnomalySubscriptionRequest.add_member(:subscription_name, Shapes::ShapeRef.new(shape: GenericString, location_name: "SubscriptionName"))
1108
1171
  UpdateAnomalySubscriptionRequest.struct_class = Types::UpdateAnomalySubscriptionRequest
@@ -1275,6 +1338,19 @@ module Aws::CostExplorer
1275
1338
  o.errors << Shapes::ShapeRef.new(shape: RequestChangedException)
1276
1339
  end)
1277
1340
 
1341
+ api.add_operation(:get_cost_categories, Seahorse::Model::Operation.new.tap do |o|
1342
+ o.name = "GetCostCategories"
1343
+ o.http_method = "POST"
1344
+ o.http_request_uri = "/"
1345
+ o.input = Shapes::ShapeRef.new(shape: GetCostCategoriesRequest)
1346
+ o.output = Shapes::ShapeRef.new(shape: GetCostCategoriesResponse)
1347
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1348
+ o.errors << Shapes::ShapeRef.new(shape: BillExpirationException)
1349
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1350
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
1351
+ o.errors << Shapes::ShapeRef.new(shape: RequestChangedException)
1352
+ end)
1353
+
1278
1354
  api.add_operation(:get_cost_forecast, Seahorse::Model::Operation.new.tap do |o|
1279
1355
  o.name = "GetCostForecast"
1280
1356
  o.http_method = "POST"
@@ -125,19 +125,19 @@ module Aws::CostExplorer
125
125
  # # recursive Expression
126
126
  # },
127
127
  # dimensions: {
128
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
128
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
129
129
  # values: ["Value"],
130
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
130
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
131
131
  # },
132
132
  # tags: {
133
133
  # key: "TagKey",
134
134
  # values: ["Value"],
135
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
135
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
136
136
  # },
137
137
  # cost_categories: {
138
138
  # key: "CostCategoryName",
139
139
  # values: ["Value"],
140
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
140
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
141
141
  # },
142
142
  # },
143
143
  # dimensional_value_count: 1,
@@ -213,12 +213,16 @@ module Aws::CostExplorer
213
213
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
214
214
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
215
215
  #
216
- # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and
217
- # NOT is not supported. OR is not supported between different
216
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
217
+ # and NOT is not supported. OR is not supported between different
218
218
  # dimensions, or dimensions and tags. NOT operators aren't supported.
219
219
  # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
220
220
  # `RIGHTSIZING_TYPE`.
221
221
  #
222
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
223
+ # supported. AND and OR are not supported. Dimensions are limited to
224
+ # `LINKED_ACCOUNT`.
225
+ #
222
226
  # </note>
223
227
  # @return [Types::Expression]
224
228
  #
@@ -273,7 +277,7 @@ module Aws::CostExplorer
273
277
  # {
274
278
  # subscription_arn: "GenericString",
275
279
  # account_id: "GenericString",
276
- # monitor_arn_list: ["Value"], # required
280
+ # monitor_arn_list: ["Arn"], # required
277
281
  # subscribers: [ # required
278
282
  # {
279
283
  # address: "SubscriberAddress",
@@ -483,19 +487,19 @@ module Aws::CostExplorer
483
487
  # # recursive Expression
484
488
  # },
485
489
  # dimensions: {
486
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
490
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
487
491
  # values: ["Value"],
488
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
492
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
489
493
  # },
490
494
  # tags: {
491
495
  # key: "TagKey",
492
496
  # values: ["Value"],
493
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
497
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
494
498
  # },
495
499
  # cost_categories: {
496
500
  # key: "CostCategoryName",
497
501
  # values: ["Value"],
498
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
502
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
499
503
  # },
500
504
  # },
501
505
  # }
@@ -537,13 +541,21 @@ module Aws::CostExplorer
537
541
 
538
542
  # The Cost Categories values used for filtering the costs.
539
543
  #
544
+ # If `Values` and `Key` are not specified, the `ABSENT` `MatchOption` is
545
+ # applied to all Cost Categories. That is, filtering on resources that
546
+ # are not mapped to any Cost Categories.
547
+ #
548
+ # If `Values` is provided and `Key` is not specified, the `ABSENT`
549
+ # `MatchOption` is applied to the Cost Categories `Key` only. That is,
550
+ # filtering on resources without the given Cost Categories key.
551
+ #
540
552
  # @note When making an API call, you may pass CostCategoryValues
541
553
  # data as a hash:
542
554
  #
543
555
  # {
544
556
  # key: "CostCategoryName",
545
557
  # values: ["Value"],
546
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
558
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
547
559
  # }
548
560
  #
549
561
  # @!attribute [rw] key
@@ -556,9 +568,9 @@ module Aws::CostExplorer
556
568
  #
557
569
  # @!attribute [rw] match_options
558
570
  # The match options that you can use to filter your results.
559
- # MatchOptions is only applicable for only applicable for actions
560
- # related to cost category. The default values for `MatchOptions` is
561
- # `EQUALS` and `CASE_SENSITIVE`.
571
+ # MatchOptions is only applicable for actions related to cost
572
+ # category. The default values for `MatchOptions` is `EQUALS` and
573
+ # `CASE_SENSITIVE`.
562
574
  # @return [Array<String>]
563
575
  #
564
576
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryValues AWS API Documentation
@@ -738,19 +750,19 @@ module Aws::CostExplorer
738
750
  # # recursive Expression
739
751
  # },
740
752
  # dimensions: {
741
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
753
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
742
754
  # values: ["Value"],
743
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
755
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
744
756
  # },
745
757
  # tags: {
746
758
  # key: "TagKey",
747
759
  # values: ["Value"],
748
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
760
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
749
761
  # },
750
762
  # cost_categories: {
751
763
  # key: "CostCategoryName",
752
764
  # values: ["Value"],
753
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
765
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
754
766
  # },
755
767
  # },
756
768
  # dimensional_value_count: 1,
@@ -789,7 +801,7 @@ module Aws::CostExplorer
789
801
  # anomaly_subscription: { # required
790
802
  # subscription_arn: "GenericString",
791
803
  # account_id: "GenericString",
792
- # monitor_arn_list: ["Value"], # required
804
+ # monitor_arn_list: ["Arn"], # required
793
805
  # subscribers: [ # required
794
806
  # {
795
807
  # address: "SubscriberAddress",
@@ -852,19 +864,19 @@ module Aws::CostExplorer
852
864
  # # recursive Expression
853
865
  # },
854
866
  # dimensions: {
855
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
867
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
856
868
  # values: ["Value"],
857
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
869
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
858
870
  # },
859
871
  # tags: {
860
872
  # key: "TagKey",
861
873
  # values: ["Value"],
862
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
874
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
863
875
  # },
864
876
  # cost_categories: {
865
877
  # key: "CostCategoryName",
866
878
  # values: ["Value"],
867
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
879
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
868
880
  # },
869
881
  # },
870
882
  # },
@@ -998,7 +1010,7 @@ module Aws::CostExplorer
998
1010
  include Aws::Structure
999
1011
  end
1000
1012
 
1001
- # The time period that you want the usage and costs for.
1013
+ # The time period of the request.
1002
1014
  #
1003
1015
  # @note When making an API call, you may pass DateInterval
1004
1016
  # data as a hash:
@@ -1009,17 +1021,17 @@ module Aws::CostExplorer
1009
1021
  # }
1010
1022
  #
1011
1023
  # @!attribute [rw] start
1012
- # The beginning of the time period that you want the usage and costs
1013
- # for. The start date is inclusive. For example, if `start` is
1014
- # `2017-01-01`, AWS retrieves cost and usage data starting at
1015
- # `2017-01-01` up to the end date.
1024
+ # The beginning of the time period. The start date is inclusive. For
1025
+ # example, if `start` is `2017-01-01`, AWS retrieves cost and usage
1026
+ # data starting at `2017-01-01` up to the end date. The start date
1027
+ # must be equal to or no later than the current date to avoid a
1028
+ # validation error.
1016
1029
  # @return [String]
1017
1030
  #
1018
1031
  # @!attribute [rw] end
1019
- # The end of the time period that you want the usage and costs for.
1020
- # The end date is exclusive. For example, if `end` is `2017-05-01`,
1021
- # AWS retrieves cost and usage data from the start date up to, but not
1022
- # including, `2017-05-01`.
1032
+ # The end of the time period. The end date is exclusive. For example,
1033
+ # if `end` is `2017-05-01`, AWS retrieves cost and usage data from the
1034
+ # start date up to, but not including, `2017-05-01`.
1023
1035
  # @return [String]
1024
1036
  #
1025
1037
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DateInterval AWS API Documentation
@@ -1162,9 +1174,9 @@ module Aws::CostExplorer
1162
1174
  # data as a hash:
1163
1175
  #
1164
1176
  # {
1165
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1177
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1166
1178
  # values: ["Value"],
1167
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1179
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1168
1180
  # }
1169
1181
  #
1170
1182
  # @!attribute [rw] key
@@ -1523,10 +1535,15 @@ module Aws::CostExplorer
1523
1535
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1524
1536
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
1525
1537
  #
1526
- # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and NOT
1527
- # is not supported. OR is not supported between different dimensions, or
1528
- # dimensions and tags. NOT operators aren't supported. Dimensions are
1529
- # also limited to `LINKED_ACCOUNT`, `REGION`, or `RIGHTSIZING_TYPE`.
1538
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
1539
+ # NOT is not supported. OR is not supported between different
1540
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
1541
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
1542
+ # `RIGHTSIZING_TYPE`.
1543
+ #
1544
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
1545
+ # supported. AND and OR are not supported. Dimensions are limited to
1546
+ # `LINKED_ACCOUNT`.
1530
1547
  #
1531
1548
  # </note>
1532
1549
  #
@@ -1546,19 +1563,19 @@ module Aws::CostExplorer
1546
1563
  # # recursive Expression
1547
1564
  # },
1548
1565
  # dimensions: {
1549
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1566
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1550
1567
  # values: ["Value"],
1551
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1568
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1552
1569
  # },
1553
1570
  # tags: {
1554
1571
  # key: "TagKey",
1555
1572
  # values: ["Value"],
1556
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1573
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1557
1574
  # },
1558
1575
  # cost_categories: {
1559
1576
  # key: "CostCategoryName",
1560
1577
  # values: ["Value"],
1561
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1578
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1562
1579
  # },
1563
1580
  # },
1564
1581
  # ],
@@ -1574,19 +1591,19 @@ module Aws::CostExplorer
1574
1591
  # # recursive Expression
1575
1592
  # },
1576
1593
  # dimensions: {
1577
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1594
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1578
1595
  # values: ["Value"],
1579
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1596
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1580
1597
  # },
1581
1598
  # tags: {
1582
1599
  # key: "TagKey",
1583
1600
  # values: ["Value"],
1584
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1601
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1585
1602
  # },
1586
1603
  # cost_categories: {
1587
1604
  # key: "CostCategoryName",
1588
1605
  # values: ["Value"],
1589
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1606
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1590
1607
  # },
1591
1608
  # },
1592
1609
  # ],
@@ -1605,35 +1622,35 @@ module Aws::CostExplorer
1605
1622
  # # recursive Expression
1606
1623
  # },
1607
1624
  # dimensions: {
1608
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1625
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1609
1626
  # values: ["Value"],
1610
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1627
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1611
1628
  # },
1612
1629
  # tags: {
1613
1630
  # key: "TagKey",
1614
1631
  # values: ["Value"],
1615
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1632
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1616
1633
  # },
1617
1634
  # cost_categories: {
1618
1635
  # key: "CostCategoryName",
1619
1636
  # values: ["Value"],
1620
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1637
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1621
1638
  # },
1622
1639
  # },
1623
1640
  # dimensions: {
1624
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1641
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1625
1642
  # values: ["Value"],
1626
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1643
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1627
1644
  # },
1628
1645
  # tags: {
1629
1646
  # key: "TagKey",
1630
1647
  # values: ["Value"],
1631
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1648
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1632
1649
  # },
1633
1650
  # cost_categories: {
1634
1651
  # key: "CostCategoryName",
1635
1652
  # values: ["Value"],
1636
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1653
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1637
1654
  # },
1638
1655
  # }
1639
1656
  #
@@ -1922,19 +1939,19 @@ module Aws::CostExplorer
1922
1939
  # # recursive Expression
1923
1940
  # },
1924
1941
  # dimensions: {
1925
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1942
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1926
1943
  # values: ["Value"],
1927
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1944
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1928
1945
  # },
1929
1946
  # tags: {
1930
1947
  # key: "TagKey",
1931
1948
  # values: ["Value"],
1932
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1949
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1933
1950
  # },
1934
1951
  # cost_categories: {
1935
1952
  # key: "CostCategoryName",
1936
1953
  # values: ["Value"],
1937
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1954
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1938
1955
  # },
1939
1956
  # },
1940
1957
  # metrics: ["MetricName"], # required
@@ -2045,12 +2062,19 @@ module Aws::CostExplorer
2045
2062
  # The time period that is covered by the results in the response.
2046
2063
  # @return [Array<Types::ResultByTime>]
2047
2064
  #
2065
+ # @!attribute [rw] dimension_value_attributes
2066
+ # The attributes that apply to a specific dimension value. For
2067
+ # example, if the value is a linked account, the attribute is that
2068
+ # account name.
2069
+ # @return [Array<Types::DimensionValuesWithAttributes>]
2070
+ #
2048
2071
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageResponse AWS API Documentation
2049
2072
  #
2050
2073
  class GetCostAndUsageResponse < Struct.new(
2051
2074
  :next_page_token,
2052
2075
  :group_definitions,
2053
- :results_by_time)
2076
+ :results_by_time,
2077
+ :dimension_value_attributes)
2054
2078
  SENSITIVE = []
2055
2079
  include Aws::Structure
2056
2080
  end
@@ -2079,19 +2103,19 @@ module Aws::CostExplorer
2079
2103
  # # recursive Expression
2080
2104
  # },
2081
2105
  # dimensions: {
2082
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
2106
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2083
2107
  # values: ["Value"],
2084
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2108
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2085
2109
  # },
2086
2110
  # tags: {
2087
2111
  # key: "TagKey",
2088
2112
  # values: ["Value"],
2089
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2113
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2090
2114
  # },
2091
2115
  # cost_categories: {
2092
2116
  # key: "CostCategoryName",
2093
2117
  # values: ["Value"],
2094
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2118
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2095
2119
  # },
2096
2120
  # },
2097
2121
  # metrics: ["MetricName"],
@@ -2202,12 +2226,235 @@ module Aws::CostExplorer
2202
2226
  # The time period that is covered by the results in the response.
2203
2227
  # @return [Array<Types::ResultByTime>]
2204
2228
  #
2229
+ # @!attribute [rw] dimension_value_attributes
2230
+ # The attributes that apply to a specific dimension value. For
2231
+ # example, if the value is a linked account, the attribute is that
2232
+ # account name.
2233
+ # @return [Array<Types::DimensionValuesWithAttributes>]
2234
+ #
2205
2235
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResourcesResponse AWS API Documentation
2206
2236
  #
2207
2237
  class GetCostAndUsageWithResourcesResponse < Struct.new(
2208
2238
  :next_page_token,
2209
2239
  :group_definitions,
2210
- :results_by_time)
2240
+ :results_by_time,
2241
+ :dimension_value_attributes)
2242
+ SENSITIVE = []
2243
+ include Aws::Structure
2244
+ end
2245
+
2246
+ # @note When making an API call, you may pass GetCostCategoriesRequest
2247
+ # data as a hash:
2248
+ #
2249
+ # {
2250
+ # search_string: "SearchString",
2251
+ # time_period: { # required
2252
+ # start: "YearMonthDay", # required
2253
+ # end: "YearMonthDay", # required
2254
+ # },
2255
+ # cost_category_name: "CostCategoryName",
2256
+ # filter: {
2257
+ # or: [
2258
+ # {
2259
+ # # recursive Expression
2260
+ # },
2261
+ # ],
2262
+ # and: [
2263
+ # {
2264
+ # # recursive Expression
2265
+ # },
2266
+ # ],
2267
+ # not: {
2268
+ # # recursive Expression
2269
+ # },
2270
+ # dimensions: {
2271
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2272
+ # values: ["Value"],
2273
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2274
+ # },
2275
+ # tags: {
2276
+ # key: "TagKey",
2277
+ # values: ["Value"],
2278
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2279
+ # },
2280
+ # cost_categories: {
2281
+ # key: "CostCategoryName",
2282
+ # values: ["Value"],
2283
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2284
+ # },
2285
+ # },
2286
+ # sort_by: [
2287
+ # {
2288
+ # key: "SortDefinitionKey", # required
2289
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
2290
+ # },
2291
+ # ],
2292
+ # max_results: 1,
2293
+ # next_page_token: "NextPageToken",
2294
+ # }
2295
+ #
2296
+ # @!attribute [rw] search_string
2297
+ # The value that you want to search the filter values for.
2298
+ #
2299
+ # If you do not specify a `CostCategoryName`, `SearchString` will be
2300
+ # used to filter Cost Category names that match the `SearchString`
2301
+ # pattern. If you do specifiy a `CostCategoryName`, `SearchString`
2302
+ # will be used to filter Cost Category values that match the
2303
+ # `SearchString` pattern.
2304
+ # @return [String]
2305
+ #
2306
+ # @!attribute [rw] time_period
2307
+ # The time period of the request.
2308
+ # @return [Types::DateInterval]
2309
+ #
2310
+ # @!attribute [rw] cost_category_name
2311
+ # The unique name of the Cost Category.
2312
+ # @return [String]
2313
+ #
2314
+ # @!attribute [rw] filter
2315
+ # Use `Expression` to filter by cost or by usage. There are two
2316
+ # patterns:
2317
+ #
2318
+ # * Simple dimension values - You can set the dimension name and
2319
+ # values for the filters that you plan to use. For example, you can
2320
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
2321
+ # `GetRightsizingRecommendation`, the Region is a full name (for
2322
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
2323
+ # looks like:
2324
+ #
2325
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2326
+ # “us-west-1” ] \} \}`
2327
+ #
2328
+ # The list of dimension values are OR'd together to retrieve cost
2329
+ # or usage data. You can create `Expression` and `DimensionValues`
2330
+ # objects using either `with*` methods or `set*` methods in multiple
2331
+ # lines.
2332
+ #
2333
+ # * Compound dimension values with logical operations - You can use
2334
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
2335
+ # to create a list of one or more `Expression` objects. This allows
2336
+ # you to filter on more advanced options. For example, you can
2337
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
2338
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
2339
+ # `Expression` for that looks like this:
2340
+ #
2341
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2342
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2343
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2344
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
2345
+ # \}\}\} ] \} `
2346
+ #
2347
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
2348
+ # returns an error if more than one is specified. The following
2349
+ # example shows an `Expression` object that creates an error.
2350
+ #
2351
+ # </note>
2352
+ #
2353
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2354
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2355
+ #
2356
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
2357
+ # and NOT is not supported. OR is not supported between different
2358
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
2359
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
2360
+ # `RIGHTSIZING_TYPE`.
2361
+ #
2362
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
2363
+ # supported. AND and OR are not supported. Dimensions are limited to
2364
+ # `LINKED_ACCOUNT`.
2365
+ #
2366
+ # </note>
2367
+ # @return [Types::Expression]
2368
+ #
2369
+ # @!attribute [rw] sort_by
2370
+ # The value by which you want to sort the data.
2371
+ #
2372
+ # The key represents cost and usage metrics. The following values are
2373
+ # supported:
2374
+ #
2375
+ # * `BlendedCost`
2376
+ #
2377
+ # * `UnblendedCost`
2378
+ #
2379
+ # * `AmortizedCost`
2380
+ #
2381
+ # * `NetAmortizedCost`
2382
+ #
2383
+ # * `NetUnblendedCost`
2384
+ #
2385
+ # * `UsageQuantity`
2386
+ #
2387
+ # * `NormalizedUsageAmount`
2388
+ #
2389
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2390
+ #
2391
+ # When using `SortBy`, `NextPageToken` and `SearchString` are not
2392
+ # supported.
2393
+ # @return [Array<Types::SortDefinition>]
2394
+ #
2395
+ # @!attribute [rw] max_results
2396
+ # This field is only used when `SortBy` is provided in the request.
2397
+ #
2398
+ # The maximum number of objects that to be returned for this request.
2399
+ # If `MaxResults` is not specified with `SortBy`, the request will
2400
+ # return 1000 results as the default value for this parameter.
2401
+ # @return [Integer]
2402
+ #
2403
+ # @!attribute [rw] next_page_token
2404
+ # If the number of objects that are still available for retrieval
2405
+ # exceeds the limit, AWS returns a NextPageToken value in the
2406
+ # response. To retrieve the next batch of objects, provide the
2407
+ # NextPageToken from the prior call in your next request.
2408
+ # @return [String]
2409
+ #
2410
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategoriesRequest AWS API Documentation
2411
+ #
2412
+ class GetCostCategoriesRequest < Struct.new(
2413
+ :search_string,
2414
+ :time_period,
2415
+ :cost_category_name,
2416
+ :filter,
2417
+ :sort_by,
2418
+ :max_results,
2419
+ :next_page_token)
2420
+ SENSITIVE = []
2421
+ include Aws::Structure
2422
+ end
2423
+
2424
+ # @!attribute [rw] next_page_token
2425
+ # If the number of objects that are still available for retrieval
2426
+ # exceeds the limit, AWS returns a NextPageToken value in the
2427
+ # response. To retrieve the next batch of objects, provide the marker
2428
+ # from the prior call in your next request.
2429
+ # @return [String]
2430
+ #
2431
+ # @!attribute [rw] cost_category_names
2432
+ # The names of the Cost Categories.
2433
+ # @return [Array<String>]
2434
+ #
2435
+ # @!attribute [rw] cost_category_values
2436
+ # The Cost Category values.
2437
+ #
2438
+ # `CostCategoryValues` are not returned if `CostCategoryName` is not
2439
+ # specified in the request.
2440
+ # @return [Array<String>]
2441
+ #
2442
+ # @!attribute [rw] return_size
2443
+ # The number of objects returned.
2444
+ # @return [Integer]
2445
+ #
2446
+ # @!attribute [rw] total_size
2447
+ # The total number of objects.
2448
+ # @return [Integer]
2449
+ #
2450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategoriesResponse AWS API Documentation
2451
+ #
2452
+ class GetCostCategoriesResponse < Struct.new(
2453
+ :next_page_token,
2454
+ :cost_category_names,
2455
+ :cost_category_values,
2456
+ :return_size,
2457
+ :total_size)
2211
2458
  SENSITIVE = []
2212
2459
  include Aws::Structure
2213
2460
  end
@@ -2237,19 +2484,19 @@ module Aws::CostExplorer
2237
2484
  # # recursive Expression
2238
2485
  # },
2239
2486
  # dimensions: {
2240
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
2487
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2241
2488
  # values: ["Value"],
2242
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2489
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2243
2490
  # },
2244
2491
  # tags: {
2245
2492
  # key: "TagKey",
2246
2493
  # values: ["Value"],
2247
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2494
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2248
2495
  # },
2249
2496
  # cost_categories: {
2250
2497
  # key: "CostCategoryName",
2251
2498
  # values: ["Value"],
2252
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2499
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2253
2500
  # },
2254
2501
  # },
2255
2502
  # prediction_interval_level: 1,
@@ -2346,8 +2593,45 @@ module Aws::CostExplorer
2346
2593
  # start: "YearMonthDay", # required
2347
2594
  # end: "YearMonthDay", # required
2348
2595
  # },
2349
- # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
2596
+ # dimension: "AZ", # required, accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2350
2597
  # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS, SAVINGS_PLANS
2598
+ # filter: {
2599
+ # or: [
2600
+ # {
2601
+ # # recursive Expression
2602
+ # },
2603
+ # ],
2604
+ # and: [
2605
+ # {
2606
+ # # recursive Expression
2607
+ # },
2608
+ # ],
2609
+ # not: {
2610
+ # # recursive Expression
2611
+ # },
2612
+ # dimensions: {
2613
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2614
+ # values: ["Value"],
2615
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2616
+ # },
2617
+ # tags: {
2618
+ # key: "TagKey",
2619
+ # values: ["Value"],
2620
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2621
+ # },
2622
+ # cost_categories: {
2623
+ # key: "CostCategoryName",
2624
+ # values: ["Value"],
2625
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2626
+ # },
2627
+ # },
2628
+ # sort_by: [
2629
+ # {
2630
+ # key: "SortDefinitionKey", # required
2631
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
2632
+ # },
2633
+ # ],
2634
+ # max_results: 1,
2351
2635
  # next_page_token: "NextPageToken",
2352
2636
  # }
2353
2637
  #
@@ -2480,6 +2764,95 @@ module Aws::CostExplorer
2480
2764
  # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plan
2481
2765
  # @return [String]
2482
2766
  #
2767
+ # @!attribute [rw] filter
2768
+ # Use `Expression` to filter by cost or by usage. There are two
2769
+ # patterns:
2770
+ #
2771
+ # * Simple dimension values - You can set the dimension name and
2772
+ # values for the filters that you plan to use. For example, you can
2773
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
2774
+ # `GetRightsizingRecommendation`, the Region is a full name (for
2775
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
2776
+ # looks like:
2777
+ #
2778
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2779
+ # “us-west-1” ] \} \}`
2780
+ #
2781
+ # The list of dimension values are OR'd together to retrieve cost
2782
+ # or usage data. You can create `Expression` and `DimensionValues`
2783
+ # objects using either `with*` methods or `set*` methods in multiple
2784
+ # lines.
2785
+ #
2786
+ # * Compound dimension values with logical operations - You can use
2787
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
2788
+ # to create a list of one or more `Expression` objects. This allows
2789
+ # you to filter on more advanced options. For example, you can
2790
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
2791
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
2792
+ # `Expression` for that looks like this:
2793
+ #
2794
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2795
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2796
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2797
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
2798
+ # \}\}\} ] \} `
2799
+ #
2800
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
2801
+ # returns an error if more than one is specified. The following
2802
+ # example shows an `Expression` object that creates an error.
2803
+ #
2804
+ # </note>
2805
+ #
2806
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2807
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2808
+ #
2809
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
2810
+ # and NOT is not supported. OR is not supported between different
2811
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
2812
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
2813
+ # `RIGHTSIZING_TYPE`.
2814
+ #
2815
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
2816
+ # supported. AND and OR are not supported. Dimensions are limited to
2817
+ # `LINKED_ACCOUNT`.
2818
+ #
2819
+ # </note>
2820
+ # @return [Types::Expression]
2821
+ #
2822
+ # @!attribute [rw] sort_by
2823
+ # The value by which you want to sort the data.
2824
+ #
2825
+ # The key represents cost and usage metrics. The following values are
2826
+ # supported:
2827
+ #
2828
+ # * `BlendedCost`
2829
+ #
2830
+ # * `UnblendedCost`
2831
+ #
2832
+ # * `AmortizedCost`
2833
+ #
2834
+ # * `NetAmortizedCost`
2835
+ #
2836
+ # * `NetUnblendedCost`
2837
+ #
2838
+ # * `UsageQuantity`
2839
+ #
2840
+ # * `NormalizedUsageAmount`
2841
+ #
2842
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2843
+ #
2844
+ # When you specify a `SortBy` paramater, the context must be
2845
+ # `COST_AND_USAGE`. Further, when using `SortBy`, `NextPageToken` and
2846
+ # `SearchString` are not supported.
2847
+ # @return [Array<Types::SortDefinition>]
2848
+ #
2849
+ # @!attribute [rw] max_results
2850
+ # This field is only used when SortBy is provided in the request. The
2851
+ # maximum number of objects that to be returned for this request. If
2852
+ # MaxResults is not specified with SortBy, the request will return
2853
+ # 1000 results as the default value for this parameter.
2854
+ # @return [Integer]
2855
+ #
2483
2856
  # @!attribute [rw] next_page_token
2484
2857
  # The token to retrieve the next set of results. AWS provides the
2485
2858
  # token when the response from a previous call has more results than
@@ -2493,6 +2866,9 @@ module Aws::CostExplorer
2493
2866
  :time_period,
2494
2867
  :dimension,
2495
2868
  :context,
2869
+ :filter,
2870
+ :sort_by,
2871
+ :max_results,
2496
2872
  :next_page_token)
2497
2873
  SENSITIVE = []
2498
2874
  include Aws::Structure
@@ -2661,23 +3037,28 @@ module Aws::CostExplorer
2661
3037
  # # recursive Expression
2662
3038
  # },
2663
3039
  # dimensions: {
2664
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
3040
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2665
3041
  # values: ["Value"],
2666
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3042
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2667
3043
  # },
2668
3044
  # tags: {
2669
3045
  # key: "TagKey",
2670
3046
  # values: ["Value"],
2671
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3047
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2672
3048
  # },
2673
3049
  # cost_categories: {
2674
3050
  # key: "CostCategoryName",
2675
3051
  # values: ["Value"],
2676
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3052
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2677
3053
  # },
2678
3054
  # },
2679
3055
  # metrics: ["MetricName"],
2680
3056
  # next_page_token: "NextPageToken",
3057
+ # sort_by: {
3058
+ # key: "SortDefinitionKey", # required
3059
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3060
+ # },
3061
+ # max_results: 1,
2681
3062
  # }
2682
3063
  #
2683
3064
  # @!attribute [rw] time_period
@@ -2782,6 +3163,41 @@ module Aws::CostExplorer
2782
3163
  # the maximum page size.
2783
3164
  # @return [String]
2784
3165
  #
3166
+ # @!attribute [rw] sort_by
3167
+ # The value by which you want to sort the data.
3168
+ #
3169
+ # The following values are supported for `Key`\:
3170
+ #
3171
+ # * `OnDemandCost`
3172
+ #
3173
+ # * `CoverageHoursPercentage`
3174
+ #
3175
+ # * `OnDemandHours`
3176
+ #
3177
+ # * `ReservedHours`
3178
+ #
3179
+ # * `TotalRunningHours`
3180
+ #
3181
+ # * `CoverageNormalizedUnitsPercentage`
3182
+ #
3183
+ # * `OnDemandNormalizedUnits`
3184
+ #
3185
+ # * `ReservedNormalizedUnits`
3186
+ #
3187
+ # * `TotalRunningNormalizedUnits`
3188
+ #
3189
+ # * `Time`
3190
+ #
3191
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3192
+ # @return [Types::SortDefinition]
3193
+ #
3194
+ # @!attribute [rw] max_results
3195
+ # The maximum number of objects that you returned for this request. If
3196
+ # more objects are available, in the response, AWS provides a
3197
+ # NextPageToken value that you can use in a subsequent call to get the
3198
+ # next batch of objects.
3199
+ # @return [Integer]
3200
+ #
2785
3201
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverageRequest AWS API Documentation
2786
3202
  #
2787
3203
  class GetReservationCoverageRequest < Struct.new(
@@ -2790,7 +3206,9 @@ module Aws::CostExplorer
2790
3206
  :granularity,
2791
3207
  :filter,
2792
3208
  :metrics,
2793
- :next_page_token)
3209
+ :next_page_token,
3210
+ :sort_by,
3211
+ :max_results)
2794
3212
  SENSITIVE = []
2795
3213
  include Aws::Structure
2796
3214
  end
@@ -2825,6 +3243,36 @@ module Aws::CostExplorer
2825
3243
  # {
2826
3244
  # account_id: "GenericString",
2827
3245
  # service: "GenericString", # required
3246
+ # filter: {
3247
+ # or: [
3248
+ # {
3249
+ # # recursive Expression
3250
+ # },
3251
+ # ],
3252
+ # and: [
3253
+ # {
3254
+ # # recursive Expression
3255
+ # },
3256
+ # ],
3257
+ # not: {
3258
+ # # recursive Expression
3259
+ # },
3260
+ # dimensions: {
3261
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3262
+ # values: ["Value"],
3263
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3264
+ # },
3265
+ # tags: {
3266
+ # key: "TagKey",
3267
+ # values: ["Value"],
3268
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3269
+ # },
3270
+ # cost_categories: {
3271
+ # key: "CostCategoryName",
3272
+ # values: ["Value"],
3273
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3274
+ # },
3275
+ # },
2828
3276
  # account_scope: "PAYER", # accepts PAYER, LINKED
2829
3277
  # lookback_period_in_days: "SEVEN_DAYS", # accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
2830
3278
  # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
@@ -2846,10 +3294,65 @@ module Aws::CostExplorer
2846
3294
  # The specific service that you want recommendations for.
2847
3295
  # @return [String]
2848
3296
  #
3297
+ # @!attribute [rw] filter
3298
+ # Use `Expression` to filter by cost or by usage. There are two
3299
+ # patterns:
3300
+ #
3301
+ # * Simple dimension values - You can set the dimension name and
3302
+ # values for the filters that you plan to use. For example, you can
3303
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
3304
+ # `GetRightsizingRecommendation`, the Region is a full name (for
3305
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
3306
+ # looks like:
3307
+ #
3308
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3309
+ # “us-west-1” ] \} \}`
3310
+ #
3311
+ # The list of dimension values are OR'd together to retrieve cost
3312
+ # or usage data. You can create `Expression` and `DimensionValues`
3313
+ # objects using either `with*` methods or `set*` methods in multiple
3314
+ # lines.
3315
+ #
3316
+ # * Compound dimension values with logical operations - You can use
3317
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
3318
+ # to create a list of one or more `Expression` objects. This allows
3319
+ # you to filter on more advanced options. For example, you can
3320
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
3321
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
3322
+ # `Expression` for that looks like this:
3323
+ #
3324
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
3325
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
3326
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
3327
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
3328
+ # \}\}\} ] \} `
3329
+ #
3330
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
3331
+ # returns an error if more than one is specified. The following
3332
+ # example shows an `Expression` object that creates an error.
3333
+ #
3334
+ # </note>
3335
+ #
3336
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3337
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
3338
+ #
3339
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3340
+ # and NOT is not supported. OR is not supported between different
3341
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
3342
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
3343
+ # `RIGHTSIZING_TYPE`.
3344
+ #
3345
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
3346
+ # supported. AND and OR are not supported. Dimensions are limited to
3347
+ # `LINKED_ACCOUNT`.
3348
+ #
3349
+ # </note>
3350
+ # @return [Types::Expression]
3351
+ #
2849
3352
  # @!attribute [rw] account_scope
2850
3353
  # The account scope that you want your recommendations for. Amazon Web
2851
- # Services calculates recommendations including the master account and
2852
- # member accounts if the value is set to `PAYER`. If the value is
3354
+ # Services calculates recommendations including the management account
3355
+ # and member accounts if the value is set to `PAYER`. If the value is
2853
3356
  # `LINKED`, recommendations are calculated for individual member
2854
3357
  # accounts only.
2855
3358
  # @return [String]
@@ -2888,6 +3391,7 @@ module Aws::CostExplorer
2888
3391
  class GetReservationPurchaseRecommendationRequest < Struct.new(
2889
3392
  :account_id,
2890
3393
  :service,
3394
+ :filter,
2891
3395
  :account_scope,
2892
3396
  :lookback_period_in_days,
2893
3397
  :term_in_years,
@@ -2952,22 +3456,27 @@ module Aws::CostExplorer
2952
3456
  # # recursive Expression
2953
3457
  # },
2954
3458
  # dimensions: {
2955
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
3459
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2956
3460
  # values: ["Value"],
2957
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3461
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2958
3462
  # },
2959
3463
  # tags: {
2960
3464
  # key: "TagKey",
2961
3465
  # values: ["Value"],
2962
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3466
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2963
3467
  # },
2964
3468
  # cost_categories: {
2965
3469
  # key: "CostCategoryName",
2966
3470
  # values: ["Value"],
2967
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3471
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2968
3472
  # },
2969
3473
  # },
3474
+ # sort_by: {
3475
+ # key: "SortDefinitionKey", # required
3476
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3477
+ # },
2970
3478
  # next_page_token: "NextPageToken",
3479
+ # max_results: 1,
2971
3480
  # }
2972
3481
  #
2973
3482
  # @!attribute [rw] time_period
@@ -3028,12 +3537,61 @@ module Aws::CostExplorer
3028
3537
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3029
3538
  # @return [Types::Expression]
3030
3539
  #
3540
+ # @!attribute [rw] sort_by
3541
+ # The value by which you want to sort the data.
3542
+ #
3543
+ # The following values are supported for `Key`\:
3544
+ #
3545
+ # * `UtilizationPercentage`
3546
+ #
3547
+ # * `UtilizationPercentageInUnits`
3548
+ #
3549
+ # * `PurchasedHours`
3550
+ #
3551
+ # * `PurchasedUnits`
3552
+ #
3553
+ # * `TotalActualHours`
3554
+ #
3555
+ # * `TotalActualUnits`
3556
+ #
3557
+ # * `UnusedHours`
3558
+ #
3559
+ # * `UnusedUnits`
3560
+ #
3561
+ # * `OnDemandCostOfRIHoursUsed`
3562
+ #
3563
+ # * `NetRISavings`
3564
+ #
3565
+ # * `TotalPotentialRISavings`
3566
+ #
3567
+ # * `AmortizedUpfrontFee`
3568
+ #
3569
+ # * `AmortizedRecurringFee`
3570
+ #
3571
+ # * `TotalAmortizedFee`
3572
+ #
3573
+ # * `RICostForUnusedHours`
3574
+ #
3575
+ # * `RealizedSavings`
3576
+ #
3577
+ # * `UnrealizedSavings`
3578
+ #
3579
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3580
+ # @return [Types::SortDefinition]
3581
+ #
3031
3582
  # @!attribute [rw] next_page_token
3032
3583
  # The token to retrieve the next set of results. AWS provides the
3033
3584
  # token when the response from a previous call has more results than
3034
3585
  # the maximum page size.
3035
3586
  # @return [String]
3036
3587
  #
3588
+ # @!attribute [rw] max_results
3589
+ # The maximum number of objects that you returned for this request. If
3590
+ # more objects are available, in the response, AWS provides a
3591
+ # NextPageToken value that you can use in a subsequent call to get the
3592
+ # next batch of objects.
3593
+ # @return [Integer]
3594
+ #
3037
3595
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilizationRequest AWS API Documentation
3038
3596
  #
3039
3597
  class GetReservationUtilizationRequest < Struct.new(
@@ -3041,7 +3599,9 @@ module Aws::CostExplorer
3041
3599
  :group_by,
3042
3600
  :granularity,
3043
3601
  :filter,
3044
- :next_page_token)
3602
+ :sort_by,
3603
+ :next_page_token,
3604
+ :max_results)
3045
3605
  SENSITIVE = []
3046
3606
  include Aws::Structure
3047
3607
  end
@@ -3089,19 +3649,19 @@ module Aws::CostExplorer
3089
3649
  # # recursive Expression
3090
3650
  # },
3091
3651
  # dimensions: {
3092
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
3652
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3093
3653
  # values: ["Value"],
3094
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3654
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3095
3655
  # },
3096
3656
  # tags: {
3097
3657
  # key: "TagKey",
3098
3658
  # values: ["Value"],
3099
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3659
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3100
3660
  # },
3101
3661
  # cost_categories: {
3102
3662
  # key: "CostCategoryName",
3103
3663
  # values: ["Value"],
3104
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3664
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3105
3665
  # },
3106
3666
  # },
3107
3667
  # configuration: {
@@ -3155,12 +3715,16 @@ module Aws::CostExplorer
3155
3715
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3156
3716
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
3157
3717
  #
3158
- # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and
3159
- # NOT is not supported. OR is not supported between different
3718
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3719
+ # and NOT is not supported. OR is not supported between different
3160
3720
  # dimensions, or dimensions and tags. NOT operators aren't supported.
3161
3721
  # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
3162
3722
  # `RIGHTSIZING_TYPE`.
3163
3723
  #
3724
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
3725
+ # supported. AND and OR are not supported. Dimensions are limited to
3726
+ # `LINKED_ACCOUNT`.
3727
+ #
3164
3728
  # </note>
3165
3729
  # @return [Types::Expression]
3166
3730
  #
@@ -3267,24 +3831,28 @@ module Aws::CostExplorer
3267
3831
  # # recursive Expression
3268
3832
  # },
3269
3833
  # dimensions: {
3270
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
3834
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3271
3835
  # values: ["Value"],
3272
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3836
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3273
3837
  # },
3274
3838
  # tags: {
3275
3839
  # key: "TagKey",
3276
3840
  # values: ["Value"],
3277
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3841
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3278
3842
  # },
3279
3843
  # cost_categories: {
3280
3844
  # key: "CostCategoryName",
3281
3845
  # values: ["Value"],
3282
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3846
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3283
3847
  # },
3284
3848
  # },
3285
3849
  # metrics: ["MetricName"],
3286
3850
  # next_token: "NextPageToken",
3287
3851
  # max_results: 1,
3852
+ # sort_by: {
3853
+ # key: "SortDefinitionKey", # required
3854
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3855
+ # },
3288
3856
  # }
3289
3857
  #
3290
3858
  # @!attribute [rw] time_period
@@ -3347,6 +3915,28 @@ module Aws::CostExplorer
3347
3915
  # `20`, with a minimum value of `1`.
3348
3916
  # @return [Integer]
3349
3917
  #
3918
+ # @!attribute [rw] sort_by
3919
+ # The value by which you want to sort the data.
3920
+ #
3921
+ # The following values are supported for `Key`\:
3922
+ #
3923
+ # * `SpendCoveredBySavingsPlan`
3924
+ #
3925
+ # * `OnDemandCost`
3926
+ #
3927
+ # * `CoveragePercentage`
3928
+ #
3929
+ # * `TotalCost`
3930
+ #
3931
+ # * `InstanceFamily`
3932
+ #
3933
+ # * `Region`
3934
+ #
3935
+ # * `Service`
3936
+ #
3937
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3938
+ # @return [Types::SortDefinition]
3939
+ #
3350
3940
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverageRequest AWS API Documentation
3351
3941
  #
3352
3942
  class GetSavingsPlansCoverageRequest < Struct.new(
@@ -3356,7 +3946,8 @@ module Aws::CostExplorer
3356
3946
  :filter,
3357
3947
  :metrics,
3358
3948
  :next_token,
3359
- :max_results)
3949
+ :max_results,
3950
+ :sort_by)
3360
3951
  SENSITIVE = []
3361
3952
  include Aws::Structure
3362
3953
  end
@@ -3406,19 +3997,19 @@ module Aws::CostExplorer
3406
3997
  # # recursive Expression
3407
3998
  # },
3408
3999
  # dimensions: {
3409
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
4000
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3410
4001
  # values: ["Value"],
3411
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4002
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3412
4003
  # },
3413
4004
  # tags: {
3414
4005
  # key: "TagKey",
3415
4006
  # values: ["Value"],
3416
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4007
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3417
4008
  # },
3418
4009
  # cost_categories: {
3419
4010
  # key: "CostCategoryName",
3420
4011
  # values: ["Value"],
3421
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4012
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3422
4013
  # },
3423
4014
  # },
3424
4015
  # }
@@ -3438,8 +4029,8 @@ module Aws::CostExplorer
3438
4029
  #
3439
4030
  # @!attribute [rw] account_scope
3440
4031
  # The account scope that you want your recommendations for. Amazon Web
3441
- # Services calculates recommendations including the master account and
3442
- # member accounts if the value is set to `PAYER`. If the value is
4032
+ # Services calculates recommendations including the management account
4033
+ # and member accounts if the value is set to `PAYER`. If the value is
3443
4034
  # `LINKED`, recommendations are calculated for individual member
3444
4035
  # accounts only.
3445
4036
  # @return [String]
@@ -3537,23 +4128,28 @@ module Aws::CostExplorer
3537
4128
  # # recursive Expression
3538
4129
  # },
3539
4130
  # dimensions: {
3540
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
4131
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3541
4132
  # values: ["Value"],
3542
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4133
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3543
4134
  # },
3544
4135
  # tags: {
3545
4136
  # key: "TagKey",
3546
4137
  # values: ["Value"],
3547
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4138
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3548
4139
  # },
3549
4140
  # cost_categories: {
3550
4141
  # key: "CostCategoryName",
3551
4142
  # values: ["Value"],
3552
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4143
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3553
4144
  # },
3554
4145
  # },
4146
+ # data_type: ["ATTRIBUTES"], # accepts ATTRIBUTES, UTILIZATION, AMORTIZED_COMMITMENT, SAVINGS
3555
4147
  # next_token: "NextPageToken",
3556
4148
  # max_results: 1,
4149
+ # sort_by: {
4150
+ # key: "SortDefinitionKey", # required
4151
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4152
+ # },
3557
4153
  # }
3558
4154
  #
3559
4155
  # @!attribute [rw] time_period
@@ -3586,6 +4182,10 @@ module Aws::CostExplorer
3586
4182
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3587
4183
  # @return [Types::Expression]
3588
4184
  #
4185
+ # @!attribute [rw] data_type
4186
+ # The data type.
4187
+ # @return [Array<String>]
4188
+ #
3589
4189
  # @!attribute [rw] next_token
3590
4190
  # The token to retrieve the next set of results. Amazon Web Services
3591
4191
  # provides the token when the response from a previous call has more
@@ -3597,13 +4197,37 @@ module Aws::CostExplorer
3597
4197
  # `20`, with a minimum value of `1`.
3598
4198
  # @return [Integer]
3599
4199
  #
4200
+ # @!attribute [rw] sort_by
4201
+ # The value by which you want to sort the data.
4202
+ #
4203
+ # The following values are supported for `Key`\:
4204
+ #
4205
+ # * `UtilizationPercentage`
4206
+ #
4207
+ # * `TotalCommitment`
4208
+ #
4209
+ # * `UsedCommitment`
4210
+ #
4211
+ # * `UnusedCommitment`
4212
+ #
4213
+ # * `NetSavings`
4214
+ #
4215
+ # * `AmortizedRecurringCommitment`
4216
+ #
4217
+ # * `AmortizedUpfrontCommitment`
4218
+ #
4219
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4220
+ # @return [Types::SortDefinition]
4221
+ #
3600
4222
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetailsRequest AWS API Documentation
3601
4223
  #
3602
4224
  class GetSavingsPlansUtilizationDetailsRequest < Struct.new(
3603
4225
  :time_period,
3604
4226
  :filter,
4227
+ :data_type,
3605
4228
  :next_token,
3606
- :max_results)
4229
+ :max_results,
4230
+ :sort_by)
3607
4231
  SENSITIVE = []
3608
4232
  include Aws::Structure
3609
4233
  end
@@ -3618,7 +4242,7 @@ module Aws::CostExplorer
3618
4242
  # @return [Types::SavingsPlansUtilizationAggregates]
3619
4243
  #
3620
4244
  # @!attribute [rw] time_period
3621
- # The time period that you want the usage and costs for.
4245
+ # The time period of the request.
3622
4246
  # @return [Types::DateInterval]
3623
4247
  #
3624
4248
  # @!attribute [rw] next_token
@@ -3662,21 +4286,25 @@ module Aws::CostExplorer
3662
4286
  # # recursive Expression
3663
4287
  # },
3664
4288
  # dimensions: {
3665
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
4289
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3666
4290
  # values: ["Value"],
3667
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4291
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3668
4292
  # },
3669
4293
  # tags: {
3670
4294
  # key: "TagKey",
3671
4295
  # values: ["Value"],
3672
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4296
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3673
4297
  # },
3674
4298
  # cost_categories: {
3675
4299
  # key: "CostCategoryName",
3676
4300
  # values: ["Value"],
3677
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4301
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3678
4302
  # },
3679
4303
  # },
4304
+ # sort_by: {
4305
+ # key: "SortDefinitionKey", # required
4306
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4307
+ # },
3680
4308
  # }
3681
4309
  #
3682
4310
  # @!attribute [rw] time_period
@@ -3719,12 +4347,31 @@ module Aws::CostExplorer
3719
4347
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3720
4348
  # @return [Types::Expression]
3721
4349
  #
4350
+ # @!attribute [rw] sort_by
4351
+ # The value by which you want to sort the data.
4352
+ #
4353
+ # The following values are supported for `Key`\:
4354
+ #
4355
+ # * `UtilizationPercentage`
4356
+ #
4357
+ # * `TotalCommitment`
4358
+ #
4359
+ # * `UsedCommitment`
4360
+ #
4361
+ # * `UnusedCommitment`
4362
+ #
4363
+ # * `NetSavings`
4364
+ #
4365
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4366
+ # @return [Types::SortDefinition]
4367
+ #
3722
4368
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationRequest AWS API Documentation
3723
4369
  #
3724
4370
  class GetSavingsPlansUtilizationRequest < Struct.new(
3725
4371
  :time_period,
3726
4372
  :granularity,
3727
- :filter)
4373
+ :filter,
4374
+ :sort_by)
3728
4375
  SENSITIVE = []
3729
4376
  include Aws::Structure
3730
4377
  end
@@ -3758,6 +4405,43 @@ module Aws::CostExplorer
3758
4405
  # end: "YearMonthDay", # required
3759
4406
  # },
3760
4407
  # tag_key: "TagKey",
4408
+ # filter: {
4409
+ # or: [
4410
+ # {
4411
+ # # recursive Expression
4412
+ # },
4413
+ # ],
4414
+ # and: [
4415
+ # {
4416
+ # # recursive Expression
4417
+ # },
4418
+ # ],
4419
+ # not: {
4420
+ # # recursive Expression
4421
+ # },
4422
+ # dimensions: {
4423
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
4424
+ # values: ["Value"],
4425
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4426
+ # },
4427
+ # tags: {
4428
+ # key: "TagKey",
4429
+ # values: ["Value"],
4430
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4431
+ # },
4432
+ # cost_categories: {
4433
+ # key: "CostCategoryName",
4434
+ # values: ["Value"],
4435
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4436
+ # },
4437
+ # },
4438
+ # sort_by: [
4439
+ # {
4440
+ # key: "SortDefinitionKey", # required
4441
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4442
+ # },
4443
+ # ],
4444
+ # max_results: 1,
3761
4445
  # next_page_token: "NextPageToken",
3762
4446
  # }
3763
4447
  #
@@ -3777,6 +4461,94 @@ module Aws::CostExplorer
3777
4461
  # The key of the tag that you want to return values for.
3778
4462
  # @return [String]
3779
4463
  #
4464
+ # @!attribute [rw] filter
4465
+ # Use `Expression` to filter by cost or by usage. There are two
4466
+ # patterns:
4467
+ #
4468
+ # * Simple dimension values - You can set the dimension name and
4469
+ # values for the filters that you plan to use. For example, you can
4470
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
4471
+ # `GetRightsizingRecommendation`, the Region is a full name (for
4472
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
4473
+ # looks like:
4474
+ #
4475
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
4476
+ # “us-west-1” ] \} \}`
4477
+ #
4478
+ # The list of dimension values are OR'd together to retrieve cost
4479
+ # or usage data. You can create `Expression` and `DimensionValues`
4480
+ # objects using either `with*` methods or `set*` methods in multiple
4481
+ # lines.
4482
+ #
4483
+ # * Compound dimension values with logical operations - You can use
4484
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
4485
+ # to create a list of one or more `Expression` objects. This allows
4486
+ # you to filter on more advanced options. For example, you can
4487
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
4488
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
4489
+ # `Expression` for that looks like this:
4490
+ #
4491
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
4492
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
4493
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
4494
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
4495
+ # \}\}\} ] \} `
4496
+ #
4497
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
4498
+ # returns an error if more than one is specified. The following
4499
+ # example shows an `Expression` object that creates an error.
4500
+ #
4501
+ # </note>
4502
+ #
4503
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
4504
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
4505
+ #
4506
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
4507
+ # and NOT is not supported. OR is not supported between different
4508
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
4509
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
4510
+ # `RIGHTSIZING_TYPE`.
4511
+ #
4512
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
4513
+ # supported. AND and OR are not supported. Dimensions are limited to
4514
+ # `LINKED_ACCOUNT`.
4515
+ #
4516
+ # </note>
4517
+ # @return [Types::Expression]
4518
+ #
4519
+ # @!attribute [rw] sort_by
4520
+ # The value by which you want to sort the data.
4521
+ #
4522
+ # The key represents cost and usage metrics. The following values are
4523
+ # supported:
4524
+ #
4525
+ # * `BlendedCost`
4526
+ #
4527
+ # * `UnblendedCost`
4528
+ #
4529
+ # * `AmortizedCost`
4530
+ #
4531
+ # * `NetAmortizedCost`
4532
+ #
4533
+ # * `NetUnblendedCost`
4534
+ #
4535
+ # * `UsageQuantity`
4536
+ #
4537
+ # * `NormalizedUsageAmount`
4538
+ #
4539
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4540
+ #
4541
+ # When using `SortBy`, `NextPageToken` and `SearchString` are not
4542
+ # supported.
4543
+ # @return [Array<Types::SortDefinition>]
4544
+ #
4545
+ # @!attribute [rw] max_results
4546
+ # This field is only used when SortBy is provided in the request. The
4547
+ # maximum number of objects that to be returned for this request. If
4548
+ # MaxResults is not specified with SortBy, the request will return
4549
+ # 1000 results as the default value for this parameter.
4550
+ # @return [Integer]
4551
+ #
3780
4552
  # @!attribute [rw] next_page_token
3781
4553
  # The token to retrieve the next set of results. AWS provides the
3782
4554
  # token when the response from a previous call has more results than
@@ -3789,6 +4561,9 @@ module Aws::CostExplorer
3789
4561
  :search_string,
3790
4562
  :time_period,
3791
4563
  :tag_key,
4564
+ :filter,
4565
+ :sort_by,
4566
+ :max_results,
3792
4567
  :next_page_token)
3793
4568
  SENSITIVE = []
3794
4569
  include Aws::Structure
@@ -3848,19 +4623,19 @@ module Aws::CostExplorer
3848
4623
  # # recursive Expression
3849
4624
  # },
3850
4625
  # dimensions: {
3851
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
4626
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
3852
4627
  # values: ["Value"],
3853
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4628
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3854
4629
  # },
3855
4630
  # tags: {
3856
4631
  # key: "TagKey",
3857
4632
  # values: ["Value"],
3858
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4633
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3859
4634
  # },
3860
4635
  # cost_categories: {
3861
4636
  # key: "CostCategoryName",
3862
4637
  # values: ["Value"],
3863
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4638
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3864
4639
  # },
3865
4640
  # },
3866
4641
  # prediction_interval_level: 1,
@@ -4367,6 +5142,18 @@ module Aws::CostExplorer
4367
5142
  # period.
4368
5143
  # @return [String]
4369
5144
  #
5145
+ # @!attribute [rw] ri_cost_for_unused_hours
5146
+ # The cost of unused hours for your reservation.
5147
+ # @return [String]
5148
+ #
5149
+ # @!attribute [rw] realized_savings
5150
+ # The realized savings due to purchasing and using a reservation.
5151
+ # @return [String]
5152
+ #
5153
+ # @!attribute [rw] unrealized_savings
5154
+ # The unrealized savings due to purchasing and using a reservation.
5155
+ # @return [String]
5156
+ #
4370
5157
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ReservationAggregates AWS API Documentation
4371
5158
  #
4372
5159
  class ReservationAggregates < Struct.new(
@@ -4383,7 +5170,10 @@ module Aws::CostExplorer
4383
5170
  :total_potential_ri_savings,
4384
5171
  :amortized_upfront_fee,
4385
5172
  :amortized_recurring_fee,
4386
- :total_amortized_fee)
5173
+ :total_amortized_fee,
5174
+ :ri_cost_for_unused_hours,
5175
+ :realized_savings,
5176
+ :unrealized_savings)
4387
5177
  SENSITIVE = []
4388
5178
  include Aws::Structure
4389
5179
  end
@@ -4812,12 +5602,17 @@ module Aws::CostExplorer
4812
5602
  # recommendation.
4813
5603
  # @return [String]
4814
5604
  #
5605
+ # @!attribute [rw] additional_metadata
5606
+ # Additional metadata that may be applicable to the recommendation.
5607
+ # @return [String]
5608
+ #
4815
5609
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RightsizingRecommendationMetadata AWS API Documentation
4816
5610
  #
4817
5611
  class RightsizingRecommendationMetadata < Struct.new(
4818
5612
  :recommendation_id,
4819
5613
  :generation_timestamp,
4820
- :lookback_period_in_days)
5614
+ :lookback_period_in_days,
5615
+ :additional_metadata)
4821
5616
  SENSITIVE = []
4822
5617
  include Aws::Structure
4823
5618
  end
@@ -4925,7 +5720,7 @@ module Aws::CostExplorer
4925
5720
  # @return [Types::SavingsPlansCoverageData]
4926
5721
  #
4927
5722
  # @!attribute [rw] time_period
4928
- # The time period that you want the usage and costs for.
5723
+ # The time period of the request.
4929
5724
  # @return [Types::DateInterval]
4930
5725
  #
4931
5726
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansCoverage AWS API Documentation
@@ -5001,8 +5796,8 @@ module Aws::CostExplorer
5001
5796
  #
5002
5797
  # @!attribute [rw] account_scope
5003
5798
  # The account scope that you want your recommendations for. Amazon Web
5004
- # Services calculates recommendations including the master account and
5005
- # member accounts if the value is set to `PAYER`. If the value is
5799
+ # Services calculates recommendations including the management account
5800
+ # and member accounts if the value is set to `PAYER`. If the value is
5006
5801
  # `LINKED`, recommendations are calculated for individual member
5007
5802
  # accounts only.
5008
5803
  # @return [String]
@@ -5161,11 +5956,16 @@ module Aws::CostExplorer
5161
5956
  # The timestamp showing when the recommendations were generated.
5162
5957
  # @return [String]
5163
5958
  #
5959
+ # @!attribute [rw] additional_metadata
5960
+ # Additional metadata that may be applicable to the recommendation.
5961
+ # @return [String]
5962
+ #
5164
5963
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansPurchaseRecommendationMetadata AWS API Documentation
5165
5964
  #
5166
5965
  class SavingsPlansPurchaseRecommendationMetadata < Struct.new(
5167
5966
  :recommendation_id,
5168
- :generation_timestamp)
5967
+ :generation_timestamp,
5968
+ :additional_metadata)
5169
5969
  SENSITIVE = []
5170
5970
  include Aws::Structure
5171
5971
  end
@@ -5335,7 +6135,7 @@ module Aws::CostExplorer
5335
6135
  # The amount of Savings Plans utilization, in hours.
5336
6136
  #
5337
6137
  # @!attribute [rw] time_period
5338
- # The time period that you want the usage and costs for.
6138
+ # The time period of the request.
5339
6139
  # @return [Types::DateInterval]
5340
6140
  #
5341
6141
  # @!attribute [rw] utilization
@@ -5367,8 +6167,8 @@ module Aws::CostExplorer
5367
6167
  end
5368
6168
 
5369
6169
  # A single daily or monthly Savings Plans utilization rate, and details
5370
- # for your account. A master account in an organization have access to
5371
- # member accounts. You can use `GetDimensionValues` to determine the
6170
+ # for your account. A management account in an organization have access
6171
+ # to member accounts. You can use `GetDimensionValues` to determine the
5372
6172
  # possible dimension values.
5373
6173
  #
5374
6174
  # @!attribute [rw] savings_plan_arn
@@ -5447,6 +6247,33 @@ module Aws::CostExplorer
5447
6247
  include Aws::Structure
5448
6248
  end
5449
6249
 
6250
+ # The details of how to sort the data.
6251
+ #
6252
+ # @note When making an API call, you may pass SortDefinition
6253
+ # data as a hash:
6254
+ #
6255
+ # {
6256
+ # key: "SortDefinitionKey", # required
6257
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
6258
+ # }
6259
+ #
6260
+ # @!attribute [rw] key
6261
+ # The key by which to sort the data.
6262
+ # @return [String]
6263
+ #
6264
+ # @!attribute [rw] sort_order
6265
+ # The order in which to sort the data.
6266
+ # @return [String]
6267
+ #
6268
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SortDefinition AWS API Documentation
6269
+ #
6270
+ class SortDefinition < Struct.new(
6271
+ :key,
6272
+ :sort_order)
6273
+ SENSITIVE = []
6274
+ include Aws::Structure
6275
+ end
6276
+
5450
6277
  # The recipient of `AnomalySubscription` notifications.
5451
6278
  #
5452
6279
  # @note When making an API call, you may pass Subscriber
@@ -5483,13 +6310,20 @@ module Aws::CostExplorer
5483
6310
 
5484
6311
  # The values that are available for a tag.
5485
6312
  #
6313
+ # If `Values` and `Key` are not specified, the `ABSENT` `MatchOption` is
6314
+ # applied to all tags. That is, filtering on resources with no tags.
6315
+ #
6316
+ # If `Values` is provided and `Key` is not specified, the `ABSENT`
6317
+ # `MatchOption` is applied to the tag `Key` only. That is, filtering on
6318
+ # resources without the given tag key.
6319
+ #
5486
6320
  # @note When making an API call, you may pass TagValues
5487
6321
  # data as a hash:
5488
6322
  #
5489
6323
  # {
5490
6324
  # key: "TagKey",
5491
6325
  # values: ["Value"],
5492
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6326
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5493
6327
  # }
5494
6328
  #
5495
6329
  # @!attribute [rw] key
@@ -5696,7 +6530,7 @@ module Aws::CostExplorer
5696
6530
  # subscription_arn: "GenericString", # required
5697
6531
  # threshold: 1.0,
5698
6532
  # frequency: "DAILY", # accepts DAILY, IMMEDIATE, WEEKLY
5699
- # monitor_arn_list: ["Value"],
6533
+ # monitor_arn_list: ["Arn"],
5700
6534
  # subscribers: [
5701
6535
  # {
5702
6536
  # address: "SubscriberAddress",
@@ -5721,7 +6555,7 @@ module Aws::CostExplorer
5721
6555
  # @return [String]
5722
6556
  #
5723
6557
  # @!attribute [rw] monitor_arn_list
5724
- # A list of cost anomaly subscription ARNs.
6558
+ # A list of cost anomaly monitor ARNs.
5725
6559
  # @return [Array<String>]
5726
6560
  #
5727
6561
  # @!attribute [rw] subscribers
@@ -5781,19 +6615,19 @@ module Aws::CostExplorer
5781
6615
  # # recursive Expression
5782
6616
  # },
5783
6617
  # dimensions: {
5784
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
6618
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, 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, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
5785
6619
  # values: ["Value"],
5786
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6620
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5787
6621
  # },
5788
6622
  # tags: {
5789
6623
  # key: "TagKey",
5790
6624
  # values: ["Value"],
5791
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6625
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5792
6626
  # },
5793
6627
  # cost_categories: {
5794
6628
  # key: "CostCategoryName",
5795
6629
  # values: ["Value"],
5796
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6630
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5797
6631
  # },
5798
6632
  # },
5799
6633
  # },