aws-sdk-costexplorer 1.54.0 → 1.59.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -35,6 +35,7 @@ module Aws::CostExplorer
35
35
  CostCategory = Shapes::StructureShape.new(name: 'CostCategory')
36
36
  CostCategoryMaxResults = Shapes::IntegerShape.new(name: 'CostCategoryMaxResults')
37
37
  CostCategoryName = Shapes::StringShape.new(name: 'CostCategoryName')
38
+ CostCategoryNamesList = Shapes::ListShape.new(name: 'CostCategoryNamesList')
38
39
  CostCategoryProcessingStatus = Shapes::StructureShape.new(name: 'CostCategoryProcessingStatus')
39
40
  CostCategoryProcessingStatusList = Shapes::ListShape.new(name: 'CostCategoryProcessingStatusList')
40
41
  CostCategoryReference = Shapes::StructureShape.new(name: 'CostCategoryReference')
@@ -103,6 +104,8 @@ module Aws::CostExplorer
103
104
  GetCostAndUsageResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageResponse')
104
105
  GetCostAndUsageWithResourcesRequest = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesRequest')
105
106
  GetCostAndUsageWithResourcesResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesResponse')
107
+ GetCostCategoriesRequest = Shapes::StructureShape.new(name: 'GetCostCategoriesRequest')
108
+ GetCostCategoriesResponse = Shapes::StructureShape.new(name: 'GetCostCategoriesResponse')
106
109
  GetCostForecastRequest = Shapes::StructureShape.new(name: 'GetCostForecastRequest')
107
110
  GetCostForecastResponse = Shapes::StructureShape.new(name: 'GetCostForecastResponse')
108
111
  GetDimensionValuesRequest = Shapes::StructureShape.new(name: 'GetDimensionValuesRequest')
@@ -175,6 +178,8 @@ module Aws::CostExplorer
175
178
  PurchasedHours = Shapes::StringShape.new(name: 'PurchasedHours')
176
179
  PurchasedUnits = Shapes::StringShape.new(name: 'PurchasedUnits')
177
180
  RDSInstanceDetails = Shapes::StructureShape.new(name: 'RDSInstanceDetails')
181
+ RICostForUnusedHours = Shapes::StringShape.new(name: 'RICostForUnusedHours')
182
+ RealizedSavings = Shapes::StringShape.new(name: 'RealizedSavings')
178
183
  RecommendationTarget = Shapes::StringShape.new(name: 'RecommendationTarget')
179
184
  RedshiftInstanceDetails = Shapes::StructureShape.new(name: 'RedshiftInstanceDetails')
180
185
  RequestChangedException = Shapes::StructureShape.new(name: 'RequestChangedException')
@@ -211,6 +216,8 @@ module Aws::CostExplorer
211
216
  SavingsPlansCoverage = Shapes::StructureShape.new(name: 'SavingsPlansCoverage')
212
217
  SavingsPlansCoverageData = Shapes::StructureShape.new(name: 'SavingsPlansCoverageData')
213
218
  SavingsPlansCoverages = Shapes::ListShape.new(name: 'SavingsPlansCoverages')
219
+ SavingsPlansDataType = Shapes::StringShape.new(name: 'SavingsPlansDataType')
220
+ SavingsPlansDataTypes = Shapes::ListShape.new(name: 'SavingsPlansDataTypes')
214
221
  SavingsPlansDetails = Shapes::StructureShape.new(name: 'SavingsPlansDetails')
215
222
  SavingsPlansPurchaseRecommendation = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendation')
216
223
  SavingsPlansPurchaseRecommendationDetail = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationDetail')
@@ -227,6 +234,10 @@ module Aws::CostExplorer
227
234
  SearchString = Shapes::StringShape.new(name: 'SearchString')
228
235
  ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
229
236
  ServiceSpecification = Shapes::StructureShape.new(name: 'ServiceSpecification')
237
+ SortDefinition = Shapes::StructureShape.new(name: 'SortDefinition')
238
+ SortDefinitionKey = Shapes::StringShape.new(name: 'SortDefinitionKey')
239
+ SortDefinitions = Shapes::ListShape.new(name: 'SortDefinitions')
240
+ SortOrder = Shapes::StringShape.new(name: 'SortOrder')
230
241
  Subscriber = Shapes::StructureShape.new(name: 'Subscriber')
231
242
  SubscriberAddress = Shapes::StringShape.new(name: 'SubscriberAddress')
232
243
  SubscriberStatus = Shapes::StringShape.new(name: 'SubscriberStatus')
@@ -250,6 +261,7 @@ module Aws::CostExplorer
250
261
  TotalRunningNormalizedUnits = Shapes::StringShape.new(name: 'TotalRunningNormalizedUnits')
251
262
  UnknownMonitorException = Shapes::StructureShape.new(name: 'UnknownMonitorException')
252
263
  UnknownSubscriptionException = Shapes::StructureShape.new(name: 'UnknownSubscriptionException')
264
+ UnrealizedSavings = Shapes::StringShape.new(name: 'UnrealizedSavings')
253
265
  UnresolvableUsageUnitException = Shapes::StructureShape.new(name: 'UnresolvableUsageUnitException')
254
266
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
255
267
  UnusedUnits = Shapes::StringShape.new(name: 'UnusedUnits')
@@ -328,6 +340,8 @@ module Aws::CostExplorer
328
340
  CostCategory.add_member(:processing_status, Shapes::ShapeRef.new(shape: CostCategoryProcessingStatusList, location_name: "ProcessingStatus"))
329
341
  CostCategory.struct_class = Types::CostCategory
330
342
 
343
+ CostCategoryNamesList.member = Shapes::ShapeRef.new(shape: CostCategoryName)
344
+
331
345
  CostCategoryProcessingStatus.add_member(:component, Shapes::ShapeRef.new(shape: CostCategoryStatusComponent, location_name: "Component"))
332
346
  CostCategoryProcessingStatus.add_member(:status, Shapes::ShapeRef.new(shape: CostCategoryStatus, location_name: "Status"))
333
347
  CostCategoryProcessingStatus.struct_class = Types::CostCategoryProcessingStatus
@@ -572,6 +586,7 @@ module Aws::CostExplorer
572
586
  GetCostAndUsageResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
573
587
  GetCostAndUsageResponse.add_member(:group_definitions, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupDefinitions"))
574
588
  GetCostAndUsageResponse.add_member(:results_by_time, Shapes::ShapeRef.new(shape: ResultsByTime, location_name: "ResultsByTime"))
589
+ GetCostAndUsageResponse.add_member(:dimension_value_attributes, Shapes::ShapeRef.new(shape: DimensionValuesWithAttributesList, location_name: "DimensionValueAttributes"))
575
590
  GetCostAndUsageResponse.struct_class = Types::GetCostAndUsageResponse
576
591
 
577
592
  GetCostAndUsageWithResourcesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
@@ -585,8 +600,25 @@ module Aws::CostExplorer
585
600
  GetCostAndUsageWithResourcesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
586
601
  GetCostAndUsageWithResourcesResponse.add_member(:group_definitions, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupDefinitions"))
587
602
  GetCostAndUsageWithResourcesResponse.add_member(:results_by_time, Shapes::ShapeRef.new(shape: ResultsByTime, location_name: "ResultsByTime"))
603
+ GetCostAndUsageWithResourcesResponse.add_member(:dimension_value_attributes, Shapes::ShapeRef.new(shape: DimensionValuesWithAttributesList, location_name: "DimensionValueAttributes"))
588
604
  GetCostAndUsageWithResourcesResponse.struct_class = Types::GetCostAndUsageWithResourcesResponse
589
605
 
606
+ GetCostCategoriesRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
607
+ GetCostCategoriesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
608
+ GetCostCategoriesRequest.add_member(:cost_category_name, Shapes::ShapeRef.new(shape: CostCategoryName, location_name: "CostCategoryName"))
609
+ GetCostCategoriesRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
610
+ GetCostCategoriesRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
611
+ GetCostCategoriesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
612
+ GetCostCategoriesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
613
+ GetCostCategoriesRequest.struct_class = Types::GetCostCategoriesRequest
614
+
615
+ GetCostCategoriesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
616
+ GetCostCategoriesResponse.add_member(:cost_category_names, Shapes::ShapeRef.new(shape: CostCategoryNamesList, location_name: "CostCategoryNames"))
617
+ GetCostCategoriesResponse.add_member(:cost_category_values, Shapes::ShapeRef.new(shape: CostCategoryValuesList, location_name: "CostCategoryValues"))
618
+ GetCostCategoriesResponse.add_member(:return_size, Shapes::ShapeRef.new(shape: PageSize, required: true, location_name: "ReturnSize"))
619
+ GetCostCategoriesResponse.add_member(:total_size, Shapes::ShapeRef.new(shape: PageSize, required: true, location_name: "TotalSize"))
620
+ GetCostCategoriesResponse.struct_class = Types::GetCostCategoriesResponse
621
+
590
622
  GetCostForecastRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
591
623
  GetCostForecastRequest.add_member(:metric, Shapes::ShapeRef.new(shape: Metric, required: true, location_name: "Metric"))
592
624
  GetCostForecastRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, required: true, location_name: "Granularity"))
@@ -602,6 +634,9 @@ module Aws::CostExplorer
602
634
  GetDimensionValuesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
603
635
  GetDimensionValuesRequest.add_member(:dimension, Shapes::ShapeRef.new(shape: Dimension, required: true, location_name: "Dimension"))
604
636
  GetDimensionValuesRequest.add_member(:context, Shapes::ShapeRef.new(shape: Context, location_name: "Context"))
637
+ GetDimensionValuesRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
638
+ GetDimensionValuesRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
639
+ GetDimensionValuesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
605
640
  GetDimensionValuesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
606
641
  GetDimensionValuesRequest.struct_class = Types::GetDimensionValuesRequest
607
642
 
@@ -617,6 +652,8 @@ module Aws::CostExplorer
617
652
  GetReservationCoverageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
618
653
  GetReservationCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
619
654
  GetReservationCoverageRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
655
+ GetReservationCoverageRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
656
+ GetReservationCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
620
657
  GetReservationCoverageRequest.struct_class = Types::GetReservationCoverageRequest
621
658
 
622
659
  GetReservationCoverageResponse.add_member(:coverages_by_time, Shapes::ShapeRef.new(shape: CoveragesByTime, required: true, location_name: "CoveragesByTime"))
