aws-sdk-costexplorer 1.115.0 → 1.116.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: 532d5413e63d82cd1abba1cde6c96a177dd2220c3d2e8f7a9183a1e19b0ec742
4
+ data.tar.gz: a557f4f05fcda73f505c69a5b9ff77588d3903b8f341bd4e848477b40a8bf573
5
5
  SHA512:
6
- metadata.gz: d6b1981333575697ac13a4a6bf1ac6934df4a7264147f6b374fb555aecae6f8296b39b953fa0883e58fe710895fea1445087aba146c716d95e512c5cc4783cda
7
- data.tar.gz: beb804457ed418f0af7e31f8c2e7805a6fc341960223e12637e70ba8215907fb22e001f50c36004a027857901ef46d5d01eca43e51267d75258d15740874cb2b
6
+ metadata.gz: 0c4d20b9e0dc733e0f818b70415d2cb64a32e1a079c3cb7019512b2fceaf5cef56f923a90e7f7434fed09587bbbe521fb32c9f5f8b49b7f3e159978bb9b4bcde
7
+ data.tar.gz: a1077204bd7b8fbda78837c115bc76957d0bfca9a2851f0f8b46b4595ad1f89e6f13b49d551c0476555dc8bf1080d0d9af567082436d733c0c48f9dc91944084
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.116.0 (2024-11-21)
5
+ ------------------
6
+
7
+ * 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.
8
+
4
9
  1.115.0 (2024-11-18)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.115.0
1
+ 1.116.0
@@ -1252,6 +1252,90 @@ module Aws::CostExplorer
1252
1252
  req.send_request(options)
1253
1253
  end
1254
1254
 
1255
+ # Retrieves a commitment purchase analysis result based on the
1256
+ # `AnalysisId`.
1257
+ #
1258
+ # @option params [required, String] :analysis_id
1259
+ # The analysis ID that's associated with the commitment purchase
1260
+ # analysis.
1261
+ #
1262
+ # @return [Types::GetCommitmentPurchaseAnalysisResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1263
+ #
1264
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#estimated_completion_time #estimated_completion_time} => String
1265
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_completion_time #analysis_completion_time} => String
1266
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_started_time #analysis_started_time} => String
1267
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_id #analysis_id} => String
1268
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_status #analysis_status} => String
1269
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#error_code #error_code} => String
1270
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#analysis_details #analysis_details} => Types::AnalysisDetails
1271
+ # * {Types::GetCommitmentPurchaseAnalysisResponse#commitment_purchase_analysis_configuration #commitment_purchase_analysis_configuration} => Types::CommitmentPurchaseAnalysisConfiguration
1272
+ #
1273
+ # @example Request syntax with placeholder values
1274
+ #
1275
+ # resp = client.get_commitment_purchase_analysis({
1276
+ # analysis_id: "AnalysisId", # required
1277
+ # })
1278
+ #
1279
+ # @example Response structure
1280
+ #
1281
+ # resp.estimated_completion_time #=> String
1282
+ # resp.analysis_completion_time #=> String
1283
+ # resp.analysis_started_time #=> String
1284
+ # resp.analysis_id #=> String
1285
+ # resp.analysis_status #=> String, one of "SUCCEEDED", "PROCESSING", "FAILED"
1286
+ # resp.error_code #=> String, one of "NO_USAGE_FOUND", "INTERNAL_FAILURE", "INVALID_SAVINGS_PLANS_TO_ADD", "INVALID_SAVINGS_PLANS_TO_EXCLUDE", "INVALID_ACCOUNT_ID"
1287
+ # resp.analysis_details.savings_plans_purchase_analysis_details.currency_code #=> String
1288
+ # resp.analysis_details.savings_plans_purchase_analysis_details.lookback_period_in_hours #=> String
1289
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_average_coverage #=> String
1290
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_average_hourly_on_demand_spend #=> String
1291
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_maximum_hourly_on_demand_spend #=> String
1292
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_minimum_hourly_on_demand_spend #=> String
1293
+ # resp.analysis_details.savings_plans_purchase_analysis_details.current_on_demand_spend #=> String
1294
+ # resp.analysis_details.savings_plans_purchase_analysis_details.existing_hourly_commitment #=> String
1295
+ # resp.analysis_details.savings_plans_purchase_analysis_details.hourly_commitment_to_purchase #=> String
1296
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_average_coverage #=> String
1297
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_average_utilization #=> String
1298
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_monthly_savings_amount #=> String
1299
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_on_demand_cost #=> String
1300
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_on_demand_cost_with_current_commitment #=> String
1301
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_roi #=> String
1302
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_savings_amount #=> String
1303
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_savings_percentage #=> String
1304
+ # resp.analysis_details.savings_plans_purchase_analysis_details.estimated_commitment_cost #=> String
1305
+ # resp.analysis_details.savings_plans_purchase_analysis_details.latest_usage_timestamp #=> String
1306
+ # resp.analysis_details.savings_plans_purchase_analysis_details.upfront_cost #=> String
1307
+ # resp.analysis_details.savings_plans_purchase_analysis_details.additional_metadata #=> String
1308
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period #=> Array
1309
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].start_time #=> String
1310
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].estimated_on_demand_cost #=> String
1311
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].current_coverage #=> String
1312
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].estimated_coverage #=> String
1313
+ # resp.analysis_details.savings_plans_purchase_analysis_details.metrics_over_lookback_period[0].estimated_new_commitment_utilization #=> String
1314
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.account_scope #=> String, one of "PAYER", "LINKED"
1315
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.account_id #=> String
1316
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.analysis_type #=> String, one of "MAX_SAVINGS", "CUSTOM_COMMITMENT"
1317
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add #=> Array
1318
+ # 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"
1319
+ # 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"
1320
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].region #=> String
1321
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].instance_family #=> String
1322
+ # 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"
1323
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].savings_plans_commitment #=> Float
1324
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_add[0].offering_id #=> String
1325
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_exclude #=> Array
1326
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.savings_plans_to_exclude[0] #=> String
1327
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.look_back_time_period.start #=> String
1328
+ # resp.commitment_purchase_analysis_configuration.savings_plans_purchase_analysis_configuration.look_back_time_period.end #=> String
1329
+ #
1330
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCommitmentPurchaseAnalysis AWS API Documentation
1331
+ #
1332
+ # @overload get_commitment_purchase_analysis(params = {})
1333
+ # @param [Hash] params ({})
1334
+ def get_commitment_purchase_analysis(params = {}, options = {})
1335
+ req = build_request(:get_commitment_purchase_analysis, params)
1336
+ req.send_request(options)
1337
+ end
1338
+
1255
1339
  # Retrieves cost and usage metrics for your account. You can specify
