aws-sdk-costexplorer 1.115.0 → 1.117.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0dbea5b3bd8cd3e7760d1887f05abec59afcf5f4b58a555e61e7ddddca22ac60
4
- data.tar.gz: dd73334488e38185a68e8e5aae8fc42505ee45e5ca789aefe5274d8cd9574cc5
3
+ metadata.gz: 13edac6603b8b14e0acf6998ab95b42b58655bca06cc4a958d0c5cca6d8c4569
4
+ data.tar.gz: 83080bf9a66daffc71ba056e9ea941529abe924ad22682522a6ab15301d77149
5
5
  SHA512:
6
- metadata.gz: d6b1981333575697ac13a4a6bf1ac6934df4a7264147f6b374fb555aecae6f8296b39b953fa0883e58fe710895fea1445087aba146c716d95e512c5cc4783cda
7
- data.tar.gz: beb804457ed418f0af7e31f8c2e7805a6fc341960223e12637e70ba8215907fb22e001f50c36004a027857901ef46d5d01eca43e51267d75258d15740874cb2b
6
+ metadata.gz: 7a9ebefbb5737eb49f19c12111b2394cf6798f7a38a4aa638fb30758c918a169940876ba0646ca65872c26b9579a879d5b46c3a4b4a3677ab2dbd91921f94870
7
+ data.tar.gz: 1292c862fdcf12cfe2b88b705c91c150afb387b44e220bde7a66d8f4815649d1d8dfebd25fee341302d57ef7c21cd9f30ebe3db1563d80dd083ee4718a2095e5
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.117.0 (2024-11-22)
5
+ ------------------
6
+
7
+ * Feature - This release adds the Impact field(contains Contribution field) to the GetAnomalies API response under RootCause
8
+
9
+ 1.116.0 (2024-11-21)
10
+ ------------------
11
+
12
+ * Feature - This release introduces three new APIs that enable you to estimate the cost, coverage, and utilization impact of Savings Plans you plan to purchase. The three APIs are StartCommitmentPurchaseAnalysis, GetCommitmentPurchaseAnalysis, and ListCommitmentPurchaseAnalyses.
13
+
4
14
  1.115.0 (2024-11-18)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.115.0
1
+ 1.117.0
@@ -1036,8 +1036,9 @@ module Aws::CostExplorer
1036
1036
  # resp.anomalies[0].root_causes[0].service #=> String
1037
1037
  # resp.anomalies[0].root_causes[0].region #=> String
1038
1038
  # resp.anomalies[0].root_causes[0].linked_account #=> String
1039
- # resp.anomalies[0].root_causes[0].usage_type #=> String
1040
1039
  # resp.anomalies[0].root_causes[0].linked_account_name #=> String
1040
+ # resp.anomalies[0].root_causes[0].usage_type #=> String
1041
+ # resp.anomalies[0].root_causes[0].impact.contribution #=> Float
1041
1042
  # resp.anomalies[0].anomaly_score.max_score #=> Float
1042
1043
  # resp.anomalies[0].anomaly_score.current_score #=> Float
1043
1044
  # resp.anomalies[0].impact.max_impact #=> Float
@@ -1252,6 +1253,90 @@ module Aws::CostExplorer
1252
1253
  req.send_request(options)
1253
1254
  end
1254
1255
 