@@ -626,6 +663,7 @@ module Aws::CostExplorer
626
663
 
627
664
  GetReservationPurchaseRecommendationRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
628
665
  GetReservationPurchaseRecommendationRequest.add_member(:service, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "Service"))
666
+ GetReservationPurchaseRecommendationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
629
667
  GetReservationPurchaseRecommendationRequest.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
630
668
  GetReservationPurchaseRecommendationRequest.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
631
669
  GetReservationPurchaseRecommendationRequest.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
@@ -644,7 +682,9 @@ module Aws::CostExplorer
644
682
  GetReservationUtilizationRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
645
683
  GetReservationUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
646
684
  GetReservationUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
685
+ GetReservationUtilizationRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
647
686
  GetReservationUtilizationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
687
+ GetReservationUtilizationRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
648
688
  GetReservationUtilizationRequest.struct_class = Types::GetReservationUtilizationRequest
649
689
 
650
690
  GetReservationUtilizationResponse.add_member(:utilizations_by_time, Shapes::ShapeRef.new(shape: UtilizationsByTime, required: true, location_name: "UtilizationsByTime"))
@@ -673,6 +713,7 @@ module Aws::CostExplorer
673
713
  GetSavingsPlansCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
674
714
  GetSavingsPlansCoverageRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
675
715
  GetSavingsPlansCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
716
+ GetSavingsPlansCoverageRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
676
717
  GetSavingsPlansCoverageRequest.struct_class = Types::GetSavingsPlansCoverageRequest
677
718
 
678
719
  GetSavingsPlansCoverageResponse.add_member(:savings_plans_coverages, Shapes::ShapeRef.new(shape: SavingsPlansCoverages, required: true, location_name: "SavingsPlansCoverages"))
@@ -696,8 +737,10 @@ module Aws::CostExplorer
696
737
 
697
738
  GetSavingsPlansUtilizationDetailsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
698
739
  GetSavingsPlansUtilizationDetailsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
740
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:data_type, Shapes::ShapeRef.new(shape: SavingsPlansDataTypes, location_name: "DataType"))
699
741
  GetSavingsPlansUtilizationDetailsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
700
742
  GetSavingsPlansUtilizationDetailsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
743
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
701
744
  GetSavingsPlansUtilizationDetailsRequest.struct_class = Types::GetSavingsPlansUtilizationDetailsRequest
702
745
 
703
746
  GetSavingsPlansUtilizationDetailsResponse.add_member(:savings_plans_utilization_details, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationDetails, required: true, location_name: "SavingsPlansUtilizationDetails"))
@@ -709,6 +752,7 @@ module Aws::CostExplorer
709
752
  GetSavingsPlansUtilizationRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
710
753
  GetSavingsPlansUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
711
754
  GetSavingsPlansUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
755
+ GetSavingsPlansUtilizationRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
712
756
  GetSavingsPlansUtilizationRequest.struct_class = Types::GetSavingsPlansUtilizationRequest
713
757
 
714
758
  GetSavingsPlansUtilizationResponse.add_member(:savings_plans_utilizations_by_time, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationsByTime, location_name: "SavingsPlansUtilizationsByTime"))
@@ -718,6 +762,9 @@ module Aws::CostExplorer
718
762
  GetTagsRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
719
763
  GetTagsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
720
764
  GetTagsRequest.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, location_name: "TagKey"))
765
+ GetTagsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
766
+ GetTagsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
767
+ GetTagsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
721
768
  GetTagsRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
722
769
  GetTagsRequest.struct_class = Types::GetTagsRequest
723
770
 
@@ -836,6 +883,9 @@ module Aws::CostExplorer
836
883
  ReservationAggregates.add_member(:amortized_upfront_fee, Shapes::ShapeRef.new(shape: AmortizedUpfrontFee, location_name: "AmortizedUpfrontFee"))
837
884
  ReservationAggregates.add_member(:amortized_recurring_fee, Shapes::ShapeRef.new(shape: AmortizedRecurringFee, location_name: "AmortizedRecurringFee"))
838
885
  ReservationAggregates.add_member(:total_amortized_fee, Shapes::ShapeRef.new(shape: TotalAmortizedFee, location_name: "TotalAmortizedFee"))
886
+ ReservationAggregates.add_member(:ri_cost_for_unused_hours, Shapes::ShapeRef.new(shape: RICostForUnusedHours, location_name: "RICostForUnusedHours"))
887
+ ReservationAggregates.add_member(:realized_savings, Shapes::ShapeRef.new(shape: RealizedSavings, location_name: "RealizedSavings"))
888
+ ReservationAggregates.add_member(:unrealized_savings, Shapes::ShapeRef.new(shape: UnrealizedSavings, location_name: "UnrealizedSavings"))
839
889
  ReservationAggregates.struct_class = Types::ReservationAggregates
840
890
 
841
891
  ReservationCoverageGroup.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
@@ -928,6 +978,7 @@ module Aws::CostExplorer
928
978
  RightsizingRecommendationMetadata.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendationId"))
929
979
  RightsizingRecommendationMetadata.add_member(:generation_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "GenerationTimestamp"))
930
980
  RightsizingRecommendationMetadata.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
981
+ RightsizingRecommendationMetadata.add_member(:additional_metadata, Shapes::ShapeRef.new(shape: GenericString, location_name: "AdditionalMetadata"))
931
982
  RightsizingRecommendationMetadata.struct_class = Types::RightsizingRecommendationMetadata
932
983
 
