Skip to content

Commit 02b6b4c

Browse files
author
AWS
committed
AWS Cost Explorer Service Update: This release introduces two new APIs that offer a 1-click experience to refresh Savings Plans recommendations. The two APIs are StartSavingsPlansPurchaseRecommendationGeneration and ListSavingsPlansPurchaseRecommendationGeneration.
1 parent f82a822 commit 02b6b4c

File tree

4 files changed

+156
-18
lines changed

4 files changed

+156
-18
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "AWS Cost Explorer Service",
4+
"contributor": "",
5+
"description": "This release introduces two new APIs that offer a 1-click experience to refresh Savings Plans recommendations. The two APIs are StartSavingsPlansPurchaseRecommendationGeneration and ListSavingsPlansPurchaseRecommendationGeneration."
6+
}

services/costexplorer/src/main/resources/codegen-resources/endpoint-rule-set.json

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"parameters": {
44
"Region": {
55
"builtIn": "AWS::Region",
6-
"required": false,
6+
"required": true,
77
"documentation": "The AWS region used to dispatch the request.",
88
"type": "String"
99
},
@@ -52,15 +52,6 @@
5252
"ref": "Endpoint"
5353
}
5454
]
55-
},
56-
{
57-
"fn": "parseURL",
58-
"argv": [
59-
{
60-
"ref": "Endpoint"
61-
}
62-
],
63-
"assign": "url"
6455
}
6556
],
6657
"type": "tree",

services/costexplorer/src/main/resources/codegen-resources/endpoint-tests.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
}
1818
},
1919
"params": {
20+
"UseFIPS": false,
2021
"UseDualStack": false,
21-
"Region": "aws-cn-global",
22-
"UseFIPS": false
22+
"Region": "aws-cn-global"
2323
}
2424
},
2525
{
@@ -39,9 +39,9 @@
3939
}
4040
},
4141
"params": {
42+
"UseFIPS": false,
4243
"UseDualStack": false,
43-
"Region": "aws-global",
44-
"UseFIPS": false
44+
"Region": "aws-global"
4545
}
4646
},
4747
{
@@ -52,9 +52,9 @@
5252
}
5353
},
5454
"params": {
55+
"UseFIPS": false,
5556
"UseDualStack": false,
5657
"Region": "us-east-1",
57-
"UseFIPS": false,
5858
"Endpoint": "https://example.com"
5959
}
6060
},
@@ -64,9 +64,9 @@
6464
"error": "Invalid Configuration: FIPS and custom endpoint are not supported"
6565
},
6666
"params": {
67+
"UseFIPS": true,
6768
"UseDualStack": false,
6869
"Region": "us-east-1",
69-
"UseFIPS": true,
7070
"Endpoint": "https://example.com"
7171
}
7272
},
@@ -76,9 +76,9 @@
7676
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported"
7777
},
7878
"params": {
79+
"UseFIPS": false,
7980
"UseDualStack": true,
8081
"Region": "us-east-1",
81-
"UseFIPS": false,
8282
"Endpoint": "https://example.com"
8383
}
8484
}

services/costexplorer/src/main/resources/codegen-resources/service-2.json