1256
+ # Retrieves a commitment purchase analysis result based on the
1257
+ # `AnalysisId`.
1258
+ #
1259
+ # @option params [required, String] :analysis_id
1260
+ # The analysis ID that's associated with the commitment purchase
1261
+ # analysis.
1262
+ #
1263
+ # @return [Types::GetCommitmentPurchaseAnalysisResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1264
+ #
1265
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#estimated_completion_time #estimated_completion_time} => String
1266
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_completion_time #analysis_completion_time} => String
1267
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_started_time #analysis_started_time} => String
1268
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_id #analysis_id} => String
1269
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_status #analysis_status} => String
1270
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#error_code #error_code} => String
1271
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_details #analysis_details} => Types::AnalysisDetails
1272
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#commitment_purchase_analysis_configuration #commitment_purchase_analysis_configuration} => Types::CommitmentPurchaseAnalysisConfiguration
1273
+ #
1274
+ # @example Request syntax with placeholder values
1275
+ #
1276
+ # resp = client.get_commitment_purchase_analysis({
1277
+ # analysis_id: "AnalysisId", # required
1278
+ # })
1279
+ #
1280
+ # @example Response structure
1281
+ #
1282
+ # resp.estimated_completion_time #=> String
1283
+ # resp.analysis_completion_time #=> String
1284
+ # resp.analysis_started_time #=> String
1285
+ # resp.analysis_id #=> String
1286
+ # resp.analysis_status #=> String, one of "SUCCEEDED", "PROCESSING", "FAILED"
1287
+ # resp.error_code #=> String, one of "NO_USAGE_FOUND", "INTERNAL_FAILURE", "INVALID_SAVINGS_PLANS_TO_ADD", "INVALID_SAVINGS_PLANS_TO_EXCLUDE", "INVALID_ACCOUNT_ID"
1288
+ # resp.analysis_details.savings_plans_purchase_analysis_details.currency_code #=> String
1289
+ # resp.analysis_details.savings_plans_purchase_analysis_details.lookback_period_in_hours #=> String
1290
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_average_coverage #=> String
1291
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_average_hourly_on_demand_spend #=> String
1292
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_maximum_hourly_on_demand_spend #=> String
1293
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_minimum_hourly_on_demand_spend #=> String
1294
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_on_demand_spend #=> String
1295
+ # resp.analysis_details.savings_plans_purchase_analysis_details.existing_hourly_commitment #=> String
1296
+ # resp.analysis_details.savings_plans_purchase_analysis_details.hourly_commitment_to_purchase #=> String
1297
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_average_coverage #=> String
1298
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_average_utilization #=> String
1299
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_monthly_savings_amount #=> String
1300
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_on_demand_cost #=> String
1301
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_on_demand_cost_with_current_commitment #=> String
1302
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_roi #=> String
1303
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_savings_amount #=> String
1304
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_savings_percentage #=> String
1305
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_commitment_cost #=> String
1306
+ # resp.analysis_details.savings_plans_purchase_analysis_details.latest_usage_timestamp #=> String
1307
+ # resp.analysis_details.savings_plans_purchase_analysis_details.upfront_cost #=> String
1308
+ # resp.analysis_details.savings_plans_purchase_analysis_details.additional_metadata #=> String
1309
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period #=> Array
1310
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].start_time #=> String
1311
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].estimated_on_demand_cost #=> String
1312
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].current_coverage #=> String
1313
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].estimated_coverage #=> String
1314
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].estimated_new_commitment_utilization #=> String
1315
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.account_scope #=> String, one of "PAYER", "LINKED"
1316
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.account_id #=> String
1317
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.analysis_type #=> String, one of "MAX_SAVINGS", "CUSTOM_COMMITMENT"
1318
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add #=> Array
1319
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].payment_option #=> String, one of "NO_UPFRONT", "PARTIAL_UPFRONT", "ALL_UPFRONT", "LIGHT_UTILIZATION", "MEDIUM_UTILIZATION", "HEAVY_UTILIZATION"
1320
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].savings_plans_type #=> String, one of "COMPUTE_SP", "EC2_INSTANCE_SP", "SAGEMAKER_SP"
1321
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].region #=> String
1322
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].instance_family #=> String
1323
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].term_in_years #=> String, one of "ONE_YEAR", "THREE_YEARS"
1324
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].savings_plans_commitment #=> Float
1325
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].offering_id #=> String
1326
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_exclude #=> Array
1327
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_exclude[0] #=> String
1328
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.look_back_time_period.start #=> String
1329
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.look_back_time_period.end #=> String
1330
+ #
1331
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCommitmentPurchaseAnalysis AWS API Documentation
1332
+ #
1333
+ # @overload get_commitment_purchase_analysis(params = {})
1334
+ # @param [Hash] params ({})
1335
+ def get_commitment_purchase_analysis(params = {}, options = {})
1336
+ req = build_request(:get_commitment_purchase_analysis, params)
1337
+ req.send_request(options)
1338
+ end
1339
+
1255
1340
  # Retrieves cost and usage metrics for your account. You can specify
1256
1341
  # which cost and usage-related metric that you want the request to
1257
1342
  # return. For example, you can specify `BlendedCosts` or
@@ -2045,11 +2130,11 @@ module Aws::CostExplorer
2045
2130
  # is with. Possible values are the following:
2046
2131
  #
2047
2132
  # \- Amazon Web Services(Amazon Web Services): The entity that sells
2048
- # Amazon Web Servicesservices.
2133
+ # Amazon Web Services services.
2049
2134
  #
2050
2135
  # \- AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian
2051
- # entity that's an acting reseller for Amazon Web Servicesservices in
2052
- # India.
2136
+ # entity that's an acting reseller for Amazon Web Services services
2137
+ # in India.
2053
2138
  #
2054
2139
  # \- Amazon Web Services Marketplace: The entity that supports the sale
2055
2140
  # of solutions that are built on Amazon Web Services by third-party
@@ -2991,6 +3076,14 @@ module Aws::CostExplorer
2991
3076
  #
2992
3077
  # * SERVICE
2993
3078
  #
3079
+ # <note markdown="1"> If not specified, the `SERVICE` filter defaults to Amazon Elastic
3080
+ # Compute Cloud - Compute. Supported values for `SERVICE` are Amazon
3081
+ # Elastic Compute Cloud - Compute, Amazon Relational Database Service,
3082
+ # Amazon ElastiCache, Amazon Redshift, and Amazon Elasticsearch
3083
+ # Service. The value for the `SERVICE` filter should not exceed "1".
3084
+ #
3085
+ # </note>
3086
+ #
2994
3087
  # * SCOPE
2995
3088
  #
2996
3089
  # * TENANCY
@@ -4527,6 +4620,70 @@ module Aws::CostExplorer
4527
4620
  req.send_request(options)
4528
4621
  end
4529
4622
 
