aws-sdk-costexplorer 1.69.0 → 1.92.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.
@@ -32,6 +32,14 @@ module Aws::CostExplorer
32
32
  Attributes = Shapes::MapShape.new(name: 'Attributes')
33
33
  BillExpirationException = Shapes::StructureShape.new(name: 'BillExpirationException')
34
34
  Context = Shapes::StringShape.new(name: 'Context')
35
+ CostAllocationTag = Shapes::StructureShape.new(name: 'CostAllocationTag')
36
+ CostAllocationTagKeyList = Shapes::ListShape.new(name: 'CostAllocationTagKeyList')
37
+ CostAllocationTagList = Shapes::ListShape.new(name: 'CostAllocationTagList')
38
+ CostAllocationTagStatus = Shapes::StringShape.new(name: 'CostAllocationTagStatus')
39
+ CostAllocationTagStatusEntry = Shapes::StructureShape.new(name: 'CostAllocationTagStatusEntry')
40
+ CostAllocationTagStatusList = Shapes::ListShape.new(name: 'CostAllocationTagStatusList')
41
+ CostAllocationTagType = Shapes::StringShape.new(name: 'CostAllocationTagType')
42
+ CostAllocationTagsMaxResults = Shapes::IntegerShape.new(name: 'CostAllocationTagsMaxResults')
35
43
  CostCategory = Shapes::StructureShape.new(name: 'CostCategory')
36
44
  CostCategoryInheritedValueDimension = Shapes::StructureShape.new(name: 'CostCategoryInheritedValueDimension')
37
45
  CostCategoryInheritedValueDimensionName = Shapes::StringShape.new(name: 'CostCategoryInheritedValueDimensionName')
@@ -105,6 +113,10 @@ module Aws::CostExplorer
105
113
  FindingReasonCodes = Shapes::ListShape.new(name: 'FindingReasonCodes')
106
114
  ForecastResult = Shapes::StructureShape.new(name: 'ForecastResult')
107
115
  ForecastResultsByTime = Shapes::ListShape.new(name: 'ForecastResultsByTime')
116
+ GenerationExistsException = Shapes::StructureShape.new(name: 'GenerationExistsException')
117
+ GenerationStatus = Shapes::StringShape.new(name: 'GenerationStatus')
118
+ GenerationSummary = Shapes::StructureShape.new(name: 'GenerationSummary')
119
+ GenerationSummaryList = Shapes::ListShape.new(name: 'GenerationSummaryList')
108
120
  GenericBoolean = Shapes::BooleanShape.new(name: 'GenericBoolean')
109
121
  GenericDouble = Shapes::FloatShape.new(name: 'GenericDouble')
110
122
  GenericString = Shapes::StringShape.new(name: 'GenericString')
@@ -132,6 +144,8 @@ module Aws::CostExplorer
132
144
  GetReservationUtilizationResponse = Shapes::StructureShape.new(name: 'GetReservationUtilizationResponse')
133
145
  GetRightsizingRecommendationRequest = Shapes::StructureShape.new(name: 'GetRightsizingRecommendationRequest')
134
146
  GetRightsizingRecommendationResponse = Shapes::StructureShape.new(name: 'GetRightsizingRecommendationResponse')
147
+ GetSavingsPlanPurchaseRecommendationDetailsRequest = Shapes::StructureShape.new(name: 'GetSavingsPlanPurchaseRecommendationDetailsRequest')
148
+ GetSavingsPlanPurchaseRecommendationDetailsResponse = Shapes::StructureShape.new(name: 'GetSavingsPlanPurchaseRecommendationDetailsResponse')
135
149
  GetSavingsPlansCoverageRequest = Shapes::StructureShape.new(name: 'GetSavingsPlansCoverageRequest')
136
150
  GetSavingsPlansCoverageResponse = Shapes::StructureShape.new(name: 'GetSavingsPlansCoverageResponse')
137
151
  GetSavingsPlansPurchaseRecommendationRequest = Shapes::StructureShape.new(name: 'GetSavingsPlansPurchaseRecommendationRequest')
@@ -157,12 +171,19 @@ module Aws::CostExplorer
157
171
  Key = Shapes::StringShape.new(name: 'Key')
158
172
  Keys = Shapes::ListShape.new(name: 'Keys')
159
173
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
174
+ ListCostAllocationTagsRequest = Shapes::StructureShape.new(name: 'ListCostAllocationTagsRequest')
175
+ ListCostAllocationTagsResponse = Shapes::StructureShape.new(name: 'ListCostAllocationTagsResponse')
160
176
  ListCostCategoryDefinitionsRequest = Shapes::StructureShape.new(name: 'ListCostCategoryDefinitionsRequest')
161
177
  ListCostCategoryDefinitionsResponse = Shapes::StructureShape.new(name: 'ListCostCategoryDefinitionsResponse')
178
+ ListSavingsPlansPurchaseRecommendationGenerationRequest = Shapes::StructureShape.new(name: 'ListSavingsPlansPurchaseRecommendationGenerationRequest')
179
+ ListSavingsPlansPurchaseRecommendationGenerationResponse = Shapes::StructureShape.new(name: 'ListSavingsPlansPurchaseRecommendationGenerationResponse')
180
+ ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
181
+ ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
162
182
  LookbackPeriodInDays = Shapes::StringShape.new(name: 'LookbackPeriodInDays')
163
183
  MatchOption = Shapes::StringShape.new(name: 'MatchOption')
164
184
  MatchOptions = Shapes::ListShape.new(name: 'MatchOptions')
165
185
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
186
+ MemoryDBInstanceDetails = Shapes::StructureShape.new(name: 'MemoryDBInstanceDetails')
166
187
  Metric = Shapes::StringShape.new(name: 'Metric')
167
188
  MetricAmount = Shapes::StringShape.new(name: 'MetricAmount')
168
189
  MetricName = Shapes::StringShape.new(name: 'MetricName')
@@ -170,6 +191,7 @@ module Aws::CostExplorer
170
191
  MetricUnit = Shapes::StringShape.new(name: 'MetricUnit')
171
192
  MetricValue = Shapes::StructureShape.new(name: 'MetricValue')
172
193
  Metrics = Shapes::MapShape.new(name: 'Metrics')
