aws-sdk-costexplorer 1.79.0 → 1.80.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: 8235b2e6ddc5a141870c3c1804ab27a409a8e3e87c25e7e80a4497d210c365e3
4
- data.tar.gz: fb8c669d58df2f1599dcded161a49c1d72608be440ea047157c42d8e27eb521c
3
+ metadata.gz: f29b723690f77b46793898db81ba6e1f209f34e2354626394a2d2b8efd17b35b
4
+ data.tar.gz: cb6e46daf2706629f949d5ef43238ae6d27dfca49bc916d9c4475181f017d44a
5
5
  SHA512:
6
- metadata.gz: 5a01e6b41373407adeb71f17c99bff1033c26f526660b35d7500391cf752ba01c0c7cfb46b715dc8bc7e4ec7d33e167a885edaeaaa4f933c2eb8daeeba93f898
7
- data.tar.gz: 1fdce2a02a598f1fdac2e06835bef418e86cdee62fb4e007d64cb191ad1948ab9136a38ea0c6700908e66a421d146f0f18e617eb171bfc41d936a794a56e1a0f
6
+ metadata.gz: b34ff974f7f1e5a69df15f3ceb033001b4f73771ddcaabedcb05d598499fc1e386f00d4cf10767d8888335c9b176c66d327f0ae2d6c39f775833adeda9806441
7
+ data.tar.gz: 77c3259379b7d91dc6fc6a0048c5ed9a52d16fd77c81738ea8a33c5c4265210e9606f5ea32a266be4fd4b1f912427c584a093057b08d440c1fe793a28ea27c2c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.80.0 (2022-12-05)
5
+ ------------------
6
+
7
+ * Feature - This release introduces two new APIs that offer a 1-click experience to refresh Savings Plans recommendations. The two APIs are StartSavingsPlansPurchaseRecommendationGeneration and ListSavingsPlansPurchaseRecommendationGeneration.
8
+
4
9
  1.79.0 (2022-10-25)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.79.0
1
+ 1.80.0
@@ -3292,8 +3292,10 @@ module Aws::CostExplorer
3292
3292
  req.send_request(options)
3293
3293
  end
3294
3294
 
3295
- # Retrieves your request parameters, Savings Plan Recommendations
3296
- # Summary and Details.
3295
+ # Retrieves the Savings Plans recommendations for your account. First
3296
+ # use `StartSavingsPlansPurchaseRecommendationGeneration` to generate a
3297
+ # new set of recommendations, and then use
3298
+ # `GetSavingsPlansPurchaseRecommendation` to retrieve them.
3297
3299
  #
3298
3300
  # @option params [required, String] :savings_plans_type
3299
3301
  # The Savings Plans recommendation type that's requested.
@@ -4208,6 +4210,55 @@ module Aws::CostExplorer
4208
4210
  req.send_request(options)
4209
4211
  end
4210
4212
 