4623
+ # Lists the commitment purchase analyses for your account.
4624
+ #
4625
+ # @option params [String] :analysis_status
4626
+ # The status of the analysis.
4627
+ #
4628
+ # @option params [String] :next_page_token
4629
+ # The token to retrieve the next set of results.
4630
+ #
4631
+ # @option params [Integer] :page_size
4632
+ # The number of analyses that you want returned in a single response
4633
+ # object.
4634
+ #
4635
+ # @option params [Array<String>] :analysis_ids
4636
+ # The analysis IDs associated with the commitment purchase analyses.
4637
+ #
4638
+ # @return [Types::ListCommitmentPurchaseAnalysesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4639
+ #
4640
+ # * {Types::ListCommitmentPurchaseAnalysesResponse#analysis_summary_list #analysis_summary_list} => Array&lt;Types::AnalysisSummary&gt;
4641
+ # * {Types::ListCommitmentPurchaseAnalysesResponse#next_page_token #next_page_token} => String
4642
+ #
4643
+ # @example Request syntax with placeholder values
4644
+ #
4645
+ # resp = client.list_commitment_purchase_analyses({
4646
+ # analysis_status: "SUCCEEDED", # accepts SUCCEEDED, PROCESSING, FAILED
4647
+ # next_page_token: "NextPageToken",
4648
+ # page_size: 1,
4649
+ # analysis_ids: ["AnalysisId"],
4650
+ # })
4651
+ #
4652
+ # @example Response structure
4653
+ #
4654
+ # resp.analysis_summary_list #=> Array
4655
+ # resp.analysis_summary_list[0].estimated_completion_time #=> String
4656
+ # resp.analysis_summary_list[0].analysis_completion_time #=> String
4657
+ # resp.analysis_summary_list[0].analysis_started_time #=> String
4658
+ # resp.analysis_summary_list[0].analysis_status #=> String, one of "SUCCEEDED", "PROCESSING", "FAILED"
4659
+ # resp.analysis_summary_list[0].error_code #=> String, one of "NO_USAGE_FOUND", "INTERNAL_FAILURE", "INVALID_SAVINGS_PLANS_TO_ADD", "INVALID_SAVINGS_PLANS_TO_EXCLUDE", "INVALID_ACCOUNT_ID"
4660
+ # resp.analysis_summary_list[0].analysis_id #=> String
4661
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.account_scope #=> String, one of "PAYER", "LINKED"
4662
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.account_id #=> String
4663
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.analysis_type #=> String, one of "MAX_SAVINGS", "CUSTOM_COMMITMENT"
4664
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add #=> Array
4665
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].payment_option #=> String, one of "NO_UPFRONT", "PARTIAL_UPFRONT", "ALL_UPFRONT", "LIGHT_UTILIZATION", "MEDIUM_UTILIZATION", "HEAVY_UTILIZATION"
4666
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].savings_plans_type #=> String, one of "COMPUTE_SP", "EC2_INSTANCE_SP", "SAGEMAKER_SP"
4667
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].region #=> String
4668
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].instance_family #=> String
4669
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].term_in_years #=> String, one of "ONE_YEAR", "THREE_YEARS"
4670
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].savings_plans_commitment #=> Float
4671
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].offering_id #=> String
4672
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_exclude #=> Array
4673
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_exclude[0] #=> String
4674
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.look_back_time_period.start #=> String
4675
+ # resp.analysis_summary_list[0].commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.look_back_time_period.end #=> String
4676
+ # resp.next_page_token #=> String
4677
+ #
4678
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCommitmentPurchaseAnalyses AWS API Documentation
4679
+ #
4680
+ # @overload list_commitment_purchase_analyses(params = {})
4681
+ # @param [Hash] params ({})
4682
+ def list_commitment_purchase_analyses(params = {}, options = {})
4683
+ req = build_request(:list_commitment_purchase_analyses, params)
4684
+ req.send_request(options)
4685
+ end
4686
+
4530
4687
  # Retrieves a list of your historical cost allocation tag backfill
4531
4688
  # requests.
4532
4689
  #
@@ -4814,6 +4971,62 @@ module Aws::CostExplorer
4814
4971
  req.send_request(options)
4815
4972
  end
4816
4973
 
4974
+ # Specifies the parameters of a planned commitment purchase and starts
4975
+ # the generation of the analysis. This enables you to estimate the cost,
4976
+ # coverage, and utilization impact of your planned commitment purchases.
4977
+ #
4978
+ # @option params [required, Types::CommitmentPurchaseAnalysisConfiguration] :commitment_purchase_analysis_configuration
4979
+ # The configuration for the commitment purchase analysis.
4980
+ #
4981
+ # @return [Types::StartCommitmentPurchaseAnalysisResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4982
+ #
4983
+ # * {Types::StartCommitmentPurchaseAnalysisResponse#analysis_id #analysis_id} => String
4984
+ # * {Types::StartCommitmentPurchaseAnalysisResponse#analysis_started_time #analysis_started_time} => String
4985
+ # * {Types::StartCommitmentPurchaseAnalysisResponse#estimated_completion_time #estimated_completion_time} => String
4986
+ #
4987
+ # @example Request syntax with placeholder values
4988
+ #
4989
+ # resp = client.start_commitment_purchase_analysis({
4990
+ # commitment_purchase_analysis_configuration: { # required
4991
+ # savings_plans_purchase_analysis_configuration: {
4992
+ # account_scope: "PAYER", # accepts PAYER, LINKED
4993
+ # account_id: "AccountId",
4994
+ # analysis_type: "MAX_SAVINGS", # required, accepts MAX_SAVINGS, CUSTOM_COMMITMENT
4995
+ # savings_plans_to_add: [ # required
4996
+ # {
4997
+ # payment_option: "NO_UPFRONT", # accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT, LIGHT_UTILIZATION, MEDIUM_UTILIZATION, HEAVY_UTILIZATION
4998
+ # savings_plans_type: "COMPUTE_SP", # accepts COMPUTE_SP, EC2_INSTANCE_SP, SAGEMAKER_SP
4999
+ # region: "GenericString",
5000
+ # instance_family: "GenericString",
5001
+ # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
5002
+ # savings_plans_commitment: 1.0,
5003
+ # offering_id: "GenericString",
5004
+ # },
5005
+ # ],
5006
+ # savings_plans_to_exclude: ["SavingsPlansId"],
5007
+ # look_back_time_period: { # required
5008
+ # start: "YearMonthDay", # required
5009
+ # end: "YearMonthDay", # required
5010
+ # },
5011
+ # },
5012
+ # },
5013
+ # })
5014
+ #
5015
+ # @example Response structure
5016
+ #
5017
+ # resp.analysis_id #=> String
5018
+ # resp.analysis_started_time #=> String
5019
+ # resp.estimated_completion_time #=> String
5020
+ #
5021
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/StartCommitmentPurchaseAnalysis AWS API Documentation
5022
+ #
5023
+ # @overload start_commitment_purchase_analysis(params = {})
5024
+ # @param [Hash] params ({})
5025
+ def start_commitment_purchase_analysis(params = {}, options = {})
5026
+ req = build_request(:start_commitment_purchase_analysis, params)
5027
+ req.send_request(options)
5028
+ end
5029
+
4817
5030
  # Request a cost allocation tag backfill. This will backfill the
