aws-sdk-costexplorer 1.53.0 → 1.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,6 +35,7 @@ module Aws::CostExplorer
35
35
  CostCategory = Shapes::StructureShape.new(name: 'CostCategory')
36
36
  CostCategoryMaxResults = Shapes::IntegerShape.new(name: 'CostCategoryMaxResults')
37
37
  CostCategoryName = Shapes::StringShape.new(name: 'CostCategoryName')
38
+ CostCategoryNamesList = Shapes::ListShape.new(name: 'CostCategoryNamesList')
38
39
  CostCategoryProcessingStatus = Shapes::StructureShape.new(name: 'CostCategoryProcessingStatus')
39
40
  CostCategoryProcessingStatusList = Shapes::ListShape.new(name: 'CostCategoryProcessingStatusList')
40
41
  CostCategoryReference = Shapes::StructureShape.new(name: 'CostCategoryReference')
@@ -103,6 +104,8 @@ module Aws::CostExplorer
103
104
  GetCostAndUsageResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageResponse')
104
105
  GetCostAndUsageWithResourcesRequest = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesRequest')
105
106
  GetCostAndUsageWithResourcesResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesResponse')
107
+ GetCostCategoriesRequest = Shapes::StructureShape.new(name: 'GetCostCategoriesRequest')
108
+ GetCostCategoriesResponse = Shapes::StructureShape.new(name: 'GetCostCategoriesResponse')
106
109
  GetCostForecastRequest = Shapes::StructureShape.new(name: 'GetCostForecastRequest')
107
110
  GetCostForecastResponse = Shapes::StructureShape.new(name: 'GetCostForecastResponse')
108
111
  GetDimensionValuesRequest = Shapes::StructureShape.new(name: 'GetDimensionValuesRequest')
@@ -154,6 +157,7 @@ module Aws::CostExplorer
154
157
  MetricValue = Shapes::StructureShape.new(name: 'MetricValue')
155
158
  Metrics = Shapes::MapShape.new(name: 'Metrics')
156
159
  ModifyRecommendationDetail = Shapes::StructureShape.new(name: 'ModifyRecommendationDetail')
160
+ MonitorArnList = Shapes::ListShape.new(name: 'MonitorArnList')
157
161
  MonitorDimension = Shapes::StringShape.new(name: 'MonitorDimension')
158
162
  MonitorType = Shapes::StringShape.new(name: 'MonitorType')
159
163
  NetRISavings = Shapes::StringShape.new(name: 'NetRISavings')
@@ -174,6 +178,8 @@ module Aws::CostExplorer
174
178
  PurchasedHours = Shapes::StringShape.new(name: 'PurchasedHours')
175
179
  PurchasedUnits = Shapes::StringShape.new(name: 'PurchasedUnits')
176
180
  RDSInstanceDetails = Shapes::StructureShape.new(name: 'RDSInstanceDetails')
181
+ RICostForUnusedHours = Shapes::StringShape.new(name: 'RICostForUnusedHours')
182
+ RealizedSavings = Shapes::StringShape.new(name: 'RealizedSavings')
177
183
  RecommendationTarget = Shapes::StringShape.new(name: 'RecommendationTarget')
178
184
  RedshiftInstanceDetails = Shapes::StructureShape.new(name: 'RedshiftInstanceDetails')
179
185
  RequestChangedException = Shapes::StructureShape.new(name: 'RequestChangedException')
@@ -210,6 +216,8 @@ module Aws::CostExplorer
210
216
  SavingsPlansCoverage = Shapes::StructureShape.new(name: 'SavingsPlansCoverage')
211
217
  SavingsPlansCoverageData = Shapes::StructureShape.new(name: 'SavingsPlansCoverageData')
212
218
  SavingsPlansCoverages = Shapes::ListShape.new(name: 'SavingsPlansCoverages')
219
+ SavingsPlansDataType = Shapes::StringShape.new(name: 'SavingsPlansDataType')
220
+ SavingsPlansDataTypes = Shapes::ListShape.new(name: 'SavingsPlansDataTypes')
213
221
  SavingsPlansDetails = Shapes::StructureShape.new(name: 'SavingsPlansDetails')
214
222
  SavingsPlansPurchaseRecommendation = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendation')
215
223
  SavingsPlansPurchaseRecommendationDetail = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationDetail')
@@ -226,6 +234,10 @@ module Aws::CostExplorer
226
234
  SearchString = Shapes::StringShape.new(name: 'SearchString')
227
235
  ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
228
236
  ServiceSpecification = Shapes::StructureShape.new(name: 'ServiceSpecification')