933
984
  RightsizingRecommendationSummary.add_member(:total_recommendation_count, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalRecommendationCount"))
@@ -962,6 +1013,8 @@ module Aws::CostExplorer
962
1013
 
963
1014
  SavingsPlansCoverages.member = Shapes::ShapeRef.new(shape: SavingsPlansCoverage)
964
1015
 
1016
+ SavingsPlansDataTypes.member = Shapes::ShapeRef.new(shape: SavingsPlansDataType)
1017
+
965
1018
  SavingsPlansDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
966
1019
  SavingsPlansDetails.add_member(:instance_family, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceFamily"))
967
1020
  SavingsPlansDetails.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
@@ -1052,6 +1105,12 @@ module Aws::CostExplorer
1052
1105
  ServiceSpecification.add_member(:ec2_specification, Shapes::ShapeRef.new(shape: EC2Specification, location_name: "EC2Specification"))
1053
1106
  ServiceSpecification.struct_class = Types::ServiceSpecification
1054
1107
 
1108
+ SortDefinition.add_member(:key, Shapes::ShapeRef.new(shape: SortDefinitionKey, required: true, location_name: "Key"))
1109
+ SortDefinition.add_member(:sort_order, Shapes::ShapeRef.new(shape: SortOrder, location_name: "SortOrder"))
1110
+ SortDefinition.struct_class = Types::SortDefinition
1111
+
1112
+ SortDefinitions.member = Shapes::ShapeRef.new(shape: SortDefinition)
1113
+
1055
1114
  Subscriber.add_member(:address, Shapes::ShapeRef.new(shape: SubscriberAddress, location_name: "Address"))
1056
1115
  Subscriber.add_member(:type, Shapes::ShapeRef.new(shape: SubscriberType, location_name: "Type"))
1057
1116
  Subscriber.add_member(:status, Shapes::ShapeRef.new(shape: SubscriberStatus, location_name: "Status"))
@@ -1279,6 +1338,19 @@ module Aws::CostExplorer
1279
1338
  o.errors << Shapes::ShapeRef.new(shape: RequestChangedException)
1280
1339
  end)
1281
1340
 
1341
+ api.add_operation(:get_cost_categories, Seahorse::Model::Operation.new.tap do |o|
1342
+ o.name = "GetCostCategories"
1343
+ o.http_method = "POST"
1344
+ o.http_request_uri = "/"
1345
+ o.input = Shapes::ShapeRef.new(shape: GetCostCategoriesRequest)
1346
+ o.output = Shapes::ShapeRef.new(shape: GetCostCategoriesResponse)
1347
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1348
+ o.errors << Shapes::ShapeRef.new(shape: BillExpirationException)
1349
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1350
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
1351
+ o.errors << Shapes::ShapeRef.new(shape: RequestChangedException)
1352
+ end)
1353
+
1282
1354
  api.add_operation(:get_cost_forecast, Seahorse::Model::Operation.new.tap do |o|
1283
1355
  o.name = "GetCostForecast"
1284
1356
  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
  #
@@ -483,19 +487,19 @@ module Aws::CostExplorer
483
487
  # # recursive Expression
484
488
  # },
485
489
  # dimensions: {
486
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
490
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
487
491
  # values: ["Value"],
488
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
492
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
489
493
  # },
490
494
  # tags: {
491
495
  # key: "TagKey",
492
496
  # values: ["Value"],
493
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
497
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
494
498
  # },
495
499
  # cost_categories: {
496
500
  # key: "CostCategoryName",
497
501
  # values: ["Value"],
498
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
502
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
499
503
  # },
500
504
  # },
501
505
  # }
@@ -537,13 +541,21 @@ module Aws::CostExplorer
537
541
 
538
542
  # The Cost Categories values used for filtering the costs.
539
543
  #
544
+ # If `Values` and `Key` are not specified, the `ABSENT` `MatchOption` is
545
+ # applied to all Cost Categories. That is, filtering on resources that
546
+ # are not mapped to any Cost Categories.
547
+ #
548
+ # If `Values` is provided and `Key` is not specified, the `ABSENT`
549
+ # `MatchOption` is applied to the Cost Categories `Key` only. That is,
550
+ # filtering on resources without the given Cost Categories key.
551
+ #
540
552
  # @note When making an API call, you may pass CostCategoryValues
541
553
  # data as a hash:
542
554
  #
543
555
  # {
544
556
  # key: "CostCategoryName",
545
557
  # values: ["Value"],
546
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
558
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
547
559
  # }
548
560
  #
549
561
  # @!attribute [rw] key
@@ -556,9 +568,9 @@ module Aws::CostExplorer
556
568
  #
557
569
  # @!attribute [rw] match_options
558
570
  # The match options that you can use to filter your results.
559
- # MatchOptions is only applicable for only applicable for actions
560
- # related to cost category. The default values for `MatchOptions` is
561
- # `EQUALS` and `CASE_SENSITIVE`.
571
+ # MatchOptions is only applicable for actions related to cost
572
+ # category. The default values for `MatchOptions` is `EQUALS` and
573
+ # `CASE_SENSITIVE`.
562
574
  # @return [Array<String>]
563
575
  #
564
576
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryValues AWS API Documentation
@@ -738,19 +750,19 @@ module Aws::CostExplorer
738
750
  # # recursive Expression
739
751
  # },
740
752
  # dimensions: {
741
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
753
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
742
754
  # values: ["Value"],
743
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
755
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
744
756
  # },
745
757
  # tags: {
746
758
  # key: "TagKey",
747
759
  # values: ["Value"],
748
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
760
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
749
761
  # },
750
762
  # cost_categories: {
751
763
  # key: "CostCategoryName",
752
764
  # values: ["Value"],
753
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
765
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
754
766
  # },
755
767
  # },
756
768
  # dimensional_value_count: 1,
@@ -852,19 +864,19 @@ module Aws::CostExplorer
852
864
  # # recursive Expression
853
865
  # },
854
866
  # dimensions: {
855
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
867
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
856
868
  # values: ["Value"],
857
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
869
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
858
870
  # },
859
871
  # tags: {
860
872
  # key: "TagKey",
861
873
  # values: ["Value"],
862
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
874
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
863
875
  # },
864
876
  # cost_categories: {
865
877
  # key: "CostCategoryName",
866
878
  # values: ["Value"],
867
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
879
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
868
880
  # },
869
881
  # },
870
882
  # },
@@ -998,7 +1010,7 @@ module Aws::CostExplorer
998
1010
  include Aws::Structure
999
1011
  end
1000
1012
 
1001
- # The time period that you want the usage and costs for.
1013
+ # The time period of the request.
1002
1014
  #
1003
1015
  # @note When making an API call, you may pass DateInterval
1004
1016
  # data as a hash:
@@ -1009,17 +1021,17 @@ module Aws::CostExplorer
1009
1021
  # }
1010
1022
  #
1011
1023
  # @!attribute [rw] start
1012
- # The beginning of the time period that you want the usage and costs
1013
- # for. The start date is inclusive. For example, if `start` is
1014
- # `2017-01-01`, AWS retrieves cost and usage data starting at
1015
- # `2017-01-01` up to the end date.
1024
+ # The beginning of the time period. The start date is inclusive. For
1025
+ # example, if `start` is `2017-01-01`, AWS retrieves cost and usage
1026
+ # data starting at `2017-01-01` up to the end date. The start date
1027
+ # must be equal to or no later than the current date to avoid a
1028
+ # validation error.
1016
1029
  # @return [String]
1017
1030
  #
1018
1031
  # @!attribute [rw] end
1019
- # The end of the time period that you want the usage and costs for.
1020
- # The end date is exclusive. For example, if `end` is `2017-05-01`,
1021
- # AWS retrieves cost and usage data from the start date up to, but not
1022
- # including, `2017-05-01`.
1032
+ # The end of the time period. The end date is exclusive. For example,
1033
+ # if `end` is `2017-05-01`, AWS retrieves cost and usage data from the
1034
+ # start date up to, but not including, `2017-05-01`.
1023
1035
  # @return [String]
1024
1036
  #
1025
1037
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DateInterval AWS API Documentation
@@ -1162,9 +1174,9 @@ module Aws::CostExplorer
1162
1174
  # data as a hash:
1163
1175
  #
1164
1176
  # {
1165
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1177
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1166
1178
  # values: ["Value"],
1167
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1179
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1168
1180
  # }
1169
1181
  #
1170
1182
  # @!attribute [rw] key
@@ -1523,10 +1535,15 @@ module Aws::CostExplorer
1523
1535
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1524
1536
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
1525
1537
  #
1526
- # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and NOT
1527
- # is not supported. OR is not supported between different dimensions, or
1528
- # dimensions and tags. NOT operators aren't supported. Dimensions are
1529
- # also limited to `LINKED_ACCOUNT`, `REGION`, or `RIGHTSIZING_TYPE`.
1538
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
1539
+ # NOT is not supported. OR is not supported between different
1540
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
1541
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
1542
+ # `RIGHTSIZING_TYPE`.
1543
+ #
1544
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
1545
+ # supported. AND and OR are not supported. Dimensions are limited to
1546
+ # `LINKED_ACCOUNT`.
1530
1547
  #
1531
1548
  # </note>
1532
1549
  #
@@ -1546,19 +1563,19 @@ module Aws::CostExplorer
1546
1563
  # # recursive Expression
1547
1564
  # },
1548
1565
  # dimensions: {
1549
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1566
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1550
1567
  # values: ["Value"],
1551
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1568
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1552
1569
  # },
1553
1570
  # tags: {
1554
1571
  # key: "TagKey",
1555
1572
  # values: ["Value"],
1556
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1573
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1557
1574
  # },
1558
1575
  # cost_categories: {
1559
1576
  # key: "CostCategoryName",
1560
1577
  # values: ["Value"],
1561
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1578
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1562
1579
  # },
1563
1580
  # },
1564
1581
  # ],
@@ -1574,19 +1591,19 @@ module Aws::CostExplorer
1574
1591
  # # recursive Expression
1575
1592
  # },
1576
1593
  # dimensions: {
1577
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1594
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1578
1595
  # values: ["Value"],
1579
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1596
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1580
1597
  # },
1581
1598
  # tags: {
1582
1599
  # key: "TagKey",
1583
1600
  # values: ["Value"],
1584
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1601
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1585
1602
  # },
1586
1603
  # cost_categories: {
1587
1604
  # key: "CostCategoryName",
1588
1605
  # values: ["Value"],
1589
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1606
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1590
1607
  # },
1591
1608
  # },
1592
1609
  # ],
@@ -1605,35 +1622,35 @@ module Aws::CostExplorer
1605
1622
  # # recursive Expression
1606
1623
  # },
1607
1624
  # dimensions: {
1608
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1625
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1609
1626
  # values: ["Value"],
1610
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1627
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1611
1628
  # },
1612
1629
  # tags: {
1613
1630
  # key: "TagKey",
1614
1631
  # values: ["Value"],
1615
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1632
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1616
1633
  # },
1617
1634
  # cost_categories: {
1618
1635
  # key: "CostCategoryName",
1619
1636
  # values: ["Value"],
1620
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1637
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1621
1638
  # },
1622
1639
  # },
1623
1640
  # dimensions: {
1624
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1641
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1625
1642
  # values: ["Value"],
1626
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1643
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1627
1644
  # },
1628
1645
  # tags: {
1629
1646
  # key: "TagKey",
1630
1647
  # values: ["Value"],
1631
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1648
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1632
1649
  # },
1633
1650
  # cost_categories: {
1634
1651
  # key: "CostCategoryName",
1635
1652
  # values: ["Value"],
1636
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1653
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1637
1654
  # },
1638
1655
  # }
1639
1656
  #
@@ -1922,19 +1939,19 @@ module Aws::CostExplorer
1922
1939
  # # recursive Expression
1923
1940
  # },
1924
1941
  # dimensions: {
1925
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1942
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1926
1943
  # values: ["Value"],
1927
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1944
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1928
1945
  # },
1929
1946
  # tags: {
1930
1947
  # key: "TagKey",
1931
1948
  # values: ["Value"],
1932
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1949
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1933
1950
  # },
1934
1951
  # cost_categories: {
1935
1952
  # key: "CostCategoryName",
1936
1953
  # values: ["Value"],
1937
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1954
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1938
1955
  # },
1939
1956
  # },
1940
1957
  # metrics: ["MetricName"], # required
@@ -2045,12 +2062,19 @@ module Aws::CostExplorer
2045
2062
  # The time period that is covered by the results in the response.
2046
2063
  # @return [Array<Types::ResultByTime>]
2047
2064
  #
2065
+ # @!attribute [rw] dimension_value_attributes
2066
+ # The attributes that apply to a specific dimension value. For
2067
+ # example, if the value is a linked account, the attribute is that
2068
+ # account name.
2069
+ # @return [Array<Types::DimensionValuesWithAttributes>]
2070
+ #
2048
2071
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageResponse AWS API Documentation
2049
2072
  #
2050
2073
  class GetCostAndUsageResponse < Struct.new(
2051
2074
  :next_page_token,
2052
2075
  :group_definitions,
2053
- :results_by_time)
2076
+ :results_by_time,
2077
+ :dimension_value_attributes)
2054
2078
  SENSITIVE = []
2055
2079
  include Aws::Structure
2056
2080
  end
@@ -2079,19 +2103,19 @@ module Aws::CostExplorer
2079
2103
  # # recursive Expression
2080
2104
  # },
2081
2105
  # dimensions: {
2082
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
2106
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2083
2107
  # values: ["Value"],
2084
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2108
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2085
2109
  # },
2086
2110
  # tags: {
2087
2111
  # key: "TagKey",
2088
2112
  # values: ["Value"],
2089
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2113
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2090
2114
  # },
2091
2115
  # cost_categories: {
2092
2116
  # key: "CostCategoryName",
2093
2117
  # values: ["Value"],
2094
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2118
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2095
2119
  # },
2096
2120
  # },
2097
2121
  # metrics: ["MetricName"],
@@ -2202,12 +2226,237 @@ module Aws::CostExplorer
2202
2226
  # The time period that is covered by the results in the response.
2203
2227
  # @return [Array<Types::ResultByTime>]
2204
2228
  #
2229
+ # @!attribute [rw] dimension_value_attributes
2230
+ # The attributes that apply to a specific dimension value. For
2231
+ # example, if the value is a linked account, the attribute is that
2232
+ # account name.
2233
+ # @return [Array<Types::DimensionValuesWithAttributes>]
2234
+ #
2205
2235
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResourcesResponse AWS API Documentation
2206
2236
  #
2207
2237
  class GetCostAndUsageWithResourcesResponse < Struct.new(
2208
2238
  :next_page_token,
2209
2239
  :group_definitions,
2210
- :results_by_time)
2240
+ :results_by_time,
2241
+ :dimension_value_attributes)
2242
+ SENSITIVE = []
2243
+ include Aws::Structure
2244
+ end
2245
+
2246
+ # @note When making an API call, you may pass GetCostCategoriesRequest
2247
+ # data as a hash:
2248
+ #
2249
+ # {
2250
+ # search_string: "SearchString",
2251
+ # time_period: { # required
2252
+ # start: "YearMonthDay", # required
2253
+ # end: "YearMonthDay", # required
2254
+ # },
2255
+ # cost_category_name: "CostCategoryName",
2256
+ # filter: {
2257
+ # or: [
2258
+ # {
2259
+ # # recursive Expression
2260
+ # },
2261
+ # ],
2262
+ # and: [
2263
+ # {
2264
+ # # recursive Expression
2265
+ # },
2266
+ # ],
2267
+ # not: {
2268
+ # # recursive Expression
2269
+ # },
2270
+ # dimensions: {
2271
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2272
+ # values: ["Value"],
2273
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2274
+ # },
2275
+ # tags: {
2276
+ # key: "TagKey",
2277
+ # values: ["Value"],
2278
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2279
+ # },
2280
+ # cost_categories: {
2281
+ # key: "CostCategoryName",
2282
+ # values: ["Value"],
2283
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2284
+ # },
2285
+ # },
2286
+ # sort_by: [
2287
+ # {
2288
+ # key: "SortDefinitionKey", # required
2289
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
2290
+ # },
2291
+ # ],
2292
+ # max_results: 1,
2293
+ # next_page_token: "NextPageToken",
2294
+ # }
2295
+ #
2296
+ # @!attribute [rw] search_string
2297
+ # The value that you want to search the filter values for.
2298
+ #
2299
+ # If you do not specify a `CostCategoryName`, `SearchString` will be
2300
+ # used to filter Cost Category names that match the `SearchString`
2301
+ # pattern. If you do specifiy a `CostCategoryName`, `SearchString`
2302
+ # will be used to filter Cost Category values that match the
2303
+ # `SearchString` pattern.
2304
+ # @return [String]
2305
+ #
2306
+ # @!attribute [rw] time_period
2307
+ # The time period of the request.
2308
+ # @return [Types::DateInterval]
2309
+ #
2310
+ # @!attribute [rw] cost_category_name
2311
+ # The unique name of the Cost Category.
2312
+ # @return [String]
2313
+ #
2314
+ # @!attribute [rw] filter
2315
+ # Use `Expression` to filter by cost or by usage. There are two
2316
+ # patterns:
2317
+ #
2318
+ # * Simple dimension values - You can set the dimension name and
2319
+ # values for the filters that you plan to use. For example, you can
2320
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
2321
+ # `GetRightsizingRecommendation`, the Region is a full name (for
2322
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
2323
+ # looks like:
2324
+ #
2325
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2326
+ # “us-west-1” ] \} \}`
2327
+ #
2328
+ # The list of dimension values are OR'd together to retrieve cost
2329
+ # or usage data. You can create `Expression` and `DimensionValues`
2330
+ # objects using either `with*` methods or `set*` methods in multiple
2331
+ # lines.
2332
+ #
2333
+ # * Compound dimension values with logical operations - You can use
2334
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
2335
+ # to create a list of one or more `Expression` objects. This allows
2336
+ # you to filter on more advanced options. For example, you can
2337
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
2338
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
2339
+ # `Expression` for that looks like this:
2340
+ #
2341
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2342
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2343
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2344
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
2345
+ # \}\}\} ] \} `
2346
+ #
2347
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
2348
+ # returns an error if more than one is specified. The following
2349
+ # example shows an `Expression` object that creates an error.
2350
+ #
2351
+ # </note>
2352
+ #
2353
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2354
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2355
+ #
2356
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
2357
+ # and NOT is not supported. OR is not supported between different
2358
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
2359
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
2360
+ # `RIGHTSIZING_TYPE`.
2361
+ #
2362
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
2363
+ # supported. AND and OR are not supported. Dimensions are limited to
2364
+ # `LINKED_ACCOUNT`.
2365
+ #
2366
+ # </note>
2367
+ # @return [Types::Expression]
2368
+ #
2369
+ # @!attribute [rw] sort_by
2370
+ # The value by which you want to sort the data.
2371
+ #
2372
+ # The key represents cost and usage metrics. The following values are
2373
+ # supported:
2374
+ #
2375
+ # * `BlendedCost`
2376
+ #
2377
+ # * `UnblendedCost`
2378
+ #
2379
+ # * `AmortizedCost`
2380
+ #
2381
+ # * `NetAmortizedCost`
2382
+ #
2383
+ # * `NetUnblendedCost`
2384
+ #
2385
+ # * `UsageQuantity`
2386
+ #
2387
+ # * `NormalizedUsageAmount`
2388
+ #
2389
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2390
+ #
2391
+ # When using `SortBy`, `NextPageToken` and `SearchString` are not
2392
+ # supported.
2393
+ # @return [Array<Types::SortDefinition>]
2394
+ #
2395
+ # @!attribute [rw] max_results
2396
+ # This field is only used when `SortBy` is provided in the request.
2397
+ #
2398
+ # The maximum number of objects that to be returned for this request.
2399
+ # If `MaxResults` is not specified with `SortBy`, the request will
2400
+ # return 1000 results as the default value for this parameter.
2401
+ #
2402
+ # For `GetCostCategories`, MaxResults has an upper limit of 1000.
2403
+ # @return [Integer]
2404
+ #
2405
+ # @!attribute [rw] next_page_token
2406
+ # If the number of objects that are still available for retrieval
2407
+ # exceeds the limit, AWS returns a NextPageToken value in the
2408
+ # response. To retrieve the next batch of objects, provide the
2409
+ # NextPageToken from the prior call in your next request.
2410
+ # @return [String]
2411
+ #
2412
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategoriesRequest AWS API Documentation
2413
+ #
2414
+ class GetCostCategoriesRequest < Struct.new(
2415
+ :search_string,
2416
+ :time_period,
2417
+ :cost_category_name,
2418
+ :filter,
2419
+ :sort_by,
2420
+ :max_results,
2421
+ :next_page_token)
2422
+ SENSITIVE = []
2423
+ include Aws::Structure
2424
+ end
2425
+
2426
+ # @!attribute [rw] next_page_token
2427
+ # If the number of objects that are still available for retrieval
2428
+ # exceeds the limit, AWS returns a NextPageToken value in the
2429
+ # response. To retrieve the next batch of objects, provide the marker
2430
+ # from the prior call in your next request.
2431
+ # @return [String]
2432
+ #
2433
+ # @!attribute [rw] cost_category_names
2434
+ # The names of the Cost Categories.
2435
+ # @return [Array<String>]
2436
+ #
2437
+ # @!attribute [rw] cost_category_values
2438
+ # The Cost Category values.
2439
+ #
2440
+ # `CostCategoryValues` are not returned if `CostCategoryName` is not
2441
+ # specified in the request.
2442
+ # @return [Array<String>]
2443
+ #
2444
+ # @!attribute [rw] return_size
2445
+ # The number of objects returned.
2446
+ # @return [Integer]
2447
+ #
2448
+ # @!attribute [rw] total_size
2449
+ # The total number of objects.
2450
+ # @return [Integer]
2451
+ #
2452
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategoriesResponse AWS API Documentation
2453
+ #
2454
+ class GetCostCategoriesResponse < Struct.new(
2455
+ :next_page_token,
2456
+ :cost_category_names,
2457
+ :cost_category_values,
2458
+ :return_size,
2459
+ :total_size)
2211
2460
  SENSITIVE = []