194
+ MetricsOverLookbackPeriod = Shapes::ListShape.new(name: 'MetricsOverLookbackPeriod')
173
195
  ModifyRecommendationDetail = Shapes::StructureShape.new(name: 'ModifyRecommendationDetail')
174
196
  MonitorArnList = Shapes::ListShape.new(name: 'MonitorArnList')
175
197
  MonitorDimension = Shapes::StringShape.new(name: 'MonitorDimension')
@@ -197,6 +219,11 @@ module Aws::CostExplorer
197
219
  RDSInstanceDetails = Shapes::StructureShape.new(name: 'RDSInstanceDetails')
198
220
  RICostForUnusedHours = Shapes::StringShape.new(name: 'RICostForUnusedHours')
199
221
  RealizedSavings = Shapes::StringShape.new(name: 'RealizedSavings')
222
+ RecommendationDetailData = Shapes::StructureShape.new(name: 'RecommendationDetailData')
223
+ RecommendationDetailHourlyMetrics = Shapes::StructureShape.new(name: 'RecommendationDetailHourlyMetrics')
224
+ RecommendationDetailId = Shapes::StringShape.new(name: 'RecommendationDetailId')
225
+ RecommendationId = Shapes::StringShape.new(name: 'RecommendationId')
226
+ RecommendationIdList = Shapes::ListShape.new(name: 'RecommendationIdList')
200
227
  RecommendationTarget = Shapes::StringShape.new(name: 'RecommendationTarget')
201
228
  RedshiftInstanceDetails = Shapes::StructureShape.new(name: 'RedshiftInstanceDetails')
202
229
  RequestChangedException = Shapes::StructureShape.new(name: 'RequestChangedException')
@@ -217,6 +244,11 @@ module Aws::CostExplorer
217
244
  ReservedNormalizedUnits = Shapes::StringShape.new(name: 'ReservedNormalizedUnits')
218
245
  ResourceDetails = Shapes::StructureShape.new(name: 'ResourceDetails')
219
246
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
247
+ ResourceTag = Shapes::StructureShape.new(name: 'ResourceTag')
248
+ ResourceTagKey = Shapes::StringShape.new(name: 'ResourceTagKey')
249
+ ResourceTagKeyList = Shapes::ListShape.new(name: 'ResourceTagKeyList')
250
+ ResourceTagList = Shapes::ListShape.new(name: 'ResourceTagList')
251
+ ResourceTagValue = Shapes::StringShape.new(name: 'ResourceTagValue')
220
252
  ResourceUtilization = Shapes::StructureShape.new(name: 'ResourceUtilization')
221
253
  ResultByTime = Shapes::StructureShape.new(name: 'ResultByTime')
222
254
  ResultsByTime = Shapes::ListShape.new(name: 'ResultsByTime')
@@ -255,6 +287,8 @@ module Aws::CostExplorer
255
287
  SortDefinitionKey = Shapes::StringShape.new(name: 'SortDefinitionKey')
256
288
  SortDefinitions = Shapes::ListShape.new(name: 'SortDefinitions')
257
289
  SortOrder = Shapes::StringShape.new(name: 'SortOrder')
290
+ StartSavingsPlansPurchaseRecommendationGenerationRequest = Shapes::StructureShape.new(name: 'StartSavingsPlansPurchaseRecommendationGenerationRequest')
291
+ StartSavingsPlansPurchaseRecommendationGenerationResponse = Shapes::StructureShape.new(name: 'StartSavingsPlansPurchaseRecommendationGenerationResponse')
258
292
  Subscriber = Shapes::StructureShape.new(name: 'Subscriber')
259
293
  SubscriberAddress = Shapes::StringShape.new(name: 'SubscriberAddress')
260
294
  SubscriberStatus = Shapes::StringShape.new(name: 'SubscriberStatus')
@@ -263,12 +297,15 @@ module Aws::CostExplorer
263
297
  SupportedSavingsPlansType = Shapes::StringShape.new(name: 'SupportedSavingsPlansType')
264
298
  TagKey = Shapes::StringShape.new(name: 'TagKey')
265
299
  TagList = Shapes::ListShape.new(name: 'TagList')
300
+ TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
301
+ TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
266
302
  TagValues = Shapes::StructureShape.new(name: 'TagValues')
267
303
  TagValuesList = Shapes::ListShape.new(name: 'TagValuesList')
268
304
  TargetInstance = Shapes::StructureShape.new(name: 'TargetInstance')
269
305
  TargetInstancesList = Shapes::ListShape.new(name: 'TargetInstancesList')
270
306
  TermInYears = Shapes::StringShape.new(name: 'TermInYears')
271
307
  TerminateRecommendationDetail = Shapes::StructureShape.new(name: 'TerminateRecommendationDetail')
308
+ TooManyTagsException = Shapes::StructureShape.new(name: 'TooManyTagsException')
272
309
  TotalActualHours = Shapes::StringShape.new(name: 'TotalActualHours')
273
310
  TotalActualUnits = Shapes::StringShape.new(name: 'TotalActualUnits')
274
311
  TotalAmortizedFee = Shapes::StringShape.new(name: 'TotalAmortizedFee')
@@ -280,12 +317,18 @@ module Aws::CostExplorer
280
317
  UnknownSubscriptionException = Shapes::StructureShape.new(name: 'UnknownSubscriptionException')
281
318
  UnrealizedSavings = Shapes::StringShape.new(name: 'UnrealizedSavings')
282
319
  UnresolvableUsageUnitException = Shapes::StructureShape.new(name: 'UnresolvableUsageUnitException')
320
+ UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
321
+ UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
283
322
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
284
323
  UnusedUnits = Shapes::StringShape.new(name: 'UnusedUnits')
285
324
  UpdateAnomalyMonitorRequest = Shapes::StructureShape.new(name: 'UpdateAnomalyMonitorRequest')
286
325
  UpdateAnomalyMonitorResponse = Shapes::StructureShape.new(name: 'UpdateAnomalyMonitorResponse')
287
326
  UpdateAnomalySubscriptionRequest = Shapes::StructureShape.new(name: 'UpdateAnomalySubscriptionRequest')
288
327
  UpdateAnomalySubscriptionResponse = Shapes::StructureShape.new(name: 'UpdateAnomalySubscriptionResponse')