4213
+ # Retrieves a list of your historical recommendation generations within
4214
+ # the past 30 days.
4215
+ #
4216
+ # @option params [String] :generation_status
4217
+ # The status of the recommendation generation.
4218
+ #
4219
+ # @option params [Array<String>] :recommendation_ids
4220
+ # The IDs for each specific recommendation.
4221
+ #
4222
+ # @option params [Integer] :page_size
4223
+ # The number of recommendations that you want returned in a single
4224
+ # response object.
4225
+ #
4226
+ # @option params [String] :next_page_token
4227
+ # The token to retrieve the next set of results.
4228
+ #
4229
+ # @return [Types::ListSavingsPlansPurchaseRecommendationGenerationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4230
+ #
4231
+ # * {Types::ListSavingsPlansPurchaseRecommendationGenerationResponse#generation_summary_list #generation_summary_list} => Array&lt;Types::GenerationSummary&gt;
4232
+ # * {Types::ListSavingsPlansPurchaseRecommendationGenerationResponse#next_page_token #next_page_token} => String
4233
+ #
4234
+ # @example Request syntax with placeholder values
4235
+ #
4236
+ # resp = client.list_savings_plans_purchase_recommendation_generation({
4237
+ # generation_status: "SUCCEEDED", # accepts SUCCEEDED, PROCESSING, FAILED
4238
+ # recommendation_ids: ["RecommendationId"],
4239
+ # page_size: 1,
4240
+ # next_page_token: "NextPageToken",
4241
+ # })
4242
+ #
4243
+ # @example Response structure
4244
+ #
4245
+ # resp.generation_summary_list #=> Array
4246
+ # resp.generation_summary_list[0].recommendation_id #=> String
4247
+ # resp.generation_summary_list[0].generation_status #=> String, one of "SUCCEEDED", "PROCESSING", "FAILED"
4248
+ # resp.generation_summary_list[0].generation_started_time #=> String
4249
+ # resp.generation_summary_list[0].generation_completion_time #=> String
4250
+ # resp.generation_summary_list[0].estimated_completion_time #=> String
4251
+ # resp.next_page_token #=> String
4252
+ #
4253
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListSavingsPlansPurchaseRecommendationGeneration AWS API Documentation
4254
+ #
4255
+ # @overload list_savings_plans_purchase_recommendation_generation(params = {})
4256
+ # @param [Hash] params ({})
4257
+ def list_savings_plans_purchase_recommendation_generation(params = {}, options = {})
4258
+ req = build_request(:list_savings_plans_purchase_recommendation_generation, params)
4259
+ req.send_request(options)
4260
+ end
4261
+
4211
4262
  # Returns a list of resource tags associated with the resource specified
4212
4263
  # by the Amazon Resource Name (ARN).
4213
4264
  #
@@ -4277,6 +4328,39 @@ module Aws::CostExplorer
4277
4328
  req.send_request(options)
4278
4329
  end
4279
4330
 
4331
+ # Requests a Savings Plans recommendation generation. This enables you
4332
+ # to calculate a fresh set of Savings Plans recommendations that takes
4333
+ # your latest usage data and current Savings Plans inventory into
4334
+ # account. You can refresh Savings Plans recommendations up to three
4335
+ # times daily for a consolidated billing family.
4336
+ #
4337
+ # <note markdown="1"> `StartSavingsPlansPurchaseRecommendationGeneration` has no request
4338
+ # syntax because no input parameters are needed to support this
4339
+ # operation.
4340
+ #
4341
+ # </note>
4342
+ #
4343
+ # @return [Types::StartSavingsPlansPurchaseRecommendationGenerationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4344
+ #
4345
+ # * {Types::StartSavingsPlansPurchaseRecommendationGenerationResponse#recommendation_id #recommendation_id} => String
4346
+ # * {Types::StartSavingsPlansPurchaseRecommendationGenerationResponse#generation_started_time #generation_started_time} => String
4347
+ # * {Types::StartSavingsPlansPurchaseRecommendationGenerationResponse#estimated_completion_time #estimated_completion_time} => String
4348
+ #
4349
+ # @example Response structure
4350
+ #
4351
+ # resp.recommendation_id #=> String
4352
+ # resp.generation_started_time #=> String
4353
+ # resp.estimated_completion_time #=> String
4354
+ #
4355
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/StartSavingsPlansPurchaseRecommendationGeneration AWS API Documentation
4356
+ #
4357
+ # @overload start_savings_plans_purchase_recommendation_generation(params = {})
4358
+ # @param [Hash] params ({})
4359
+ def start_savings_plans_purchase_recommendation_generation(params = {}, options = {})
4360
+ req = build_request(:start_savings_plans_purchase_recommendation_generation, params)
4361
+ req.send_request(options)
4362
+ end
4363
+
4280
4364
  # An API operation for adding one or more tags (key-value pairs) to a
4281
4365
  # resource.
4282
4366
  #