2212
2461
  include Aws::Structure
2213
2462
  end
@@ -2237,19 +2486,19 @@ module Aws::CostExplorer
2237
2486
  # # recursive Expression
2238
2487
  # },
2239
2488
  # 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
2489
+ # 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
2490
  # values: ["Value"],
2242
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2491
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2243
2492
  # },
2244
2493
  # tags: {
2245
2494
  # key: "TagKey",
2246
2495
  # values: ["Value"],
2247
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2496
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2248
2497
  # },
2249
2498
  # cost_categories: {
2250
2499
  # key: "CostCategoryName",
2251
2500
  # values: ["Value"],
2252
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2501
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2253
2502
  # },
2254
2503
  # },
2255
2504
  # prediction_interval_level: 1,
@@ -2292,8 +2541,55 @@ module Aws::CostExplorer
2292
2541
  # @return [String]
2293
2542
  #
2294
2543
  # @!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.
2544
+ # The filters that you want to use to filter your forecast. The
2545
+ # `GetCostForecast` API supports filtering by the following
2546
+ # dimensions:
2547
+ #
2548
+ # * `AZ`
2549
+ #
2550
+ # * `INSTANCE_TYPE`
2551
+ #
2552
+ # * `LINKED_ACCOUNT`
2553
+ #
2554
+ # * `LINKED_ACCOUNT_NAME`
2555
+ #
2556
+ # * `OPERATION`
2557
+ #
2558
+ # * `PURCHASE_TYPE`
2559
+ #
2560
+ # * `REGION`
2561
+ #
2562
+ # * `SERVICE`
2563
+ #
2564
+ # * `USAGE_TYPE`
2565
+ #
2566
+ # * `USAGE_TYPE_GROUP`
2567
+ #
2568
+ # * `RECORD_TYPE`
2569
+ #
2570
+ # * `OPERATING_SYSTEM`
2571
+ #
2572
+ # * `TENANCY`
2573
+ #
2574
+ # * `SCOPE`
2575
+ #
2576
+ # * `PLATFORM`
2577
+ #
2578
+ # * `SUBSCRIPTION_ID`
2579
+ #
2580
+ # * `LEGAL_ENTITY_NAME`
2581
+ #
2582
+ # * `DEPLOYMENT_OPTION`
2583
+ #
2584
+ # * `DATABASE_ENGINE`
2585
+ #
2586
+ # * `INSTANCE_TYPE_FAMILY`
2587
+ #
2588
+ # * `BILLING_ENTITY`
2589
+ #
2590
+ # * `RESERVATION_ID`
2591
+ #
2592
+ # * `SAVINGS_PLAN_ARN`
2297
2593
  # @return [Types::Expression]
2298
2594
  #
2299
2595
  # @!attribute [rw] prediction_interval_level
@@ -2346,8 +2642,45 @@ module Aws::CostExplorer
2346
2642
  # start: "YearMonthDay", # required
2347
2643
  # end: "YearMonthDay", # required