328
+ UpdateCostAllocationTagsStatusError = Shapes::StructureShape.new(name: 'UpdateCostAllocationTagsStatusError')
329
+ UpdateCostAllocationTagsStatusErrors = Shapes::ListShape.new(name: 'UpdateCostAllocationTagsStatusErrors')
330
+ UpdateCostAllocationTagsStatusRequest = Shapes::StructureShape.new(name: 'UpdateCostAllocationTagsStatusRequest')
331
+ UpdateCostAllocationTagsStatusResponse = Shapes::StructureShape.new(name: 'UpdateCostAllocationTagsStatusResponse')
289
332
  UpdateCostCategoryDefinitionRequest = Shapes::StructureShape.new(name: 'UpdateCostCategoryDefinitionRequest')
290
333
  UpdateCostCategoryDefinitionResponse = Shapes::StructureShape.new(name: 'UpdateCostCategoryDefinitionResponse')
291
334
  UtilizationByTime = Shapes::StructureShape.new(name: 'UtilizationByTime')
@@ -335,9 +378,10 @@ module Aws::CostExplorer
335
378
  AnomalySubscription.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
336
379
  AnomalySubscription.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: MonitorArnList, required: true, location_name: "MonitorArnList"))
337
380
  AnomalySubscription.add_member(:subscribers, Shapes::ShapeRef.new(shape: Subscribers, required: true, location_name: "Subscribers"))
338
- AnomalySubscription.add_member(:threshold, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, required: true, location_name: "Threshold"))
381
+ AnomalySubscription.add_member(:threshold, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, deprecated: true, location_name: "Threshold", metadata: {"deprecatedMessage"=>"Threshold has been deprecated in favor of ThresholdExpression"}))
339
382
  AnomalySubscription.add_member(:frequency, Shapes::ShapeRef.new(shape: AnomalySubscriptionFrequency, required: true, location_name: "Frequency"))
340
383
  AnomalySubscription.add_member(:subscription_name, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "SubscriptionName"))
384
+ AnomalySubscription.add_member(:threshold_expression, Shapes::ShapeRef.new(shape: Expression, location_name: "ThresholdExpression"))
341
385
  AnomalySubscription.struct_class = Types::AnomalySubscription
342
386
 
343
387
  AnomalySubscriptions.member = Shapes::ShapeRef.new(shape: AnomalySubscription)
@@ -348,6 +392,23 @@ module Aws::CostExplorer
348
392
  BillExpirationException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
349
393
  BillExpirationException.struct_class = Types::BillExpirationException
350
394
 
395
+ CostAllocationTag.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "TagKey"))
396
+ CostAllocationTag.add_member(:type, Shapes::ShapeRef.new(shape: CostAllocationTagType, required: true, location_name: "Type"))
397
+ CostAllocationTag.add_member(:status, Shapes::ShapeRef.new(shape: CostAllocationTagStatus, required: true, location_name: "Status"))
398
+ CostAllocationTag.add_member(:last_updated_date, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "LastUpdatedDate"))
399
+ CostAllocationTag.add_member(:last_used_date, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "LastUsedDate"))
400
+ CostAllocationTag.struct_class = Types::CostAllocationTag
401
+
402
+ CostAllocationTagKeyList.member = Shapes::ShapeRef.new(shape: TagKey)
403
+
404
+ CostAllocationTagList.member = Shapes::ShapeRef.new(shape: CostAllocationTag)
405
+
406
+ CostAllocationTagStatusEntry.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "TagKey"))
407
+ CostAllocationTagStatusEntry.add_member(:status, Shapes::ShapeRef.new(shape: CostAllocationTagStatus, required: true, location_name: "Status"))
408
+ CostAllocationTagStatusEntry.struct_class = Types::CostAllocationTagStatusEntry
409
+
410
+ CostAllocationTagStatusList.member = Shapes::ShapeRef.new(shape: CostAllocationTagStatusEntry)
411
+
351
412
  CostCategory.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "CostCategoryArn"))
352
413
  CostCategory.add_member(:effective_start, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "EffectiveStart"))
353
414
  CostCategory.add_member(:effective_end, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveEnd"))
@@ -444,22 +505,26 @@ module Aws::CostExplorer
444
505
  CoveragesByTime.member = Shapes::ShapeRef.new(shape: CoverageByTime)
445
506
 
446
507
  CreateAnomalyMonitorRequest.add_member(:anomaly_monitor, Shapes::ShapeRef.new(shape: AnomalyMonitor, required: true, location_name: "AnomalyMonitor"))
508
+ CreateAnomalyMonitorRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, location_name: "ResourceTags"))
447
509
  CreateAnomalyMonitorRequest.struct_class = Types::CreateAnomalyMonitorRequest
448
510
 
449
511
  CreateAnomalyMonitorResponse.add_member(:monitor_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "MonitorArn"))
450
512
  CreateAnomalyMonitorResponse.struct_class = Types::CreateAnomalyMonitorResponse
451
513
 
452
514
  CreateAnomalySubscriptionRequest.add_member(:anomaly_subscription, Shapes::ShapeRef.new(shape: AnomalySubscription, required: true, location_name: "AnomalySubscription"))
515
+ CreateAnomalySubscriptionRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, location_name: "ResourceTags"))
453
516
  CreateAnomalySubscriptionRequest.struct_class = Types::CreateAnomalySubscriptionRequest
454
517
 
455
518
  CreateAnomalySubscriptionResponse.add_member(:subscription_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "SubscriptionArn"))
456
519
  CreateAnomalySubscriptionResponse.struct_class = Types::CreateAnomalySubscriptionResponse
457
520
 
458
521
  CreateCostCategoryDefinitionRequest.add_member(:name, Shapes::ShapeRef.new(shape: CostCategoryName, required: true, location_name: "Name"))
522
+ CreateCostCategoryDefinitionRequest.add_member(:effective_start, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveStart"))
459
523
  CreateCostCategoryDefinitionRequest.add_member(:rule_version, Shapes::ShapeRef.new(shape: CostCategoryRuleVersion, required: true, location_name: "RuleVersion"))
460
524
  CreateCostCategoryDefinitionRequest.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
461
525
  CreateCostCategoryDefinitionRequest.add_member(:default_value, Shapes::ShapeRef.new(shape: CostCategoryValue, location_name: "DefaultValue"))
462
526
  CreateCostCategoryDefinitionRequest.add_member(:split_charge_rules, Shapes::ShapeRef.new(shape: CostCategorySplitChargeRulesList, location_name: "SplitChargeRules"))
527
+ CreateCostCategoryDefinitionRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, location_name: "ResourceTags"))
463
528
  CreateCostCategoryDefinitionRequest.struct_class = Types::CreateCostCategoryDefinitionRequest
