aws-sdk-costexplorer 1.55.0 → 1.60.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -33,13 +33,17 @@ module Aws::CostExplorer
33
33
  BillExpirationException = Shapes::StructureShape.new(name: 'BillExpirationException')
34
34
  Context = Shapes::StringShape.new(name: 'Context')
35
35
  CostCategory = Shapes::StructureShape.new(name: 'CostCategory')
36
+ CostCategoryInheritedValueDimension = Shapes::StructureShape.new(name: 'CostCategoryInheritedValueDimension')
37
+ CostCategoryInheritedValueDimensionName = Shapes::StringShape.new(name: 'CostCategoryInheritedValueDimensionName')
36
38
  CostCategoryMaxResults = Shapes::IntegerShape.new(name: 'CostCategoryMaxResults')
37
39
  CostCategoryName = Shapes::StringShape.new(name: 'CostCategoryName')
40
+ CostCategoryNamesList = Shapes::ListShape.new(name: 'CostCategoryNamesList')
38
41
  CostCategoryProcessingStatus = Shapes::StructureShape.new(name: 'CostCategoryProcessingStatus')
39
42
  CostCategoryProcessingStatusList = Shapes::ListShape.new(name: 'CostCategoryProcessingStatusList')
40
43
  CostCategoryReference = Shapes::StructureShape.new(name: 'CostCategoryReference')
41
44
  CostCategoryReferencesList = Shapes::ListShape.new(name: 'CostCategoryReferencesList')
42
45
  CostCategoryRule = Shapes::StructureShape.new(name: 'CostCategoryRule')
46
+ CostCategoryRuleType = Shapes::StringShape.new(name: 'CostCategoryRuleType')
43
47
  CostCategoryRuleVersion = Shapes::StringShape.new(name: 'CostCategoryRuleVersion')
44
48
  CostCategoryRulesList = Shapes::ListShape.new(name: 'CostCategoryRulesList')
45
49
  CostCategoryStatus = Shapes::StringShape.new(name: 'CostCategoryStatus')
@@ -103,6 +107,8 @@ module Aws::CostExplorer
103
107
  GetCostAndUsageResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageResponse')
104
108
  GetCostAndUsageWithResourcesRequest = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesRequest')
105
109
  GetCostAndUsageWithResourcesResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesResponse')
110
+ GetCostCategoriesRequest = Shapes::StructureShape.new(name: 'GetCostCategoriesRequest')
111
+ GetCostCategoriesResponse = Shapes::StructureShape.new(name: 'GetCostCategoriesResponse')
106
112
  GetCostForecastRequest = Shapes::StructureShape.new(name: 'GetCostForecastRequest')
107
113
  GetCostForecastResponse = Shapes::StructureShape.new(name: 'GetCostForecastResponse')
108
114
  GetDimensionValuesRequest = Shapes::StructureShape.new(name: 'GetDimensionValuesRequest')
@@ -175,6 +181,8 @@ module Aws::CostExplorer
175
181
  PurchasedHours = Shapes::StringShape.new(name: 'PurchasedHours')
176
182
  PurchasedUnits = Shapes::StringShape.new(name: 'PurchasedUnits')
177
183
  RDSInstanceDetails = Shapes::StructureShape.new(name: 'RDSInstanceDetails')
184
+ RICostForUnusedHours = Shapes::StringShape.new(name: 'RICostForUnusedHours')
185
+ RealizedSavings = Shapes::StringShape.new(name: 'RealizedSavings')
178
186
  RecommendationTarget = Shapes::StringShape.new(name: 'RecommendationTarget')
179
187
  RedshiftInstanceDetails = Shapes::StructureShape.new(name: 'RedshiftInstanceDetails')
180
188
  RequestChangedException = Shapes::StructureShape.new(name: 'RequestChangedException')
@@ -211,6 +219,8 @@ module Aws::CostExplorer
211
219
  SavingsPlansCoverage = Shapes::StructureShape.new(name: 'SavingsPlansCoverage')
212
220
  SavingsPlansCoverageData = Shapes::StructureShape.new(name: 'SavingsPlansCoverageData')
213
221
  SavingsPlansCoverages = Shapes::ListShape.new(name: 'SavingsPlansCoverages')
222
+ SavingsPlansDataType = Shapes::StringShape.new(name: 'SavingsPlansDataType')
223
+ SavingsPlansDataTypes = Shapes::ListShape.new(name: 'SavingsPlansDataTypes')
214
224
  SavingsPlansDetails = Shapes::StructureShape.new(name: 'SavingsPlansDetails')
215
225
  SavingsPlansPurchaseRecommendation = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendation')
216
226
  SavingsPlansPurchaseRecommendationDetail = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationDetail')
@@ -227,6 +237,10 @@ module Aws::CostExplorer
227
237
  SearchString = Shapes::StringShape.new(name: 'SearchString')
228
238
  ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
229
239
  ServiceSpecification = Shapes::StructureShape.new(name: 'ServiceSpecification')
240
+ SortDefinition = Shapes::StructureShape.new(name: 'SortDefinition')
241
+ SortDefinitionKey = Shapes::StringShape.new(name: 'SortDefinitionKey')
242
+ SortDefinitions = Shapes::ListShape.new(name: 'SortDefinitions')
243
+ SortOrder = Shapes::StringShape.new(name: 'SortOrder')
230
244
  Subscriber = Shapes::StructureShape.new(name: 'Subscriber')
231
245
  SubscriberAddress = Shapes::StringShape.new(name: 'SubscriberAddress')
232
246
  SubscriberStatus = Shapes::StringShape.new(name: 'SubscriberStatus')
@@ -250,6 +264,7 @@ module Aws::CostExplorer
250
264
  TotalRunningNormalizedUnits = Shapes::StringShape.new(name: 'TotalRunningNormalizedUnits')
251
265
  UnknownMonitorException = Shapes::StructureShape.new(name: 'UnknownMonitorException')
252
266
  UnknownSubscriptionException = Shapes::StructureShape.new(name: 'UnknownSubscriptionException')
267
+ UnrealizedSavings = Shapes::StringShape.new(name: 'UnrealizedSavings')
253
268
  UnresolvableUsageUnitException = Shapes::StructureShape.new(name: 'UnresolvableUsageUnitException')
254
269
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
255
270
  UnusedUnits = Shapes::StringShape.new(name: 'UnusedUnits')
@@ -326,8 +341,15 @@ module Aws::CostExplorer
326
341
  CostCategory.add_member(:rule_version, Shapes::ShapeRef.new(shape: CostCategoryRuleVersion, required: true, location_name: "RuleVersion"))
327
342
  CostCategory.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
328
343
  CostCategory.add_member(:processing_status, Shapes::ShapeRef.new(shape: CostCategoryProcessingStatusList, location_name: "ProcessingStatus"))
344
+ CostCategory.add_member(:default_value, Shapes::ShapeRef.new(shape: CostCategoryValue, location_name: "DefaultValue"))
329
345
  CostCategory.struct_class = Types::CostCategory
330
346
 
347
+ CostCategoryInheritedValueDimension.add_member(:dimension_name, Shapes::ShapeRef.new(shape: CostCategoryInheritedValueDimensionName, location_name: "DimensionName"))
348
+ CostCategoryInheritedValueDimension.add_member(:dimension_key, Shapes::ShapeRef.new(shape: GenericString, location_name: "DimensionKey"))
349
+ CostCategoryInheritedValueDimension.struct_class = Types::CostCategoryInheritedValueDimension
350
+
351
+ CostCategoryNamesList.member = Shapes::ShapeRef.new(shape: CostCategoryName)
352
+
331
353
  CostCategoryProcessingStatus.add_member(:component, Shapes::ShapeRef.new(shape: CostCategoryStatusComponent, location_name: "Component"))
332
354
  CostCategoryProcessingStatus.add_member(:status, Shapes::ShapeRef.new(shape: CostCategoryStatus, location_name: "Status"))
333
355
  CostCategoryProcessingStatus.struct_class = Types::CostCategoryProcessingStatus
@@ -341,12 +363,15 @@ module Aws::CostExplorer
341
363
  CostCategoryReference.add_member(:number_of_rules, Shapes::ShapeRef.new(shape: NonNegativeInteger, location_name: "NumberOfRules"))
342
364
  CostCategoryReference.add_member(:processing_status, Shapes::ShapeRef.new(shape: CostCategoryProcessingStatusList, location_name: "ProcessingStatus"))
343
365
  CostCategoryReference.add_member(:values, Shapes::ShapeRef.new(shape: CostCategoryValuesList, location_name: "Values"))
366
+ CostCategoryReference.add_member(:default_value, Shapes::ShapeRef.new(shape: CostCategoryValue, location_name: "DefaultValue"))
344
367
  CostCategoryReference.struct_class = Types::CostCategoryReference
345
368
 
346
369
  CostCategoryReferencesList.member = Shapes::ShapeRef.new(shape: CostCategoryReference)
347
370
 
348
- CostCategoryRule.add_member(:value, Shapes::ShapeRef.new(shape: CostCategoryValue, required: true, location_name: "Value"))
349
- CostCategoryRule.add_member(:rule, Shapes::ShapeRef.new(shape: Expression, required: true, location_name: "Rule"))
371
+ CostCategoryRule.add_member(:value, Shapes::ShapeRef.new(shape: CostCategoryValue, location_name: "Value"))
372
+ CostCategoryRule.add_member(:rule, Shapes::ShapeRef.new(shape: Expression, location_name: "Rule"))
373
+ CostCategoryRule.add_member(:inherited_value, Shapes::ShapeRef.new(shape: CostCategoryInheritedValueDimension, location_name: "InheritedValue"))
374
+ CostCategoryRule.add_member(:type, Shapes::ShapeRef.new(shape: CostCategoryRuleType, location_name: "Type"))
350
375
  CostCategoryRule.struct_class = Types::CostCategoryRule
351
376
 
352
377
  CostCategoryRulesList.member = Shapes::ShapeRef.new(shape: CostCategoryRule)
@@ -400,6 +425,7 @@ module Aws::CostExplorer
400
425
  CreateCostCategoryDefinitionRequest.add_member(:name, Shapes::ShapeRef.new(shape: CostCategoryName, required: true, location_name: "Name"))
401
426
  CreateCostCategoryDefinitionRequest.add_member(:rule_version, Shapes::ShapeRef.new(shape: CostCategoryRuleVersion, required: true, location_name: "RuleVersion"))
402
427
  CreateCostCategoryDefinitionRequest.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
428
+ CreateCostCategoryDefinitionRequest.add_member(:default_value, Shapes::ShapeRef.new(shape: CostCategoryValue, location_name: "DefaultValue"))
403
429
  CreateCostCategoryDefinitionRequest.struct_class = Types::CreateCostCategoryDefinitionRequest
404
430
 
405
431
  CreateCostCategoryDefinitionResponse.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "CostCategoryArn"))
@@ -572,6 +598,7 @@ module Aws::CostExplorer
572
598
  GetCostAndUsageResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