4818
5031
  # activation status (either `active` or `inactive`) for all tag keys
4819
5032
  # from `para:BackfillFrom` up to the when this request is made.
@@ -5336,7 +5549,7 @@ module Aws::CostExplorer
5336
5549
  tracer: tracer
5337
5550
  )
5338
5551
  context[:gem_name] = 'aws-sdk-costexplorer'
5339
- context[:gem_version] = '1.115.0'
5552
+ context[:gem_version] = '1.117.0'
5340
5553
  Seahorse::Client::Request.new(handlers, context)
5341
5554
  end
5342
5555
 
@@ -14,9 +14,18 @@ module Aws::CostExplorer
14
14
 
15
15
  include Seahorse::Model
16
16
 
17
+ AccountId = Shapes::StringShape.new(name: 'AccountId')
17
18
  AccountScope = Shapes::StringShape.new(name: 'AccountScope')
18
19
  AmortizedRecurringFee = Shapes::StringShape.new(name: 'AmortizedRecurringFee')
19
20
  AmortizedUpfrontFee = Shapes::StringShape.new(name: 'AmortizedUpfrontFee')
21
+ AnalysisDetails = Shapes::StructureShape.new(name: 'AnalysisDetails')
22
+ AnalysisId = Shapes::StringShape.new(name: 'AnalysisId')
23
+ AnalysisIds = Shapes::ListShape.new(name: 'AnalysisIds')
24
+ AnalysisNotFoundException = Shapes::StructureShape.new(name: 'AnalysisNotFoundException')
25
+ AnalysisStatus = Shapes::StringShape.new(name: 'AnalysisStatus')
26
+ AnalysisSummary = Shapes::StructureShape.new(name: 'AnalysisSummary')
27
+ AnalysisSummaryList = Shapes::ListShape.new(name: 'AnalysisSummaryList')
28
+ AnalysisType = Shapes::StringShape.new(name: 'AnalysisType')
20
29
  Anomalies = Shapes::ListShape.new(name: 'Anomalies')
21
30
  Anomaly = Shapes::StructureShape.new(name: 'Anomaly')
22
31
  AnomalyDateInterval = Shapes::StructureShape.new(name: 'AnomalyDateInterval')
@@ -35,6 +44,7 @@ module Aws::CostExplorer
35
44
  Attributes = Shapes::MapShape.new(name: 'Attributes')
36
45
  BackfillLimitExceededException = Shapes::StructureShape.new(name: 'BackfillLimitExceededException')
37
46
  BillExpirationException = Shapes::StructureShape.new(name: 'BillExpirationException')
47
+ CommitmentPurchaseAnalysisConfiguration = Shapes::StructureShape.new(name: 'CommitmentPurchaseAnalysisConfiguration')
38
48
  Context = Shapes::StringShape.new(name: 'Context')
39
49
  CostAllocationTag = Shapes::StructureShape.new(name: 'CostAllocationTag')
40
50
  CostAllocationTagBackfillRequest = Shapes::StructureShape.new(name: 'CostAllocationTagBackfillRequest')
@@ -113,6 +123,7 @@ module Aws::CostExplorer
113
123
  ESInstanceDetails = Shapes::StructureShape.new(name: 'ESInstanceDetails')
114
124
  ElastiCacheInstanceDetails = Shapes::StructureShape.new(name: 'ElastiCacheInstanceDetails')
115
125
  Entity = Shapes::StringShape.new(name: 'Entity')
126
+ ErrorCode = Shapes::StringShape.new(name: 'ErrorCode')
116
127
  ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
117
128
  Estimated = Shapes::BooleanShape.new(name: 'Estimated')
118
129
  Expression = Shapes::StructureShape.new(name: 'Expression')
@@ -136,6 +147,8 @@ module Aws::CostExplorer
136
147
  GetAnomalySubscriptionsResponse = Shapes::StructureShape.new(name: 'GetAnomalySubscriptionsResponse')
137
148
  GetApproximateUsageRecordsRequest = Shapes::StructureShape.new(name: 'GetApproximateUsageRecordsRequest')
138
149
  GetApproximateUsageRecordsResponse = Shapes::StructureShape.new(name: 'GetApproximateUsageRecordsResponse')
150
+ GetCommitmentPurchaseAnalysisRequest = Shapes::StructureShape.new(name: 'GetCommitmentPurchaseAnalysisRequest')
151
+ GetCommitmentPurchaseAnalysisResponse = Shapes::StructureShape.new(name: 'GetCommitmentPurchaseAnalysisResponse')
139
152
  GetCostAndUsageRequest = Shapes::StructureShape.new(name: 'GetCostAndUsageRequest')
140
153
  GetCostAndUsageResponse = Shapes::StructureShape.new(name: 'GetCostAndUsageResponse')
141
154
  GetCostAndUsageWithResourcesRequest = Shapes::StructureShape.new(name: 'GetCostAndUsageWithResourcesRequest')
@@ -181,6 +194,8 @@ module Aws::CostExplorer
181
194
  Key = Shapes::StringShape.new(name: 'Key')
182
195
  Keys = Shapes::ListShape.new(name: 'Keys')
183
196
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
197
+ ListCommitmentPurchaseAnalysesRequest = Shapes::StructureShape.new(name: 'ListCommitmentPurchaseAnalysesRequest')
198
+ ListCommitmentPurchaseAnalysesResponse = Shapes::StructureShape.new(name: 'ListCommitmentPurchaseAnalysesResponse')
184
199
  ListCostAllocationTagBackfillHistoryRequest = Shapes::StructureShape.new(name: 'ListCostAllocationTagBackfillHistoryRequest')