1256
1340
  # which cost and usage-related metric that you want the request to
1257
1341
  # return. For example, you can specify `BlendedCosts` or
@@ -2045,11 +2129,11 @@ module Aws::CostExplorer
2045
2129
  # is with. Possible values are the following:
2046
2130
  #
2047
2131
  # \- Amazon Web Services(Amazon Web Services): The entity that sells
2048
- # Amazon Web Servicesservices.
2132
+ # Amazon Web Services services.
2049
2133
  #
2050
2134
  # \- AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian
2051
- # entity that's an acting reseller for Amazon Web Servicesservices in
2052
- # India.
2135
+ # entity that's an acting reseller for Amazon Web Services services
2136
+ # in India.
2053
2137
  #
2054
2138
  # \- Amazon Web Services Marketplace: The entity that supports the sale
2055
2139
  # of solutions that are built on Amazon Web Services by third-party
@@ -2991,6 +3075,14 @@ module Aws::CostExplorer
2991
3075
  #
2992
3076
  # * SERVICE
2993
3077
  #
3078
+ # <note markdown="1"> If not specified, the `SERVICE` filter defaults to Amazon Elastic
3079
+ # Compute Cloud - Compute. Supported values for `SERVICE` are Amazon
3080
+ # Elastic Compute Cloud - Compute, Amazon Relational Database Service,
3081
+ # Amazon ElastiCache, Amazon Redshift, and Amazon Elasticsearch
3082
+ # Service. The value for the `SERVICE` filter should not exceed "1".
3083
+ #
3084
+ # </note>
3085
+ #
2994
3086
  # * SCOPE
2995
3087
  #
2996
3088
  # * TENANCY
@@ -4527,6 +4619,71 @@ module Aws::CostExplorer
4527
4619
  req.send_request(options)
4528
4620
  end
4529
4621
 