573
599
  GetCostAndUsageResponse.add_member(:group_definitions, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupDefinitions"))
574
600
  GetCostAndUsageResponse.add_member(:results_by_time, Shapes::ShapeRef.new(shape: ResultsByTime, location_name: "ResultsByTime"))
601
+ GetCostAndUsageResponse.add_member(:dimension_value_attributes, Shapes::ShapeRef.new(shape: DimensionValuesWithAttributesList, location_name: "DimensionValueAttributes"))
575
602
  GetCostAndUsageResponse.struct_class = Types::GetCostAndUsageResponse
576
603
 
577
604
  GetCostAndUsageWithResourcesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
@@ -585,8 +612,25 @@ module Aws::CostExplorer
585
612
  GetCostAndUsageWithResourcesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
586
613
  GetCostAndUsageWithResourcesResponse.add_member(:group_definitions, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupDefinitions"))
587
614
  GetCostAndUsageWithResourcesResponse.add_member(:results_by_time, Shapes::ShapeRef.new(shape: ResultsByTime, location_name: "ResultsByTime"))
615
+ GetCostAndUsageWithResourcesResponse.add_member(:dimension_value_attributes, Shapes::ShapeRef.new(shape: DimensionValuesWithAttributesList, location_name: "DimensionValueAttributes"))
588
616
  GetCostAndUsageWithResourcesResponse.struct_class = Types::GetCostAndUsageWithResourcesResponse
589
617
 
618
+ GetCostCategoriesRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
619
+ GetCostCategoriesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
620
+ GetCostCategoriesRequest.add_member(:cost_category_name, Shapes::ShapeRef.new(shape: CostCategoryName, location_name: "CostCategoryName"))
621
+ GetCostCategoriesRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
622
+ GetCostCategoriesRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
623
+ GetCostCategoriesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
624
+ GetCostCategoriesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
625
+ GetCostCategoriesRequest.struct_class = Types::GetCostCategoriesRequest
626
+
627
+ GetCostCategoriesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
628
+ GetCostCategoriesResponse.add_member(:cost_category_names, Shapes::ShapeRef.new(shape: CostCategoryNamesList, location_name: "CostCategoryNames"))
629
+ GetCostCategoriesResponse.add_member(:cost_category_values, Shapes::ShapeRef.new(shape: CostCategoryValuesList, location_name: "CostCategoryValues"))
630
+ GetCostCategoriesResponse.add_member(:return_size, Shapes::ShapeRef.new(shape: PageSize, required: true, location_name: "ReturnSize"))
631
+ GetCostCategoriesResponse.add_member(:total_size, Shapes::ShapeRef.new(shape: PageSize, required: true, location_name: "TotalSize"))
632
+ GetCostCategoriesResponse.struct_class = Types::GetCostCategoriesResponse
633
+
590
634
  GetCostForecastRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
591
635
  GetCostForecastRequest.add_member(:metric, Shapes::ShapeRef.new(shape: Metric, required: true, location_name: "Metric"))
592
636
  GetCostForecastRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, required: true, location_name: "Granularity"))
@@ -602,6 +646,9 @@ module Aws::CostExplorer
602
646
  GetDimensionValuesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
603
647
  GetDimensionValuesRequest.add_member(:dimension, Shapes::ShapeRef.new(shape: Dimension, required: true, location_name: "Dimension"))
604
648
  GetDimensionValuesRequest.add_member(:context, Shapes::ShapeRef.new(shape: Context, location_name: "Context"))
649
+ GetDimensionValuesRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
650
+ GetDimensionValuesRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
651
+ GetDimensionValuesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
605
652
  GetDimensionValuesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
606
653
  GetDimensionValuesRequest.struct_class = Types::GetDimensionValuesRequest
607
654
 
@@ -617,6 +664,8 @@ module Aws::CostExplorer
617
664
  GetReservationCoverageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
618
665
  GetReservationCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
619
666
  GetReservationCoverageRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
667
+ GetReservationCoverageRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
668
+ GetReservationCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
620
669
  GetReservationCoverageRequest.struct_class = Types::GetReservationCoverageRequest
621
670
 
622
671
  GetReservationCoverageResponse.add_member(:coverages_by_time, Shapes::ShapeRef.new(shape: CoveragesByTime, required: true, location_name: "CoveragesByTime"))
@@ -626,6 +675,7 @@ module Aws::CostExplorer
626
675
 
627
676
  GetReservationPurchaseRecommendationRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
628
677
  GetReservationPurchaseRecommendationRequest.add_member(:service, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "Service"))
678
+ GetReservationPurchaseRecommendationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
629
679
  GetReservationPurchaseRecommendationRequest.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
630
680
  GetReservationPurchaseRecommendationRequest.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
631
681
  GetReservationPurchaseRecommendationRequest.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
@@ -644,7 +694,9 @@ module Aws::CostExplorer
644
694
  GetReservationUtilizationRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
645
695
  GetReservationUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
646
696
  GetReservationUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
697
+ GetReservationUtilizationRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
647
698
  GetReservationUtilizationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
699
+ GetReservationUtilizationRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
648
700
  GetReservationUtilizationRequest.struct_class = Types::GetReservationUtilizationRequest
649
701
 
650
702
  GetReservationUtilizationResponse.add_member(:utilizations_by_time, Shapes::ShapeRef.new(shape: UtilizationsByTime, required: true, location_name: "UtilizationsByTime"))
@@ -673,6 +725,7 @@ module Aws::CostExplorer
673
725
  GetSavingsPlansCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
674
726
  GetSavingsPlansCoverageRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
675
727
  GetSavingsPlansCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
728
+ GetSavingsPlansCoverageRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
676
729
  GetSavingsPlansCoverageRequest.struct_class = Types::GetSavingsPlansCoverageRequest
677
730
 
678
731
  GetSavingsPlansCoverageResponse.add_member(:savings_plans_coverages, Shapes::ShapeRef.new(shape: SavingsPlansCoverages, required: true, location_name: "SavingsPlansCoverages"))
@@ -696,8 +749,10 @@ module Aws::CostExplorer
696
749
 
697
750
  GetSavingsPlansUtilizationDetailsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
698
751
  GetSavingsPlansUtilizationDetailsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
752
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:data_type, Shapes::ShapeRef.new(shape: SavingsPlansDataTypes, location_name: "DataType"))
699
753
  GetSavingsPlansUtilizationDetailsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
700
754
  GetSavingsPlansUtilizationDetailsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
755
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
701
756
  GetSavingsPlansUtilizationDetailsRequest.struct_class = Types::GetSavingsPlansUtilizationDetailsRequest
702
757
 
703
758
  GetSavingsPlansUtilizationDetailsResponse.add_member(:savings_plans_utilization_details, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationDetails, required: true, location_name: "SavingsPlansUtilizationDetails"))
@@ -709,6 +764,7 @@ module Aws::CostExplorer
709
764
  GetSavingsPlansUtilizationRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
710
765
  GetSavingsPlansUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
711
766
  GetSavingsPlansUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
767
+ GetSavingsPlansUtilizationRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
712
768
  GetSavingsPlansUtilizationRequest.struct_class = Types::GetSavingsPlansUtilizationRequest
713
769
 
714
770
  GetSavingsPlansUtilizationResponse.add_member(:savings_plans_utilizations_by_time, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationsByTime, location_name: "SavingsPlansUtilizationsByTime"))
@@ -718,6 +774,9 @@ module Aws::CostExplorer
718
774
  GetTagsRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
719
775
  GetTagsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
720
776
  GetTagsRequest.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, location_name: "TagKey"))
777
+ GetTagsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
778
+ GetTagsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
779
+ GetTagsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
721
780
  GetTagsRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
722
781
  GetTagsRequest.struct_class = Types::GetTagsRequest
723
782
 
@@ -836,6 +895,9 @@ module Aws::CostExplorer
836
895
  ReservationAggregates.add_member(:amortized_upfront_fee, Shapes::ShapeRef.new(shape: AmortizedUpfrontFee, location_name: "AmortizedUpfrontFee"))
837
896
  ReservationAggregates.add_member(:amortized_recurring_fee, Shapes::ShapeRef.new(shape: AmortizedRecurringFee, location_name: "AmortizedRecurringFee"))
838
897
  ReservationAggregates.add_member(:total_amortized_fee, Shapes::ShapeRef.new(shape: TotalAmortizedFee, location_name: "TotalAmortizedFee"))
898
+ ReservationAggregates.add_member(:ri_cost_for_unused_hours, Shapes::ShapeRef.new(shape: RICostForUnusedHours, location_name: "RICostForUnusedHours"))
899
+ ReservationAggregates.add_member(:realized_savings, Shapes::ShapeRef.new(shape: RealizedSavings, location_name: "RealizedSavings"))
900
+ ReservationAggregates.add_member(:unrealized_savings, Shapes::ShapeRef.new(shape: UnrealizedSavings, location_name: "UnrealizedSavings"))
839
901
  ReservationAggregates.struct_class = Types::ReservationAggregates
840
902
 
841
903
  ReservationCoverageGroup.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
@@ -963,6 +1025,8 @@ module Aws::CostExplorer
963
1025
 
964
1026
  SavingsPlansCoverages.member = Shapes::ShapeRef.new(shape: SavingsPlansCoverage)
965
1027
 
1028
+ SavingsPlansDataTypes.member = Shapes::ShapeRef.new(shape: SavingsPlansDataType)
1029
+
966
1030
  SavingsPlansDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
967
1031
  SavingsPlansDetails.add_member(:instance_family, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceFamily"))
968
1032
  SavingsPlansDetails.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
@@ -1053,6 +1117,12 @@ module Aws::CostExplorer
1053
1117
  ServiceSpecification.add_member(:ec2_specification, Shapes::ShapeRef.new(shape: EC2Specification, location_name: "EC2Specification"))
1054
1118
  ServiceSpecification.struct_class = Types::ServiceSpecification
1055
1119
 
1120
+ SortDefinition.add_member(:key, Shapes::ShapeRef.new(shape: SortDefinitionKey, required: true, location_name: "Key"))
1121
+ SortDefinition.add_member(:sort_order, Shapes::ShapeRef.new(shape: SortOrder, location_name: "SortOrder"))
1122
+ SortDefinition.struct_class = Types::SortDefinition
1123
+
1124
+ SortDefinitions.member = Shapes::ShapeRef.new(shape: SortDefinition)
1125
+
1056
1126
  Subscriber.add_member(:address, Shapes::ShapeRef.new(shape: SubscriberAddress, location_name: "Address"))
1057
1127
  Subscriber.add_member(:type, Shapes::ShapeRef.new(shape: SubscriberType, location_name: "Type"))
1058
1128
  Subscriber.add_member(:status, Shapes::ShapeRef.new(shape: SubscriberStatus, location_name: "Status"))
@@ -1118,6 +1188,7 @@ module Aws::CostExplorer
1118
1188
  UpdateCostCategoryDefinitionRequest.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "CostCategoryArn"))
1119
1189
  UpdateCostCategoryDefinitionRequest.add_member(:rule_version, Shapes::ShapeRef.new(shape: CostCategoryRuleVersion, required: true, location_name: "RuleVersion"))
1120
1190
  UpdateCostCategoryDefinitionRequest.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
1191
+ UpdateCostCategoryDefinitionRequest.add_member(:default_value, Shapes::ShapeRef.new(shape: CostCategoryValue, location_name: "DefaultValue"))
1121
1192
  UpdateCostCategoryDefinitionRequest.struct_class = Types::UpdateCostCategoryDefinitionRequest
1122
1193
 
1123
1194
  UpdateCostCategoryDefinitionResponse.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "CostCategoryArn"))
@@ -1280,6 +1351,19 @@ module Aws::CostExplorer
1280
1351
  o.errors << Shapes::ShapeRef.new(shape: RequestChangedException)
1281
1352
  end)
1282
1353
 