2348
2644
  # },
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
2645
+ # 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
2646
  # context: "COST_AND_USAGE", # accepts COST_AND_USAGE, RESERVATIONS, SAVINGS_PLANS
2647
+ # filter: {
2648
+ # or: [
2649
+ # {
2650
+ # # recursive Expression
2651
+ # },
2652
+ # ],
2653
+ # and: [
2654
+ # {
2655
+ # # recursive Expression
2656
+ # },
2657
+ # ],
2658
+ # not: {
2659
+ # # recursive Expression
2660
+ # },
2661
+ # dimensions: {
2662
+ # 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
2663
+ # values: ["Value"],
2664
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2665
+ # },
2666
+ # tags: {
2667
+ # key: "TagKey",
2668
+ # values: ["Value"],
2669
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2670
+ # },
2671
+ # cost_categories: {
2672
+ # key: "CostCategoryName",
2673
+ # values: ["Value"],
2674
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2675
+ # },
2676
+ # },
2677
+ # sort_by: [
2678
+ # {
2679
+ # key: "SortDefinitionKey", # required
2680
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
2681
+ # },
2682
+ # ],
2683
+ # max_results: 1,
2351
2684
  # next_page_token: "NextPageToken",
2352
2685
  # }
2353
2686
  #
@@ -2480,6 +2813,97 @@ module Aws::CostExplorer
2480
2813
  # * SAVINGS\_PLAN\_ARN - The unique identifier for your Savings Plan
2481
2814
  # @return [String]
2482
2815
  #
2816
+ # @!attribute [rw] filter
2817
+ # Use `Expression` to filter by cost or by usage. There are two
2818
+ # patterns:
2819
+ #
2820
+ # * Simple dimension values - You can set the dimension name and
2821
+ # values for the filters that you plan to use. For example, you can
2822
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
2823
+ # `GetRightsizingRecommendation`, the Region is a full name (for
2824
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
2825
+ # looks like:
2826
+ #
2827
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
2828
+ # “us-west-1” ] \} \}`
2829
+ #
2830
+ # The list of dimension values are OR'd together to retrieve cost
2831
+ # or usage data. You can create `Expression` and `DimensionValues`
2832
+ # objects using either `with*` methods or `set*` methods in multiple
2833
+ # lines.
2834
+ #
2835
+ # * Compound dimension values with logical operations - You can use
2836
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
2837
+ # to create a list of one or more `Expression` objects. This allows
2838
+ # you to filter on more advanced options. For example, you can
2839
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
2840
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
2841
+ # `Expression` for that looks like this:
2842
+ #
2843
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
2844
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
2845
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
2846
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
2847
+ # \}\}\} ] \} `
2848
+ #
2849
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
2850
+ # returns an error if more than one is specified. The following
2851
+ # example shows an `Expression` object that creates an error.
2852
+ #
2853
+ # </note>
2854
+ #
2855
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
2856
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2857
+ #
2858
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
2859
+ # and NOT is not supported. OR is not supported between different
2860
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
2861
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
2862
+ # `RIGHTSIZING_TYPE`.
2863
+ #
2864
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
2865
+ # supported. AND and OR are not supported. Dimensions are limited to
2866
+ # `LINKED_ACCOUNT`.
2867
+ #
2868
+ # </note>
2869
+ # @return [Types::Expression]
2870
+ #
2871
+ # @!attribute [rw] sort_by
2872
+ # The value by which you want to sort the data.
2873
+ #
2874
+ # The key represents cost and usage metrics. The following values are
2875
+ # supported:
2876
+ #
2877
+ # * `BlendedCost`
2878
+ #
2879
+ # * `UnblendedCost`
2880
+ #
2881
+ # * `AmortizedCost`
2882
+ #
2883
+ # * `NetAmortizedCost`
2884
+ #
2885
+ # * `NetUnblendedCost`
2886
+ #
2887
+ # * `UsageQuantity`
2888
+ #
2889
+ # * `NormalizedUsageAmount`
2890
+ #
2891
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
2892
+ #
2893
+ # When you specify a `SortBy` paramater, the context must be
2894
+ # `COST_AND_USAGE`. Further, when using `SortBy`, `NextPageToken` and
2895
+ # `SearchString` are not supported.
2896
+ # @return [Array<Types::SortDefinition>]
2897
+ #
2898
+ # @!attribute [rw] max_results
2899
+ # This field is only used when SortBy is provided in the request. The
2900
+ # maximum number of objects that to be returned for this request. If
2901
+ # MaxResults is not specified with SortBy, the request will return
2902
+ # 1000 results as the default value for this parameter.
2903
+ #
2904
+ # For `GetDimensionValues`, MaxResults has an upper limit of 1000.
2905
+ # @return [Integer]
2906
+ #
2483
2907
  # @!attribute [rw] next_page_token
2484
2908
  # The token to retrieve the next set of results. AWS provides the
2485
2909
  # token when the response from a previous call has more results than
@@ -2493,6 +2917,9 @@ module Aws::CostExplorer
2493
2917
  :time_period,
2494
2918
  :dimension,
2495
2919
  :context,
2920
+ :filter,
2921
+ :sort_by,
2922
+ :max_results,
2496
2923
  :next_page_token)
2497
2924
  SENSITIVE = []
2498
2925
  include Aws::Structure
@@ -2661,23 +3088,28 @@ module Aws::CostExplorer
2661
3088
  # # recursive Expression
2662
3089
  # },
2663
3090
  # 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
3091
+ # 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
3092
  # values: ["Value"],
2666
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3093
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2667
3094
  # },
2668
3095
  # tags: {
2669
3096
  # key: "TagKey",
2670
3097
  # values: ["Value"],
2671
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3098
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2672
3099
  # },
2673
3100
  # cost_categories: {
2674
3101
  # key: "CostCategoryName",
2675
3102
  # values: ["Value"],
2676
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3103
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2677
3104
  # },
2678
3105
  # },
2679
3106
  # metrics: ["MetricName"],
2680
3107
  # next_page_token: "NextPageToken",
3108
+ # sort_by: {
3109
+ # key: "SortDefinitionKey", # required
3110
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3111
+ # },
3112
+ # max_results: 1,
2681
3113
  # }
2682
3114
  #
2683
3115
  # @!attribute [rw] time_period
@@ -2782,6 +3214,41 @@ module Aws::CostExplorer
2782
3214
  # the maximum page size.
2783
3215
  # @return [String]
2784
3216
  #
3217
+ # @!attribute [rw] sort_by
3218
+ # The value by which you want to sort the data.
3219
+ #
3220
+ # The following values are supported for `Key`\:
3221
+ #
3222
+ # * `OnDemandCost`
3223
+ #
3224
+ # * `CoverageHoursPercentage`
3225
+ #
3226
+ # * `OnDemandHours`
3227
+ #
3228
+ # * `ReservedHours`
3229
+ #
3230
+ # * `TotalRunningHours`
3231
+ #
3232
+ # * `CoverageNormalizedUnitsPercentage`
3233
+ #
3234
+ # * `OnDemandNormalizedUnits`
3235
+ #
3236
+ # * `ReservedNormalizedUnits`
3237
+ #
3238
+ # * `TotalRunningNormalizedUnits`
3239
+ #
3240
+ # * `Time`
3241
+ #
3242
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3243
+ # @return [Types::SortDefinition]
3244
+ #
3245
+ # @!attribute [rw] max_results
3246
+ # The maximum number of objects that you returned for this request. If
3247
+ # more objects are available, in the response, AWS provides a
3248
+ # NextPageToken value that you can use in a subsequent call to get the
3249
+ # next batch of objects.
3250
+ # @return [Integer]
3251
+ #
2785
3252
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverageRequest AWS API Documentation
2786
3253
  #
2787
3254
  class GetReservationCoverageRequest < Struct.new(
@@ -2790,7 +3257,9 @@ module Aws::CostExplorer
2790
3257
  :granularity,
2791
3258
  :filter,
2792
3259
  :metrics,
2793
- :next_page_token)
3260
+ :next_page_token,
3261
+ :sort_by,
3262
+ :max_results)
2794
3263
  SENSITIVE = []
2795
3264
  include Aws::Structure
2796
3265
  end
@@ -2822,29 +3291,114 @@ module Aws::CostExplorer
2822
3291
  # @note When making an API call, you may pass GetReservationPurchaseRecommendationRequest
2823
3292
  # data as a hash:
2824
3293
  #
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
- # }
3294
+ # {
3295
+ # account_id: "GenericString",
3296
+ # service: "GenericString", # required
3297
+ # filter: {
3298
+ # or: [
3299
+ # {
3300
+ # # recursive Expression
3301
+ # },
3302
+ # ],
3303
+ # and: [
3304
+ # {
3305
+ # # recursive Expression
3306
+ # },
3307
+ # ],
3308
+ # not: {
3309
+ # # recursive Expression
3310
+ # },
3311
+ # dimensions: {
3312
+ # 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
3313
+ # values: ["Value"],
3314
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3315
+ # },
3316
+ # tags: {
3317
+ # key: "TagKey",
3318
+ # values: ["Value"],
3319
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3320
+ # },
3321
+ # cost_categories: {
3322
+ # key: "CostCategoryName",
3323
+ # values: ["Value"],
3324
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3325
+ # },
3326
+ # },
3327
+ # account_scope: "PAYER", # accepts PAYER, LINKED
3328
+ # lookback_period_in_days: "SEVEN_DAYS", # accepts SEVEN_DAYS, THIRTY_DAYS, SIXTY_DAYS
3329
+ # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
3330
+ # payment_option: "NO_UPFRONT", # accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT, LIGHT_UTILIZATION, MEDIUM_UTILIZATION, HEAVY_UTILIZATION
3331
+ # service_specification: {
3332
+ # ec2_specification: {
3333
+ # offering_class: "STANDARD", # accepts STANDARD, CONVERTIBLE
3334
+ # },
3335
+ # },
3336
+ # page_size: 1,
3337
+ # next_page_token: "NextPageToken",
3338
+ # }
3339
+ #
3340
+ # @!attribute [rw] account_id
3341
+ # The account ID that is associated with the recommendation.
3342
+ # @return [String]
3343
+ #
3344
+ # @!attribute [rw] service
3345
+ # The specific service that you want recommendations for.
3346
+ # @return [String]
3347
+ #
3348
+ # @!attribute [rw] filter
3349
+ # Use `Expression` to filter by cost or by usage. There are two
3350
+ # patterns:
3351
+ #
3352
+ # * Simple dimension values - You can set the dimension name and
3353
+ # values for the filters that you plan to use. For example, you can
3354
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
3355
+ # `GetRightsizingRecommendation`, the Region is a full name (for
3356
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
3357
+ # looks like:
3358
+ #
3359
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
3360
+ # “us-west-1” ] \} \}`
3361
+ #
3362
+ # The list of dimension values are OR'd together to retrieve cost
3363
+ # or usage data. You can create `Expression` and `DimensionValues`
3364
+ # objects using either `with*` methods or `set*` methods in multiple
3365
+ # lines.
3366
+ #
3367
+ # * Compound dimension values with logical operations - You can use
3368
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
3369
+ # to create a list of one or more `Expression` objects. This allows
3370
+ # you to filter on more advanced options. For example, you can
3371
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
3372
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
3373
+ # `Expression` for that looks like this:
3374
+ #
3375
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
3376
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
3377
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
3378
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
3379
+ # \}\}\} ] \} `
3380
+ #
3381
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
3382
+ # returns an error if more than one is specified. The following
3383
+ # example shows an `Expression` object that creates an error.
3384
+ #
3385
+ # </note>
2840
3386
  #