@@ -4634,7 +4718,7 @@ module Aws::CostExplorer
4634
4718
  params: params,
4635
4719
  config: config)
4636
4720
  context[:gem_name] = 'aws-sdk-costexplorer'
4637
- context[:gem_version] = '1.79.0'
4721
+ context[:gem_version] = '1.80.0'
4638
4722
  Seahorse::Client::Request.new(handlers, context)
4639
4723
  end
4640
4724
 
@@ -113,6 +113,10 @@ module Aws::CostExplorer
113
113
  FindingReasonCodes = Shapes::ListShape.new(name: 'FindingReasonCodes')
114
114
  ForecastResult = Shapes::StructureShape.new(name: 'ForecastResult')
115
115
  ForecastResultsByTime = Shapes::ListShape.new(name: 'ForecastResultsByTime')
116
+ GenerationExistsException = Shapes::StructureShape.new(name: 'GenerationExistsException')
117
+ GenerationStatus = Shapes::StringShape.new(name: 'GenerationStatus')
118
+ GenerationSummary = Shapes::StructureShape.new(name: 'GenerationSummary')
119
+ GenerationSummaryList = Shapes::ListShape.new(name: 'GenerationSummaryList')
116
120
  GenericBoolean = Shapes::BooleanShape.new(name: 'GenericBoolean')
117
121
  GenericDouble = Shapes::FloatShape.new(name: 'GenericDouble')
118
122
  GenericString = Shapes::StringShape.new(name: 'GenericString')
@@ -169,6 +173,8 @@ module Aws::CostExplorer
169
173
  ListCostAllocationTagsResponse = Shapes::StructureShape.new(name: 'ListCostAllocationTagsResponse')
170
174
  ListCostCategoryDefinitionsRequest = Shapes::StructureShape.new(name: 'ListCostCategoryDefinitionsRequest')
171
175
  ListCostCategoryDefinitionsResponse = Shapes::StructureShape.new(name: 'ListCostCategoryDefinitionsResponse')
176
+ ListSavingsPlansPurchaseRecommendationGenerationRequest = Shapes::StructureShape.new(name: 'ListSavingsPlansPurchaseRecommendationGenerationRequest')
177
+ ListSavingsPlansPurchaseRecommendationGenerationResponse = Shapes::StructureShape.new(name: 'ListSavingsPlansPurchaseRecommendationGenerationResponse')
172
178
  ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
173
179
  ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
174
180
  LookbackPeriodInDays = Shapes::StringShape.new(name: 'LookbackPeriodInDays')
@@ -209,6 +215,8 @@ module Aws::CostExplorer
209
215
  RDSInstanceDetails = Shapes::StructureShape.new(name: 'RDSInstanceDetails')
210
216
  RICostForUnusedHours = Shapes::StringShape.new(name: 'RICostForUnusedHours')
211
217
  RealizedSavings = Shapes::StringShape.new(name: 'RealizedSavings')
218
+ RecommendationId = Shapes::StringShape.new(name: 'RecommendationId')
219
+ RecommendationIdList = Shapes::ListShape.new(name: 'RecommendationIdList')
212
220
  RecommendationTarget = Shapes::StringShape.new(name: 'RecommendationTarget')
213
221
  RedshiftInstanceDetails = Shapes::StructureShape.new(name: 'RedshiftInstanceDetails')
214
222
  RequestChangedException = Shapes::StructureShape.new(name: 'RequestChangedException')
@@ -272,6 +280,8 @@ module Aws::CostExplorer
272
280
  SortDefinitionKey = Shapes::StringShape.new(name: 'SortDefinitionKey')
273
281
  SortDefinitions = Shapes::ListShape.new(name: 'SortDefinitions')
274
282
  SortOrder = Shapes::StringShape.new(name: 'SortOrder')