1354
+ api.add_operation(:get_cost_categories, Seahorse::Model::Operation.new.tap do |o|
1355
+ o.name = "GetCostCategories"
1356
+ o.http_method = "POST"
1357
+ o.http_request_uri = "/"
1358
+ o.input = Shapes::ShapeRef.new(shape: GetCostCategoriesRequest)
1359
+ o.output = Shapes::ShapeRef.new(shape: GetCostCategoriesResponse)
1360
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1361
+ o.errors << Shapes::ShapeRef.new(shape: BillExpirationException)
1362
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1363
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
1364
+ o.errors << Shapes::ShapeRef.new(shape: RequestChangedException)
1365
+ end)
1366
+
1283
1367
  api.add_operation(:get_cost_forecast, Seahorse::Model::Operation.new.tap do |o|
1284
1368
  o.name = "GetCostForecast"
1285
1369
  o.http_method = "POST"
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -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
  #
@@ -376,6 +380,10 @@ module Aws::CostExplorer
376
380
  # specific cost category.
377
381
  # @return [Array<Types::CostCategoryProcessingStatus>]
378
382
  #
383
+ # @!attribute [rw] default_value
384
+ # The default value for the cost category.
385
+ # @return [String]
386
+ #
379
387
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategory AWS API Documentation
380
388
  #
381
389
  class CostCategory < Struct.new(
@@ -385,7 +393,46 @@ module Aws::CostExplorer
385
393
  :name,
386
394
  :rule_version,
387
395
  :rules,
388
- :processing_status)
396
+ :processing_status,
397
+ :default_value)
398
+ SENSITIVE = []
399
+ include Aws::Structure
400
+ end
401
+
402
+ # When creating or updating a cost category, you can define the
403
+ # `CostCategoryRule` rule type as `INHERITED_VALUE`. This rule type adds
404
+ # the flexibility of defining a rule that dynamically inherits the cost
405
+ # category value from the dimension value defined by
406
+ # `CostCategoryInheritedValueDimension`. For example, if you wanted to
407
+ # dynamically group costs based on the value of a specific tag key, you
408
+ # would first choose an inherited value rule type, then choose the tag
409
+ # dimension and specify the tag key to use.
410
+ #
411
+ # @note When making an API call, you may pass CostCategoryInheritedValueDimension
412
+ # data as a hash:
413
+ #
414
+ # {
415
+ # dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
416
+ # dimension_key: "GenericString",
417
+ # }
418
+ #
419
+ # @!attribute [rw] dimension_name
420
+ # The name of dimension for which to group costs.
421
+ #
422
+ # If you specify `LINKED_ACCOUNT_NAME`, the cost category value will
423
+ # be based on account name. If you specify `TAG`, the cost category
424
+ # value will be based on the value of the specified tag key.
425
+ # @return [String]
426
+ #
427
+ # @!attribute [rw] dimension_key
428
+ # The key to extract cost category values.
429
+ # @return [String]
430
+ #
431
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryInheritedValueDimension AWS API Documentation
432
+ #
433
+ class CostCategoryInheritedValueDimension < Struct.new(
434
+ :dimension_name,
435
+ :dimension_key)
389
436
  SENSITIVE = []
390
437
  include Aws::Structure
391
438
  end
@@ -445,6 +492,10 @@ module Aws::CostExplorer
445
492
  # A list of unique cost category values in a specific cost category.
446
493
  # @return [Array<String>]
447
494
  #
495
+ # @!attribute [rw] default_value
496
+ # The default value for the cost category.
497
+ # @return [String]
498
+ #
448
499
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryReference AWS API Documentation
449
500
  #
450
501
  class CostCategoryReference < Struct.new(
@@ -454,7 +505,8 @@ module Aws::CostExplorer
454
505
  :effective_end,
455
506
  :number_of_rules,
456
507
  :processing_status,
457
- :values)
508
+ :values,
509
+ :default_value)
458
510
  SENSITIVE = []
459
511
  include Aws::Structure
460
512
  end
@@ -467,8 +519,8 @@ module Aws::CostExplorer
467
519
  # data as a hash:
468
520
  #
469
521
  # {
470
- # value: "CostCategoryValue", # required
471
- # rule: { # required
522
+ # value: "CostCategoryValue",
523
+ # rule: {
472
524
  # or: [
473
525
  # {
474
526
  # # recursive Expression
@@ -483,26 +535,30 @@ module Aws::CostExplorer
483
535
  # # recursive Expression
484
536
  # },
485
537
  # 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
538
+ # 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
539
  # values: ["Value"],
488
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
540
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
489
541
  # },
490
542
  # tags: {
491
543
  # key: "TagKey",
492
544
  # values: ["Value"],
493
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
545
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
494
546
  # },
495
547
  # cost_categories: {
496
548
  # key: "CostCategoryName",
497
549
  # values: ["Value"],
498
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
550
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
499
551
  # },
500
552
  # },
553
+ # inherited_value: {
554
+ # dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
555
+ # dimension_key: "GenericString",
556
+ # },
557
+ # type: "REGULAR", # accepts REGULAR, INHERITED_VALUE
501
558
  # }
502
559
  #
503
560
  # @!attribute [rw] value
504
- # The value a line item will be categorized as, if it matches the
505
- # rule.
561
+ # The default value for the cost category.
506
562
  # @return [String]
507
563
  #
508
564
  # @!attribute [rw] rule
@@ -526,24 +582,50 @@ module Aws::CostExplorer
526
582
  # [2]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms
527
583
  # @return [Types::Expression]
528
584
  #
585
+ # @!attribute [rw] inherited_value
586
+ # The value the line item will be categorized as, if the line item
587
+ # contains the matched dimension.
588
+ # @return [Types::CostCategoryInheritedValueDimension]
589
+ #
590
+ # @!attribute [rw] type
591
+ # You can define the `CostCategoryRule` rule type as either `REGULAR`
592
+ # or `INHERITED_VALUE`. The `INHERITED_VALUE` rule type adds the
593
+ # flexibility of defining a rule that dynamically inherits the cost
594
+ # category value from the dimension value defined by
595
+ # `CostCategoryInheritedValueDimension`. For example, if you wanted to
596
+ # dynamically group costs based on the value of a specific tag key,
597
+ # you would first choose an inherited value rule type, then choose the
598
+ # tag dimension and specify the tag key to use.
599
+ # @return [String]
600
+ #
529
601
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryRule AWS API Documentation
530
602
  #
531
603
  class CostCategoryRule < Struct.new(
532
604
  :value,
533
- :rule)
605
+ :rule,
606
+ :inherited_value,
607
+ :type)
534
608
  SENSITIVE = []
535
609
  include Aws::Structure
536
610
  end
537
611
 
538
612
  # The Cost Categories values used for filtering the costs.
539
613
  #
614
+ # If `Values` and `Key` are not specified, the `ABSENT` `MatchOption` is
615
+ # applied to all Cost Categories. That is, filtering on resources that
616
+ # are not mapped to any Cost Categories.
617
+ #
618
+ # If `Values` is provided and `Key` is not specified, the `ABSENT`
619
+ # `MatchOption` is applied to the Cost Categories `Key` only. That is,
620
+ # filtering on resources without the given Cost Categories key.
621
+ #
540
622
  # @note When making an API call, you may pass CostCategoryValues
541
623
  # data as a hash:
542
624
  #
543
625
  # {
544
626
  # key: "CostCategoryName",
545
627
  # values: ["Value"],
546
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
628
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
547
629
  # }
548
630
  #
549
631
  # @!attribute [rw] key
@@ -556,9 +638,9 @@ module Aws::CostExplorer
556
638
  #
557
639
  # @!attribute [rw] match_options
558
640
  # 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`.
641
+ # MatchOptions is only applicable for actions related to cost
642
+ # category. The default values for `MatchOptions` is `EQUALS` and
643
+ # `CASE_SENSITIVE`.
562
644
  # @return [Array<String>]
563
645
  #
564
646
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryValues AWS API Documentation
@@ -738,19 +820,19 @@ module Aws::CostExplorer
738
820
  # # recursive Expression
739
821
  # },
740
822
  # 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
823
+ # 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
824
  # values: ["Value"],
743
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
825
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
744
826
  # },
745
827
  # tags: {
746
828
  # key: "TagKey",
747
829
  # values: ["Value"],
748
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
830
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
749
831
  # },
750
832
  # cost_categories: {
751
833
  # key: "CostCategoryName",
752
834
  # values: ["Value"],
753
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
835
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
754
836
  # },
755
837
  # },
756
838
  # dimensional_value_count: 1,
@@ -836,8 +918,8 @@ module Aws::CostExplorer
836
918
  # rule_version: "CostCategoryExpression.v1", # required, accepts CostCategoryExpression.v1
837
919
  # rules: [ # required
838
920
  # {
839
- # value: "CostCategoryValue", # required
840
- # rule: { # required
921
+ # value: "CostCategoryValue",
922
+ # rule: {
841
923
  # or: [
842
924
  # {
843
925
  # # recursive Expression
@@ -852,23 +934,29 @@ module Aws::CostExplorer
852
934
  # # recursive Expression
853
935
  # },
854
936
  # 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
937
+ # 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
938
  # values: ["Value"],
857
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
939
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
858
940
  # },
859
941
  # tags: {
860
942
  # key: "TagKey",
861
943
  # values: ["Value"],
862
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
944
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
863
945
  # },
864
946
  # cost_categories: {
865
947
  # key: "CostCategoryName",
866
948
  # values: ["Value"],
867
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
949
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
868
950
  # },
869
951
  # },
952
+ # inherited_value: {
953
+ # dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
954
+ # dimension_key: "GenericString",
955
+ # },
956
+ # type: "REGULAR", # accepts REGULAR, INHERITED_VALUE
870
957
  # },
871
958
  # ],
959
+ # default_value: "CostCategoryValue",
872
960
  # }
873
961
  #
874
962
  # @!attribute [rw] name
@@ -888,12 +976,17 @@ module Aws::CostExplorer
888
976
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html
889
977
  # @return [Array<Types::CostCategoryRule>]
890
978
  #
979
+ # @!attribute [rw] default_value
980
+ # The default value for the cost category.
981
+ # @return [String]
982
+ #
891
983
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinitionRequest AWS API Documentation
892
984
  #
893
985
  class CreateCostCategoryDefinitionRequest < Struct.new(
894
986
  :name,
895
987
  :rule_version,
896
- :rules)
988
+ :rules,
989
+ :default_value)
897
990
  SENSITIVE = []
898
991
  include Aws::Structure
899
992
  end
@@ -998,7 +1091,7 @@ module Aws::CostExplorer
998
1091
  include Aws::Structure
999
1092
  end
1000
1093
 
1001
- # The time period that you want the usage and costs for.
1094
+ # The time period of the request.
1002
1095
  #
1003
1096
  # @note When making an API call, you may pass DateInterval
1004
1097
  # data as a hash:
@@ -1009,17 +1102,17 @@ module Aws::CostExplorer
1009
1102
  # }
1010
1103
  #
1011
1104
  # @!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.
1105
+ # The beginning of the time period. The start date is inclusive. For
1106
+ # example, if `start` is `2017-01-01`, AWS retrieves cost and usage
1107
+ # data starting at `2017-01-01` up to the end date. The start date
1108
+ # must be equal to or no later than the current date to avoid a
1109
+ # validation error.
1016
1110
  # @return [String]
1017
1111
  #
1018
1112
  # @!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`.
1113
+ # The end of the time period. The end date is exclusive. For example,
1114
+ # if `end` is `2017-05-01`, AWS retrieves cost and usage data from the
1115
+ # start date up to, but not including, `2017-05-01`.
1023
1116
  # @return [String]
1024
1117
  #
1025
1118
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DateInterval AWS API Documentation
@@ -1162,9 +1255,9 @@ module Aws::CostExplorer
1162
1255
  # data as a hash:
1163
1256
  #