237
+ SortDefinition = Shapes::StructureShape.new(name: 'SortDefinition')
238
+ SortDefinitionKey = Shapes::StringShape.new(name: 'SortDefinitionKey')
239
+ SortDefinitions = Shapes::ListShape.new(name: 'SortDefinitions')
240
+ SortOrder = Shapes::StringShape.new(name: 'SortOrder')
229
241
  Subscriber = Shapes::StructureShape.new(name: 'Subscriber')
230
242
  SubscriberAddress = Shapes::StringShape.new(name: 'SubscriberAddress')
231
243
  SubscriberStatus = Shapes::StringShape.new(name: 'SubscriberStatus')
@@ -249,6 +261,7 @@ module Aws::CostExplorer
249
261
  TotalRunningNormalizedUnits = Shapes::StringShape.new(name: 'TotalRunningNormalizedUnits')
250
262
  UnknownMonitorException = Shapes::StructureShape.new(name: 'UnknownMonitorException')
251
263
  UnknownSubscriptionException = Shapes::StructureShape.new(name: 'UnknownSubscriptionException')
264
+ UnrealizedSavings = Shapes::StringShape.new(name: 'UnrealizedSavings')
252
265
  UnresolvableUsageUnitException = Shapes::StructureShape.new(name: 'UnresolvableUsageUnitException')
253
266
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
254
267
  UnusedUnits = Shapes::StringShape.new(name: 'UnusedUnits')
@@ -303,7 +316,7 @@ module Aws::CostExplorer
303
316
 
304
317
  AnomalySubscription.add_member(:subscription_arn, Shapes::ShapeRef.new(shape: GenericString, location_name: "SubscriptionArn"))
305
318
  AnomalySubscription.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
306
- AnomalySubscription.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: Values, required: true, location_name: "MonitorArnList"))
319
+ AnomalySubscription.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: MonitorArnList, required: true, location_name: "MonitorArnList"))
307
320
  AnomalySubscription.add_member(:subscribers, Shapes::ShapeRef.new(shape: Subscribers, required: true, location_name: "Subscribers"))
308
321
  AnomalySubscription.add_member(:threshold, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, required: true, location_name: "Threshold"))
309
322
  AnomalySubscription.add_member(:frequency, Shapes::ShapeRef.new(shape: AnomalySubscriptionFrequency, required: true, location_name: "Frequency"))
@@ -327,6 +340,8 @@ module Aws::CostExplorer
327
340
  CostCategory.add_member(:processing_status, Shapes::ShapeRef.new(shape: CostCategoryProcessingStatusList, location_name: "ProcessingStatus"))
328
341
  CostCategory.struct_class = Types::CostCategory
329
342
 
343
+ CostCategoryNamesList.member = Shapes::ShapeRef.new(shape: CostCategoryName)
344
+
330
345
  CostCategoryProcessingStatus.add_member(:component, Shapes::ShapeRef.new(shape: CostCategoryStatusComponent, location_name: "Component"))
331
346
  CostCategoryProcessingStatus.add_member(:status, Shapes::ShapeRef.new(shape: CostCategoryStatus, location_name: "Status"))
332
347
  CostCategoryProcessingStatus.struct_class = Types::CostCategoryProcessingStatus
@@ -571,6 +586,7 @@ module Aws::CostExplorer
571
586
  GetCostAndUsageResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