464
529
 
465
530
  CreateCostCategoryDefinitionResponse.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "CostCategoryArn"))
@@ -600,6 +665,18 @@ module Aws::CostExplorer
600
665
 
601
666
  ForecastResultsByTime.member = Shapes::ShapeRef.new(shape: ForecastResult)
602
667
 
668
+ GenerationExistsException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
669
+ GenerationExistsException.struct_class = Types::GenerationExistsException
670
+
671
+ GenerationSummary.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: RecommendationId, location_name: "RecommendationId"))
672
+ GenerationSummary.add_member(:generation_status, Shapes::ShapeRef.new(shape: GenerationStatus, location_name: "GenerationStatus"))
673
+ GenerationSummary.add_member(:generation_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "GenerationStartedTime"))
674
+ GenerationSummary.add_member(:generation_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "GenerationCompletionTime"))
675
+ GenerationSummary.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EstimatedCompletionTime"))
676
+ GenerationSummary.struct_class = Types::GenerationSummary
677
+
678
+ GenerationSummaryList.member = Shapes::ShapeRef.new(shape: GenerationSummary)
679
+
603
680
  GetAnomaliesRequest.add_member(:monitor_arn, Shapes::ShapeRef.new(shape: GenericString, location_name: "MonitorArn"))
604
681
  GetAnomaliesRequest.add_member(:date_interval, Shapes::ShapeRef.new(shape: AnomalyDateInterval, required: true, location_name: "DateInterval"))
605
682
  GetAnomaliesRequest.add_member(:feedback, Shapes::ShapeRef.new(shape: AnomalyFeedbackType, location_name: "Feedback"))
@@ -762,6 +839,13 @@ module Aws::CostExplorer
762
839
  GetRightsizingRecommendationResponse.add_member(:configuration, Shapes::ShapeRef.new(shape: RightsizingRecommendationConfiguration, location_name: "Configuration"))
763
840
  GetRightsizingRecommendationResponse.struct_class = Types::GetRightsizingRecommendationResponse
764
841
 
842
+ GetSavingsPlanPurchaseRecommendationDetailsRequest.add_member(:recommendation_detail_id, Shapes::ShapeRef.new(shape: RecommendationDetailId, required: true, location_name: "RecommendationDetailId"))
843
+ GetSavingsPlanPurchaseRecommendationDetailsRequest.struct_class = Types::GetSavingsPlanPurchaseRecommendationDetailsRequest
844
+
845
+ GetSavingsPlanPurchaseRecommendationDetailsResponse.add_member(:recommendation_detail_id, Shapes::ShapeRef.new(shape: RecommendationDetailId, location_name: "RecommendationDetailId"))
846
+ GetSavingsPlanPurchaseRecommendationDetailsResponse.add_member(:recommendation_detail_data, Shapes::ShapeRef.new(shape: RecommendationDetailData, location_name: "RecommendationDetailData"))
847
+ GetSavingsPlanPurchaseRecommendationDetailsResponse.struct_class = Types::GetSavingsPlanPurchaseRecommendationDetailsResponse
848
+
765
849
  GetSavingsPlansCoverageRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
766
850
  GetSavingsPlansCoverageRequest.add_member(:group_by, Shapes::ShapeRef.new(shape: GroupDefinitions, location_name: "GroupBy"))
767
851
  GetSavingsPlansCoverageRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, location_name: "Granularity"))
@@ -855,6 +939,9 @@ module Aws::CostExplorer
855
939
 
856
940
  Impact.add_member(:max_impact, Shapes::ShapeRef.new(shape: GenericDouble, required: true, location_name: "MaxImpact"))
857
941
  Impact.add_member(:total_impact, Shapes::ShapeRef.new(shape: GenericDouble, location_name: "TotalImpact"))
942
+ Impact.add_member(:total_actual_spend, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, location_name: "TotalActualSpend"))
943
+ Impact.add_member(:total_expected_spend, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, location_name: "TotalExpectedSpend"))
944
+ Impact.add_member(:total_impact_percentage, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, location_name: "TotalImpactPercentage"))
858
945
  Impact.struct_class = Types::Impact
859
946
 
860
947
  InstanceDetails.add_member(:ec2_instance_details, Shapes::ShapeRef.new(shape: EC2InstanceDetails, location_name: "EC2InstanceDetails"))
@@ -862,6 +949,7 @@ module Aws::CostExplorer
862
949
  InstanceDetails.add_member(:redshift_instance_details, Shapes::ShapeRef.new(shape: RedshiftInstanceDetails, location_name: "RedshiftInstanceDetails"))
863
950
  InstanceDetails.add_member(:elasticache_instance_details, Shapes::ShapeRef.new(shape: ElastiCacheInstanceDetails, location_name: "ElastiCacheInstanceDetails"))
864
951
  InstanceDetails.add_member(:es_instance_details, Shapes::ShapeRef.new(shape: ESInstanceDetails, location_name: "ESInstanceDetails"))
952
+ InstanceDetails.add_member(:memory_db_instance_details, Shapes::ShapeRef.new(shape: MemoryDBInstanceDetails, location_name: "MemoryDBInstanceDetails"))
865
953
  InstanceDetails.struct_class = Types::InstanceDetails
866
954
 
867
955
  InvalidNextTokenException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
@@ -872,6 +960,17 @@ module Aws::CostExplorer
872
960
  LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
873
961
  LimitExceededException.struct_class = Types::LimitExceededException
874
962
 