1164
1257
  # {
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
1258
+ # 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
1259
  # values: ["Value"],
1167
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1260
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1168
1261
  # }
1169
1262
  #
1170
1263
  # @!attribute [rw] key
@@ -1523,10 +1616,15 @@ module Aws::CostExplorer
1523
1616
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1524
1617
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
1525
1618
  #
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`.
1619
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
1620
+ # NOT is not supported. OR is not supported between different
1621
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
1622
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
1623
+ # `RIGHTSIZING_TYPE`.
1624
+ #
1625
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
1626
+ # supported. AND and OR are not supported. Dimensions are limited to
1627
+ # `LINKED_ACCOUNT`.
1530
1628
  #
1531
1629
  # </note>
1532
1630
  #
@@ -1546,19 +1644,19 @@ module Aws::CostExplorer
1546
1644
  # # recursive Expression
1547
1645
  # },
1548
1646
  # 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
1647
+ # 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
1648
  # values: ["Value"],
1551
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1649
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1552
1650
  # },
1553
1651
  # tags: {
1554
1652
  # key: "TagKey",
1555
1653
  # values: ["Value"],
1556
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1654
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1557
1655
  # },
1558
1656
  # cost_categories: {
1559
1657
  # key: "CostCategoryName",
1560
1658
  # values: ["Value"],
1561
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1659
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1562
1660
  # },
1563
1661
  # },
1564
1662
  # ],
@@ -1574,19 +1672,19 @@ module Aws::CostExplorer
1574
1672
  # # recursive Expression
1575
1673
  # },
1576
1674
  # 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
1675
+ # 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
1676
  # values: ["Value"],
1579
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1677
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1580
1678
  # },
1581
1679
  # tags: {
1582
1680
  # key: "TagKey",
1583
1681
  # values: ["Value"],
1584
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1682
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1585
1683
  # },
1586
1684
  # cost_categories: {
1587
1685
  # key: "CostCategoryName",
1588
1686
  # values: ["Value"],
1589
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1687
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1590
1688
  # },
1591
1689
  # },
1592
1690
  # ],
@@ -1605,35 +1703,35 @@ module Aws::CostExplorer
1605
1703
  # # recursive Expression
1606
1704
  # },
1607
1705
  # 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
1706
+ # 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
1707
  # values: ["Value"],
1610
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1708
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1611
1709
  # },
1612
1710
  # tags: {
1613
1711
  # key: "TagKey",
1614
1712
  # values: ["Value"],
1615
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1713
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1616
1714
  # },
1617
1715
  # cost_categories: {
1618
1716
  # key: "CostCategoryName",
1619
1717
  # values: ["Value"],
1620
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1718
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1621
1719
  # },
1622
1720
  # },
1623
1721
  # 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
1722
+ # 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
1723
  # values: ["Value"],
1626
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1724
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1627
1725
  # },
1628
1726
  # tags: {
1629
1727
  # key: "TagKey",
1630
1728
  # values: ["Value"],
1631
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1729
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1632
1730
  # },
1633
1731
  # cost_categories: {
1634
1732
  # key: "CostCategoryName",
1635
1733
  # values: ["Value"],
1636
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1734
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1637
1735
  # },
1638
1736
  # }
1639
1737
  #
@@ -1922,19 +2020,19 @@ module Aws::CostExplorer
1922
2020
  # # recursive Expression
1923
2021
  # },
1924
2022
  # 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
2023
+ # 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
2024
  # values: ["Value"],
1927
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2025
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1928
2026
  # },
1929
2027
  # tags: {
1930
2028
  # key: "TagKey",
1931
2029
  # values: ["Value"],
1932
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2030
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1933
2031
  # },
1934
2032
  # cost_categories: {
1935
2033
  # key: "CostCategoryName",
1936
2034
  # values: ["Value"],
1937
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2035
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1938
2036
  # },
1939
2037
  # },
1940
2038
  # metrics: ["MetricName"], # required
@@ -2045,12 +2143,19 @@ module Aws::CostExplorer
2045
2143
  # The time period that is covered by the results in the response.
2046
2144
  # @return [Array<Types::ResultByTime>]
2047
2145
  #
2146
+ # @!attribute [rw] dimension_value_attributes
2147
+ # The attributes that apply to a specific dimension value. For
2148
+ # example, if the value is a linked account, the attribute is that
2149
+ # account name.
2150
+ # @return [Array<Types::DimensionValuesWithAttributes>]
2151
+ #
2048
2152
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageResponse AWS API Documentation
2049
2153
  #
2050
2154
  class GetCostAndUsageResponse < Struct.new(
2051
2155
  :next_page_token,
2052
2156
  :group_definitions,
2053
- :results_by_time)
2157
+ :results_by_time,
2158
+ :dimension_value_attributes)
2054
2159
  SENSITIVE = []
2055
2160
  include Aws::Structure
2056
2161
  end
@@ -2079,19 +2184,19 @@ module Aws::CostExplorer
2079
2184
  # # recursive Expression
2080
2185
  # },
2081
2186
  # 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
2187
+ # 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
2188
  # values: ["Value"],
2084
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2189
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2085
2190
  # },
2086
2191
  # tags: {
2087
2192
  # key: "TagKey",
2088
2193
  # values: ["Value"],
2089
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2194
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2090
2195
  # },
2091
2196
  # cost_categories: {
2092
2197
  # key: "CostCategoryName",
2093
2198
  # values: ["Value"],
2094
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2199
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2095
2200
  # },
2096
2201
  # },
2097
2202
  # metrics: ["MetricName"],
@@ -2202,12 +2307,237 @@ module Aws::CostExplorer
2202
2307
  # The time period that is covered by the results in the response.
2203
2308
  # @return [Array<Types::ResultByTime>]
2204
2309
  #
2310
+ # @!attribute [rw] dimension_value_attributes
2311
+ # The attributes that apply to a specific dimension value. For
2312
+ # example, if the value is a linked account, the attribute is that
2313
+ # account name.
2314
+ # @return [Array<Types::DimensionValuesWithAttributes>]
2315
+ #
2205
2316
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResourcesResponse AWS API Documentation
2206
2317
  #
2207
2318
  class GetCostAndUsageWithResourcesResponse < Struct.new(
2208
2319
  :next_page_token,
2209
2320
  :group_definitions,
2210
- :results_by_time)
2321
+ :results_by_time,
2322
+ :dimension_value_attributes)
2323
+ SENSITIVE = []
2324
+ include Aws::Structure
2325
+ end
2326
+
2327
+ # @note When making an API call, you may pass GetCostCategoriesRequest
2328
+ # data as a hash:
2329
+ #
2330
+ # {
2331
+ # search_string: "SearchString",
2332
+ # time_period: { # required
2333
+ # start: "YearMonthDay", # required
2334
+ # end: "YearMonthDay", # required
2335
+ # },
2336
+ # cost_category_name: "CostCategoryName",
2337
+ # filter: {
2338
+ # or: [
2339
+ # {
2340
+ # # recursive Expression
2341
+ # },
2342
+ # ],
2343
+ # and: [
2344
+ # {
2345
+ # # recursive Expression
2346
+ # },
2347
+ # ],
2348
+ # not: {
2349
+ # # recursive Expression
2350
+ # },
2351
+ # dimensions: {
2352
+ # 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
2353
+ # values: ["Value"],
2354
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2355
+ # },
2356
+ # tags: {
2357
+ # key: "TagKey",
2358
+ # values: ["Value"],
2359
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2360
+ # },
2361
+ # cost_categories: {
2362
+ # key: "CostCategoryName",
2363
+ # values: ["Value"],
2364
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2365
+ # },
2366
+ # },
2367
+ # sort_by: [
2368
+ # {
2369
+ # key: "SortDefinitionKey", # required
2370
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
2371
+ # },
2372
+ # ],
2373
+ # max_results: 1,
2374
+ # next_page_token: "NextPageToken",
2375
+ # }
2376
+ #
2377
+ # @!attribute [rw] search_string
2378
+ # The value that you want to search the filter values for.
2379
+ #
2380
+ # If you do not specify a `CostCategoryName`, `SearchString` will be
2381
+ # used to filter Cost Category names that match the `SearchString`
2382
+ # pattern. If you do specifiy a `CostCategoryName`, `SearchString`
2383
+ # will be used to filter Cost Category values that match the
2384
+ # `SearchString` pattern.
2385
+ # @return [String]
2386
+ #
2387
+ # @!attribute [rw] time_period
2388
+ # The time period of the request.
2389
+ # @return [Types::DateInterval]
2390
+ #
2391
+ # @!attribute [rw] cost_category_name
2392
+ # The unique name of the Cost Category.
2393
+ # @return [String]
2394
+ #
2395
+ # @!attribute [rw] filter
2396
+ # Use `Expression` to filter by cost or by usage. There are two
2397
+ # patterns:
2398
+ #
2399
+ # * Simple dimension values - You can set the dimension name and
2400
+ # values for the filters that you plan to use. For example, you can
2401
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
2402
+ # `GetRightsizingRecommendation`, the Region is a full name (for
2403
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
2404
+ # looks like:
2405
+ #
2406
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2407
+ # “us-west-1” ] \} \}`
2408
+ #
2409
+ # The list of dimension values are OR'd together to retrieve cost
2410
+ # or usage data. You can create `Expression` and `DimensionValues`
2411
+ # objects using either `with*` methods or `set*` methods in multiple
2412
+ # lines.
2413
+ #
2414
+ # * Compound dimension values with logical operations - You can use
2415
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
2416
+ # to create a list of one or more `Expression` objects. This allows
2417
+ # you to filter on more advanced options. For example, you can
2418
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
2419
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
2420
+ # `Expression` for that looks like this:
2421
+ #
2422
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2423
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2424
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2425
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
2426
+ # \}\}\} ] \} `
2427
+ #
2428
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
2429
+ # returns an error if more than one is specified. The following
2430
+ # example shows an `Expression` object that creates an error.
2431
+ #
2432
+ # </note>
2433
+ #
2434
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2435
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2436
+ #
2437
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
2438
+ # and NOT is not supported. OR is not supported between different
2439
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
2440
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
2441
+ # `RIGHTSIZING_TYPE`.
2442
+ #
2443
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
2444
+ # supported. AND and OR are not supported. Dimensions are limited to
2445
+ # `LINKED_ACCOUNT`.
2446
+ #
2447
+ # </note>
2448
+ # @return [Types::Expression]
2449
+ #
2450
+ # @!attribute [rw] sort_by
2451
+ # The value by which you want to sort the data.
2452
+ #
2453
+ # The key represents cost and usage metrics. The following values are
2454
+ # supported:
2455
+ #
2456
+ # * `BlendedCost`
2457
+ #
2458
+ # * `UnblendedCost`
2459
+ #
2460
+ # * `AmortizedCost`
2461
+ #
2462
+ # * `NetAmortizedCost`
2463
+ #
2464
+ # * `NetUnblendedCost`
2465
+ #
2466
+ # * `UsageQuantity`
2467
+ #
2468
+ # * `NormalizedUsageAmount`
2469
+ #
2470
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2471
+ #
2472
+ # When using `SortBy`, `NextPageToken` and `SearchString` are not
2473
+ # supported.
2474
+ # @return [Array<Types::SortDefinition>]
2475
+ #
2476
+ # @!attribute [rw] max_results
2477
+ # This field is only used when `SortBy` is provided in the request.
2478
+ #
2479
+ # The maximum number of objects that to be returned for this request.
2480
+ # If `MaxResults` is not specified with `SortBy`, the request will
2481
+ # return 1000 results as the default value for this parameter.
2482
+ #
2483
+ # For `GetCostCategories`, MaxResults has an upper limit of 1000.
2484
+ # @return [Integer]
2485
+ #
2486
+ # @!attribute [rw] next_page_token
2487
+ # If the number of objects that are still available for retrieval
2488
+ # exceeds the limit, AWS returns a NextPageToken value in the
2489
+ # response. To retrieve the next batch of objects, provide the
2490
+ # NextPageToken from the prior call in your next request.
2491
+ # @return [String]
2492
+ #
2493
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategoriesRequest AWS API Documentation
2494
+ #
2495
+ class GetCostCategoriesRequest < Struct.new(
2496
+ :search_string,
2497
+ :time_period,
2498
+ :cost_category_name,
2499
+ :filter,
2500
+ :sort_by,
2501
+ :max_results,
2502
+ :next_page_token)
2503
+ SENSITIVE = []
2504
+ include Aws::Structure
2505
+ end
2506
+
2507
+ # @!attribute [rw] next_page_token
2508
+ # If the number of objects that are still available for retrieval
2509
+ # exceeds the limit, AWS returns a NextPageToken value in the
2510
+ # response. To retrieve the next batch of objects, provide the marker
2511
+ # from the prior call in your next request.
2512
+ # @return [String]
2513
+ #
2514
+ # @!attribute [rw] cost_category_names
2515
+ # The names of the Cost Categories.
2516
+ # @return [Array<String>]
2517
+ #
2518
+ # @!attribute [rw] cost_category_values
2519
+ # The Cost Category values.
2520
+ #
2521
+ # `CostCategoryValues` are not returned if `CostCategoryName` is not
2522
+ # specified in the request.
2523
+ # @return [Array<String>]
2524
+ #
2525
+ # @!attribute [rw] return_size
2526
+ # The number of objects returned.
2527
+ # @return [Integer]
2528
+ #
2529
+ # @!attribute [rw] total_size
2530
+ # The total number of objects.
2531
+ # @return [Integer]
2532
+ #
2533
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategoriesResponse AWS API Documentation
2534
+ #
2535
+ class GetCostCategoriesResponse < Struct.new(
2536
+ :next_page_token,
2537
+ :cost_category_names,
2538
+ :cost_category_values,
2539
+ :return_size,
2540
+ :total_size)
2211
2541
  SENSITIVE = []