572
587
  GetCostAndUsageResponse.add_member(:group_definitions, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupDefinitions"))
573
588
  GetCostAndUsageResponse.add_member(:results_by_time, Shapes::ShapeRef.new(shape: ResultsByTime, location_name: "ResultsByTime"))
589
+ GetCostAndUsageResponse.add_member(:dimension_value_attributes, Shapes::ShapeRef.new(shape: DimensionValuesWithAttributesList, location_name: "DimensionValueAttributes"))
574
590
  GetCostAndUsageResponse.struct_class = Types::GetCostAndUsageResponse
575
591
 
576
592
  GetCostAndUsageWithResourcesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
@@ -584,8 +600,25 @@ module Aws::CostExplorer
584
600
  GetCostAndUsageWithResourcesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
585
601
  GetCostAndUsageWithResourcesResponse.add_member(:group_definitions, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupDefinitions"))
586
602
  GetCostAndUsageWithResourcesResponse.add_member(:results_by_time, Shapes::ShapeRef.new(shape: ResultsByTime, location_name: "ResultsByTime"))
603
+ GetCostAndUsageWithResourcesResponse.add_member(:dimension_value_attributes, Shapes::ShapeRef.new(shape: DimensionValuesWithAttributesList, location_name: "DimensionValueAttributes"))
587
604
  GetCostAndUsageWithResourcesResponse.struct_class = Types::GetCostAndUsageWithResourcesResponse
588
605
 
606
+ GetCostCategoriesRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
607
+ GetCostCategoriesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
608
+ GetCostCategoriesRequest.add_member(:cost_category_name, Shapes::ShapeRef.new(shape: CostCategoryName, location_name: "CostCategoryName"))
609
+ GetCostCategoriesRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
610
+ GetCostCategoriesRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
611
+ GetCostCategoriesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
612
+ GetCostCategoriesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
613
+ GetCostCategoriesRequest.struct_class = Types::GetCostCategoriesRequest
614
+
615
+ GetCostCategoriesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
616
+ GetCostCategoriesResponse.add_member(:cost_category_names, Shapes::ShapeRef.new(shape: CostCategoryNamesList, location_name: "CostCategoryNames"))
617
+ GetCostCategoriesResponse.add_member(:cost_category_values, Shapes::ShapeRef.new(shape: CostCategoryValuesList, location_name: "CostCategoryValues"))
618
+ GetCostCategoriesResponse.add_member(:return_size, Shapes::ShapeRef.new(shape: PageSize, required: true, location_name: "ReturnSize"))
619
+ GetCostCategoriesResponse.add_member(:total_size, Shapes::ShapeRef.new(shape: PageSize, required: true, location_name: "TotalSize"))
620
+ GetCostCategoriesResponse.struct_class = Types::GetCostCategoriesResponse
621
+
589
622
  GetCostForecastRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
590
623
  GetCostForecastRequest.add_member(:metric, Shapes::ShapeRef.new(shape: Metric, required: true, location_name: "Metric"))
591
624
  GetCostForecastRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, required: true, location_name: "Granularity"))
@@ -601,6 +634,9 @@ module Aws::CostExplorer
601
634
  GetDimensionValuesRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
602
635
  GetDimensionValuesRequest.add_member(:dimension, Shapes::ShapeRef.new(shape: Dimension, required: true, location_name: "Dimension"))
603
636
  GetDimensionValuesRequest.add_member(:context, Shapes::ShapeRef.new(shape: Context, location_name: "Context"))
637
+ GetDimensionValuesRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
638
+ GetDimensionValuesRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
639
+ GetDimensionValuesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
604
640
  GetDimensionValuesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
605
641
  GetDimensionValuesRequest.struct_class = Types::GetDimensionValuesRequest
606
642
 
@@ -616,6 +652,8 @@ module Aws::CostExplorer
616
652
  GetReservationCoverageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
617
653
  GetReservationCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
618
654
  GetReservationCoverageRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
655
+ GetReservationCoverageRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
656
+ GetReservationCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
619
657
  GetReservationCoverageRequest.struct_class = Types::GetReservationCoverageRequest
620
658
 
621
659
  GetReservationCoverageResponse.add_member(:coverages_by_time, Shapes::ShapeRef.new(shape: CoveragesByTime, required: true, location_name: "CoveragesByTime"))
@@ -625,6 +663,7 @@ module Aws::CostExplorer
625
663
 
626
664
  GetReservationPurchaseRecommendationRequest.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
627
665
  GetReservationPurchaseRecommendationRequest.add_member(:service, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "Service"))
666
+ GetReservationPurchaseRecommendationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
628
667
  GetReservationPurchaseRecommendationRequest.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
629
668
  GetReservationPurchaseRecommendationRequest.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
630
669
  GetReservationPurchaseRecommendationRequest.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
@@ -643,7 +682,9 @@ module Aws::CostExplorer
643
682
  GetReservationUtilizationRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
644
683
  GetReservationUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
645
684
  GetReservationUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
685
+ GetReservationUtilizationRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
646
686
  GetReservationUtilizationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
687
+ GetReservationUtilizationRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
647
688
  GetReservationUtilizationRequest.struct_class = Types::GetReservationUtilizationRequest
648
689
 
649
690
  GetReservationUtilizationResponse.add_member(:utilizations_by_time, Shapes::ShapeRef.new(shape: UtilizationsByTime, required: true, location_name: "UtilizationsByTime"))
@@ -672,6 +713,7 @@ module Aws::CostExplorer
672
713
  GetSavingsPlansCoverageRequest.add_member(:metrics, Shapes::ShapeRef.new(shape: MetricNames, location_name: "Metrics"))
673
714
  GetSavingsPlansCoverageRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
674
715
  GetSavingsPlansCoverageRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
716
+ GetSavingsPlansCoverageRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
675
717
  GetSavingsPlansCoverageRequest.struct_class = Types::GetSavingsPlansCoverageRequest