4622
+ # Lists the commitment purchase analyses for your account based on the
4623
+ # last 30 days.
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,63 @@ 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
+ # You can request up to 20 analysis runs per day.
4978
+ #
4979
+ # @option params [required, Types::CommitmentPurchaseAnalysisConfiguration] :commitment_purchase_analysis_configuration
4980
+ # The configuration for the commitment purchase analysis.
4981
+ #
4982
+ # @return [Types::StartCommitmentPurchaseAnalysisResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4983
+ #
4984
+ # * {Types::StartCommitmentPurchaseAnalysisResponse#analysis_id #analysis_id} => String
4985
+ # * {Types::StartCommitmentPurchaseAnalysisResponse#analysis_started_time #analysis_started_time} => String
4986
+ # * {Types::StartCommitmentPurchaseAnalysisResponse#estimated_completion_time #estimated_completion_time} => String
4987
+ #
4988
+ # @example Request syntax with placeholder values
4989
+ #
4990
+ # resp = client.start_commitment_purchase_analysis({
4991
+ # commitment_purchase_analysis_configuration: { # required
4992
+ # savings_plans_purchase_analysis_configuration: {
4993
+ # account_scope: "PAYER", # accepts PAYER, LINKED
4994
+ # account_id: "AccountId",
4995
+ # analysis_type: "MAX_SAVINGS", # required, accepts MAX_SAVINGS, CUSTOM_COMMITMENT
4996
+ # savings_plans_to_add: [ # required
4997
+ # {
4998
+ # payment_option: "NO_UPFRONT", # accepts NO_UPFRONT, PARTIAL_UPFRONT, ALL_UPFRONT, LIGHT_UTILIZATION, MEDIUM_UTILIZATION, HEAVY_UTILIZATION
4999
+ # savings_plans_type: "COMPUTE_SP", # accepts COMPUTE_SP, EC2_INSTANCE_SP, SAGEMAKER_SP
5000
+ # region: "GenericString",
5001
+ # instance_family: "GenericString",
5002
+ # term_in_years: "ONE_YEAR", # accepts ONE_YEAR, THREE_YEARS
5003
+ # savings_plans_commitment: 1.0,
5004
+ # offering_id: "GenericString",
5005
+ # },
5006
+ # ],
5007
+ # savings_plans_to_exclude: ["SavingsPlansId"],
5008
+ # look_back_time_period: { # required
5009
+ # start: "YearMonthDay", # required
5010
+ # end: "YearMonthDay", # required
5011
+ # },
5012
+ # },
5013
+ # },
5014
+ # })
5015
+ #
5016
+ # @example Response structure
5017
+ #
5018
+ # resp.analysis_id #=> String
5019
+ # resp.analysis_started_time #=> String
5020
+ # resp.estimated_completion_time #=> String
5021
+ #
5022
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/StartCommitmentPurchaseAnalysis AWS API Documentation
5023
+ #
5024
+ # @overload start_commitment_purchase_analysis(params = {})
5025
+ # @param [Hash] params ({})
5026
+ def start_commitment_purchase_analysis(params = {}, options = {})
5027
+ req = build_request(:start_commitment_purchase_analysis, params)
5028
+ req.send_request(options)
5029
+ end
5030
+
4817
5031
  # Request a cost allocation tag backfill. This will backfill the
4818
5032
  # activation status (either `active` or `inactive`) for all tag keys
4819
5033
  # from `para:BackfillFrom` up to the when this request is made.
@@ -5336,7 +5550,7 @@ module Aws::CostExplorer
5336
5550
  tracer: tracer
5337
5551
  )
5338
5552
  context[:gem_name] = 'aws-sdk-costexplorer'
5339
- context[:gem_version] = '1.115.0'
5553
+ context[:gem_version] = '1.116.0'
5340
5554
  Seahorse::Client::Request.new(handlers, context)
5341
5555
  end
5342
5556
 
@@ -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')
@@ -275,19 +290,26 @@ module Aws::CostExplorer
275
290
  RootCause = Shapes::StructureShape.new(name: 'RootCause')
276
291
  RootCauses = Shapes::ListShape.new(name: 'RootCauses')
277
292
  SavingsPlanArn = Shapes::StringShape.new(name: 'SavingsPlanArn')
293
+ SavingsPlans = Shapes::StructureShape.new(name: 'SavingsPlans')
278
294
  SavingsPlansAmortizedCommitment = Shapes::StructureShape.new(name: 'SavingsPlansAmortizedCommitment')
295
+ SavingsPlansCommitment = Shapes::FloatShape.new(name: 'SavingsPlansCommitment')
279
296
  SavingsPlansCoverage = Shapes::StructureShape.new(name: 'SavingsPlansCoverage')
280
297
  SavingsPlansCoverageData = Shapes::StructureShape.new(name: 'SavingsPlansCoverageData')
281
298
  SavingsPlansCoverages = Shapes::ListShape.new(name: 'SavingsPlansCoverages')
282
299
  SavingsPlansDataType = Shapes::StringShape.new(name: 'SavingsPlansDataType')
283
300
  SavingsPlansDataTypes = Shapes::ListShape.new(name: 'SavingsPlansDataTypes')
284
301
  SavingsPlansDetails = Shapes::StructureShape.new(name: 'SavingsPlansDetails')
