aws-sdk-costexplorer 1.69.0 → 1.92.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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"