676
718
 
677
719
  GetSavingsPlansCoverageResponse.add_member(:savings_plans_coverages, Shapes::ShapeRef.new(shape: SavingsPlansCoverages, required: true, location_name: "SavingsPlansCoverages"))
@@ -695,8 +737,10 @@ module Aws::CostExplorer
695
737
 
696
738
  GetSavingsPlansUtilizationDetailsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
697
739
  GetSavingsPlansUtilizationDetailsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
740
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:data_type, Shapes::ShapeRef.new(shape: SavingsPlansDataTypes, location_name: "DataType"))
698
741
  GetSavingsPlansUtilizationDetailsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
699
742
  GetSavingsPlansUtilizationDetailsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
743
+ GetSavingsPlansUtilizationDetailsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
700
744
  GetSavingsPlansUtilizationDetailsRequest.struct_class = Types::GetSavingsPlansUtilizationDetailsRequest
701
745
 
702
746
  GetSavingsPlansUtilizationDetailsResponse.add_member(:savings_plans_utilization_details, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationDetails, required: true, location_name: "SavingsPlansUtilizationDetails"))
@@ -708,6 +752,7 @@ module Aws::CostExplorer
708
752
  GetSavingsPlansUtilizationRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
709
753
  GetSavingsPlansUtilizationRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
710
754
  GetSavingsPlansUtilizationRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
755
+ GetSavingsPlansUtilizationRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinition, location_name: "SortBy"))
711
756
  GetSavingsPlansUtilizationRequest.struct_class = Types::GetSavingsPlansUtilizationRequest
712
757
 
713
758
  GetSavingsPlansUtilizationResponse.add_member(:savings_plans_utilizations_by_time, Shapes::ShapeRef.new(shape: SavingsPlansUtilizationsByTime, location_name: "SavingsPlansUtilizationsByTime"))
@@ -717,6 +762,9 @@ module Aws::CostExplorer
717
762
  GetTagsRequest.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, location_name: "SearchString"))
718
763
  GetTagsRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
719
764
  GetTagsRequest.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, location_name: "TagKey"))
765
+ GetTagsRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
766
+ GetTagsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: SortDefinitions, location_name: "SortBy"))
767
+ GetTagsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
720
768
  GetTagsRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
721
769
  GetTagsRequest.struct_class = Types::GetTagsRequest
722
770
 
@@ -791,6 +839,8 @@ module Aws::CostExplorer
791
839
  ModifyRecommendationDetail.add_member(:target_instances, Shapes::ShapeRef.new(shape: TargetInstancesList, location_name: "TargetInstances"))
792
840
  ModifyRecommendationDetail.struct_class = Types::ModifyRecommendationDetail
793
841
 
842
+ MonitorArnList.member = Shapes::ShapeRef.new(shape: Arn)
843
+
794
844
  ProvideAnomalyFeedbackRequest.add_member(:anomaly_id, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "AnomalyId"))
795
845
  ProvideAnomalyFeedbackRequest.add_member(:feedback, Shapes::ShapeRef.new(shape: AnomalyFeedbackType, required: true, location_name: "Feedback"))
796
846
  ProvideAnomalyFeedbackRequest.struct_class = Types::ProvideAnomalyFeedbackRequest
@@ -833,6 +883,9 @@ module Aws::CostExplorer
833
883
  ReservationAggregates.add_member(:amortized_upfront_fee, Shapes::ShapeRef.new(shape: AmortizedUpfrontFee, location_name: "AmortizedUpfrontFee"))
834
884
  ReservationAggregates.add_member(:amortized_recurring_fee, Shapes::ShapeRef.new(shape: AmortizedRecurringFee, location_name: "AmortizedRecurringFee"))
835
885
  ReservationAggregates.add_member(:total_amortized_fee, Shapes::ShapeRef.new(shape: TotalAmortizedFee, location_name: "TotalAmortizedFee"))
886
+ ReservationAggregates.add_member(:ri_cost_for_unused_hours, Shapes::ShapeRef.new(shape: RICostForUnusedHours, location_name: "RICostForUnusedHours"))
887
+ ReservationAggregates.add_member(:realized_savings, Shapes::ShapeRef.new(shape: RealizedSavings, location_name: "RealizedSavings"))
888
+ ReservationAggregates.add_member(:unrealized_savings, Shapes::ShapeRef.new(shape: UnrealizedSavings, location_name: "UnrealizedSavings"))
836
889
  ReservationAggregates.struct_class = Types::ReservationAggregates
837
890
 
838
891
  ReservationCoverageGroup.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "Attributes"))