283
+ StartSavingsPlansPurchaseRecommendationGenerationRequest = Shapes::StructureShape.new(name: 'StartSavingsPlansPurchaseRecommendationGenerationRequest')
284
+ StartSavingsPlansPurchaseRecommendationGenerationResponse = Shapes::StructureShape.new(name: 'StartSavingsPlansPurchaseRecommendationGenerationResponse')
275
285
  Subscriber = Shapes::StructureShape.new(name: 'Subscriber')
276
286
  SubscriberAddress = Shapes::StringShape.new(name: 'SubscriberAddress')
277
287
  SubscriberStatus = Shapes::StringShape.new(name: 'SubscriberStatus')
@@ -645,6 +655,18 @@ module Aws::CostExplorer
645
655
 
646
656
  ForecastResultsByTime.member = Shapes::ShapeRef.new(shape: ForecastResult)
647
657
 
658
+ GenerationExistsException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
659
+ GenerationExistsException.struct_class = Types::GenerationExistsException
660
+
661
+ GenerationSummary.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: RecommendationId, location_name: "RecommendationId"))
662
+ GenerationSummary.add_member(:generation_status, Shapes::ShapeRef.new(shape: GenerationStatus, location_name: "GenerationStatus"))
663
+ GenerationSummary.add_member(:generation_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "GenerationStartedTime"))
664
+ GenerationSummary.add_member(:generation_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "GenerationCompletionTime"))
665
+ GenerationSummary.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EstimatedCompletionTime"))
666
+ GenerationSummary.struct_class = Types::GenerationSummary
667
+
668
+ GenerationSummaryList.member = Shapes::ShapeRef.new(shape: GenerationSummary)
669
+
648
670
  GetAnomaliesRequest.add_member(:monitor_arn, Shapes::ShapeRef.new(shape: GenericString, location_name: "MonitorArn"))
649
671
  GetAnomaliesRequest.add_member(:date_interval, Shapes::ShapeRef.new(shape: AnomalyDateInterval, required: true, location_name: "DateInterval"))
650
672
  GetAnomaliesRequest.add_member(:feedback, Shapes::ShapeRef.new(shape: AnomalyFeedbackType, location_name: "Feedback"))
@@ -937,6 +959,16 @@ module Aws::CostExplorer
937
959
  ListCostCategoryDefinitionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
938
960
  ListCostCategoryDefinitionsResponse.struct_class = Types::ListCostCategoryDefinitionsResponse
939
961
 
962
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.add_member(:generation_status, Shapes::ShapeRef.new(shape: GenerationStatus, location_name: "GenerationStatus"))
963
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.add_member(:recommendation_ids, Shapes::ShapeRef.new(shape: RecommendationIdList, location_name: "RecommendationIds"))
964
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: NonNegativeInteger, location_name: "PageSize"))
965
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
966
+ ListSavingsPlansPurchaseRecommendationGenerationRequest.struct_class = Types::ListSavingsPlansPurchaseRecommendationGenerationRequest
967
+
968
+ ListSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:generation_summary_list, Shapes::ShapeRef.new(shape: GenerationSummaryList, location_name: "GenerationSummaryList"))
969
+ ListSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:next_page_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextPageToken"))
970
+ ListSavingsPlansPurchaseRecommendationGenerationResponse.struct_class = Types::ListSavingsPlansPurchaseRecommendationGenerationResponse
971
+
940
972
  ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "ResourceArn"))
941
973
  ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
942
974
 
@@ -985,6 +1017,8 @@ module Aws::CostExplorer
985
1017
  RDSInstanceDetails.add_member(:size_flex_eligible, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "SizeFlexEligible"))
986
1018
  RDSInstanceDetails.struct_class = Types::RDSInstanceDetails
987
1019
 
1020
+ RecommendationIdList.member = Shapes::ShapeRef.new(shape: RecommendationId)
1021
+
988
1022
  RedshiftInstanceDetails.add_member(:family, Shapes::ShapeRef.new(shape: GenericString, location_name: "Family"))
989
1023
  RedshiftInstanceDetails.add_member(:node_type, Shapes::ShapeRef.new(shape: GenericString, location_name: "NodeType"))
