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