@@ -925,6 +978,7 @@ module Aws::CostExplorer
925
978
  RightsizingRecommendationMetadata.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "RecommendationId"))
926
979
  RightsizingRecommendationMetadata.add_member(:generation_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "GenerationTimestamp"))
927
980
  RightsizingRecommendationMetadata.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
981
+ RightsizingRecommendationMetadata.add_member(:additional_metadata, Shapes::ShapeRef.new(shape: GenericString, location_name: "AdditionalMetadata"))
928
982
  RightsizingRecommendationMetadata.struct_class = Types::RightsizingRecommendationMetadata
929
983
 
930
984
  RightsizingRecommendationSummary.add_member(:total_recommendation_count, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalRecommendationCount"))
@@ -959,6 +1013,8 @@ module Aws::CostExplorer
959
1013
 
960
1014
  SavingsPlansCoverages.member = Shapes::ShapeRef.new(shape: SavingsPlansCoverage)
961
1015
 
1016
+ SavingsPlansDataTypes.member = Shapes::ShapeRef.new(shape: SavingsPlansDataType)
1017
+
962
1018
  SavingsPlansDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
963
1019
  SavingsPlansDetails.add_member(:instance_family, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceFamily"))
964
1020
  SavingsPlansDetails.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
@@ -1049,6 +1105,12 @@ module Aws::CostExplorer
1049
1105
  ServiceSpecification.add_member(:ec2_specification, Shapes::ShapeRef.new(shape: EC2Specification, location_name: "EC2Specification"))
1050
1106
  ServiceSpecification.struct_class = Types::ServiceSpecification
1051
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
+
1052
1114
  Subscriber.add_member(:address, Shapes::ShapeRef.new(shape: SubscriberAddress, location_name: "Address"))
1053
1115
  Subscriber.add_member(:type, Shapes::ShapeRef.new(shape: SubscriberType, location_name: "Type"))
1054
1116
  Subscriber.add_member(:status, Shapes::ShapeRef.new(shape: SubscriberStatus, location_name: "Status"))
@@ -1103,7 +1165,7 @@ module Aws::CostExplorer
1103
1165
  UpdateAnomalySubscriptionRequest.add_member(:subscription_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "SubscriptionArn"))
1104
1166
  UpdateAnomalySubscriptionRequest.add_member(:threshold, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, location_name: "Threshold"))
1105
1167
  UpdateAnomalySubscriptionRequest.add_member(:frequency, Shapes::ShapeRef.new(shape: AnomalySubscriptionFrequency, location_name: "Frequency"))
1106
- UpdateAnomalySubscriptionRequest.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: Values, location_name: "MonitorArnList"))
1168
+ UpdateAnomalySubscriptionRequest.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: MonitorArnList, location_name: "MonitorArnList"))
1107
1169
  UpdateAnomalySubscriptionRequest.add_member(:subscribers, Shapes::ShapeRef.new(shape: Subscribers, location_name: "Subscribers"))
1108
1170
  UpdateAnomalySubscriptionRequest.add_member(:subscription_name, Shapes::ShapeRef.new(shape: GenericString, location_name: "SubscriptionName"))
1109
1171
  UpdateAnomalySubscriptionRequest.struct_class = Types::UpdateAnomalySubscriptionRequest
@@ -1276,6 +1338,19 @@ module Aws::CostExplorer
1276
1338
  o.errors << Shapes::ShapeRef.new(shape: RequestChangedException)
1277
1339
  end)