185
200
  ListCostAllocationTagBackfillHistoryResponse = Shapes::StructureShape.new(name: 'ListCostAllocationTagBackfillHistoryResponse')
186
201
  ListCostAllocationTagsRequest = Shapes::StructureShape.new(name: 'ListCostAllocationTagsRequest')
@@ -273,21 +288,29 @@ module Aws::CostExplorer
273
288
  RightsizingRecommendationSummary = Shapes::StructureShape.new(name: 'RightsizingRecommendationSummary')
274
289
  RightsizingType = Shapes::StringShape.new(name: 'RightsizingType')
275
290
  RootCause = Shapes::StructureShape.new(name: 'RootCause')
291
+ RootCauseImpact = Shapes::StructureShape.new(name: 'RootCauseImpact')
276
292
  RootCauses = Shapes::ListShape.new(name: 'RootCauses')
277
293
  SavingsPlanArn = Shapes::StringShape.new(name: 'SavingsPlanArn')
294
+ SavingsPlans = Shapes::StructureShape.new(name: 'SavingsPlans')
278
295
  SavingsPlansAmortizedCommitment = Shapes::StructureShape.new(name: 'SavingsPlansAmortizedCommitment')
296
+ SavingsPlansCommitment = Shapes::FloatShape.new(name: 'SavingsPlansCommitment')
279
297
  SavingsPlansCoverage = Shapes::StructureShape.new(name: 'SavingsPlansCoverage')
280
298
  SavingsPlansCoverageData = Shapes::StructureShape.new(name: 'SavingsPlansCoverageData')
281
299
  SavingsPlansCoverages = Shapes::ListShape.new(name: 'SavingsPlansCoverages')
282
300
  SavingsPlansDataType = Shapes::StringShape.new(name: 'SavingsPlansDataType')
283
301
  SavingsPlansDataTypes = Shapes::ListShape.new(name: 'SavingsPlansDataTypes')
284
302
  SavingsPlansDetails = Shapes::StructureShape.new(name: 'SavingsPlansDetails')
303
+ SavingsPlansId = Shapes::StringShape.new(name: 'SavingsPlansId')
304
+ SavingsPlansPurchaseAnalysisConfiguration = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseAnalysisConfiguration')
305
+ SavingsPlansPurchaseAnalysisDetails = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseAnalysisDetails')
285
306
  SavingsPlansPurchaseRecommendation = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendation')
286
307
  SavingsPlansPurchaseRecommendationDetail = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationDetail')
287
308
  SavingsPlansPurchaseRecommendationDetailList = Shapes::ListShape.new(name: 'SavingsPlansPurchaseRecommendationDetailList')
288
309
  SavingsPlansPurchaseRecommendationMetadata = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationMetadata')
289
310
  SavingsPlansPurchaseRecommendationSummary = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationSummary')
290
311
  SavingsPlansSavings = Shapes::StructureShape.new(name: 'SavingsPlansSavings')
312
+ SavingsPlansToAdd = Shapes::ListShape.new(name: 'SavingsPlansToAdd')
313
+ SavingsPlansToExclude = Shapes::ListShape.new(name: 'SavingsPlansToExclude')
291
314
  SavingsPlansUtilization = Shapes::StructureShape.new(name: 'SavingsPlansUtilization')
292
315
  SavingsPlansUtilizationAggregates = Shapes::StructureShape.new(name: 'SavingsPlansUtilizationAggregates')
293
316
  SavingsPlansUtilizationByTime = Shapes::StructureShape.new(name: 'SavingsPlansUtilizationByTime')
@@ -301,6 +324,8 @@ module Aws::CostExplorer
301
324
  SortDefinitionKey = Shapes::StringShape.new(name: 'SortDefinitionKey')
302
325
  SortDefinitions = Shapes::ListShape.new(name: 'SortDefinitions')
303
326
  SortOrder = Shapes::StringShape.new(name: 'SortOrder')
327
+ StartCommitmentPurchaseAnalysisRequest = Shapes::StructureShape.new(name: 'StartCommitmentPurchaseAnalysisRequest')
328
+ StartCommitmentPurchaseAnalysisResponse = Shapes::StructureShape.new(name: 'StartCommitmentPurchaseAnalysisResponse')
304
329
  StartCostAllocationTagBackfillRequest = Shapes::StructureShape.new(name: 'StartCostAllocationTagBackfillRequest')
305
330
  StartCostAllocationTagBackfillResponse = Shapes::StructureShape.new(name: 'StartCostAllocationTagBackfillResponse')
306
331
  StartSavingsPlansPurchaseRecommendationGenerationRequest = Shapes::StructureShape.new(name: 'StartSavingsPlansPurchaseRecommendationGenerationRequest')
@@ -357,6 +382,25 @@ module Aws::CostExplorer
357
382
  YearMonthDay = Shapes::StringShape.new(name: 'YearMonthDay')
358
383
  ZonedDateTime = Shapes::StringShape.new(name: 'ZonedDateTime')
359
384
 