963
+ ListCostAllocationTagsRequest.add_member(:status, Shapes::ShapeRef.new(shape: CostAllocationTagStatus, location_name: "Status"))
964
+ ListCostAllocationTagsRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: CostAllocationTagKeyList, location_name: "TagKeys"))
965
+ ListCostAllocationTagsRequest.add_member(:type, Shapes::ShapeRef.new(shape: CostAllocationTagType, location_name: "Type"))
966
+ ListCostAllocationTagsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
967
+ ListCostAllocationTagsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: CostAllocationTagsMaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
968
+ ListCostAllocationTagsRequest.struct_class = Types::ListCostAllocationTagsRequest
969
+
970
+ ListCostAllocationTagsResponse.add_member(:cost_allocation_tags, Shapes::ShapeRef.new(shape: CostAllocationTagList, location_name: "CostAllocationTags"))
971
+ ListCostAllocationTagsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
972
+ ListCostAllocationTagsResponse.struct_class = Types::ListCostAllocationTagsResponse
973
+
875
974
  ListCostCategoryDefinitionsRequest.add_member(:effective_on, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveOn"))
876
975
  ListCostCategoryDefinitionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
877
976
  ListCostCategoryDefinitionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: CostCategoryMaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
@@ -881,8 +980,31 @@ module Aws::CostExplorer
881
980
  ListCostCategoryDefinitionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
882
981
  ListCostCategoryDefinitionsResponse.struct_class = Types::ListCostCategoryDefinitionsResponse
883
982
 
983
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.add_member(:generation_status, Shapes::ShapeRef.new(shape: GenerationStatus, location_name: "GenerationStatus"))
984
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.add_member(:recommendation_ids, Shapes::ShapeRef.new(shape: RecommendationIdList, location_name: "RecommendationIds"))
985
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: NonNegativeInteger, location_name: "PageSize"))
986
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
987
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.struct_class = Types::ListSavingsPlansPurchaseRecommendationGenerationRequest
988
+
989
+ ListSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:generation_summary_list, Shapes::ShapeRef.new(shape: GenerationSummaryList, location_name: "GenerationSummaryList"))
990
+ ListSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
991
+ ListSavingsPlansPurchaseRecommendationGenerationResponse.struct_class = Types::ListSavingsPlansPurchaseRecommendationGenerationResponse
992
+
993
+ ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "ResourceArn"))
994
+ ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
995
+
996
+ ListTagsForResourceResponse.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, location_name: "ResourceTags"))
997
+ ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
998
+
884
999
  MatchOptions.member = Shapes::ShapeRef.new(shape: MatchOption)
885
1000
 
1001
+ MemoryDBInstanceDetails.add_member(:family, Shapes::ShapeRef.new(shape: GenericString, location_name: "Family"))
1002
+ MemoryDBInstanceDetails.add_member(:node_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "NodeType"))
1003
+ MemoryDBInstanceDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
1004
+ MemoryDBInstanceDetails.add_member(:current_generation, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "CurrentGeneration"))
1005
+ MemoryDBInstanceDetails.add_member(:size_flex_eligible, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "SizeFlexEligible"))
1006
+ MemoryDBInstanceDetails.struct_class = Types::MemoryDBInstanceDetails
1007
+
886
1008
  MetricNames.member = Shapes::ShapeRef.new(shape: MetricName)
887
1009
 
888
1010
  MetricValue.add_member(:amount, Shapes::ShapeRef.new(shape: MetricAmount, location_name: "Amount"))
@@ -892,6 +1014,8 @@ module Aws::CostExplorer
892
1014
  Metrics.key = Shapes::ShapeRef.new(shape: MetricName)
893
1015
  Metrics.value = Shapes::ShapeRef.new(shape: MetricValue)
894
1016
 
1017
+ MetricsOverLookbackPeriod.member = Shapes::ShapeRef.new(shape: RecommendationDetailHourlyMetrics)
1018
+
895
1019
  ModifyRecommendationDetail.add_member(:target_instances, Shapes::ShapeRef.new(shape: TargetInstancesList, location_name: "TargetInstances"))
896
1020
  ModifyRecommendationDetail.struct_class = Types::ModifyRecommendationDetail
897
1021
 
@@ -923,6 +1047,46 @@ module Aws::CostExplorer
923
1047
  RDSInstanceDetails.add_member(:size_flex_eligible, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "SizeFlexEligible"))
924
1048
  RDSInstanceDetails.struct_class = Types::RDSInstanceDetails
925
1049
 