2212
2542
  include Aws::Structure
2213
2543
  end
@@ -2237,19 +2567,19 @@ module Aws::CostExplorer
2237
2567
  # # recursive Expression
2238
2568
  # },
2239
2569
  # 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
2570
+ # 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
2571
  # values: ["Value"],
2242
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2572
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2243
2573
  # },
2244
2574
  # tags: {
2245
2575
  # key: "TagKey",
2246
2576
  # values: ["Value"],
2247
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2577
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2248
2578
  # },
2249
2579
  # cost_categories: {
2250
2580
  # key: "CostCategoryName",
2251
2581
  # values: ["Value"],
2252
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2582
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2253
2583
  # },
2254
2584
  # },
2255
2585
  # prediction_interval_level: 1,
@@ -2292,8 +2622,55 @@ module Aws::CostExplorer
2292
2622
  # @return [String]
2293
2623
  #
2294
2624
  # @!attribute [rw] filter
2295
- # The filters that you want to use to filter your forecast. Cost
2296
- # Explorer API supports all of the Cost Explorer filters.
2625
+ # The filters that you want to use to filter your forecast. The
2626
+ # `GetCostForecast` API supports filtering by the following
2627
+ # dimensions:
2628
+ #
2629
+ # * `AZ`
2630
+ #
2631
+ # * `INSTANCE_TYPE`
2632
+ #
2633
+ # * `LINKED_ACCOUNT`
2634
+ #
2635
+ # * `LINKED_ACCOUNT_NAME`
2636
+ #
2637
+ # * `OPERATION`
2638
+ #
2639
+ # * `PURCHASE_TYPE`
2640
+ #
2641
+ # * `REGION`
2642
+ #
2643
+ # * `SERVICE`
2644
+ #
2645
+ # * `USAGE_TYPE`
2646
+ #
2647
+ # * `USAGE_TYPE_GROUP`
2648
+ #
2649
+ # * `RECORD_TYPE`
2650
+ #
2651
+ # * `OPERATING_SYSTEM`
2652
+ #
2653
+ # * `TENANCY`
2654
+ #
2655
+ # * `SCOPE`
2656
+ #
2657
+ # * `PLATFORM`
2658
+ #
2659
+ # * `SUBSCRIPTION_ID`
2660
+ #
2661
+ # * `LEGAL_ENTITY_NAME`
2662
+ #
2663
+ # * `DEPLOYMENT_OPTION`
2664
+ #
2665
+ # * `DATABASE_ENGINE`
2666
+ #
2667
+ # * `INSTANCE_TYPE_FAMILY`
2668
+ #
2669
+ # * `BILLING_ENTITY`
2670
+ #
2671
+ # * `RESERVATION_ID`
2672
+ #
2673
+ # * `SAVINGS_PLAN_ARN`
2297
2674
  # @return [Types::Expression]
2298
2675
  #
2299
2676
  # @!attribute [rw] prediction_interval_level
@@ -2346,8 +2723,45 @@ module Aws::CostExplorer
2346
2723
  # start: "YearMonthDay", # required
2347
2724
  # end: "YearMonthDay", # required
2348
2725
  # },
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
2726
+ # 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
2727
  # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS, SAVINGS_PLANS
2728
+ # filter: {
2729
+ # or: [
2730
+ # {
2731
+ # # recursive Expression
2732
+ # },
2733
+ # ],
2734
+ # and: [
2735
+ # {
2736
+ # # recursive Expression
2737
+ # },
2738
+ # ],
2739
+ # not: {
2740
+ # # recursive Expression
2741
+ # },
2742
+ # dimensions: {
2743
+ # 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
2744
+ # values: ["Value"],
2745
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2746
+ # },
2747
+ # tags: {
2748
+ # key: "TagKey",
2749
+ # values: ["Value"],
2750
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2751
+ # },
2752
+ # cost_categories: {
2753
+ # key: "CostCategoryName",
2754
+ # values: ["Value"],
2755
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2756
+ # },
2757
+ # },
2758
+ # sort_by: [
2759
+ # {
2760
+ # key: "SortDefinitionKey", # required
2761
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
2762
+ # },
2763
+ # ],
2764
+ # max_results: 1,
2351
2765
  # next_page_token: "NextPageToken",
2352
2766
  # }
2353
2767
  #
@@ -2480,6 +2894,97 @@ module Aws::CostExplorer
2480
2894
  # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plan
2481
2895
  # @return [String]
2482
2896
  #
2897
+ # @!attribute [rw] filter
2898
+ # Use `Expression` to filter by cost or by usage. There are two
2899
+ # patterns:
2900
+ #
2901
+ # * Simple dimension values - You can set the dimension name and
2902
+ # values for the filters that you plan to use. For example, you can
2903
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
2904
+ # `GetRightsizingRecommendation`, the Region is a full name (for
2905
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
2906
+ # looks like:
2907
+ #
2908
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2909
+ # “us-west-1” ] \} \}`
2910
+ #
2911
+ # The list of dimension values are OR'd together to retrieve cost
2912
+ # or usage data. You can create `Expression` and `DimensionValues`
2913
+ # objects using either `with*` methods or `set*` methods in multiple
2914
+ # lines.
2915
+ #
2916
+ # * Compound dimension values with logical operations - You can use
2917
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
2918
+ # to create a list of one or more `Expression` objects. This allows
2919
+ # you to filter on more advanced options. For example, you can
2920
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
2921
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
2922
+ # `Expression` for that looks like this:
2923
+ #
2924
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2925
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2926
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2927
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
2928
+ # \}\}\} ] \} `
2929
+ #
2930
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
2931
+ # returns an error if more than one is specified. The following
2932
+ # example shows an `Expression` object that creates an error.
2933
+ #
2934
+ # </note>
2935
+ #
2936
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2937
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2938
+ #
2939
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
2940
+ # and NOT is not supported. OR is not supported between different
2941
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
2942
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
2943
+ # `RIGHTSIZING_TYPE`.
2944
+ #
2945
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
2946
+ # supported. AND and OR are not supported. Dimensions are limited to
2947
+ # `LINKED_ACCOUNT`.
2948
+ #
2949
+ # </note>
2950
+ # @return [Types::Expression]
2951
+ #
2952
+ # @!attribute [rw] sort_by
2953
+ # The value by which you want to sort the data.
2954
+ #
2955
+ # The key represents cost and usage metrics. The following values are
2956
+ # supported:
2957
+ #
2958
+ # * `BlendedCost`
2959
+ #
2960
+ # * `UnblendedCost`
2961
+ #
2962
+ # * `AmortizedCost`
2963
+ #
2964
+ # * `NetAmortizedCost`
2965
+ #
2966
+ # * `NetUnblendedCost`
2967
+ #
2968
+ # * `UsageQuantity`
2969
+ #
2970
+ # * `NormalizedUsageAmount`
2971
+ #
2972
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2973
+ #
2974
+ # When you specify a `SortBy` paramater, the context must be
2975
+ # `COST_AND_USAGE`. Further, when using `SortBy`, `NextPageToken` and
2976
+ # `SearchString` are not supported.
2977
+ # @return [Array<Types::SortDefinition>]
2978
+ #
2979
+ # @!attribute [rw] max_results
2980
+ # This field is only used when SortBy is provided in the request. The
2981
+ # maximum number of objects that to be returned for this request. If
2982
+ # MaxResults is not specified with SortBy, the request will return
2983
+ # 1000 results as the default value for this parameter.
2984
+ #
2985
+ # For `GetDimensionValues`, MaxResults has an upper limit of 1000.
2986
+ # @return [Integer]
2987
+ #
2483
2988
  # @!attribute [rw] next_page_token
2484
2989
  # The token to retrieve the next set of results. AWS provides the
2485
2990
  # token when the response from a previous call has more results than
@@ -2493,6 +2998,9 @@ module Aws::CostExplorer
2493
2998
  :time_period,
2494
2999
  :dimension,
2495
3000
  :context,
3001
+ :filter,
3002
+ :sort_by,
3003
+ :max_results,
2496
3004
  :next_page_token)
2497
3005
  SENSITIVE = []
2498
3006
  include Aws::Structure
@@ -2661,23 +3169,28 @@ module Aws::CostExplorer
2661
3169
  # # recursive Expression
2662
3170
  # },
2663
3171
  # 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
3172
+ # 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
3173
  # values: ["Value"],
2666
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3174
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2667
3175
  # },
2668
3176
  # tags: {
2669
3177
  # key: "TagKey",
2670
3178
  # values: ["Value"],
2671
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3179
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2672
3180
  # },
2673
3181
  # cost_categories: {
2674
3182
  # key: "CostCategoryName",
2675
3183
  # values: ["Value"],
2676
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3184
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2677
3185
  # },
2678
3186
  # },
2679
3187
  # metrics: ["MetricName"],
2680
3188
  # next_page_token: "NextPageToken",
3189
+ # sort_by: {
3190
+ # key: "SortDefinitionKey", # required
3191
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3192
+ # },
3193
+ # max_results: 1,
2681
3194
  # }
2682
3195
  #
2683
3196
  # @!attribute [rw] time_period
@@ -2782,6 +3295,41 @@ module Aws::CostExplorer
2782
3295
  # the maximum page size.
2783
3296
  # @return [String]
2784
3297
  #