Lines changed: 142 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@
323323
{"shape":"LimitExceededException"},
324324
{"shape":"InvalidNextTokenException"}
325325
],
326-
"documentation":"<p>Retrieves your request parameters, Savings Plan Recommendations Summary and Details. </p>"
326+
"documentation":"<p>Retrieves the Savings Plans recommendations for your account. First use <code>StartSavingsPlansPurchaseRecommendationGeneration</code> to generate a new set of recommendations, and then use <code>GetSavingsPlansPurchaseRecommendation</code> to retrieve them.</p>"
327327
},
328328
"GetSavingsPlansUtilization":{
329329
"name":"GetSavingsPlansUtilization",
@@ -413,6 +413,20 @@
413413
],
414414
"documentation":"<p>Returns the name, Amazon Resource Name (ARN), <code>NumberOfRules</code> and effective dates of all Cost Categories defined in the account. You have the option to use <code>EffectiveOn</code> to return a list of Cost Categories that were active on a specific date. If there is no <code>EffectiveOn</code> specified, you’ll see Cost Categories that are effective on the current date. If Cost Category is still effective, <code>EffectiveEnd</code> is omitted in the response. <code>ListCostCategoryDefinitions</code> supports pagination. The request can have a <code>MaxResults</code> range up to 100.</p>"
415415
},
416+
"ListSavingsPlansPurchaseRecommendationGeneration":{
417+
"name":"ListSavingsPlansPurchaseRecommendationGeneration",
418+
"http":{
419+
"method":"POST",
420+
"requestUri":"/"
421+
},
422+
"input":{"shape":"ListSavingsPlansPurchaseRecommendationGenerationRequest"},
423+
"output":{"shape":"ListSavingsPlansPurchaseRecommendationGenerationResponse"},
424+
"errors":[
425+
{"shape":"LimitExceededException"},
426+
{"shape":"InvalidNextTokenException"}
427+
],
428+
"documentation":"<p>Retrieves a list of your historical recommendation generations within the past 30 days.</p>"
429+
},
416430
"ListTagsForResource":{
417431
"name":"ListTagsForResource",
418432
"http":{
@@ -440,6 +454,21 @@
440454
],
441455
"documentation":"<p>Modifies the feedback property of a given cost anomaly. </p>"
442456
},
457+
"StartSavingsPlansPurchaseRecommendationGeneration":{
458+
"name":"StartSavingsPlansPurchaseRecommendationGeneration",
459+
"http":{
460+
"method":"POST",
461+
"requestUri":"/"
462+
},
463+
"input":{"shape":"StartSavingsPlansPurchaseRecommendationGenerationRequest"},
464+
"output":{"shape":"StartSavingsPlansPurchaseRecommendationGenerationResponse"},
465+
"errors":[
466+
{"shape":"LimitExceededException"},
467+
{"shape":"ServiceQuotaExceededException"},
468+
{"shape":"GenerationExistsException"}
469+
],
470+
"documentation":"<p>Requests a Savings Plans recommendation generation. This enables you to calculate a fresh set of Savings Plans recommendations that takes your latest usage data and current Savings Plans inventory into account. You can refresh Savings Plans recommendations up to three times daily for a consolidated billing family.</p> <note> <p> <code>StartSavingsPlansPurchaseRecommendationGeneration</code> has no request syntax because no input parameters are needed to support this operation.</p> </note>"
471+
},
443472
"TagResource":{
444473
"name":"TagResource",
445474
"http":{
@@ -1839,6 +1868,52 @@
18391868
"type":"list",
18401869
"member":{"shape":"ForecastResult"}
18411870
},
1871+
"GenerationExistsException":{
1872+
"type":"structure",
1873+
"members":{
1874+
"Message":{"shape":"ErrorMessage"}
1875+
},
1876+
"documentation":"<p>A request to generate a recommendation is already in progress.</p>",
1877+
"exception":true
1878+
},
1879+
"GenerationStatus":{
1880+
"type":"string",
1881+
"enum":[
1882+
"SUCCEEDED",
1883+
"PROCESSING",
1884+
"FAILED"
1885+
]
1886+
},
1887+
"GenerationSummary":{
1888+
"type":"structure",
1889+
"members":{
1890+
"RecommendationId":{
1891+
"shape":"RecommendationId",
1892+
"documentation":"<p>Indicates the ID for this specific recommendation.</p>"
1893+
},
1894+
"GenerationStatus":{
1895+
"shape":"GenerationStatus",
1896+
"documentation":"<p>Indicates whether the recommendation generation succeeded, is processing, or failed.</p>"
1897+
},
1898+
"GenerationStartedTime":{
1899+
"shape":"ZonedDateTime",
1900+
"documentation":"<p>Indicates the start time of the recommendation generation.</p>"
1901+
},
1902+
"GenerationCompletionTime":{
1903+
"shape":"ZonedDateTime",
1904+
"documentation":"<p>Indicates the completion time of the recommendation generation.</p>"
1905+
},
1906+
"EstimatedCompletionTime":{
1907+
"shape":"ZonedDateTime",
1908+
"documentation":"<p>Indicates the estimated time for when the recommendation generation will complete.</p>"
1909+
}
1910+
},
1911+
"documentation":"<p>The summary of the Savings Plans recommendation generation.</p>"
1912+
},
1913+
"GenerationSummaryList":{
1914+
"type":"list",
1915+
"member":{"shape":"GenerationSummary"}
1916+
},
18421917
"GenericBoolean":{"type":"boolean"},
18431918
"GenericDouble":{"type":"double"},
18441919
"GenericString":{
@@ -2939,6 +3014,40 @@
29393014
}
29403015
}
29413016
},
3017+
"ListSavingsPlansPurchaseRecommendationGenerationRequest":{
3018+
"type":"structure",
3019+
"members":{
3020+
"GenerationStatus":{
3021+
"shape":"GenerationStatus",
3022+
"documentation":"<p>The status of the recommendation generation.</p>"
3023+
},
3024+
"RecommendationIds":{
3025+
"shape":"RecommendationIdList",
3026+
"documentation":"<p>The IDs for each specific recommendation.</p>"
3027+
},
3028+
"PageSize":{
3029+
"shape":"NonNegativeInteger",
3030+
"documentation":"<p>The number of recommendations that you want returned in a single response object.</p>"
3031+
},
3032+
"NextPageToken":{
3033+
"shape":"NextPageToken",
3034+
"documentation":"<p>The token to retrieve the next set of results.</p>"
3035+
}
3036+
}
3037+
},
3038+
"ListSavingsPlansPurchaseRecommendationGenerationResponse":{
3039+
"type":"structure",
3040+
"members":{
3041+
"GenerationSummaryList":{
3042+
"shape":"GenerationSummaryList",
3043+
"documentation":"<p>The list of historical recommendation generations.</p>"
3044+
},
3045+
"NextPageToken":{
3046+
"shape":"NextPageToken",
3047+
"documentation":"<p>The token to retrieve the next set of results.</p>"
3048+
}
3049+
}
3050+
},
29423051
"ListTagsForResourceRequest":{
29433052
"type":"structure",
29443053
"required":["ResourceArn"],
@@ -3217,6 +3326,16 @@
32173326
},
32183327
"RICostForUnusedHours":{"type":"string"},
32193328
"RealizedSavings":{"type":"string"},
3329+
"RecommendationId":{
3330+
"type":"string",
3331+
"max":36,
3332+
"min":36,
3333+
"pattern":"^[\\S\\s]{8}-[\\S\\s]{4}-[\\S\\s]{4}-[\\S\\s]{4}-[\\S\\s]{12}$"
3334+
},
3335+
"RecommendationIdList":{
3336+
"type":"list",
3337+
"member":{"shape":"RecommendationId"}
3338+
},
32203339
"RecommendationTarget":{
32213340
"type":"string",
32223341
"enum":[
@@ -4197,6 +4316,28 @@
41974316
"DESCENDING"
41984317
]
41994318
},
4319+
"StartSavingsPlansPurchaseRecommendationGenerationRequest":{
4320+
"type":"structure",
4321+
"members":{
4322+
}
4323+
},
4324+
"StartSavingsPlansPurchaseRecommendationGenerationResponse":{
4325+
"type":"structure",
4326+
"members":{
4327+
"RecommendationId":{
4328+
"shape":"RecommendationId",
4329+
"documentation":"<p>The ID for this specific recommendation.</p>"
4330+
},
4331+
"GenerationStartedTime":{
4332+
"shape":"ZonedDateTime",
4333+
"documentation":"<p>The start time of the recommendation generation.</p>"
4334+
},
4335+
"EstimatedCompletionTime":{
4336+
"shape":"ZonedDateTime",
4337+
"documentation":"<p>The estimated time for when the recommendation generation will complete.</p>"
4338+
}
4339+
}
4340+
},
42004341
"Subscriber":{
42014342
"type":"structure",
42024343
"members":{

0 commit comments

Comments
 (0)