2841
- # @!attribute [rw] account_id
2842
- # The account ID that is associated with the recommendation.
2843
- # @return [String]
3387
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3388
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
2844
3389
  #
2845
- # @!attribute [rw] service
2846
- # The specific service that you want recommendations for.
2847
- # @return [String]
3390
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3391
+ # and NOT is not supported. OR is not supported between different
3392
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
3393
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
3394
+ # `RIGHTSIZING_TYPE`.
3395
+ #
3396
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
3397
+ # supported. AND and OR are not supported. Dimensions are limited to
3398
+ # `LINKED_ACCOUNT`.
3399
+ #
3400
+ # </note>
3401
+ # @return [Types::Expression]
2848
3402
  #
2849
3403
  # @!attribute [rw] account_scope
2850
3404
  # The account scope that you want your recommendations for. Amazon Web
@@ -2888,6 +3442,7 @@ module Aws::CostExplorer
2888
3442
  class GetReservationPurchaseRecommendationRequest < Struct.new(
2889
3443
  :account_id,
2890
3444
  :service,
3445
+ :filter,
2891
3446
  :account_scope,
2892
3447
  :lookback_period_in_days,
2893
3448
  :term_in_years,
@@ -2952,22 +3507,27 @@ module Aws::CostExplorer
2952
3507
  # # recursive Expression
2953
3508
  # },
2954
3509
  # 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
3510
+ # 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
3511
  # values: ["Value"],
2957
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3512
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2958
3513
  # },
2959
3514
  # tags: {
2960
3515
  # key: "TagKey",
2961
3516
  # values: ["Value"],
2962
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3517
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2963
3518
  # },
2964
3519
  # cost_categories: {
2965
3520
  # key: "CostCategoryName",
2966
3521
  # values: ["Value"],
2967
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3522
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2968
3523
  # },
2969
3524
  # },
3525
+ # sort_by: {
3526
+ # key: "SortDefinitionKey", # required
3527
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3528
+ # },
2970
3529
  # next_page_token: "NextPageToken",
3530
+ # max_results: 1,
2971
3531
  # }
2972
3532
  #
2973
3533
  # @!attribute [rw] time_period
@@ -3028,12 +3588,61 @@ module Aws::CostExplorer
3028
3588
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3029
3589
  # @return [Types::Expression]
3030
3590
  #
3591
+ # @!attribute [rw] sort_by
3592
+ # The value by which you want to sort the data.
3593
+ #
3594
+ # The following values are supported for `Key`\:
3595
+ #
3596
+ # * `UtilizationPercentage`
3597
+ #
3598
+ # * `UtilizationPercentageInUnits`
3599
+ #
3600
+ # * `PurchasedHours`
3601
+ #
3602
+ # * `PurchasedUnits`
3603
+ #
3604
+ # * `TotalActualHours`
3605
+ #
3606
+ # * `TotalActualUnits`
3607
+ #
3608
+ # * `UnusedHours`
3609
+ #
3610
+ # * `UnusedUnits`
3611
+ #
3612
+ # * `OnDemandCostOfRIHoursUsed`
3613
+ #
3614
+ # * `NetRISavings`
3615
+ #
3616
+ # * `TotalPotentialRISavings`
3617
+ #
3618
+ # * `AmortizedUpfrontFee`
3619
+ #
3620
+ # * `AmortizedRecurringFee`
3621
+ #
3622
+ # * `TotalAmortizedFee`
3623
+ #
3624
+ # * `RICostForUnusedHours`
3625
+ #
3626
+ # * `RealizedSavings`
3627
+ #
3628
+ # * `UnrealizedSavings`
3629
+ #
3630
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3631
+ # @return [Types::SortDefinition]
3632
+ #
3031
3633
  # @!attribute [rw] next_page_token
3032
3634
  # The token to retrieve the next set of results. AWS provides the
3033
3635
  # token when the response from a previous call has more results than
3034
3636
  # the maximum page size.
3035
3637
  # @return [String]
3036
3638
  #
3639
+ # @!attribute [rw] max_results
3640
+ # The maximum number of objects that you returned for this request. If
3641
+ # more objects are available, in the response, AWS provides a
3642
+ # NextPageToken value that you can use in a subsequent call to get the
3643
+ # next batch of objects.
3644
+ # @return [Integer]
3645
+ #
3037
3646
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilizationRequest AWS API Documentation
3038
3647
  #
3039
3648
  class GetReservationUtilizationRequest < Struct.new(
@@ -3041,7 +3650,9 @@ module Aws::CostExplorer
3041
3650
  :group_by,
3042
3651
  :granularity,
3043
3652
  :filter,
3044
- :next_page_token)
3653
+ :sort_by,
3654
+ :next_page_token,
3655
+ :max_results)
3045
3656
  SENSITIVE = []
3046
3657
  include Aws::Structure
3047
3658
  end
@@ -3089,19 +3700,19 @@ module Aws::CostExplorer
3089
3700
  # # recursive Expression
3090
3701
  # },
3091
3702
  # 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
3703
+ # 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
3704
  # values: ["Value"],
3094
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3705
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3095
3706
  # },
3096
3707
  # tags: {
3097
3708
  # key: "TagKey",
3098
3709
  # values: ["Value"],
3099
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3710
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3100
3711
  # },
3101
3712
  # cost_categories: {
3102
3713
  # key: "CostCategoryName",
3103
3714
  # values: ["Value"],
3104
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3715
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3105
3716
  # },
3106
3717
  # },
3107
3718
  # configuration: {
@@ -3155,12 +3766,16 @@ module Aws::CostExplorer
3155
3766
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
3156
3767
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
3157
3768
  #
3158
- # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and
3159
- # NOT is not supported. OR is not supported between different
3769
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
3770
+ # and NOT is not supported. OR is not supported between different
3160
3771
  # dimensions, or dimensions and tags. NOT operators aren't supported.
3161
3772
  # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
3162
3773
  # `RIGHTSIZING_TYPE`.
3163
3774
  #
3775
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
3776
+ # supported. AND and OR are not supported. Dimensions are limited to
3777
+ # `LINKED_ACCOUNT`.
3778
+ #
3164
3779
  # </note>
3165
3780
  # @return [Types::Expression]
3166
3781
  #
@@ -3267,24 +3882,28 @@ module Aws::CostExplorer
3267
3882
  # # recursive Expression
3268
3883
  # },
3269
3884
  # 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
3885
+ # 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
3886
  # values: ["Value"],
3272
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3887
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3273
3888
  # },
3274
3889
  # tags: {
3275
3890
  # key: "TagKey",
3276
3891
  # values: ["Value"],
3277
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3892
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3278
3893
  # },
3279
3894
  # cost_categories: {
3280
3895
  # key: "CostCategoryName",
3281
3896
  # values: ["Value"],
3282
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3897
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3283
3898
  # },
3284
3899
  # },
3285
3900
  # metrics: ["MetricName"],
3286
3901
  # next_token: "NextPageToken",
3287
3902
  # max_results: 1,
3903
+ # sort_by: {
3904
+ # key: "SortDefinitionKey", # required
3905
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
3906
+ # },
3288
3907
  # }
3289
3908
  #
3290
3909
  # @!attribute [rw] time_period
@@ -3347,6 +3966,28 @@ module Aws::CostExplorer
3347
3966
  # `20`, with a minimum value of `1`.
3348
3967
  # @return [Integer]
3349
3968
  #
3969
+ # @!attribute [rw] sort_by
3970
+ # The value by which you want to sort the data.
3971
+ #
3972
+ # The following values are supported for `Key`\:
3973
+ #
3974
+ # * `SpendCoveredBySavingsPlan`
3975
+ #
3976
+ # * `OnDemandCost`
3977
+ #
3978
+ # * `CoveragePercentage`
3979
+ #
3980
+ # * `TotalCost`
3981
+ #
3982
+ # * `InstanceFamily`
3983
+ #
3984
+ # * `Region`
3985
+ #
3986
+ # * `Service`
3987
+ #
3988
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
3989
+ # @return [Types::SortDefinition]
3990
+ #
3350
3991
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverageRequest AWS API Documentation
3351
3992
  #
3352
3993
  class GetSavingsPlansCoverageRequest < Struct.new(
@@ -3356,7 +3997,8 @@ module Aws::CostExplorer
3356
3997
  :filter,
3357
3998
  :metrics,
3358
3999
  :next_token,
3359
- :max_results)
4000
+ :max_results,
4001
+ :sort_by)
3360
4002
  SENSITIVE = []
3361
4003
  include Aws::Structure
3362
4004
  end
@@ -3406,19 +4048,19 @@ module Aws::CostExplorer
3406
4048
  # # recursive Expression
3407
4049
  # },
3408
4050
  # 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
4051
+ # 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
4052
  # values: ["Value"],
3411
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4053
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3412
4054
  # },
3413
4055
  # tags: {
3414
4056
  # key: "TagKey",
3415
4057
  # values: ["Value"],