3298
+ # @!attribute [rw] sort_by
3299
+ # The value by which you want to sort the data.
3300
+ #
3301
+ # The following values are supported for `Key`\:
3302
+ #
3303
+ # * `OnDemandCost`
3304
+ #
3305
+ # * `CoverageHoursPercentage`
3306
+ #
3307
+ # * `OnDemandHours`
3308
+ #
3309
+ # * `ReservedHours`
3310
+ #
3311
+ # * `TotalRunningHours`
3312
+ #
3313
+ # * `CoverageNormalizedUnitsPercentage`
3314
+ #
3315
+ # * `OnDemandNormalizedUnits`
3316
+ #
3317
+ # * `ReservedNormalizedUnits`
3318
+ #
3319
+ # * `TotalRunningNormalizedUnits`
3320
+ #
3321
+ # * `Time`
3322
+ #
3323
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3324
+ # @return [Types::SortDefinition]
3325
+ #
3326
+ # @!attribute [rw] max_results
3327
+ # The maximum number of objects that you returned for this request. If
3328
+ # more objects are available, in the response, AWS provides a
3329
+ # NextPageToken value that you can use in a subsequent call to get the
3330
+ # next batch of objects.
3331
+ # @return [Integer]
3332
+ #
2785
3333
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverageRequest AWS API Documentation
2786
3334
  #
2787
3335
  class GetReservationCoverageRequest < Struct.new(
@@ -2790,7 +3338,9 @@ module Aws::CostExplorer
2790
3338
  :granularity,
2791
3339
  :filter,
2792
3340
  :metrics,
2793
- :next_page_token)
3341
+ :next_page_token,
3342
+ :sort_by,
3343
+ :max_results)
2794
3344
  SENSITIVE = []
2795
3345
  include Aws::Structure
2796
3346
  end
@@ -2822,29 +3372,114 @@ module Aws::CostExplorer
2822
3372
  # @note When making an API call, you may pass GetReservationPurchaseRecommendationRequest
2823
3373
  # data as a hash:
2824
3374
  #
2825
- # {
2826
- # account_id: "GenericString",
2827
- # service: "GenericString", # required
2828
- # account_scope: "PAYER", # accepts PAYER, LINKED
2829
- # lookback_period_in_days: "SEVEN_DAYS", # accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
2830
- # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
2831
- # payment_option: "NO_UPFRONT", # accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT, LIGHT_UTILIZATION, MEDIUM_UTILIZATION, HEAVY_UTILIZATION
2832
- # service_specification: {
2833
- # ec2_specification: {
2834
- # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
2835
- # },
2836
- # },
2837
- # page_size: 1,
2838
- # next_page_token: "NextPageToken",
2839
- # }
3375
+ # {
3376
+ # account_id: "GenericString",
3377
+ # service: "GenericString", # required
3378
+ # filter: {
3379
+ # or: [
3380
+ # {
3381
+ # # recursive Expression
3382
+ # },
3383
+ # ],
3384
+ # and: [
3385
+ # {
3386
+ # # recursive Expression
3387
+ # },
3388
+ # ],
3389
+ # not: {
3390
+ # # recursive Expression
3391
+ # },
3392
+ # dimensions: {
3393
+ # 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
3394
+ # values: ["Value"],
3395
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3396
+ # },
3397
+ # tags: {
3398
+ # key: "TagKey",
3399
+ # values: ["Value"],
3400
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3401
+ # },
3402
+ # cost_categories: {
3403
+ # key: "CostCategoryName",
3404
+ # values: ["Value"],
3405
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3406
+ # },
3407
+ # },
3408
+ # account_scope: "PAYER", # accepts PAYER, LINKED
3409
+ # lookback_period_in_days: "SEVEN_DAYS", # accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
3410
+ # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
3411
+ # payment_option: "NO_UPFRONT", # accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT, LIGHT_UTILIZATION, MEDIUM_UTILIZATION, HEAVY_UTILIZATION
3412
+ # service_specification: {
3413
+ # ec2_specification: {
3414
+ # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
3415
+ # },
3416
+ # },
3417
+ # page_size: 1,
3418
+ # next_page_token: "NextPageToken",
3419
+ # }
3420
+ #
3421
+ # @!attribute [rw] account_id
3422
+ # The account ID that is associated with the recommendation.
3423
+ # @return [String]
3424
+ #
3425
+ # @!attribute [rw] service
3426
+ # The specific service that you want recommendations for.
3427
+ # @return [String]
3428
+ #
3429
+ # @!attribute [rw] filter
3430
+ # Use `Expression` to filter by cost or by usage. There are two
3431
+ # patterns:
3432
+ #
3433
+ # * Simple dimension values - You can set the dimension name and
3434
+ # values for the filters that you plan to use. For example, you can
3435
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
3436
+ # `GetRightsizingRecommendation`, the Region is a full name (for
3437
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
3438
+ # looks like:
3439
+ #
3440
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3441
+ # “us-west-1” ] \} \}`
3442
+ #
3443
+ # The list of dimension values are OR'd together to retrieve cost
3444
+ # or usage data. You can create `Expression` and `DimensionValues`
3445
+ # objects using either `with*` methods or `set*` methods in multiple
3446
+ # lines.
3447
+ #
3448
+ # * Compound dimension values with logical operations - You can use
3449
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
3450
+ # to create a list of one or more `Expression` objects. This allows
3451
+ # you to filter on more advanced options. For example, you can
3452
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
3453
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
3454
+ # `Expression` for that looks like this:
3455
+ #
3456
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
3457
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
3458
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
3459
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
3460
+ # \}\}\} ] \} `
3461
+ #
3462
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
3463
+ # returns an error if more than one is specified. The following
3464
+ # example shows an `Expression` object that creates an error.
2840
3465
  #
2841
- # @!attribute [rw] account_id
2842
- # The account ID that is associated with the recommendation.
2843
- # @return [String]
3466
+ # </note>
2844
3467
  #
2845
- # @!attribute [rw] service
2846
- # The specific service that you want recommendations for.
2847
- # @return [String]
3468
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3469
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
3470
+ #
3471
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3472
+ # and NOT is not supported. OR is not supported between different
3473
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
3474
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
3475
+ # `RIGHTSIZING_TYPE`.
3476
+ #
3477
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
3478
+ # supported. AND and OR are not supported. Dimensions are limited to
3479
+ # `LINKED_ACCOUNT`.
3480
+ #
3481
+ # </note>
3482
+ # @return [Types::Expression]
2848
3483
  #
2849
3484
  # @!attribute [rw] account_scope
2850
3485
  # The account scope that you want your recommendations for. Amazon Web
@@ -2888,6 +3523,7 @@ module Aws::CostExplorer
2888
3523
  class GetReservationPurchaseRecommendationRequest < Struct.new(
2889
3524
  :account_id,
2890
3525
  :service,
3526
+ :filter,
2891
3527
  :account_scope,
2892
3528
  :lookback_period_in_days,
2893
3529
  :term_in_years,
@@ -2952,22 +3588,27 @@ module Aws::CostExplorer
2952
3588
  # # recursive Expression
2953
3589
  # },
2954
3590
  # 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
3591
+ # 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
3592
  # values: ["Value"],
2957
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3593
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2958
3594
  # },
2959
3595
  # tags: {
2960
3596
  # key: "TagKey",
2961
3597
  # values: ["Value"],
2962
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3598
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2963
3599
  # },
2964
3600
  # cost_categories: {
2965
3601
  # key: "CostCategoryName",
2966
3602
  # values: ["Value"],
2967
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3603
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2968
3604
  # },
2969
3605
  # },
3606
+ # sort_by: {
3607
+ # key: "SortDefinitionKey", # required
3608
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3609
+ # },
2970
3610
  # next_page_token: "NextPageToken",
3611
+ # max_results: 1,
2971
3612
  # }
2972
3613
  #
2973
3614
  # @!attribute [rw] time_period
@@ -3028,12 +3669,61 @@ module Aws::CostExplorer
3028
3669
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3029
3670
  # @return [Types::Expression]
3030
3671
  #
3672
+ # @!attribute [rw] sort_by
3673
+ # The value by which you want to sort the data.
3674
+ #
3675
+ # The following values are supported for `Key`\:
3676
+ #
3677
+ # * `UtilizationPercentage`
3678
+ #
3679
+ # * `UtilizationPercentageInUnits`
3680
+ #
3681
+ # * `PurchasedHours`
3682
+ #
3683
+ # * `PurchasedUnits`
3684
+ #
3685
+ # * `TotalActualHours`
3686
+ #
3687
+ # * `TotalActualUnits`
3688
+ #
3689
+ # * `UnusedHours`
3690
+ #
3691
+ # * `UnusedUnits`
3692
+ #
3693
+ # * `OnDemandCostOfRIHoursUsed`
3694
+ #
3695
+ # * `NetRISavings`
3696
+ #
3697
+ # * `TotalPotentialRISavings`
3698
+ #
3699
+ # * `AmortizedUpfrontFee`
3700
+ #
3701
+ # * `AmortizedRecurringFee`
3702
+ #
3703
+ # * `TotalAmortizedFee`
3704
+ #
3705
+ # * `RICostForUnusedHours`
3706
+ #
3707
+ # * `RealizedSavings`
3708
+ #
3709
+ # * `UnrealizedSavings`
3710
+ #
3711
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3712
+ # @return [Types::SortDefinition]
3713
+ #
3031
3714
  # @!attribute [rw] next_page_token
3032
3715
  # The token to retrieve the next set of results. AWS provides the
3033
3716
  # token when the response from a previous call has more results than
3034
3717
  # the maximum page size.
3035
3718
  # @return [String]
3036
3719
  #
3720
+ # @!attribute [rw] max_results
3721
+ # The maximum number of objects that you returned for this request. If
3722
+ # more objects are available, in the response, AWS provides a
3723
+ # NextPageToken value that you can use in a subsequent call to get the
3724
+ # next batch of objects.
3725
+ # @return [Integer]
3726
+ #
3037
3727
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilizationRequest AWS API Documentation
3038
3728
  #
3039
3729
  class GetReservationUtilizationRequest < Struct.new(
@@ -3041,7 +3731,9 @@ module Aws::CostExplorer
3041
3731
  :group_by,
3042
3732
  :granularity,
3043
3733
  :filter,
3044
- :next_page_token)
3734
+ :sort_by,
3735
+ :next_page_token,
3736
+ :max_results)
3045
3737
  SENSITIVE = []
3046
3738
  include Aws::Structure
3047
3739
  end
@@ -3089,19 +3781,19 @@ module Aws::CostExplorer
3089
3781
  # # recursive Expression
3090
3782
  # },
3091
3783
  # 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
3784
+ # 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
3785
  # values: ["Value"],
3094
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3786
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3095
3787
  # },
3096
3788
  # tags: {
3097
3789
  # key: "TagKey",
3098
3790
  # values: ["Value"],
3099
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3791
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3100
3792
  # },
3101
3793
  # cost_categories: {
3102
3794
  # key: "CostCategoryName",
3103
3795
  # values: ["Value"],
3104
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3796
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3105
3797
  # },
3106
3798
  # },
3107
3799
  # configuration: {
@@ -3155,12 +3847,16 @@ module Aws::CostExplorer
3155
3847
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3156
3848
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
3157
3849
  #
3158
- # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and
3159
- # NOT is not supported. OR is not supported between different
3850
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3851
+ # and NOT is not supported. OR is not supported between different
3160
3852
  # dimensions, or dimensions and tags. NOT operators aren't supported.
3161
3853
  # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
3162
3854
  # `RIGHTSIZING_TYPE`.
