aws-sdk-costexplorer 1.79.0 → 1.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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?