385
+ AnalysisDetails.add_member(:savings_plans_purchase_analysis_details, Shapes::ShapeRef.new(shape: SavingsPlansPurchaseAnalysisDetails, location_name: "SavingsPlansPurchaseAnalysisDetails"))
386
+ AnalysisDetails.struct_class = Types::AnalysisDetails
387
+
388
+ AnalysisIds.member = Shapes::ShapeRef.new(shape: AnalysisId)
389
+
390
+ AnalysisNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
391
+ AnalysisNotFoundException.struct_class = Types::AnalysisNotFoundException
392
+
393
+ AnalysisSummary.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EstimatedCompletionTime"))
394
+ AnalysisSummary.add_member(:analysis_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "AnalysisCompletionTime"))
395
+ AnalysisSummary.add_member(:analysis_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "AnalysisStartedTime"))
396
+ AnalysisSummary.add_member(:analysis_status, Shapes::ShapeRef.new(shape: AnalysisStatus, location_name: "AnalysisStatus"))
397
+ AnalysisSummary.add_member(:error_code, Shapes::ShapeRef.new(shape: ErrorCode, location_name: "ErrorCode"))
398
+ AnalysisSummary.add_member(:analysis_id, Shapes::ShapeRef.new(shape: AnalysisId, location_name: "AnalysisId"))
399
+ AnalysisSummary.add_member(:commitment_purchase_analysis_configuration, Shapes::ShapeRef.new(shape: CommitmentPurchaseAnalysisConfiguration, location_name: "CommitmentPurchaseAnalysisConfiguration"))
400
+ AnalysisSummary.struct_class = Types::AnalysisSummary
401
+
402
+ AnalysisSummaryList.member = Shapes::ShapeRef.new(shape: AnalysisSummary)
403
+
360
404
  Anomalies.member = Shapes::ShapeRef.new(shape: Anomaly)
361
405
 
362
406
  Anomaly.add_member(:anomaly_id, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "AnomalyId"))
@@ -415,6 +459,9 @@ module Aws::CostExplorer
415
459
  BillExpirationException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
416
460
  BillExpirationException.struct_class = Types::BillExpirationException
417
461
 
462
+ CommitmentPurchaseAnalysisConfiguration.add_member(:savings_plans_purchase_analysis_configuration, Shapes::ShapeRef.new(shape: SavingsPlansPurchaseAnalysisConfiguration, location_name: "SavingsPlansPurchaseAnalysisConfiguration"))
463
+ CommitmentPurchaseAnalysisConfiguration.struct_class = Types::CommitmentPurchaseAnalysisConfiguration
464
+
418
465
  CostAllocationTag.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "TagKey"))
419
466
  CostAllocationTag.add_member(:type, Shapes::ShapeRef.new(shape: CostAllocationTagType, required: true, location_name: "Type"))
420
467
  CostAllocationTag.add_member(:status, Shapes::ShapeRef.new(shape: CostAllocationTagStatus, required: true, location_name: "Status"))
@@ -754,6 +801,19 @@ module Aws::CostExplorer
754
801
  GetApproximateUsageRecordsResponse.add_member(:lookback_period, Shapes::ShapeRef.new(shape: DateInterval, location_name: "LookbackPeriod"))
755
802
  GetApproximateUsageRecordsResponse.struct_class = Types::GetApproximateUsageRecordsResponse
756
803
 
804
+ GetCommitmentPurchaseAnalysisRequest.add_member(:analysis_id, Shapes::ShapeRef.new(shape: AnalysisId, required: true, location_name: "AnalysisId"))
805
+ GetCommitmentPurchaseAnalysisRequest.struct_class = Types::GetCommitmentPurchaseAnalysisRequest
806
+
807
+ GetCommitmentPurchaseAnalysisResponse.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "EstimatedCompletionTime"))
808
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "AnalysisCompletionTime"))
809
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "AnalysisStartedTime"))
810
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_id, Shapes::ShapeRef.new(shape: AnalysisId, required: true, location_name: "AnalysisId"))
811
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_status, Shapes::ShapeRef.new(shape: AnalysisStatus, required: true, location_name: "AnalysisStatus"))
812
+ GetCommitmentPurchaseAnalysisResponse.add_member(:error_code, Shapes::ShapeRef.new(shape: ErrorCode, location_name: "ErrorCode"))
813
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_details, Shapes::ShapeRef.new(shape: AnalysisDetails, location_name: "AnalysisDetails"))
814
+ GetCommitmentPurchaseAnalysisResponse.add_member(:commitment_purchase_analysis_configuration, Shapes::ShapeRef.new(shape: CommitmentPurchaseAnalysisConfiguration, required: true, location_name: "CommitmentPurchaseAnalysisConfiguration"))
815
+ GetCommitmentPurchaseAnalysisResponse.struct_class = Types::GetCommitmentPurchaseAnalysisResponse
816
+
757
817
  GetCostAndUsageRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
758
818
  GetCostAndUsageRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, required: true, location_name: "Granularity"))
759
819
  GetCostAndUsageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
@@ -1006,6 +1066,16 @@ module Aws::CostExplorer
1006
1066
  LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1007
1067
  LimitExceededException.struct_class = Types::LimitExceededException
1008
1068
 
1069
+ ListCommitmentPurchaseAnalysesRequest.add_member(:analysis_status, Shapes::ShapeRef.new(shape: AnalysisStatus, location_name: "AnalysisStatus"))
1070
+ ListCommitmentPurchaseAnalysesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
1071
+ ListCommitmentPurchaseAnalysesRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: NonNegativeInteger, location_name: "PageSize"))
1072
+ ListCommitmentPurchaseAnalysesRequest.add_member(:analysis_ids, Shapes::ShapeRef.new(shape: AnalysisIds, location_name: "AnalysisIds"))
1073
+ ListCommitmentPurchaseAnalysesRequest.struct_class = Types::ListCommitmentPurchaseAnalysesRequest
1074
+
1075
+ ListCommitmentPurchaseAnalysesResponse.add_member(:analysis_summary_list, Shapes::ShapeRef.new(shape: AnalysisSummaryList, location_name: "AnalysisSummaryList"))
1076
+ ListCommitmentPurchaseAnalysesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
1077
+ ListCommitmentPurchaseAnalysesResponse.struct_class = Types::ListCommitmentPurchaseAnalysesResponse
1078
+
1009
1079
  ListCostAllocationTagBackfillHistoryRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
1010
1080
  ListCostAllocationTagBackfillHistoryRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: CostAllocationTagsMaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
1011
1081
  ListCostAllocationTagBackfillHistoryRequest.struct_class = Types::ListCostAllocationTagBackfillHistoryRequest
