aws-sdk-costexplorer 1.55.0 → 1.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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