1278
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
+
1279
1354
  api.add_operation(:get_cost_forecast, Seahorse::Model::Operation.new.tap do |o|
1280
1355
  o.name = "GetCostForecast"
1281
1356
  o.http_method = "POST"
@@ -125,19 +125,19 @@ module Aws::CostExplorer
125
125
  # # recursive Expression
126
126
  # },
127
127
  # dimensions: {
128
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
128
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
129
129
  # values: ["Value"],
130
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
130
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
131
131
  # },
132
132
  # tags: {
133
133
  # key: "TagKey",
134
134
  # values: ["Value"],
135
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
135
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
136
136
  # },
137
137
  # cost_categories: {
138
138
  # key: "CostCategoryName",
139
139
  # values: ["Value"],
140
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
140
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
141
141
  # },
142
142
  # },
143
143
  # dimensional_value_count: 1,
@@ -213,12 +213,16 @@ module Aws::CostExplorer
213
213
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
214
214
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
215
215
  #
216
- # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and
217
- # NOT is not supported. OR is not supported between different
216
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR
217
+ # and NOT is not supported. OR is not supported between different
218
218
  # dimensions, or dimensions and tags. NOT operators aren't supported.
219
219
  # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
220
220
  # `RIGHTSIZING_TYPE`.
221
221
  #
222
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
223
+ # supported. AND and OR are not supported. Dimensions are limited to
224
+ # `LINKED_ACCOUNT`.
225
+ #
222
226
  # </note>
223
227
  # @return [Types::Expression]
224
228
  #
@@ -273,7 +277,7 @@ module Aws::CostExplorer
273
277
  # {
274
278
  # subscription_arn: "GenericString",
275
279
  # account_id: "GenericString",
276
- # monitor_arn_list: ["Value"], # required
280
+ # monitor_arn_list: ["Arn"], # required
277
281
  # subscribers: [ # required
278
282
  # {
279
283
  # address: "SubscriberAddress",
@@ -483,19 +487,19 @@ module Aws::CostExplorer
483
487
  # # recursive Expression
484
488
  # },
485
489
  # dimensions: {
486
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
490
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
487
491
  # values: ["Value"],
488
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
492
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
489
493
  # },
490
494
  # tags: {
491
495
  # key: "TagKey",
492
496
  # values: ["Value"],
493
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
497
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
494
498
  # },
495
499
  # cost_categories: {
496
500
  # key: "CostCategoryName",
497
501
  # values: ["Value"],
498
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
502
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
499
503
  # },
500
504
  # },
501
505
  # }
@@ -537,13 +541,21 @@ module Aws::CostExplorer
537
541
 
538
542
  # The Cost Categories values used for filtering the costs.
539
543
  #
544
+ # If `Values` and `Key` are not specified, the `ABSENT` `MatchOption` is
545
+ # applied to all Cost Categories. That is, filtering on resources that
546
+ # are not mapped to any Cost Categories.
547
+ #
548
+ # If `Values` is provided and `Key` is not specified, the `ABSENT`
549
+ # `MatchOption` is applied to the Cost Categories `Key` only. That is,
550
+ # filtering on resources without the given Cost Categories key.
551
+ #
540
552
  # @note When making an API call, you may pass CostCategoryValues
541
553
  # data as a hash:
542
554
  #
543
555
  # {
544
556
  # key: "CostCategoryName",
545
557
  # values: ["Value"],
546
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
558
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
547
559
  # }
548
560
  #
549
561
  # @!attribute [rw] key
@@ -556,9 +568,9 @@ module Aws::CostExplorer
556
568
  #
557
569
  # @!attribute [rw] match_options
558
570
  # The match options that you can use to filter your results.
559
- # MatchOptions is only applicable for only applicable for actions
560
- # related to cost category. The default values for `MatchOptions` is
561
- # `EQUALS` and `CASE_SENSITIVE`.
571
+ # MatchOptions is only applicable for actions related to cost
572
+ # category. The default values for `MatchOptions` is `EQUALS` and
573
+ # `CASE_SENSITIVE`.
562
574
  # @return [Array<String>]
563
575
  #
564
576
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryValues AWS API Documentation
@@ -738,19 +750,19 @@ module Aws::CostExplorer
738
750
  # # recursive Expression
739
751
  # },
740
752
  # dimensions: {
741
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
753
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
742
754
  # values: ["Value"],
743
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
755
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
744
756
  # },
745
757
  # tags: {
746
758
  # key: "TagKey",
747
759
  # values: ["Value"],
748
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
760
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
749
761
  # },
750
762
  # cost_categories: {
751
763
  # key: "CostCategoryName",
752
764
  # values: ["Value"],
753
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
765
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
754
766
  # },
755
767
  # },
756
768
  # dimensional_value_count: 1,
@@ -789,7 +801,7 @@ module Aws::CostExplorer
789
801
  # anomaly_subscription: { # required
790
802
  # subscription_arn: "GenericString",
791
803
  # account_id: "GenericString",
792
- # monitor_arn_list: ["Value"], # required
804
+ # monitor_arn_list: ["Arn"], # required
793
805
  # subscribers: [ # required
794
806
  # {
795
807
  # address: "SubscriberAddress",
@@ -852,19 +864,19 @@ module Aws::CostExplorer
852
864
  # # recursive Expression
853
865
  # },
854
866
  # dimensions: {
855
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
867
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
856
868
  # values: ["Value"],
857
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
869
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
858
870
  # },
859
871
  # tags: {
860
872
  # key: "TagKey",
861
873
  # values: ["Value"],
862
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
874
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
863
875
  # },
864
876
  # cost_categories: {
865
877
  # key: "CostCategoryName",
866
878
  # values: ["Value"],
867
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
879
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
868
880
  # },
869
881
  # },
870
882
  # },
@@ -998,7 +1010,7 @@ module Aws::CostExplorer
998
1010
  include Aws::Structure
999
1011
  end
1000
1012
 
1001
- # The time period that you want the usage and costs for.
1013
+ # The time period of the request.
1002
1014
  #
1003
1015
  # @note When making an API call, you may pass DateInterval
1004
1016
  # data as a hash:
@@ -1009,17 +1021,17 @@ module Aws::CostExplorer
1009
1021
  # }
1010
1022
  #
1011
1023
  # @!attribute [rw] start
1012
- # The beginning of the time period that you want the usage and costs
1013
- # for. The start date is inclusive. For example, if `start` is
1014
- # `2017-01-01`, AWS retrieves cost and usage data starting at
1015
- # `2017-01-01` up to the end date.
1024
+ # The beginning of the time period. The start date is inclusive. For
1025
+ # example, if `start` is `2017-01-01`, AWS retrieves cost and usage
1026
+ # data starting at `2017-01-01` up to the end date. The start date
1027
+ # must be equal to or no later than the current date to avoid a
1028
+ # validation error.
1016
1029
  # @return [String]
1017
1030
  #
1018
1031
  # @!attribute [rw] end
1019
- # The end of the time period that you want the usage and costs for.
1020
- # The end date is exclusive. For example, if `end` is `2017-05-01`,
1021
- # AWS retrieves cost and usage data from the start date up to, but not
1022
- # including, `2017-05-01`.
1032
+ # The end of the time period. The end date is exclusive. For example,
1033
+ # if `end` is `2017-05-01`, AWS retrieves cost and usage data from the
1034
+ # start date up to, but not including, `2017-05-01`.
1023
1035
  # @return [String]
1024
1036
  #
1025
1037
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DateInterval AWS API Documentation
@@ -1162,9 +1174,9 @@ module Aws::CostExplorer
1162
1174
  # data as a hash:
1163
1175
  #
1164
1176
  # {
1165
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1177
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1166
1178
  # values: ["Value"],
1167
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1179
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1168
1180
  # }
1169
1181
  #
1170
1182
  # @!attribute [rw] key
@@ -1523,10 +1535,15 @@ module Aws::CostExplorer
1523
1535
  # ` \{ "And": [ ... ], "DimensionValues": \{ "Dimension":
1524
1536
  # "USAGE_TYPE", "Values": [ "DataTransfer" ] \} \} `
1525
1537
  #
1526
- # <note markdown="1"> For `GetRightsizingRecommendation` action, a combination of OR and NOT
1527
- # is not supported. OR is not supported between different dimensions, or
1528
- # dimensions and tags. NOT operators aren't supported. Dimensions are
1529
- # also limited to `LINKED_ACCOUNT`, `REGION`, or `RIGHTSIZING_TYPE`.
1538
+ # <note markdown="1"> For the `GetRightsizingRecommendation` action, a combination of OR and
1539
+ # NOT is not supported. OR is not supported between different
1540
+ # dimensions, or dimensions and tags. NOT operators aren't supported.
1541
+ # Dimensions are also limited to `LINKED_ACCOUNT`, `REGION`, or
1542
+ # `RIGHTSIZING_TYPE`.
1543
+ #
1544
+ # For the `GetReservationPurchaseRecommendation` action, only NOT is
1545
+ # supported. AND and OR are not supported. Dimensions are limited to
1546
+ # `LINKED_ACCOUNT`.
1530
1547
  #
1531
1548
  # </note>
1532
1549
  #
@@ -1546,19 +1563,19 @@ module Aws::CostExplorer
1546
1563
  # # recursive Expression
1547
1564
  # },
1548
1565
  # dimensions: {
1549
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1566
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1550
1567
  # values: ["Value"],
1551
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1568
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1552
1569
  # },
1553
1570
  # tags: {
1554
1571
  # key: "TagKey",
1555
1572
  # values: ["Value"],
1556
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1573
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1557
1574
  # },
1558
1575
  # cost_categories: {
1559
1576
  # key: "CostCategoryName",
1560
1577
  # values: ["Value"],
1561
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1578
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1562
1579
  # },
1563
1580
  # },
1564
1581
  # ],
@@ -1574,19 +1591,19 @@ module Aws::CostExplorer
1574
1591
  # # recursive Expression
1575
1592
  # },
1576
1593
  # dimensions: {
1577
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1594
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1578
1595
  # values: ["Value"],
1579
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1596
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1580
1597
  # },
1581
1598
  # tags: {
1582
1599
  # key: "TagKey",
1583
1600
  # values: ["Value"],
1584
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1601
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1585
1602
  # },
1586
1603
  # cost_categories: {
1587
1604
  # key: "CostCategoryName",
1588
1605
  # values: ["Value"],
1589
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1606
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1590
1607
  # },
1591
1608
  # },
1592
1609
  # ],
@@ -1605,35 +1622,35 @@ module Aws::CostExplorer
1605
1622
  # # recursive Expression
1606
1623
  # },
1607
1624
  # dimensions: {
1608
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1625
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1609
1626
  # values: ["Value"],
1610
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1627
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1611
1628
  # },
1612
1629
  # tags: {
1613
1630
  # key: "TagKey",
1614
1631
  # values: ["Value"],
1615
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1632
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1616
1633
  # },
1617
1634
  # cost_categories: {
1618
1635
  # key: "CostCategoryName",
1619
1636
  # values: ["Value"],
1620
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1637
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1621
1638
  # },
1622
1639
  # },
1623
1640
  # dimensions: {
1624
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1641
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1625
1642
  # values: ["Value"],
1626
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1643
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1627
1644
  # },
1628
1645
  # tags: {
1629
1646
  # key: "TagKey",
1630
1647
  # values: ["Value"],
1631
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1648
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1632
1649
  # },
1633
1650
  # cost_categories: {
1634
1651
  # key: "CostCategoryName",
1635
1652
  # values: ["Value"],
1636
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1653
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1637
1654
  # },
1638
1655
  # }
1639
1656
  #
@@ -1922,19 +1939,19 @@ module Aws::CostExplorer
1922
1939
  # # recursive Expression
1923
1940
  # },
1924
1941
  # dimensions: {
1925
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
1942
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
1926
1943
  # values: ["Value"],
1927
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1944
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1928
1945
  # },
1929
1946
  # tags: {
1930
1947
  # key: "TagKey",
1931
1948
  # values: ["Value"],
1932
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1949
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1933
1950
  # },
1934
1951
  # cost_categories: {
1935
1952
  # key: "CostCategoryName",
1936
1953
  # values: ["Value"],
1937
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1954
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
1938
1955
  # },
1939
1956
  # },
1940
1957
  # metrics: ["MetricName"], # required
@@ -2045,12 +2062,19 @@ module Aws::CostExplorer
2045
2062
  # The time period that is covered by the results in the response.
2046
2063
  # @return [Array<Types::ResultByTime>]
2047
2064
  #
2065
+ # @!attribute [rw] dimension_value_attributes
2066
+ # The attributes that apply to a specific dimension value. For
2067
+ # example, if the value is a linked account, the attribute is that
2068
+ # account name.
2069
+ # @return [Array<Types::DimensionValuesWithAttributes>]
2070
+ #
2048
2071
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageResponse AWS API Documentation
2049
2072
  #
2050
2073
  class GetCostAndUsageResponse < Struct.new(
2051
2074
  :next_page_token,
2052
2075
  :group_definitions,
2053
- :results_by_time)
2076
+ :results_by_time,
2077
+ :dimension_value_attributes)
2054
2078
  SENSITIVE = []