990
1024
  RedshiftInstanceDetails.add_member(:region, Shapes::ShapeRef.new(shape: GenericString, location_name: "Region"))
@@ -1247,6 +1281,13 @@ module Aws::CostExplorer
1247
1281
 
1248
1282
  SortDefinitions.member = Shapes::ShapeRef.new(shape: SortDefinition)
1249
1283
 
1284
+ StartSavingsPlansPurchaseRecommendationGenerationRequest.struct_class = Types::StartSavingsPlansPurchaseRecommendationGenerationRequest
1285
+
1286
+ StartSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: RecommendationId, location_name: "RecommendationId"))
1287
+ StartSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:generation_started_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "GenerationStartedTime"))
1288
+ StartSavingsPlansPurchaseRecommendationGenerationResponse.add_member(:estimated_completion_time, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EstimatedCompletionTime"))
1289
+ StartSavingsPlansPurchaseRecommendationGenerationResponse.struct_class = Types::StartSavingsPlansPurchaseRecommendationGenerationResponse
1290
+
1250
1291
  Subscriber.add_member(:address, Shapes::ShapeRef.new(shape: SubscriberAddress, location_name: "Address"))
1251
1292
  Subscriber.add_member(:type, Shapes::ShapeRef.new(shape: SubscriberType, location_name: "Type"))
1252
1293
  Subscriber.add_member(:status, Shapes::ShapeRef.new(shape: SubscriberStatus, location_name: "Status"))
@@ -1695,6 +1736,16 @@ module Aws::CostExplorer
1695
1736
  )
1696
1737
  end)
1697
1738
 
1739
+ api.add_operation(:list_savings_plans_purchase_recommendation_generation, Seahorse::Model::Operation.new.tap do |o|
1740
+ o.name = "ListSavingsPlansPurchaseRecommendationGeneration"
1741
+ o.http_method = "POST"
1742
+ o.http_request_uri = "/"
1743
+ o.input = Shapes::ShapeRef.new(shape: ListSavingsPlansPurchaseRecommendationGenerationRequest)
1744
+ o.output = Shapes::ShapeRef.new(shape: ListSavingsPlansPurchaseRecommendationGenerationResponse)
1745
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1746
+ o.errors << Shapes::ShapeRef.new(shape: InvalidNextTokenException)
1747
+ end)
1748
+
1698
1749
  api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
1699
1750
  o.name = "ListTagsForResource"
1700
1751
  o.http_method = "POST"
@@ -1714,6 +1765,17 @@ module Aws::CostExplorer
1714
1765
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1715
1766
  end)
1716
1767
 
1768
+ api.add_operation(:start_savings_plans_purchase_recommendation_generation, Seahorse::Model::Operation.new.tap do |o|
1769
+ o.name = "StartSavingsPlansPurchaseRecommendationGeneration"
1770
+ o.http_method = "POST"
1771
+ o.http_request_uri = "/"
1772
+ o.input = Shapes::ShapeRef.new(shape: StartSavingsPlansPurchaseRecommendationGenerationRequest)
1773
+ o.output = Shapes::ShapeRef.new(shape: StartSavingsPlansPurchaseRecommendationGenerationResponse)
1774
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1775
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1776
+ o.errors << Shapes::ShapeRef.new(shape: GenerationExistsException)
1777
+ end)
1778
+
1717
1779
  api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
1718
1780
  o.name = "TagResource"
1719
1781
  o.http_method = "POST"
@@ -50,6 +50,9 @@ module Aws::CostExplorer
50
50
 
51
51
  def initialize(options = {})
52
52
  self[:region] = options[:region]
53
+ if self[:region].nil?
54
+ raise ArgumentError, "Missing required EndpointParameter: :region"
55
+ end
53
56
  self[:use_dual_stack] = options[:use_dual_stack]
54
57
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
58
  if self[:use_dual_stack].nil?