3416
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4058
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3417
4059
  # },
3418
4060
  # cost_categories: {
3419
4061
  # key: "CostCategoryName",
3420
4062
  # values: ["Value"],
3421
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4063
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3422
4064
  # },
3423
4065
  # },
3424
4066
  # }
@@ -3537,23 +4179,28 @@ module Aws::CostExplorer
3537
4179
  # # recursive Expression
3538
4180
  # },
3539
4181
  # 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
4182
+ # 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
4183
  # values: ["Value"],
3542
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4184
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3543
4185
  # },
3544
4186
  # tags: {
3545
4187
  # key: "TagKey",
3546
4188
  # values: ["Value"],
3547
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4189
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3548
4190
  # },
3549
4191
  # cost_categories: {
3550
4192
  # key: "CostCategoryName",
3551
4193
  # values: ["Value"],
3552
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4194
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3553
4195
  # },
3554
4196
  # },
4197
+ # data_type: ["ATTRIBUTES"], # accepts ATTRIBUTES, UTILIZATION, AMORTIZED_COMMITMENT, SAVINGS
3555
4198
  # next_token: "NextPageToken",
3556
4199
  # max_results: 1,
4200
+ # sort_by: {
4201
+ # key: "SortDefinitionKey", # required
4202
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4203
+ # },
3557
4204
  # }
3558
4205
  #
3559
4206
  # @!attribute [rw] time_period
@@ -3586,6 +4233,10 @@ module Aws::CostExplorer
3586
4233
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3587
4234
  # @return [Types::Expression]
3588
4235
  #
4236
+ # @!attribute [rw] data_type
4237
+ # The data type.
4238
+ # @return [Array<String>]
4239
+ #
3589
4240
  # @!attribute [rw] next_token
3590
4241
  # The token to retrieve the next set of results. Amazon Web Services
3591
4242
  # provides the token when the response from a previous call has more
@@ -3597,13 +4248,37 @@ module Aws::CostExplorer
3597
4248
  # `20`, with a minimum value of `1`.
3598
4249
  # @return [Integer]
3599
4250
  #
4251
+ # @!attribute [rw] sort_by
4252
+ # The value by which you want to sort the data.
4253
+ #
4254
+ # The following values are supported for `Key`\:
4255
+ #
4256
+ # * `UtilizationPercentage`
4257
+ #
4258
+ # * `TotalCommitment`
4259
+ #
4260
+ # * `UsedCommitment`
4261
+ #
4262
+ # * `UnusedCommitment`
4263
+ #
4264
+ # * `NetSavings`
4265
+ #
4266
+ # * `AmortizedRecurringCommitment`
4267
+ #
4268
+ # * `AmortizedUpfrontCommitment`
4269
+ #
4270
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4271
+ # @return [Types::SortDefinition]
4272
+ #
3600
4273
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetailsRequest AWS API Documentation
3601
4274
  #
3602
4275
  class GetSavingsPlansUtilizationDetailsRequest < Struct.new(
3603
4276
  :time_period,
3604
4277
  :filter,
4278
+ :data_type,
3605
4279
  :next_token,
3606
- :max_results)
4280
+ :max_results,
4281
+ :sort_by)
3607
4282
  SENSITIVE = []
3608
4283
  include Aws::Structure
3609
4284
  end
@@ -3618,7 +4293,7 @@ module Aws::CostExplorer
3618
4293
  # @return [Types::SavingsPlansUtilizationAggregates]
3619
4294
  #
3620
4295
  # @!attribute [rw] time_period
3621
- # The time period that you want the usage and costs for.
4296
+ # The time period of the request.
3622
4297
  # @return [Types::DateInterval]
3623
4298
  #
3624
4299
  # @!attribute [rw] next_token
@@ -3662,21 +4337,25 @@ module Aws::CostExplorer
3662
4337
  # # recursive Expression
3663
4338
  # },
3664
4339
  # 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
4340
+ # 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
4341
  # values: ["Value"],
3667
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4342
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3668
4343
  # },
3669
4344
  # tags: {
3670
4345
  # key: "TagKey",
3671
4346
  # values: ["Value"],
3672
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4347
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3673
4348
  # },
3674
4349
  # cost_categories: {
3675
4350
  # key: "CostCategoryName",
3676
4351
  # values: ["Value"],
3677
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4352
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3678
4353
  # },
3679
4354
  # },
4355
+ # sort_by: {
4356
+ # key: "SortDefinitionKey", # required
4357
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4358
+ # },
3680
4359
  # }
3681
4360
  #
3682
4361
  # @!attribute [rw] time_period
@@ -3719,12 +4398,31 @@ module Aws::CostExplorer
3719
4398
  # [1]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
3720
4399
  # @return [Types::Expression]
3721
4400
  #
4401
+ # @!attribute [rw] sort_by
4402
+ # The value by which you want to sort the data.
4403
+ #
4404
+ # The following values are supported for `Key`\:
4405
+ #
4406
+ # * `UtilizationPercentage`
4407
+ #
4408
+ # * `TotalCommitment`
4409
+ #
4410
+ # * `UsedCommitment`
4411
+ #
4412
+ # * `UnusedCommitment`
4413
+ #
4414
+ # * `NetSavings`
4415
+ #
4416
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4417
+ # @return [Types::SortDefinition]
4418
+ #
3722
4419
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationRequest AWS API Documentation
3723
4420
  #
3724
4421
  class GetSavingsPlansUtilizationRequest < Struct.new(
3725
4422
  :time_period,
3726
4423
  :granularity,
3727
- :filter)
4424
+ :filter,
4425
+ :sort_by)
3728
4426
  SENSITIVE = []
3729
4427
  include Aws::Structure
3730
4428
  end
@@ -3758,6 +4456,43 @@ module Aws::CostExplorer
3758
4456
  # end: "YearMonthDay", # required
3759
4457
  # },
3760
4458
  # tag_key: "TagKey",
4459
+ # filter: {
4460
+ # or: [
4461
+ # {
4462
+ # # recursive Expression
4463
+ # },
4464
+ # ],
4465
+ # and: [
4466
+ # {
4467
+ # # recursive Expression
4468
+ # },
4469
+ # ],
4470
+ # not: {
4471
+ # # recursive Expression
4472
+ # },
4473
+ # dimensions: {
4474
+ # 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
4475
+ # values: ["Value"],
4476
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4477
+ # },
4478
+ # tags: {
4479
+ # key: "TagKey",
4480
+ # values: ["Value"],
4481
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4482
+ # },
4483
+ # cost_categories: {
4484
+ # key: "CostCategoryName",
4485
+ # values: ["Value"],
4486
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4487
+ # },
4488
+ # },
4489
+ # sort_by: [
4490
+ # {
4491
+ # key: "SortDefinitionKey", # required
4492
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
4493
+ # },
4494
+ # ],
4495
+ # max_results: 1,
3761
4496
  # next_page_token: "NextPageToken",
3762
4497
  # }
3763
4498
  #
@@ -3777,6 +4512,96 @@ module Aws::CostExplorer
3777
4512
  # The key of the tag that you want to return values for.
3778
4513
  # @return [String]
3779
4514
  #
4515
+ # @!attribute [rw] filter
4516
+ # Use `Expression` to filter by cost or by usage. There are two
4517
+ # patterns:
4518
+ #
4519
+ # * Simple dimension values - You can set the dimension name and
4520
+ # values for the filters that you plan to use. For example, you can
4521
+ # filter for `REGION==us-east-1 OR REGION==us-west-1`. For
4522
+ # `GetRightsizingRecommendation`, the Region is a full name (for
4523
+ # example, `REGION==US East (N. Virginia)`. The `Expression` example
4524
+ # looks like:
4525
+ #
4526
+ # `\{ "Dimensions": \{ "Key": "REGION", "Values": [ "us-east-1",
4527
+ # “us-west-1” ] \} \}`
4528
+ #
4529
+ # The list of dimension values are OR'd together to retrieve cost
4530
+ # or usage data. You can create `Expression` and `DimensionValues`
4531
+ # objects using either `with*` methods or `set*` methods in multiple
4532
+ # lines.
4533
+ #
4534
+ # * Compound dimension values with logical operations - You can use
4535
+ # multiple `Expression` types and the logical operators `AND/OR/NOT`
4536
+ # to create a list of one or more `Expression` objects. This allows
4537
+ # you to filter on more advanced options. For example, you can
4538
+ # filter on `((REGION == us-east-1 OR REGION == us-west-1) OR
4539
+ # (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)`. The
4540
+ # `Expression` for that looks like this:
4541
+ #
4542
+ # `\{ "And": [ \{"Or": [ \{"Dimensions": \{ "Key": "REGION",
4543
+ # "Values": [ "us-east-1", "us-west-1" ] \}\}, \{"Tags": \{ "Key":
4544
+ # "TagName", "Values": ["Value1"] \} \} ]\}, \{"Not":
4545
+ # \{"Dimensions": \{ "Key": "USAGE_TYPE", "Values": ["DataTransfer"]
4546
+ # \}\}\} ] \} `
4547
+ #
4548
+ # <note markdown="1"> Because each `Expression` can have only one operator, the service
4549
+ # returns an error if more than one is specified. The following
4550
+ # example shows an `Expression` object that creates an error.
4551
+ #
4552
+ # </note>
4553
+ #
4554
+ # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
4555
+ # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
4556
+ #
4557
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
4558
+ # and NOT is not supported. OR is not supported between different
4559
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
4560
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
4561
+ # `RIGHTSIZING_TYPE`.
4562
+ #
4563
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
4564
+ # supported. AND and OR are not supported. Dimensions are limited to
4565
+ # `LINKED_ACCOUNT`.
4566
+ #
4567
+ # </note>
4568
+ # @return [Types::Expression]
4569
+ #
4570
+ # @!attribute [rw] sort_by
4571
+ # The value by which you want to sort the data.
4572
+ #
4573
+ # The key represents cost and usage metrics. The following values are
4574
+ # supported:
4575
+ #
4576
+ # * `BlendedCost`
4577
+ #
4578
+ # * `UnblendedCost`
4579
+ #
4580
+ # * `AmortizedCost`
4581
+ #
4582
+ # * `NetAmortizedCost`
4583
+ #
4584
+ # * `NetUnblendedCost`
4585
+ #
4586
+ # * `UsageQuantity`
4587
+ #
4588
+ # * `NormalizedUsageAmount`
4589
+ #
4590
+ # Supported values for `SortOrder` are `ASCENDING` or `DESCENDING`.
4591
+ #
4592
+ # When using `SortBy`, `NextPageToken` and `SearchString` are not
4593
+ # supported.
4594
+ # @return [Array<Types::SortDefinition>]
4595
+ #
4596
+ # @!attribute [rw] max_results
4597
+ # This field is only used when SortBy is provided in the request. The
4598
+ # maximum number of objects that to be returned for this request. If
4599
+ # MaxResults is not specified with SortBy, the request will return
4600
+ # 1000 results as the default value for this parameter.
4601
+ #
4602
+ # For `GetTags`, MaxResults has an upper limit of 1000.
4603
+ # @return [Integer]
4604
+ #
3780
4605
  # @!attribute [rw] next_page_token