302
+ SavingsPlansId = Shapes::StringShape.new(name: 'SavingsPlansId')
303
+ SavingsPlansPurchaseAnalysisConfiguration = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseAnalysisConfiguration')
304
+ SavingsPlansPurchaseAnalysisDetails = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseAnalysisDetails')
285
305
  SavingsPlansPurchaseRecommendation = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendation')
286
306
  SavingsPlansPurchaseRecommendationDetail = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationDetail')
287
307
  SavingsPlansPurchaseRecommendationDetailList = Shapes::ListShape.new(name: 'SavingsPlansPurchaseRecommendationDetailList')
288
308
  SavingsPlansPurchaseRecommendationMetadata = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationMetadata')
289
309
  SavingsPlansPurchaseRecommendationSummary = Shapes::StructureShape.new(name: 'SavingsPlansPurchaseRecommendationSummary')
290
310
  SavingsPlansSavings = Shapes::StructureShape.new(name: 'SavingsPlansSavings')
311
+ SavingsPlansToAdd = Shapes::ListShape.new(name: 'SavingsPlansToAdd')
312
+ SavingsPlansToExclude = Shapes::ListShape.new(name: 'SavingsPlansToExclude')
291
313
  SavingsPlansUtilization = Shapes::StructureShape.new(name: 'SavingsPlansUtilization')
292
314
  SavingsPlansUtilizationAggregates = Shapes::StructureShape.new(name: 'SavingsPlansUtilizationAggregates')
293
315
  SavingsPlansUtilizationByTime = Shapes::StructureShape.new(name: 'SavingsPlansUtilizationByTime')
@@ -301,6 +323,8 @@ module Aws::CostExplorer
301
323
  SortDefinitionKey = Shapes::StringShape.new(name: 'SortDefinitionKey')
302
324
  SortDefinitions = Shapes::ListShape.new(name: 'SortDefinitions')
303
325
  SortOrder = Shapes::StringShape.new(name: 'SortOrder')
326
+ StartCommitmentPurchaseAnalysisRequest = Shapes::StructureShape.new(name: 'StartCommitmentPurchaseAnalysisRequest')
327
+ StartCommitmentPurchaseAnalysisResponse = Shapes::StructureShape.new(name: 'StartCommitmentPurchaseAnalysisResponse')
304
328
  StartCostAllocationTagBackfillRequest = Shapes::StructureShape.new(name: 'StartCostAllocationTagBackfillRequest')
305
329
  StartCostAllocationTagBackfillResponse = Shapes::StructureShape.new(name: 'StartCostAllocationTagBackfillResponse')
306
330
  StartSavingsPlansPurchaseRecommendationGenerationRequest = Shapes::StructureShape.new(name: 'StartSavingsPlansPurchaseRecommendationGenerationRequest')
@@ -357,6 +381,25 @@ module Aws::CostExplorer
357
381
  YearMonthDay = Shapes::StringShape.new(name: 'YearMonthDay')
358
382
  ZonedDateTime = Shapes::StringShape.new(name: 'ZonedDateTime')
359
383
 
384
+ AnalysisDetails.add_member(:savings_plans_purchase_analysis_details, Shapes::ShapeRef.new(shape: SavingsPlansPurchaseAnalysisDetails, location_name: "SavingsPlansPurchaseAnalysisDetails"))
385
+ AnalysisDetails.struct_class = Types::AnalysisDetails
386
+
387
+ AnalysisIds.member = Shapes::ShapeRef.new(shape: AnalysisId)
388
+
389
+ AnalysisNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
390
+ AnalysisNotFoundException.struct_class = Types::AnalysisNotFoundException
391
+
392
+ AnalysisSummary.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EstimatedCompletionTime"))
393
+ AnalysisSummary.add_member(:analysis_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "AnalysisCompletionTime"))
394
+ AnalysisSummary.add_member(:analysis_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "AnalysisStartedTime"))
395
+ AnalysisSummary.add_member(:analysis_status, Shapes::ShapeRef.new(shape: AnalysisStatus, location_name: "AnalysisStatus"))
396
+ AnalysisSummary.add_member(:error_code, Shapes::ShapeRef.new(shape: ErrorCode, location_name: "ErrorCode"))
397
+ AnalysisSummary.add_member(:analysis_id, Shapes::ShapeRef.new(shape: AnalysisId, location_name: "AnalysisId"))
398
+ AnalysisSummary.add_member(:commitment_purchase_analysis_configuration, Shapes::ShapeRef.new(shape: CommitmentPurchaseAnalysisConfiguration, location_name: "CommitmentPurchaseAnalysisConfiguration"))
399
+ AnalysisSummary.struct_class = Types::AnalysisSummary
400
+
401
+ AnalysisSummaryList.member = Shapes::ShapeRef.new(shape: AnalysisSummary)
402
+
360
403
  Anomalies.member = Shapes::ShapeRef.new(shape: Anomaly)