@@ -1291,12 +1361,25 @@ module Aws::CostExplorer
1291
1361
  RootCause.add_member(:service, Shapes::ShapeRef.new(shape: GenericString, location_name: "Service"))
1292
1362
  RootCause.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
1293
1363
  RootCause.add_member(:linked_account, Shapes::ShapeRef.new(shape: GenericString, location_name: "LinkedAccount"))
1294
- RootCause.add_member(:usage_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "UsageType"))
1295
1364
  RootCause.add_member(:linked_account_name, Shapes::ShapeRef.new(shape: GenericString, location_name: "LinkedAccountName"))
1365
+ RootCause.add_member(:usage_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "UsageType"))
1366
+ RootCause.add_member(:impact, Shapes::ShapeRef.new(shape: RootCauseImpact, location_name: "Impact"))
1296
1367
  RootCause.struct_class = Types::RootCause
1297
1368
 
1369
+ RootCauseImpact.add_member(:contribution, Shapes::ShapeRef.new(shape: GenericDouble, required: true, location_name: "Contribution"))
1370
+ RootCauseImpact.struct_class = Types::RootCauseImpact
1371
+
1298
1372
  RootCauses.member = Shapes::ShapeRef.new(shape: RootCause)
1299
1373
 
1374
+ SavingsPlans.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "PaymentOption"))
1375
+ SavingsPlans.add_member(:savings_plans_type, Shapes::ShapeRef.new(shape: SupportedSavingsPlansType, location_name: "SavingsPlansType"))
1376
+ SavingsPlans.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
1377
+ SavingsPlans.add_member(:instance_family, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceFamily"))
1378
+ SavingsPlans.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
1379
+ SavingsPlans.add_member(:savings_plans_commitment, Shapes::ShapeRef.new(shape: SavingsPlansCommitment, location_name: "SavingsPlansCommitment"))
1380
+ SavingsPlans.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
1381
+ SavingsPlans.struct_class = Types::SavingsPlans
1382
+
1300
1383
  SavingsPlansAmortizedCommitment.add_member(:amortized_recurring_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "AmortizedRecurringCommitment"))
1301
1384
  SavingsPlansAmortizedCommitment.add_member(:amortized_upfront_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "AmortizedUpfrontCommitment"))
1302
1385
  SavingsPlansAmortizedCommitment.add_member(:total_amortized_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalAmortizedCommitment"))
@@ -1322,6 +1405,38 @@ module Aws::CostExplorer
1322
1405
  SavingsPlansDetails.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
1323
1406
  SavingsPlansDetails.struct_class = Types::SavingsPlansDetails
1324
1407
 
1408
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
1409
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "AccountId"))
1410
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:analysis_type, Shapes::ShapeRef.new(shape: AnalysisType, required: true, location_name: "AnalysisType"))
1411
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:savings_plans_to_add, Shapes::ShapeRef.new(shape: SavingsPlansToAdd, required: true, location_name: "SavingsPlansToAdd"))
1412
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:savings_plans_to_exclude, Shapes::ShapeRef.new(shape: SavingsPlansToExclude, location_name: "SavingsPlansToExclude"))
1413
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:look_back_time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "LookBackTimePeriod"))
1414
+ SavingsPlansPurchaseAnalysisConfiguration.struct_class = Types::SavingsPlansPurchaseAnalysisConfiguration
1415
+
1416
+ SavingsPlansPurchaseAnalysisDetails.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
1417
+ SavingsPlansPurchaseAnalysisDetails.add_member(:lookback_period_in_hours, Shapes::ShapeRef.new(shape: GenericString, location_name: "LookbackPeriodInHours"))
1418
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_average_coverage, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentAverageCoverage"))
1419
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_average_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentAverageHourlyOnDemandSpend"))
1420
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_maximum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMaximumHourlyOnDemandSpend"))
1421
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_minimum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMinimumHourlyOnDemandSpend"))
1422
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentOnDemandSpend"))
1423
+ SavingsPlansPurchaseAnalysisDetails.add_member(:existing_hourly_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "ExistingHourlyCommitment"))
1424
+ SavingsPlansPurchaseAnalysisDetails.add_member(:hourly_commitment_to_purchase, Shapes::ShapeRef.new(shape: GenericString, location_name: "HourlyCommitmentToPurchase"))
1425
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_average_coverage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedAverageCoverage"))
1426
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_average_utilization, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedAverageUtilization"))
1427
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_monthly_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavingsAmount"))
1428
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_on_demand_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedOnDemandCost"))
1429
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_on_demand_cost_with_current_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedOnDemandCostWithCurrentCommitment"))
1430
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_roi, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedROI"))
1431
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsAmount"))
1432
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsPercentage"))
1433
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_commitment_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedCommitmentCost"))
1434
+ SavingsPlansPurchaseAnalysisDetails.add_member(:latest_usage_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "LatestUsageTimestamp"))
1435
+ SavingsPlansPurchaseAnalysisDetails.add_member(:upfront_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "UpfrontCost"))
1436
+ SavingsPlansPurchaseAnalysisDetails.add_member(:additional_metadata, Shapes::ShapeRef.new(shape: GenericString, location_name: "AdditionalMetadata"))
1437
+ SavingsPlansPurchaseAnalysisDetails.add_member(:metrics_over_lookback_period, Shapes::ShapeRef.new(shape: MetricsOverLookbackPeriod, location_name: "MetricsOverLookbackPeriod"))
1438
+ SavingsPlansPurchaseAnalysisDetails.struct_class = Types::SavingsPlansPurchaseAnalysisDetails
1439
+
1325
1440
  SavingsPlansPurchaseRecommendation.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