2055
2079
  include Aws::Structure
2056
2080
  end
@@ -2079,19 +2103,19 @@ module Aws::CostExplorer
2079
2103
  # # recursive Expression
2080
2104
  # },
2081
2105
  # dimensions: {
2082
- # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
2106
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION, AGREEMENT_END_DATE_TIME_AFTER, AGREEMENT_END_DATE_TIME_BEFORE
2083
2107
  # values: ["Value"],
2084
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2108
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2085
2109
  # },
2086
2110
  # tags: {
2087
2111
  # key: "TagKey",
2088
2112
  # values: ["Value"],
2089
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2113
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2090
2114
  # },
2091
2115
  # cost_categories: {
2092
2116
  # key: "CostCategoryName",
2093
2117
  # values: ["Value"],
2094
- # match_options: ["EQUALS"], # accepts EQUALS, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2118
+ # match_options: ["EQUALS"], # accepts EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE
2095
2119
  # },
2096
2120
  # },
2097
2121
  # metrics: ["MetricName"],
@@ -2202,12 +2226,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
@@ -5701,7 +6630,7 @@ module Aws::CostExplorer
5701
6630
  # subscription_arn: "GenericString", # required
5702
6631
  # threshold: 1.0,
5703
6632
  # frequency: "DAILY", # accepts DAILY, IMMEDIATE, WEEKLY
5704
- # monitor_arn_list: ["Value"],
6633
+ # monitor_arn_list: ["Arn"],
5705
6634
  # subscribers: [
5706
6635
  # {
5707
6636
  # address: "SubscriberAddress",
@@ -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
  # },