1050
+ RecommendationDetailData.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
1051
+ RecommendationDetailData.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookbackPeriodInDays, location_name: "LookbackPeriodInDays"))
1052
+ RecommendationDetailData.add_member(:savings_plans_type, Shapes::ShapeRef.new(shape: SupportedSavingsPlansType, location_name: "SavingsPlansType"))
1053
+ RecommendationDetailData.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
1054
+ RecommendationDetailData.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "PaymentOption"))
1055
+ RecommendationDetailData.add_member(:account_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "AccountId"))
1056
+ RecommendationDetailData.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
1057
+ RecommendationDetailData.add_member(:instance_family, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceFamily"))
1058
+ RecommendationDetailData.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
1059
+ RecommendationDetailData.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
1060
+ RecommendationDetailData.add_member(:generation_timestamp, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "GenerationTimestamp"))
1061
+ RecommendationDetailData.add_member(:latest_usage_timestamp, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "LatestUsageTimestamp"))
1062
+ RecommendationDetailData.add_member(:current_average_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentAverageHourlyOnDemandSpend"))
1063
+ RecommendationDetailData.add_member(:current_maximum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMaximumHourlyOnDemandSpend"))
1064
+ RecommendationDetailData.add_member(:current_minimum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMinimumHourlyOnDemandSpend"))
1065
+ RecommendationDetailData.add_member(:estimated_average_utilization, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedAverageUtilization"))
1066
+ RecommendationDetailData.add_member(:estimated_monthly_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavingsAmount"))
1067
+ RecommendationDetailData.add_member(:estimated_on_demand_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedOnDemandCost"))
1068
+ RecommendationDetailData.add_member(:estimated_on_demand_cost_with_current_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedOnDemandCostWithCurrentCommitment"))
1069
+ RecommendationDetailData.add_member(:estimated_roi, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedROI"))
1070
+ RecommendationDetailData.add_member(:estimated_sp_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSPCost"))
1071
+ RecommendationDetailData.add_member(:estimated_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsAmount"))
1072
+ RecommendationDetailData.add_member(:estimated_savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsPercentage"))
1073
+ RecommendationDetailData.add_member(:existing_hourly_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "ExistingHourlyCommitment"))
1074
+ RecommendationDetailData.add_member(:hourly_commitment_to_purchase, Shapes::ShapeRef.new(shape: GenericString, location_name: "HourlyCommitmentToPurchase"))
1075
+ RecommendationDetailData.add_member(:upfront_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "UpfrontCost"))
1076
+ RecommendationDetailData.add_member(:current_average_coverage, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentAverageCoverage"))
1077
+ RecommendationDetailData.add_member(:estimated_average_coverage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedAverageCoverage"))
1078
+ RecommendationDetailData.add_member(:metrics_over_lookback_period, Shapes::ShapeRef.new(shape: MetricsOverLookbackPeriod, location_name: "MetricsOverLookbackPeriod"))
1079
+ RecommendationDetailData.struct_class = Types::RecommendationDetailData
1080
+
1081
+ RecommendationDetailHourlyMetrics.add_member(:start_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "StartTime"))
1082
+ RecommendationDetailHourlyMetrics.add_member(:estimated_on_demand_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedOnDemandCost"))
1083
+ RecommendationDetailHourlyMetrics.add_member(:current_coverage, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentCoverage"))
1084
+ RecommendationDetailHourlyMetrics.add_member(:estimated_coverage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedCoverage"))
1085
+ RecommendationDetailHourlyMetrics.add_member(:estimated_new_commitment_utilization, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedNewCommitmentUtilization"))
1086
+ RecommendationDetailHourlyMetrics.struct_class = Types::RecommendationDetailHourlyMetrics
1087
+
1088
+ RecommendationIdList.member = Shapes::ShapeRef.new(shape: RecommendationId)
1089
+
926
1090
  RedshiftInstanceDetails.add_member(:family, Shapes::ShapeRef.new(shape: GenericString, location_name: "Family"))
927
1091
  RedshiftInstanceDetails.add_member(:node_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "NodeType"))
928
1092
  RedshiftInstanceDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
@@ -1013,8 +1177,17 @@ module Aws::CostExplorer
1013
1177
  ResourceDetails.struct_class = Types::ResourceDetails
1014
1178
 
1015
1179
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1180
+ ResourceNotFoundException.add_member(:resource_name, Shapes::ShapeRef.new(shape: Arn, location_name: "ResourceName"))
1016
1181
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
1017
1182
 
1183
+ ResourceTag.add_member(:key, Shapes::ShapeRef.new(shape: ResourceTagKey, required: true, location_name: "Key"))
1184
+ ResourceTag.add_member(:value, Shapes::ShapeRef.new(shape: ResourceTagValue, required: true, location_name: "Value"))
1185
+ ResourceTag.struct_class = Types::ResourceTag
1186
+
1187
+ ResourceTagKeyList.member = Shapes::ShapeRef.new(shape: ResourceTagKey)
1188
+
1189
+ ResourceTagList.member = Shapes::ShapeRef.new(shape: ResourceTag)
1190
+
1018
1191
  ResourceUtilization.add_member(:ec2_resource_utilization, Shapes::ShapeRef.new(shape: EC2ResourceUtilization, location_name: "EC2ResourceUtilization"))
1019
1192
  ResourceUtilization.struct_class = Types::ResourceUtilization
1020
1193
 
@@ -1056,6 +1229,7 @@ module Aws::CostExplorer
1056
1229
  RootCause.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
1057
1230
  RootCause.add_member(:linked_account, Shapes::ShapeRef.new(shape: GenericString, location_name: "LinkedAccount"))
1058
1231
  RootCause.add_member(:usage_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "UsageType"))
1232
+ RootCause.add_member(:linked_account_name, Shapes::ShapeRef.new(shape: GenericString, location_name: "LinkedAccountName"))
1059
1233
  RootCause.struct_class = Types::RootCause
1060
1234
 
1061
1235
  RootCauses.member = Shapes::ShapeRef.new(shape: RootCause)
@@ -1110,6 +1284,7 @@ module Aws::CostExplorer
1110
1284
  SavingsPlansPurchaseRecommendationDetail.add_member(:current_minimum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMinimumHourlyOnDemandSpend"))
1111
1285
  SavingsPlansPurchaseRecommendationDetail.add_member(:current_maximum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMaximumHourlyOnDemandSpend"))
1112
1286
  SavingsPlansPurchaseRecommendationDetail.add_member(:current_average_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentAverageHourlyOnDemandSpend"))
1287
+ SavingsPlansPurchaseRecommendationDetail.add_member(:recommendation_detail_id, Shapes::ShapeRef.new(shape: RecommendationDetailId, location_name: "RecommendationDetailId"))
1113
1288
  SavingsPlansPurchaseRecommendationDetail.struct_class = Types::SavingsPlansPurchaseRecommendationDetail
1114
1289
 
1115
1290
  SavingsPlansPurchaseRecommendationDetailList.member = Shapes::ShapeRef.new(shape: SavingsPlansPurchaseRecommendationDetail)
@@ -1176,6 +1351,13 @@ module Aws::CostExplorer
1176
1351
 
1177
1352
  SortDefinitions.member = Shapes::ShapeRef.new(shape: SortDefinition)
1178
1353
 
1354
+ StartSavingsPlansPurchaseRecommendationGenerationRequest.struct_class = Types::StartSavingsPlansPurchaseRecommendationGenerationRequest
1355
+
1356
+ StartSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: RecommendationId, location_name: "RecommendationId"))
1357
+ StartSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:generation_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "GenerationStartedTime"))
1358
+ StartSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EstimatedCompletionTime"))
1359
+ StartSavingsPlansPurchaseRecommendationGenerationResponse.struct_class = Types::StartSavingsPlansPurchaseRecommendationGenerationResponse
1360
+
1179
1361
  Subscriber.add_member(:address, Shapes::ShapeRef.new(shape: SubscriberAddress, location_name: "Address"))
1180
1362
  Subscriber.add_member(:type, Shapes::ShapeRef.new(shape: SubscriberType, location_name: "Type"))
1181
1363
  Subscriber.add_member(:status, Shapes::ShapeRef.new(shape: SubscriberStatus, location_name: "Status"))
@@ -1185,6 +1367,12 @@ module Aws::CostExplorer
1185
1367
 
1186
1368
  TagList.member = Shapes::ShapeRef.new(shape: Entity)
1187
1369
 
1370
+ TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "ResourceArn"))
1371
+ TagResourceRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTagList, required: true, location_name: "ResourceTags"))
1372
+ TagResourceRequest.struct_class = Types::TagResourceRequest
1373
+
1374
+ TagResourceResponse.struct_class = Types::TagResourceResponse
1375
+
1188
1376
  TagValues.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, location_name: "Key"))
1189
1377
  TagValues.add_member(:values, Shapes::ShapeRef.new(shape: Values, location_name: "Values"))
1190
1378
  TagValues.add_member(:match_options, Shapes::ShapeRef.new(shape: MatchOptions, location_name: "MatchOptions"))
@@ -1207,6 +1395,10 @@ module Aws::CostExplorer
1207
1395
  TerminateRecommendationDetail.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
1208
1396
  TerminateRecommendationDetail.struct_class = Types::TerminateRecommendationDetail
1209
1397
 
1398
+ TooManyTagsException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1399
+ TooManyTagsException.add_member(:resource_name, Shapes::ShapeRef.new(shape: Arn, location_name: "ResourceName"))
1400
+ TooManyTagsException.struct_class = Types::TooManyTagsException
1401
+
1210
1402
  TotalImpactFilter.add_member(:numeric_operator, Shapes::ShapeRef.new(shape: NumericOperator, required: true, location_name: "NumericOperator"))
1211
1403
  TotalImpactFilter.add_member(:start_value, Shapes::ShapeRef.new(shape: GenericDouble, required: true, location_name: "StartValue"))
1212
1404
  TotalImpactFilter.add_member(:end_value, Shapes::ShapeRef.new(shape: GenericDouble, location_name: "EndValue"))
@@ -1221,6 +1413,12 @@ module Aws::CostExplorer
1221
1413
  UnresolvableUsageUnitException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1222
1414
  UnresolvableUsageUnitException.struct_class = Types::UnresolvableUsageUnitException
1223
1415
 
1416
+ UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "ResourceArn"))
1417
+ UntagResourceRequest.add_member(:resource_tag_keys, Shapes::ShapeRef.new(shape: ResourceTagKeyList, required: true, location_name: "ResourceTagKeys"))
1418
+ UntagResourceRequest.struct_class = Types::UntagResourceRequest
1419
+
1420
+ UntagResourceResponse.struct_class = Types::UntagResourceResponse
1421
+
1224
1422
  UpdateAnomalyMonitorRequest.add_member(:monitor_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "MonitorArn"))
1225
1423
  UpdateAnomalyMonitorRequest.add_member(:monitor_name, Shapes::ShapeRef.new(shape: GenericString, location_name: "MonitorName"))
1226
1424
  UpdateAnomalyMonitorRequest.struct_class = Types::UpdateAnomalyMonitorRequest
@@ -1229,17 +1427,32 @@ module Aws::CostExplorer
1229
1427
  UpdateAnomalyMonitorResponse.struct_class = Types::UpdateAnomalyMonitorResponse
1230
1428
 
1231
1429
  UpdateAnomalySubscriptionRequest.add_member(:subscription_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "SubscriptionArn"))
1232
- UpdateAnomalySubscriptionRequest.add_member(:threshold, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, location_name: "Threshold"))
1430
+ UpdateAnomalySubscriptionRequest.add_member(:threshold, Shapes::ShapeRef.new(shape: NullableNonNegativeDouble, deprecated: true, location_name: "Threshold", metadata: {"deprecatedMessage"=>"Threshold has been deprecated in favor of ThresholdExpression"}))
1233
1431
  UpdateAnomalySubscriptionRequest.add_member(:frequency, Shapes::ShapeRef.new(shape: AnomalySubscriptionFrequency, location_name: "Frequency"))