361
404
 
362
405
  Anomaly.add_member(:anomaly_id, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "AnomalyId"))
@@ -415,6 +458,9 @@ module Aws::CostExplorer
415
458
  BillExpirationException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
416
459
  BillExpirationException.struct_class = Types::BillExpirationException
417
460
 
461
+ CommitmentPurchaseAnalysisConfiguration.add_member(:savings_plans_purchase_analysis_configuration, Shapes::ShapeRef.new(shape: SavingsPlansPurchaseAnalysisConfiguration, location_name: "SavingsPlansPurchaseAnalysisConfiguration"))
462
+ CommitmentPurchaseAnalysisConfiguration.struct_class = Types::CommitmentPurchaseAnalysisConfiguration
463
+
418
464
  CostAllocationTag.add_member(:tag_key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "TagKey"))
419
465
  CostAllocationTag.add_member(:type, Shapes::ShapeRef.new(shape: CostAllocationTagType, required: true, location_name: "Type"))
420
466
  CostAllocationTag.add_member(:status, Shapes::ShapeRef.new(shape: CostAllocationTagStatus, required: true, location_name: "Status"))
@@ -754,6 +800,19 @@ module Aws::CostExplorer
754
800
  GetApproximateUsageRecordsResponse.add_member(:lookback_period, Shapes::ShapeRef.new(shape: DateInterval, location_name: "LookbackPeriod"))
755
801
  GetApproximateUsageRecordsResponse.struct_class = Types::GetApproximateUsageRecordsResponse
756
802
 
803
+ GetCommitmentPurchaseAnalysisRequest.add_member(:analysis_id, Shapes::ShapeRef.new(shape: AnalysisId, required: true, location_name: "AnalysisId"))
804
+ GetCommitmentPurchaseAnalysisRequest.struct_class = Types::GetCommitmentPurchaseAnalysisRequest
805
+
806
+ GetCommitmentPurchaseAnalysisResponse.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "EstimatedCompletionTime"))
807
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "AnalysisCompletionTime"))
808
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "AnalysisStartedTime"))
809
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_id, Shapes::ShapeRef.new(shape: AnalysisId, required: true, location_name: "AnalysisId"))
810
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_status, Shapes::ShapeRef.new(shape: AnalysisStatus, required: true, location_name: "AnalysisStatus"))
811
+ GetCommitmentPurchaseAnalysisResponse.add_member(:error_code, Shapes::ShapeRef.new(shape: ErrorCode, location_name: "ErrorCode"))
812
+ GetCommitmentPurchaseAnalysisResponse.add_member(:analysis_details, Shapes::ShapeRef.new(shape: AnalysisDetails, location_name: "AnalysisDetails"))
813
+ GetCommitmentPurchaseAnalysisResponse.add_member(:commitment_purchase_analysis_configuration, Shapes::ShapeRef.new(shape: CommitmentPurchaseAnalysisConfiguration, required: true, location_name: "CommitmentPurchaseAnalysisConfiguration"))
814
+ GetCommitmentPurchaseAnalysisResponse.struct_class = Types::GetCommitmentPurchaseAnalysisResponse
815
+
757
816
  GetCostAndUsageRequest.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "TimePeriod"))
758
817
  GetCostAndUsageRequest.add_member(:granularity, Shapes::ShapeRef.new(shape: Granularity, required: true, location_name: "Granularity"))
759
818
  GetCostAndUsageRequest.add_member(:filter, Shapes::ShapeRef.new(shape: Expression, location_name: "Filter"))
@@ -1006,6 +1065,16 @@ module Aws::CostExplorer
1006
1065
  LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1007
1066
  LimitExceededException.struct_class = Types::LimitExceededException
1008
1067
 