3163
3855
  #
3856
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
3857
+ # supported. AND and OR are not supported. Dimensions are limited to
3858
+ # `LINKED_ACCOUNT`.
3859
+ #
3164
3860
  # </note>
3165
3861
  # @return [Types::Expression]
3166
3862
  #
@@ -3267,24 +3963,28 @@ module Aws::CostExplorer
3267
3963
  # # recursive Expression
3268
3964
  # },
3269
3965
  # 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
3966
+ # 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
3967
  # values: ["Value"],
3272
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3968
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3273
3969
  # },
3274
3970
  # tags: {
3275
3971
  # key: "TagKey",
3276
3972
  # values: ["Value"],
3277
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3973
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3278
3974
  # },
3279
3975
  # cost_categories: {
3280
3976
  # key: "CostCategoryName",
3281
3977
  # values: ["Value"],
3282
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3978
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3283
3979
  # },
3284
3980
  # },
3285
3981
  # metrics: ["MetricName"],
3286
3982
  # next_token: "NextPageToken",
3287
3983
  # max_results: 1,
3984
+ # sort_by: {
3985
+ # key: "SortDefinitionKey", # required
3986
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3987
+ # },
3288
3988
  # }
3289
3989
  #
3290
3990
  # @!attribute [rw] time_period
@@ -3347,6 +4047,28 @@ module Aws::CostExplorer
3347
4047
  # `20`, with a minimum value of `1`.
3348
4048
  # @return [Integer]
3349
4049
  #
4050
+ # @!attribute [rw] sort_by
4051
+ # The value by which you want to sort the data.
4052
+ #
4053
+ # The following values are supported for `Key`\:
4054
+ #
4055
+ # * `SpendCoveredBySavingsPlan`
4056
+ #
4057
+ # * `OnDemandCost`
4058
+ #
4059
+ # * `CoveragePercentage`
4060
+ #
4061
+ # * `TotalCost`
4062
+ #
4063
+ # * `InstanceFamily`
4064
+ #
4065
+ # * `Region`
4066
+ #
4067
+ # * `Service`
4068
+ #
4069
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4070
+ # @return [Types::SortDefinition]
4071
+ #
3350
4072
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverageRequest AWS API Documentation
3351
4073
  #
3352
4074
  class GetSavingsPlansCoverageRequest < Struct.new(
@@ -3356,7 +4078,8 @@ module Aws::CostExplorer
3356
4078
  :filter,
3357
4079
  :metrics,
3358
4080
  :next_token,
3359
- :max_results)
4081
+ :max_results,
4082
+ :sort_by)
3360
4083
  SENSITIVE = []
3361
4084
  include Aws::Structure
3362
4085
  end
@@ -3406,19 +4129,19 @@ module Aws::CostExplorer
3406
4129
  # # recursive Expression
3407
4130
  # },
3408
4131
  # 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
4132
+ # 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
4133
  # values: ["Value"],
3411
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4134
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3412
4135
  # },
3413
4136
  # tags: {
3414
4137
  # key: "TagKey",
3415
4138
  # values: ["Value"],
3416
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4139
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3417
4140
  # },
3418
4141
  # cost_categories: {
3419
4142
  # key: "CostCategoryName",
3420
4143
  # values: ["Value"],
3421
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4144
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3422
4145
  # },
3423
4146
  # },
3424
4147
  # }
@@ -3537,23 +4260,28 @@ module Aws::CostExplorer
3537
4260
  # # recursive Expression
3538
4261
  # },
3539
4262
  # 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
4263
+ # 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
4264
  # values: ["Value"],
3542
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4265
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3543
4266
  # },
3544
4267
  # tags: {
3545
4268
  # key: "TagKey",
3546
4269
  # values: ["Value"],
3547
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4270
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3548
4271
  # },
3549
4272
  # cost_categories: {
3550
4273
  # key: "CostCategoryName",
3551
4274
  # values: ["Value"],
3552
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4275
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3553
4276
  # },
3554
4277
  # },
4278
+ # data_type: ["ATTRIBUTES"], # accepts ATTRIBUTES, UTILIZATION, AMORTIZED_COMMITMENT, SAVINGS
3555
4279
  # next_token: "NextPageToken",
3556
4280
  # max_results: 1,
4281
+ # sort_by: {
4282
+ # key: "SortDefinitionKey", # required
4283
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4284
+ # },
3557
4285
  # }
3558
4286
  #
3559
4287
  # @!attribute [rw] time_period
@@ -3586,6 +4314,10 @@ module Aws::CostExplorer
3586
4314
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3587
4315
  # @return [Types::Expression]
3588
4316
  #
4317
+ # @!attribute [rw] data_type
4318
+ # The data type.
4319
+ # @return [Array<String>]
4320
+ #
3589
4321
  # @!attribute [rw] next_token
3590
4322
  # The token to retrieve the next set of results. Amazon Web Services
3591
4323
  # provides the token when the response from a previous call has more
@@ -3597,13 +4329,37 @@ module Aws::CostExplorer
3597
4329
  # `20`, with a minimum value of `1`.
3598
4330
  # @return [Integer]
3599
4331
  #
4332
+ # @!attribute [rw] sort_by
4333
+ # The value by which you want to sort the data.
4334
+ #
4335
+ # The following values are supported for `Key`\:
4336
+ #
4337
+ # * `UtilizationPercentage`
4338
+ #
4339
+ # * `TotalCommitment`
4340
+ #
4341
+ # * `UsedCommitment`
4342
+ #
4343
+ # * `UnusedCommitment`
4344
+ #
4345
+ # * `NetSavings`
4346
+ #
4347
+ # * `AmortizedRecurringCommitment`
4348
+ #
4349
+ # * `AmortizedUpfrontCommitment`
4350
+ #
4351
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4352
+ # @return [Types::SortDefinition]
4353
+ #
3600
4354
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetailsRequest AWS API Documentation
3601
4355
  #
3602
4356
  class GetSavingsPlansUtilizationDetailsRequest < Struct.new(
3603
4357
  :time_period,
3604
4358
  :filter,
4359
+ :data_type,
3605
4360
  :next_token,
3606
- :max_results)
4361
+ :max_results,
4362
+ :sort_by)
3607
4363
  SENSITIVE = []
3608
4364
  include Aws::Structure
3609
4365
  end
@@ -3618,7 +4374,7 @@ module Aws::CostExplorer
3618
4374
  # @return [Types::SavingsPlansUtilizationAggregates]
3619
4375
  #
3620
4376
  # @!attribute [rw] time_period
3621
- # The time period that you want the usage and costs for.
4377
+ # The time period of the request.
3622
4378
  # @return [Types::DateInterval]
3623
4379
  #
3624
4380
  # @!attribute [rw] next_token
@@ -3662,21 +4418,25 @@ module Aws::CostExplorer
3662
4418
  # # recursive Expression
3663
4419
  # },
3664
4420
  # 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
4421
+ # 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
4422
  # values: ["Value"],
3667
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4423
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3668
4424
  # },
3669
4425
  # tags: {
3670
4426
  # key: "TagKey",
3671
4427
  # values: ["Value"],
3672
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4428
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3673
4429
  # },
3674
4430
  # cost_categories: {
3675
4431
  # key: "CostCategoryName",
3676
4432
  # values: ["Value"],
3677
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4433
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3678
4434
  # },
3679
4435
  # },
4436
+ # sort_by: {
4437
+ # key: "SortDefinitionKey", # required
4438
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4439
+ # },
3680
4440
  # }
3681
4441
  #
3682
4442
  # @!attribute [rw] time_period
@@ -3719,12 +4479,31 @@ module Aws::CostExplorer
3719
4479
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3720
4480
  # @return [Types::Expression]
3721
4481
  #
4482
+ # @!attribute [rw] sort_by
4483
+ # The value by which you want to sort the data.
4484
+ #
4485
+ # The following values are supported for `Key`\:
4486
+ #
4487
+ # * `UtilizationPercentage`
4488
+ #
4489
+ # * `TotalCommitment`
4490
+ #
4491
+ # * `UsedCommitment`
4492
+ #
4493
+ # * `UnusedCommitment`
4494
+ #
4495
+ # * `NetSavings`
4496
+ #
4497
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4498
+ # @return [Types::SortDefinition]
4499
+ #
3722
4500
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationRequest AWS API Documentation
3723
4501
  #
3724
4502
  class GetSavingsPlansUtilizationRequest < Struct.new(
3725
4503
  :time_period,
3726
4504
  :granularity,
3727
- :filter)
4505
+ :filter,
4506
+ :sort_by)
3728
4507
  SENSITIVE = []
3729
4508
  include Aws::Structure
3730
4509
  end
@@ -3758,6 +4537,43 @@ module Aws::CostExplorer
3758
4537
  # end: "YearMonthDay", # required
3759
4538
  # },
3760
4539
  # tag_key: "TagKey",
4540
+ # filter: {
4541
+ # or: [
4542
+ # {
4543
+ # # recursive Expression
4544
+ # },
4545
+ # ],
4546
+ # and: [
4547
+ # {
4548
+ # # recursive Expression
4549
+ # },
4550
+ # ],
4551
+ # not: {
4552
+ # # recursive Expression
4553
+ # },
4554
+ # dimensions: {
4555
+ # 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
4556
+ # values: ["Value"],
4557
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4558
+ # },
4559
+ # tags: {
4560
+ # key: "TagKey",
4561
+ # values: ["Value"],
4562
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4563
+ # },
4564
+ # cost_categories: {
4565
+ # key: "CostCategoryName",
4566
+ # values: ["Value"],
4567
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4568
+ # },
4569
+ # },
4570
+ # sort_by: [
4571
+ # {
4572
+ # key: "SortDefinitionKey", # required
4573
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4574
+ # },
4575
+ # ],
4576
+ # max_results: 1,
3761
4577
  # next_page_token: "NextPageToken",
3762
4578
  # }
3763
4579
  #
@@ -3777,6 +4593,96 @@ module Aws::CostExplorer
3777
4593
  # The key of the tag that you want to return values for.
3778
4594
  # @return [String]
3779
4595
  #