1326
1441
  SavingsPlansPurchaseRecommendation.add_member(:savings_plans_type, Shapes::ShapeRef.new(shape: SupportedSavingsPlansType, location_name: "SavingsPlansType"))
1327
1442
  SavingsPlansPurchaseRecommendation.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
@@ -1374,6 +1489,10 @@ module Aws::CostExplorer
1374
1489
  SavingsPlansSavings.add_member(:on_demand_cost_equivalent, Shapes::ShapeRef.new(shape: GenericString, location_name: "OnDemandCostEquivalent"))
1375
1490
  SavingsPlansSavings.struct_class = Types::SavingsPlansSavings
1376
1491
 
1492
+ SavingsPlansToAdd.member = Shapes::ShapeRef.new(shape: SavingsPlans)
1493
+
1494
+ SavingsPlansToExclude.member = Shapes::ShapeRef.new(shape: SavingsPlansId)
1495
+
1377
1496
  SavingsPlansUtilization.add_member(:total_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalCommitment"))
1378
1497
  SavingsPlansUtilization.add_member(:used_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "UsedCommitment"))
1379
1498
  SavingsPlansUtilization.add_member(:unused_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "UnusedCommitment"))
@@ -1414,6 +1533,14 @@ module Aws::CostExplorer
1414
1533
 
1415
1534
  SortDefinitions.member = Shapes::ShapeRef.new(shape: SortDefinition)
1416
1535
 
1536
+ StartCommitmentPurchaseAnalysisRequest.add_member(:commitment_purchase_analysis_configuration, Shapes::ShapeRef.new(shape: CommitmentPurchaseAnalysisConfiguration, required: true, location_name: "CommitmentPurchaseAnalysisConfiguration"))
1537
+ StartCommitmentPurchaseAnalysisRequest.struct_class = Types::StartCommitmentPurchaseAnalysisRequest
1538
+
1539
+ StartCommitmentPurchaseAnalysisResponse.add_member(:analysis_id, Shapes::ShapeRef.new(shape: AnalysisId, required: true, location_name: "AnalysisId"))
1540
+ StartCommitmentPurchaseAnalysisResponse.add_member(:analysis_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "AnalysisStartedTime"))
1541
+ StartCommitmentPurchaseAnalysisResponse.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "EstimatedCompletionTime"))
1542
+ StartCommitmentPurchaseAnalysisResponse.struct_class = Types::StartCommitmentPurchaseAnalysisResponse
1543
+
1417
1544
  StartCostAllocationTagBackfillRequest.add_member(:backfill_from, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "BackfillFrom"))
1418
1545
  StartCostAllocationTagBackfillRequest.struct_class = Types::StartCostAllocationTagBackfillRequest
1419
1546
 
@@ -1676,6 +1803,17 @@ module Aws::CostExplorer
1676
1803
  o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1677
1804
  end)
1678
1805
 
1806
+ api.add_operation(:get_commitment_purchase_analysis, Seahorse::Model::Operation.new.tap do |o|
1807
+ o.name = "GetCommitmentPurchaseAnalysis"
1808
+ o.http_method = "POST"
1809
+ o.http_request_uri = "/"
1810
+ o.input = Shapes::ShapeRef.new(shape: GetCommitmentPurchaseAnalysisRequest)
1811
+ o.output = Shapes::ShapeRef.new(shape: GetCommitmentPurchaseAnalysisResponse)
1812
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1813
+ o.errors << Shapes::ShapeRef.new(shape: AnalysisNotFoundException)
1814
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1815
+ end)
1816
+
1679
1817
  api.add_operation(:get_cost_and_usage, Seahorse::Model::Operation.new.tap do |o|
1680
1818
  o.name = "GetCostAndUsage"
1681
1819
  o.http_method = "POST"
@@ -1869,6 +2007,17 @@ module Aws::CostExplorer
1869
2007
  o.errors << Shapes::ShapeRef.new(shape: UnresolvableUsageUnitException)
1870
2008
  end)
1871
2009
 
2010
+ api.add_operation(:list_commitment_purchase_analyses, Seahorse::Model::Operation.new.tap do |o|
2011
+ o.name = "ListCommitmentPurchaseAnalyses"
2012
+ o.http_method = "POST"
2013
+ o.http_request_uri = "/"
2014
+ o.input = Shapes::ShapeRef.new(shape: ListCommitmentPurchaseAnalysesRequest)
2015
+ o.output = Shapes::ShapeRef.new(shape: ListCommitmentPurchaseAnalysesResponse)
2016
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
2017
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
2018
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
2019
+ end)
2020
+
1872
2021
  api.add_operation(:list_cost_allocation_tag_backfill_history, Seahorse::Model::Operation.new.tap do |o|
1873
2022
  o.name = "ListCostAllocationTagBackfillHistory"
1874
2023
  o.http_method = "POST"
@@ -1946,6 +2095,18 @@ module Aws::CostExplorer
1946
2095
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1947
2096
  end)
1948
2097
 
2098
+ api.add_operation(:start_commitment_purchase_analysis, Seahorse::Model::Operation.new.tap do |o|
2099
+ o.name = "StartCommitmentPurchaseAnalysis"
2100
+ o.http_method = "POST"
2101
+ o.http_request_uri = "/"
2102
+ o.input = Shapes::ShapeRef.new(shape: StartCommitmentPurchaseAnalysisRequest)
2103
+ o.output = Shapes::ShapeRef.new(shape: StartCommitmentPurchaseAnalysisResponse)
2104
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
2105
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
2106
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
2107
+ o.errors << Shapes::ShapeRef.new(shape: GenerationExistsException)
2108
+ end)
2109
+
1949
2110
  api.add_operation(:start_cost_allocation_tag_backfill, Seahorse::Model::Operation.new.tap do |o|
1950
2111
  o.name = "StartCostAllocationTagBackfill"
1951
2112
  o.http_method = "POST"