1068
+ ListCommitmentPurchaseAnalysesRequest.add_member(:analysis_status, Shapes::ShapeRef.new(shape: AnalysisStatus, location_name: "AnalysisStatus"))
1069
+ ListCommitmentPurchaseAnalysesRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
1070
+ ListCommitmentPurchaseAnalysesRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: NonNegativeInteger, location_name: "PageSize"))
1071
+ ListCommitmentPurchaseAnalysesRequest.add_member(:analysis_ids, Shapes::ShapeRef.new(shape: AnalysisIds, location_name: "AnalysisIds"))
1072
+ ListCommitmentPurchaseAnalysesRequest.struct_class = Types::ListCommitmentPurchaseAnalysesRequest
1073
+
1074
+ ListCommitmentPurchaseAnalysesResponse.add_member(:analysis_summary_list, Shapes::ShapeRef.new(shape: AnalysisSummaryList, location_name: "AnalysisSummaryList"))
1075
+ ListCommitmentPurchaseAnalysesResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
1076
+ ListCommitmentPurchaseAnalysesResponse.struct_class = Types::ListCommitmentPurchaseAnalysesResponse
1077
+
1009
1078
  ListCostAllocationTagBackfillHistoryRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
1010
1079
  ListCostAllocationTagBackfillHistoryRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: CostAllocationTagsMaxResults, location_name: "MaxResults", metadata: {"box"=>true}))
1011
1080
  ListCostAllocationTagBackfillHistoryRequest.struct_class = Types::ListCostAllocationTagBackfillHistoryRequest
@@ -1297,6 +1366,15 @@ module Aws::CostExplorer
1297
1366
 
1298
1367
  RootCauses.member = Shapes::ShapeRef.new(shape: RootCause)
1299
1368
 
1369
+ SavingsPlans.add_member(:payment_option, Shapes::ShapeRef.new(shape: PaymentOption, location_name: "PaymentOption"))
1370
+ SavingsPlans.add_member(:savings_plans_type, Shapes::ShapeRef.new(shape: SupportedSavingsPlansType, location_name: "SavingsPlansType"))
1371
+ SavingsPlans.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
1372
+ SavingsPlans.add_member(:instance_family, Shapes::ShapeRef.new(shape: GenericString, location_name: "InstanceFamily"))
1373
+ SavingsPlans.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
1374
+ SavingsPlans.add_member(:savings_plans_commitment, Shapes::ShapeRef.new(shape: SavingsPlansCommitment, location_name: "SavingsPlansCommitment"))
1375
+ SavingsPlans.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
1376
+ SavingsPlans.struct_class = Types::SavingsPlans
1377
+
1300
1378
  SavingsPlansAmortizedCommitment.add_member(:amortized_recurring_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "AmortizedRecurringCommitment"))
1301
1379
  SavingsPlansAmortizedCommitment.add_member(:amortized_upfront_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "AmortizedUpfrontCommitment"))
1302
1380
  SavingsPlansAmortizedCommitment.add_member(:total_amortized_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalAmortizedCommitment"))
@@ -1322,6 +1400,38 @@ module Aws::CostExplorer
1322
1400
  SavingsPlansDetails.add_member(:offering_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "OfferingId"))
1323
1401
  SavingsPlansDetails.struct_class = Types::SavingsPlansDetails
1324
1402
 