4596
+ # @!attribute [rw] filter
4597
+ # Use `Expression` to filter by cost or by usage. There are two
4598
+ # patterns:
4599
+ #
4600
+ # * Simple dimension values - You can set the dimension name and
4601
+ # values for the filters that you plan to use. For example, you can
4602
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
4603
+ # `GetRightsizingRecommendation`, the Region is a full name (for
4604
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
4605
+ # looks like:
4606
+ #
4607
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
4608
+ # “us-west-1” ] \} \}`
4609
+ #
4610
+ # The list of dimension values are OR'd together to retrieve cost
4611
+ # or usage data. You can create `Expression` and `DimensionValues`
4612
+ # objects using either `with*` methods or `set*` methods in multiple
4613
+ # lines.
4614
+ #
4615
+ # * Compound dimension values with logical operations - You can use
4616
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
4617
+ # to create a list of one or more `Expression` objects. This allows
4618
+ # you to filter on more advanced options. For example, you can
4619
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
4620
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
4621
+ # `Expression` for that looks like this:
4622
+ #
4623
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
4624
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
4625
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
4626
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
4627
+ # \}\}\} ] \} `
4628
+ #
4629
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
4630
+ # returns an error if more than one is specified. The following
4631
+ # example shows an `Expression` object that creates an error.
4632
+ #
4633
+ # </note>
4634
+ #
4635
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
4636
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
4637
+ #
4638
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
4639
+ # and NOT is not supported. OR is not supported between different
4640
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
4641
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
4642
+ # `RIGHTSIZING_TYPE`.
4643
+ #
4644
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
4645
+ # supported. AND and OR are not supported. Dimensions are limited to
4646
+ # `LINKED_ACCOUNT`.
4647
+ #
4648
+ # </note>
4649
+ # @return [Types::Expression]
4650
+ #
4651
+ # @!attribute [rw] sort_by
4652
+ # The value by which you want to sort the data.
4653
+ #
4654
+ # The key represents cost and usage metrics. The following values are
4655
+ # supported:
4656
+ #
4657
+ # * `BlendedCost`
4658
+ #
4659
+ # * `UnblendedCost`
4660
+ #
4661
+ # * `AmortizedCost`
4662
+ #
4663
+ # * `NetAmortizedCost`
4664
+ #
4665
+ # * `NetUnblendedCost`
4666
+ #
4667
+ # * `UsageQuantity`
4668
+ #
4669
+ # * `NormalizedUsageAmount`
4670
+ #
4671
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4672
+ #
4673
+ # When using `SortBy`, `NextPageToken` and `SearchString` are not
4674
+ # supported.
4675
+ # @return [Array<Types::SortDefinition>]
4676
+ #
4677
+ # @!attribute [rw] max_results
4678
+ # This field is only used when SortBy is provided in the request. The
4679
+ # maximum number of objects that to be returned for this request. If
4680
+ # MaxResults is not specified with SortBy, the request will return
4681
+ # 1000 results as the default value for this parameter.
4682
+ #
4683
+ # For `GetTags`, MaxResults has an upper limit of 1000.
4684
+ # @return [Integer]
4685
+ #
3780
4686
  # @!attribute [rw] next_page_token
3781
4687
  # The token to retrieve the next set of results. AWS provides the
3782
4688
  # token when the response from a previous call has more results than
@@ -3789,6 +4695,9 @@ module Aws::CostExplorer
3789
4695
  :search_string,
3790
4696
  :time_period,
3791
4697
  :tag_key,
4698
+ :filter,
4699
+ :sort_by,
4700
+ :max_results,
3792
4701
  :next_page_token)
3793
4702
  SENSITIVE = []
3794
4703
  include Aws::Structure
@@ -3848,19 +4757,19 @@ module Aws::CostExplorer
3848
4757
  # # recursive Expression
3849
4758
  # },
3850
4759
  # 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
4760
+ # 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
4761
  # values: ["Value"],
3853
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4762
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3854
4763
  # },
3855
4764
  # tags: {
3856
4765
  # key: "TagKey",
3857
4766
  # values: ["Value"],
3858
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4767
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3859
4768
  # },
3860
4769
  # cost_categories: {
3861
4770
  # key: "CostCategoryName",
3862
4771
  # values: ["Value"],
3863
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4772
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3864
4773
  # },
3865
4774
  # },
3866
4775
  # prediction_interval_level: 1,
@@ -3895,8 +4804,55 @@ module Aws::CostExplorer
3895
4804
  # @return [String]
3896
4805
  #
3897
4806
  # @!attribute [rw] filter
3898
- # The filters that you want to use to filter your forecast. Cost
3899
- # Explorer API supports all of the Cost Explorer filters.
4807
+ # The filters that you want to use to filter your forecast. The
4808
+ # `GetUsageForecast` API supports filtering by the following
4809
+ # dimensions:
4810
+ #
4811
+ # * `AZ`
4812
+ #
4813
+ # * `INSTANCE_TYPE`
4814
+ #
4815
+ # * `LINKED_ACCOUNT`
4816
+ #
4817
+ # * `LINKED_ACCOUNT_NAME`
4818
+ #
4819
+ # * `OPERATION`
4820
+ #
4821
+ # * `PURCHASE_TYPE`
4822
+ #
4823
+ # * `REGION`
4824
+ #
4825
+ # * `SERVICE`
4826
+ #
4827
+ # * `USAGE_TYPE`
4828
+ #
4829
+ # * `USAGE_TYPE_GROUP`
4830
+ #
4831
+ # * `RECORD_TYPE`
4832
+ #
4833
+ # * `OPERATING_SYSTEM`
4834
+ #
4835
+ # * `TENANCY`
4836
+ #
4837
+ # * `SCOPE`
4838
+ #
4839
+ # * `PLATFORM`
4840
+ #
4841
+ # * `SUBSCRIPTION_ID`
4842
+ #
4843
+ # * `LEGAL_ENTITY_NAME`
4844
+ #
4845
+ # * `DEPLOYMENT_OPTION`
4846
+ #
4847
+ # * `DATABASE_ENGINE`
4848
+ #
4849
+ # * `INSTANCE_TYPE_FAMILY`
4850
+ #
4851
+ # * `BILLING_ENTITY`
4852
+ #
4853
+ # * `RESERVATION_ID`
4854
+ #
4855
+ # * `SAVINGS_PLAN_ARN`
3900
4856
  # @return [Types::Expression]
3901
4857
  #
3902
4858
  # @!attribute [rw] prediction_interval_level
@@ -4367,6 +5323,18 @@ module Aws::CostExplorer
4367
5323
  # period.
4368
5324
  # @return [String]
4369
5325
  #
5326
+ # @!attribute [rw] ri_cost_for_unused_hours
5327
+ # The cost of unused hours for your reservation.
5328
+ # @return [String]
5329
+ #
5330
+ # @!attribute [rw] realized_savings
5331
+ # The realized savings due to purchasing and using a reservation.
5332
+ # @return [String]
5333
+ #
5334
+ # @!attribute [rw] unrealized_savings
5335
+ # The unrealized savings due to purchasing and using a reservation.
5336
+ # @return [String]
5337
+ #
4370
5338
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ReservationAggregates AWS API Documentation
4371
5339
  #
4372
5340
  class ReservationAggregates < Struct.new(
@@ -4383,7 +5351,10 @@ module Aws::CostExplorer
4383
5351
  :total_potential_ri_savings,
4384
5352
  :amortized_upfront_fee,
4385
5353
  :amortized_recurring_fee,
4386
- :total_amortized_fee)
5354
+ :total_amortized_fee,
5355
+ :ri_cost_for_unused_hours,
5356
+ :realized_savings,
5357
+ :unrealized_savings)
4387
5358
  SENSITIVE = []
4388
5359
  include Aws::Structure
4389
5360
  end
@@ -4930,7 +5901,7 @@ module Aws::CostExplorer
4930
5901
  # @return [Types::SavingsPlansCoverageData]
4931
5902
  #
4932
5903
  # @!attribute [rw] time_period
4933
- # The time period that you want the usage and costs for.
5904
+ # The time period of the request.
4934
5905
  # @return [Types::DateInterval]
4935
5906
  #
4936
5907
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansCoverage AWS API Documentation
@@ -5345,7 +6316,7 @@ module Aws::CostExplorer
5345
6316
  # The amount of Savings Plans utilization, in hours.
5346
6317
  #
5347
6318
  # @!attribute [rw] time_period
5348
- # The time period that you want the usage and costs for.
6319
+ # The time period of the request.
5349
6320
  # @return [Types::DateInterval]
5350
6321
  #
5351
6322
  # @!attribute [rw] utilization
@@ -5457,6 +6428,33 @@ module Aws::CostExplorer
5457
6428
  include Aws::Structure
5458
6429
  end
5459
6430
 
6431
+ # The details of how to sort the data.
6432
+ #
6433
+ # @note When making an API call, you may pass SortDefinition
6434
+ # data as a hash:
6435
+ #
6436
+ # {
6437
+ # key: "SortDefinitionKey", # required
6438
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
6439
+ # }
6440
+ #
6441
+ # @!attribute [rw] key
6442
+ # The key by which to sort the data.
6443
+ # @return [String]
6444
+ #
6445
+ # @!attribute [rw] sort_order
6446
+ # The order in which to sort the data.
6447
+ # @return [String]
6448
+ #
6449
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SortDefinition AWS API Documentation
6450
+ #
6451
+ class SortDefinition < Struct.new(
6452
+ :key,
6453
+ :sort_order)
6454
+ SENSITIVE = []
6455
+ include Aws::Structure
6456
+ end
6457
+
5460
6458
  # The recipient of `AnomalySubscription` notifications.
5461
6459
  #
5462
6460
  # @note When making an API call, you may pass Subscriber
@@ -5493,13 +6491,20 @@ module Aws::CostExplorer
5493
6491
 
5494
6492
  # The values that are available for a tag.
5495
6493
  #
6494
+ # If `Values` and `Key` are not specified, the `ABSENT` `MatchOption` is
6495
+ # applied to all tags. That is, filtering on resources with no tags.
6496
+ #
6497
+ # If `Values` is provided and `Key` is not specified, the `ABSENT`
6498
+ # `MatchOption` is applied to the tag `Key` only. That is, filtering on
6499
+ # resources without the given tag key.
6500
+ #
5496
6501
  # @note When making an API call, you may pass TagValues
5497
6502
  # data as a hash:
5498
6503
  #
5499
6504
  # {
5500
6505
  # key: "TagKey",
5501
6506
  # values: ["Value"],
5502
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6507
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5503
6508
  # }
5504
6509
  #
5505
6510
  # @!attribute [rw] key
@@ -5775,8 +6780,8 @@ module Aws::CostExplorer
5775
6780
  # rule_version: "CostCategoryExpression.v1", # required, accepts CostCategoryExpression.v1
5776
6781
  # rules: [ # required
5777
6782
  # {
5778
- # value: "CostCategoryValue", # required
5779
- # rule: { # required
6783
+ # value: "CostCategoryValue",
6784
+ # rule: {
5780
6785
  # or: [
5781
6786
  # {
5782
6787
  # # recursive Expression
@@ -5791,23 +6796,29 @@ module Aws::CostExplorer
5791
6796
  # # recursive Expression
5792
6797
  # },
5793
6798
  # dimensions: {
5794
- # 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
6799
+ # 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
5795
6800
  # values: ["Value"],
5796
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6801
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5797
6802
  # },
5798
6803
  # tags: {
5799
6804
  # key: "TagKey",
5800
6805
  # values: ["Value"],
5801
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6806
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5802
6807
  # },
5803
6808
  # cost_categories: {
5804
6809
  # key: "CostCategoryName",
5805
6810
  # values: ["Value"],
5806
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6811
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5807
6812
  # },
5808
6813
  # },
6814
+ # inherited_value: {
6815
+ # dimension_name: "LINKED_ACCOUNT_NAME", # accepts LINKED_ACCOUNT_NAME, TAG
6816
+ # dimension_key: "GenericString",
6817
+ # },
6818
+ # type: "REGULAR", # accepts REGULAR, INHERITED_VALUE
5809
6819
  # },
5810
6820
  # ],
6821
+ # default_value: "CostCategoryValue",
5811
6822
  # }
5812
6823
  #
5813
6824
  # @!attribute [rw] cost_category_arn
@@ -5827,12 +6838,17 @@ module Aws::CostExplorer
5827
6838
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html
5828
6839
  # @return [Array<Types::CostCategoryRule>]
5829
6840
  #
6841
+ # @!attribute [rw] default_value
6842
+ # The default value for the cost category.
6843
+ # @return [String]
6844
+ #
5830
6845
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinitionRequest AWS API Documentation
5831
6846
  #
5832
6847
  class UpdateCostCategoryDefinitionRequest < Struct.new(
5833
6848
  :cost_category_arn,
5834
6849
  :rule_version,
5835
- :rules)
6850
+ :rules,
6851
+ :default_value)
5836
6852
  SENSITIVE = []
5837
6853
  include Aws::Structure
5838
6854
  end