1234
1432
  UpdateAnomalySubscriptionRequest.add_member(:monitor_arn_list, Shapes::ShapeRef.new(shape: MonitorArnList, location_name: "MonitorArnList"))
1235
1433
  UpdateAnomalySubscriptionRequest.add_member(:subscribers, Shapes::ShapeRef.new(shape: Subscribers, location_name: "Subscribers"))
1236
1434
  UpdateAnomalySubscriptionRequest.add_member(:subscription_name, Shapes::ShapeRef.new(shape: GenericString, location_name: "SubscriptionName"))
1435
+ UpdateAnomalySubscriptionRequest.add_member(:threshold_expression, Shapes::ShapeRef.new(shape: Expression, location_name: "ThresholdExpression"))
1237
1436
  UpdateAnomalySubscriptionRequest.struct_class = Types::UpdateAnomalySubscriptionRequest
1238
1437
 
1239
1438
  UpdateAnomalySubscriptionResponse.add_member(:subscription_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "SubscriptionArn"))
1240
1439
  UpdateAnomalySubscriptionResponse.struct_class = Types::UpdateAnomalySubscriptionResponse
1241
1440
 
1441
+ UpdateCostAllocationTagsStatusError.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, location_name: "TagKey"))
1442
+ UpdateCostAllocationTagsStatusError.add_member(:code, Shapes::ShapeRef.new(shape: GenericString, location_name: "Code"))
1443
+ UpdateCostAllocationTagsStatusError.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1444
+ UpdateCostAllocationTagsStatusError.struct_class = Types::UpdateCostAllocationTagsStatusError
1445
+
1446
+ UpdateCostAllocationTagsStatusErrors.member = Shapes::ShapeRef.new(shape: UpdateCostAllocationTagsStatusError)
1447
+
1448
+ UpdateCostAllocationTagsStatusRequest.add_member(:cost_allocation_tags_status, Shapes::ShapeRef.new(shape: CostAllocationTagStatusList, required: true, location_name: "CostAllocationTagsStatus"))
1449
+ UpdateCostAllocationTagsStatusRequest.struct_class = Types::UpdateCostAllocationTagsStatusRequest
1450
+
1451
+ UpdateCostAllocationTagsStatusResponse.add_member(:errors, Shapes::ShapeRef.new(shape: UpdateCostAllocationTagsStatusErrors, location_name: "Errors"))
1452
+ UpdateCostAllocationTagsStatusResponse.struct_class = Types::UpdateCostAllocationTagsStatusResponse
1453
+
1242
1454
  UpdateCostCategoryDefinitionRequest.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "CostCategoryArn"))