1403
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
1404
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "AccountId"))
1405
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:analysis_type, Shapes::ShapeRef.new(shape: AnalysisType, required: true, location_name: "AnalysisType"))
1406
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:savings_plans_to_add, Shapes::ShapeRef.new(shape: SavingsPlansToAdd, required: true, location_name: "SavingsPlansToAdd"))
1407
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:savings_plans_to_exclude, Shapes::ShapeRef.new(shape: SavingsPlansToExclude, location_name: "SavingsPlansToExclude"))
1408
+ SavingsPlansPurchaseAnalysisConfiguration.add_member(:look_back_time_period, Shapes::ShapeRef.new(shape: DateInterval, required: true, location_name: "LookBackTimePeriod"))
1409
+ SavingsPlansPurchaseAnalysisConfiguration.struct_class = Types::SavingsPlansPurchaseAnalysisConfiguration
1410
+
1411
+ SavingsPlansPurchaseAnalysisDetails.add_member(:currency_code, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrencyCode"))
1412
+ SavingsPlansPurchaseAnalysisDetails.add_member(:lookback_period_in_hours, Shapes::ShapeRef.new(shape: GenericString, location_name: "LookbackPeriodInHours"))
1413
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_average_coverage, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentAverageCoverage"))
1414
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_average_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentAverageHourlyOnDemandSpend"))
1415
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_maximum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMaximumHourlyOnDemandSpend"))
1416
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_minimum_hourly_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentMinimumHourlyOnDemandSpend"))
1417
+ SavingsPlansPurchaseAnalysisDetails.add_member(:current_on_demand_spend, Shapes::ShapeRef.new(shape: GenericString, location_name: "CurrentOnDemandSpend"))
1418
+ SavingsPlansPurchaseAnalysisDetails.add_member(:existing_hourly_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "ExistingHourlyCommitment"))
1419
+ SavingsPlansPurchaseAnalysisDetails.add_member(:hourly_commitment_to_purchase, Shapes::ShapeRef.new(shape: GenericString, location_name: "HourlyCommitmentToPurchase"))
1420
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_average_coverage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedAverageCoverage"))
1421
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_average_utilization, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedAverageUtilization"))
1422
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_monthly_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedMonthlySavingsAmount"))
1423
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_on_demand_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedOnDemandCost"))
1424
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_on_demand_cost_with_current_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedOnDemandCostWithCurrentCommitment"))
1425
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_roi, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedROI"))
1426
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_savings_amount, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsAmount"))
1427
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_savings_percentage, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedSavingsPercentage"))
1428
+ SavingsPlansPurchaseAnalysisDetails.add_member(:estimated_commitment_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "EstimatedCommitmentCost"))
1429
+ SavingsPlansPurchaseAnalysisDetails.add_member(:latest_usage_timestamp, Shapes::ShapeRef.new(shape: GenericString, location_name: "LatestUsageTimestamp"))
1430
+ SavingsPlansPurchaseAnalysisDetails.add_member(:upfront_cost, Shapes::ShapeRef.new(shape: GenericString, location_name: "UpfrontCost"))
1431
+ SavingsPlansPurchaseAnalysisDetails.add_member(:additional_metadata, Shapes::ShapeRef.new(shape: GenericString, location_name: "AdditionalMetadata"))
1432
+ SavingsPlansPurchaseAnalysisDetails.add_member(:metrics_over_lookback_period, Shapes::ShapeRef.new(shape: MetricsOverLookbackPeriod, location_name: "MetricsOverLookbackPeriod"))
1433
+ SavingsPlansPurchaseAnalysisDetails.struct_class = Types::SavingsPlansPurchaseAnalysisDetails
1434
+
1325
1435
  SavingsPlansPurchaseRecommendation.add_member(:account_scope, Shapes::ShapeRef.new(shape: AccountScope, location_name: "AccountScope"))
1326
1436
  SavingsPlansPurchaseRecommendation.add_member(:savings_plans_type, Shapes::ShapeRef.new(shape: SupportedSavingsPlansType, location_name: "SavingsPlansType"))
1327
1437
  SavingsPlansPurchaseRecommendation.add_member(:term_in_years, Shapes::ShapeRef.new(shape: TermInYears, location_name: "TermInYears"))
@@ -1374,6 +1484,10 @@ module Aws::CostExplorer
1374
1484
  SavingsPlansSavings.add_member(:on_demand_cost_equivalent, Shapes::ShapeRef.new(shape: GenericString, location_name: "OnDemandCostEquivalent"))
1375
1485
  SavingsPlansSavings.struct_class = Types::SavingsPlansSavings
1376
1486
 
1487
+ SavingsPlansToAdd.member = Shapes::ShapeRef.new(shape: SavingsPlans)
1488
+
1489
+ SavingsPlansToExclude.member = Shapes::ShapeRef.new(shape: SavingsPlansId)
1490
+
1377
1491
  SavingsPlansUtilization.add_member(:total_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "TotalCommitment"))
1378
1492
  SavingsPlansUtilization.add_member(:used_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "UsedCommitment"))
1379
1493
  SavingsPlansUtilization.add_member(:unused_commitment, Shapes::ShapeRef.new(shape: GenericString, location_name: "UnusedCommitment"))
@@ -1414,6 +1528,14 @@ module Aws::CostExplorer
1414
1528
 
1415
1529
  SortDefinitions.member = Shapes::ShapeRef.new(shape: SortDefinition)
1416
1530
 
1531
+ StartCommitmentPurchaseAnalysisRequest.add_member(:commitment_purchase_analysis_configuration, Shapes::ShapeRef.new(shape: CommitmentPurchaseAnalysisConfiguration, required: true, location_name: "CommitmentPurchaseAnalysisConfiguration"))
1532
+ StartCommitmentPurchaseAnalysisRequest.struct_class = Types::StartCommitmentPurchaseAnalysisRequest
1533
+
1534
+ StartCommitmentPurchaseAnalysisResponse.add_member(:analysis_id, Shapes::ShapeRef.new(shape: AnalysisId, required: true, location_name: "AnalysisId"))
1535
+ StartCommitmentPurchaseAnalysisResponse.add_member(:analysis_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "AnalysisStartedTime"))
1536
+ StartCommitmentPurchaseAnalysisResponse.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "EstimatedCompletionTime"))
1537
+ StartCommitmentPurchaseAnalysisResponse.struct_class = Types::StartCommitmentPurchaseAnalysisResponse
1538
+
1417
1539
  StartCostAllocationTagBackfillRequest.add_member(:backfill_from, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "BackfillFrom"))