3781
4606
  # The token to retrieve the next set of results. AWS provides the
3782
4607
  # token when the response from a previous call has more results than
@@ -3789,6 +4614,9 @@ module Aws::CostExplorer
3789
4614
  :search_string,
3790
4615
  :time_period,
3791
4616
  :tag_key,
4617
+ :filter,
4618
+ :sort_by,
4619
+ :max_results,
3792
4620
  :next_page_token)
3793
4621
  SENSITIVE = []
3794
4622
  include Aws::Structure
@@ -3848,19 +4676,19 @@ module Aws::CostExplorer
3848
4676
  # # recursive Expression
3849
4677
  # },
3850
4678
  # 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
4679
+ # 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
4680
  # values: ["Value"],
3853
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4681
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3854
4682
  # },
3855
4683
  # tags: {
3856
4684
  # key: "TagKey",
3857
4685
  # values: ["Value"],
3858
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4686
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3859
4687
  # },
3860
4688
  # cost_categories: {
3861
4689
  # key: "CostCategoryName",
3862
4690
  # values: ["Value"],
3863
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
4691
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
3864
4692
  # },
3865
4693
  # },
3866
4694
  # prediction_interval_level: 1,
@@ -3895,8 +4723,55 @@ module Aws::CostExplorer
3895
4723
  # @return [String]
3896
4724
  #
3897
4725
  # @!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.
4726
+ # The filters that you want to use to filter your forecast. The
4727
+ # `GetUsageForecast` API supports filtering by the following
4728
+ # dimensions:
4729
+ #
4730
+ # * `AZ`
4731
+ #
4732
+ # * `INSTANCE_TYPE`
4733
+ #
4734
+ # * `LINKED_ACCOUNT`
4735
+ #
4736
+ # * `LINKED_ACCOUNT_NAME`
4737
+ #
4738
+ # * `OPERATION`
4739
+ #
4740
+ # * `PURCHASE_TYPE`
4741
+ #
4742
+ # * `REGION`
4743
+ #
4744
+ # * `SERVICE`
4745
+ #
4746
+ # * `USAGE_TYPE`
4747
+ #
4748
+ # * `USAGE_TYPE_GROUP`
4749
+ #
4750
+ # * `RECORD_TYPE`
4751
+ #
4752
+ # * `OPERATING_SYSTEM`
4753
+ #
4754
+ # * `TENANCY`
4755
+ #
4756
+ # * `SCOPE`
4757
+ #
4758
+ # * `PLATFORM`
4759
+ #
4760
+ # * `SUBSCRIPTION_ID`
4761
+ #
4762
+ # * `LEGAL_ENTITY_NAME`
4763
+ #
4764
+ # * `DEPLOYMENT_OPTION`
4765
+ #
4766
+ # * `DATABASE_ENGINE`
4767
+ #
4768
+ # * `INSTANCE_TYPE_FAMILY`
4769
+ #
4770
+ # * `BILLING_ENTITY`
4771
+ #
4772
+ # * `RESERVATION_ID`
4773
+ #
4774
+ # * `SAVINGS_PLAN_ARN`
3900
4775
  # @return [Types::Expression]
3901
4776
  #
3902
4777
  # @!attribute [rw] prediction_interval_level
@@ -4367,6 +5242,18 @@ module Aws::CostExplorer
4367
5242
  # period.
4368
5243
  # @return [String]
4369
5244
  #
5245
+ # @!attribute [rw] ri_cost_for_unused_hours
5246
+ # The cost of unused hours for your reservation.
5247
+ # @return [String]
5248
+ #
5249
+ # @!attribute [rw] realized_savings
5250
+ # The realized savings due to purchasing and using a reservation.
5251
+ # @return [String]
5252
+ #
5253
+ # @!attribute [rw] unrealized_savings
5254
+ # The unrealized savings due to purchasing and using a reservation.
5255
+ # @return [String]
5256
+ #
4370
5257
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ReservationAggregates AWS API Documentation
4371
5258
  #
4372
5259
  class ReservationAggregates < Struct.new(
@@ -4383,7 +5270,10 @@ module Aws::CostExplorer
4383
5270
  :total_potential_ri_savings,
4384
5271
  :amortized_upfront_fee,
4385
5272
  :amortized_recurring_fee,
4386
- :total_amortized_fee)
5273
+ :total_amortized_fee,
5274
+ :ri_cost_for_unused_hours,
5275
+ :realized_savings,
5276
+ :unrealized_savings)
4387
5277
  SENSITIVE = []
4388
5278
  include Aws::Structure
4389
5279
  end
@@ -4812,12 +5702,17 @@ module Aws::CostExplorer
4812
5702
  # recommendation.
4813
5703
  # @return [String]
4814
5704
  #
5705
+ # @!attribute [rw] additional_metadata
5706
+ # Additional metadata that may be applicable to the recommendation.
5707
+ # @return [String]
5708
+ #
4815
5709
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/RightsizingRecommendationMetadata AWS API Documentation
4816
5710
  #
4817
5711
  class RightsizingRecommendationMetadata < Struct.new(
4818
5712
  :recommendation_id,
4819
5713
  :generation_timestamp,
4820
- :lookback_period_in_days)
5714
+ :lookback_period_in_days,
5715
+ :additional_metadata)
4821
5716
  SENSITIVE = []
4822
5717
  include Aws::Structure
4823
5718
  end
@@ -4925,7 +5820,7 @@ module Aws::CostExplorer
4925
5820
  # @return [Types::SavingsPlansCoverageData]
4926
5821
  #
4927
5822
  # @!attribute [rw] time_period
4928
- # The time period that you want the usage and costs for.
5823
+ # The time period of the request.
4929
5824
  # @return [Types::DateInterval]
4930
5825
  #
4931
5826
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansCoverage AWS API Documentation
@@ -5340,7 +6235,7 @@ module Aws::CostExplorer
5340
6235
  # The amount of Savings Plans utilization, in hours.
5341
6236
  #
5342
6237
  # @!attribute [rw] time_period
5343
- # The time period that you want the usage and costs for.
6238
+ # The time period of the request.
5344
6239
  # @return [Types::DateInterval]
5345
6240
  #
5346
6241
  # @!attribute [rw] utilization
@@ -5452,6 +6347,33 @@ module Aws::CostExplorer
5452
6347
  include Aws::Structure
5453
6348
  end
5454
6349
 
6350
+ # The details of how to sort the data.
6351
+ #
6352
+ # @note When making an API call, you may pass SortDefinition
6353
+ # data as a hash:
6354
+ #
6355
+ # {
6356
+ # key: "SortDefinitionKey", # required
6357
+ # sort_order: "ASCENDING", # accepts ASCENDING, DESCENDING
6358
+ # }
6359
+ #
6360
+ # @!attribute [rw] key
6361
+ # The key by which to sort the data.
6362
+ # @return [String]
6363
+ #
6364
+ # @!attribute [rw] sort_order
6365
+ # The order in which to sort the data.
6366
+ # @return [String]
6367
+ #
6368
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SortDefinition AWS API Documentation
6369
+ #
6370
+ class SortDefinition < Struct.new(
6371
+ :key,
6372
+ :sort_order)
6373
+ SENSITIVE = []
6374
+ include Aws::Structure
6375
+ end
6376
+
5455
6377
  # The recipient of `AnomalySubscription` notifications.
5456
6378
  #
5457
6379
  # @note When making an API call, you may pass Subscriber
@@ -5488,13 +6410,20 @@ module Aws::CostExplorer
5488
6410
 
5489
6411
  # The values that are available for a tag.
5490
6412
  #
6413
+ # If `Values` and `Key` are not specified, the `ABSENT` `MatchOption` is
6414
+ # applied to all tags. That is, filtering on resources with no tags.
6415
+ #
6416
+ # If `Values` is provided and `Key` is not specified, the `ABSENT`
6417
+ # `MatchOption` is applied to the tag `Key` only. That is, filtering on
6418
+ # resources without the given tag key.
6419
+ #
5491
6420
  # @note When making an API call, you may pass TagValues
5492
6421
  # data as a hash:
5493
6422
  #
5494
6423
  # {
5495
6424
  # key: "TagKey",
5496
6425
  # values: ["Value"],
5497
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6426
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5498
6427
  # }
5499
6428
  #
5500
6429
  # @!attribute [rw] key
@@ -5726,7 +6655,7 @@ module Aws::CostExplorer
5726
6655
  # @return [String]
5727
6656
  #
5728
6657
  # @!attribute [rw] monitor_arn_list
5729
- # A list of cost anomaly subscription ARNs.
6658
+ # A list of cost anomaly monitor ARNs.
5730
6659
  # @return [Array<String>]
5731
6660
  #
5732
6661
  # @!attribute [rw] subscribers
@@ -5786,19 +6715,19 @@ module Aws::CostExplorer
5786
6715
  # # recursive Expression
5787
6716
  # },
5788
6717
  # dimensions: {
5789
- # 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
6718
+ # 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
5790
6719
  # values: ["Value"],
5791
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6720
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5792
6721
  # },
5793
6722
  # tags: {
5794
6723
  # key: "TagKey",
5795
6724
  # values: ["Value"],
5796
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6725
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5797
6726
  # },
5798
6727
  # cost_categories: {
5799
6728
  # key: "CostCategoryName",
5800
6729
  # values: ["Value"],
5801
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
6730
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
5802
6731
  # },
5803
6732
  # },
5804
6733
  # },