1455
+ UpdateCostCategoryDefinitionRequest.add_member(:effective_start, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveStart"))
1243
1456
  UpdateCostCategoryDefinitionRequest.add_member(:rule_version, Shapes::ShapeRef.new(shape: CostCategoryRuleVersion, required: true, location_name: "RuleVersion"))
1244
1457
  UpdateCostCategoryDefinitionRequest.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
1245
1458
  UpdateCostCategoryDefinitionRequest.add_member(:default_value, Shapes::ShapeRef.new(shape: CostCategoryValue, location_name: "DefaultValue"))
@@ -1485,6 +1698,16 @@ module Aws::CostExplorer
1485
1698
  o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
1486
1699
  end)
1487
1700
 
1701
+ api.add_operation(:get_savings_plan_purchase_recommendation_details, Seahorse::Model::Operation.new.tap do |o|
1702
+ o.name = "GetSavingsPlanPurchaseRecommendationDetails"
1703
+ o.http_method = "POST"
1704
+ o.http_request_uri = "/"
1705
+ o.input = Shapes::ShapeRef.new(shape: GetSavingsPlanPurchaseRecommendationDetailsRequest)
1706
+ o.output = Shapes::ShapeRef.new(shape: GetSavingsPlanPurchaseRecommendationDetailsResponse)
1707
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1708
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1709
+ end)
1710
+
1488
1711
  api.add_operation(:get_savings_plans_coverage, Seahorse::Model::Operation.new.tap do |o|
1489
1712
  o.name = "GetSavingsPlansCoverage"
1490
1713
  o.http_method = "POST"
@@ -1563,6 +1786,22 @@ module Aws::CostExplorer
1563
1786
  o.errors << Shapes::ShapeRef.new(shape: UnresolvableUsageUnitException)
1564
1787
  end)
1565
1788
 
1789
+ api.add_operation(:list_cost_allocation_tags, Seahorse::Model::Operation.new.tap do |o|
1790
+ o.name = "ListCostAllocationTags"
1791
+ o.http_method = "POST"
1792
+ o.http_request_uri = "/"
1793
+ o.input = Shapes::ShapeRef.new(shape: ListCostAllocationTagsRequest)
1794
+ o.output = Shapes::ShapeRef.new(shape: ListCostAllocationTagsResponse)
1795
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1796
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
1797
+ o[:pager] = Aws::Pager.new(
1798
+ limit_key: "max_results",
1799
+ tokens: {
1800
+ "next_token" => "next_token"
1801
+ }
1802
+ )
1803
+ end)
1804
+
1566
1805
  api.add_operation(:list_cost_category_definitions, Seahorse::Model::Operation.new.tap do |o|
1567
1806
  o.name = "ListCostCategoryDefinitions"
1568
1807
  o.http_method = "POST"
@@ -1578,6 +1817,27 @@ module Aws::CostExplorer
1578
1817
  )
1579
1818
  end)
1580
1819
 
1820
+ api.add_operation(:list_savings_plans_purchase_recommendation_generation, Seahorse::Model::Operation.new.tap do |o|
1821
+ o.name = "ListSavingsPlansPurchaseRecommendationGeneration"
1822
+ o.http_method = "POST"
1823
+ o.http_request_uri = "/"
1824
+ o.input = Shapes::ShapeRef.new(shape: ListSavingsPlansPurchaseRecommendationGenerationRequest)
1825
+ o.output = Shapes::ShapeRef.new(shape: ListSavingsPlansPurchaseRecommendationGenerationResponse)
1826
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1827
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
1828
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1829
+ end)
1830
+
1831
+ api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
1832
+ o.name = "ListTagsForResource"
1833
+ o.http_method = "POST"
1834
+ o.http_request_uri = "/"
1835
+ o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest)
1836
+ o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse)
1837
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1838
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1839
+ end)
1840
+
1581
1841
  api.add_operation(:provide_anomaly_feedback, Seahorse::Model::Operation.new.tap do |o|
1582
1842
  o.name = "ProvideAnomalyFeedback"
1583
1843
  o.http_method = "POST"
@@ -1587,6 +1847,39 @@ module Aws::CostExplorer
1587
1847
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1588
1848
  end)
1589
1849
 
1850
+ api.add_operation(:start_savings_plans_purchase_recommendation_generation, Seahorse::Model::Operation.new.tap do |o|
1851
+ o.name = "StartSavingsPlansPurchaseRecommendationGeneration"
1852
+ o.http_method = "POST"
1853
+ o.http_request_uri = "/"
1854
+ o.input = Shapes::ShapeRef.new(shape: StartSavingsPlansPurchaseRecommendationGenerationRequest)
1855
+ o.output = Shapes::ShapeRef.new(shape: StartSavingsPlansPurchaseRecommendationGenerationResponse)
1856
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1857
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1858
+ o.errors << Shapes::ShapeRef.new(shape: GenerationExistsException)
1859
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1860
+ end)
1861
+
1862
+ api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
1863
+ o.name = "TagResource"
1864
+ o.http_method = "POST"
1865
+ o.http_request_uri = "/"
1866
+ o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
1867
+ o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
1868
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1869
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTagsException)
1870
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1871
+ end)
1872
+
1873
+ api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
1874
+ o.name = "UntagResource"
1875
+ o.http_method = "POST"
1876
+ o.http_request_uri = "/"
1877
+ o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest)
1878
+ o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse)
1879
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1880
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1881
+ end)
1882
+
1590
1883
  api.add_operation(:update_anomaly_monitor, Seahorse::Model::Operation.new.tap do |o|
1591
1884
  o.name = "UpdateAnomalyMonitor"
1592
1885
  o.http_method = "POST"
@@ -1608,6 +1901,15 @@ module Aws::CostExplorer
1608
1901
  o.errors << Shapes::ShapeRef.new(shape: UnknownSubscriptionException)
1609
1902
  end)
1610
1903
 
1904
+ api.add_operation(:update_cost_allocation_tags_status, Seahorse::Model::Operation.new.tap do |o|
1905
+ o.name = "UpdateCostAllocationTagsStatus"
1906
+ o.http_method = "POST"
1907
+ o.http_request_uri = "/"
1908
+ o.input = Shapes::ShapeRef.new(shape: UpdateCostAllocationTagsStatusRequest)
1909
+ o.output = Shapes::ShapeRef.new(shape: UpdateCostAllocationTagsStatusResponse)
1910
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1911
+ end)
1912
+
1611
1913
  api.add_operation(:update_cost_category_definition, Seahorse::Model::Operation.new.tap do |o|
1612
1914
  o.name = "UpdateCostCategoryDefinition"
1613
1915
  o.http_method = "POST"