1418
1540
  StartCostAllocationTagBackfillRequest.struct_class = Types::StartCostAllocationTagBackfillRequest
1419
1541
 
@@ -1676,6 +1798,17 @@ module Aws::CostExplorer
1676
1798
  o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1677
1799
  end)
1678
1800
 
1801
+ api.add_operation(:get_commitment_purchase_analysis, Seahorse::Model::Operation.new.tap do |o|
1802
+ o.name = "GetCommitmentPurchaseAnalysis"
1803
+ o.http_method = "POST"
1804
+ o.http_request_uri = "/"
1805
+ o.input = Shapes::ShapeRef.new(shape: GetCommitmentPurchaseAnalysisRequest)
1806
+ o.output = Shapes::ShapeRef.new(shape: GetCommitmentPurchaseAnalysisResponse)
1807
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1808
+ o.errors << Shapes::ShapeRef.new(shape: AnalysisNotFoundException)
1809
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
1810
+ end)
1811
+
1679
1812
  api.add_operation(:get_cost_and_usage, Seahorse::Model::Operation.new.tap do |o|
1680
1813
  o.name = "GetCostAndUsage"
1681
1814
  o.http_method = "POST"
@@ -1869,6 +2002,17 @@ module Aws::CostExplorer
1869
2002
  o.errors << Shapes::ShapeRef.new(shape: UnresolvableUsageUnitException)
1870
2003
  end)
1871
2004
 
2005
+ api.add_operation(:list_commitment_purchase_analyses, Seahorse::Model::Operation.new.tap do |o|
2006
+ o.name = "ListCommitmentPurchaseAnalyses"
2007
+ o.http_method = "POST"
2008
+ o.http_request_uri = "/"
2009
+ o.input = Shapes::ShapeRef.new(shape: ListCommitmentPurchaseAnalysesRequest)
2010
+ o.output = Shapes::ShapeRef.new(shape: ListCommitmentPurchaseAnalysesResponse)
2011
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
2012
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
2013
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
2014
+ end)
2015
+
1872
2016
  api.add_operation(:list_cost_allocation_tag_backfill_history, Seahorse::Model::Operation.new.tap do |o|
1873
2017
  o.name = "ListCostAllocationTagBackfillHistory"
1874
2018
  o.http_method = "POST"
@@ -1946,6 +2090,18 @@ module Aws::CostExplorer
1946
2090
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1947
2091
  end)
1948
2092
 
2093
+ api.add_operation(:start_commitment_purchase_analysis, Seahorse::Model::Operation.new.tap do |o|
2094
+ o.name = "StartCommitmentPurchaseAnalysis"
2095
+ o.http_method = "POST"
2096
+ o.http_request_uri = "/"
2097
+ o.input = Shapes::ShapeRef.new(shape: StartCommitmentPurchaseAnalysisRequest)
2098
+ o.output = Shapes::ShapeRef.new(shape: StartCommitmentPurchaseAnalysisResponse)
2099
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
2100
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
2101
+ o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
2102
+ o.errors << Shapes::ShapeRef.new(shape: GenerationExistsException)
2103
+ end)
2104
+
1949
2105
  api.add_operation(:start_cost_allocation_tag_backfill, Seahorse::Model::Operation.new.tap do |o|
1950
2106
  o.name = "StartCostAllocationTagBackfill"
1951
2107
  o.http_method = "POST"
@@ -27,6 +27,7 @@ module Aws::CostExplorer
27
27
  # See {Seahorse::Client::RequestContext} for more information.
28
28
  #
29
29
  # ## Error Classes
30
+ # * {AnalysisNotFoundException}
30
31
  # * {BackfillLimitExceededException}
31
32
  # * {BillExpirationException}
32
33
  # * {DataUnavailableException}
@@ -47,6 +48,21 @@ module Aws::CostExplorer
47
48
 
48
49
  extend Aws::Errors::DynamicErrors
49
50
 
51
+ class AnalysisNotFoundException < ServiceError
52
+
53
+ # @param [Seahorse::Client::RequestContext] context
54
+ # @param [String] message
55
+ # @param [Aws::CostExplorer::Types::AnalysisNotFoundException] data
56
+ def initialize(context, message, data = Aws::EmptyStructure.new)
57
+ super(context, message, data)
58
+ end
59
+
60
+ # @return [String]
61
+ def message
62
+ @message || @data[:message]
63
+ end
64
+ end
65
+
50
66
  class BackfillLimitExceededException < ServiceError
51
67
 
52
68
  # @param [Seahorse::Client::RequestContext] context