Skip to content

Commit 82f73d6

Browse files
author
AWS
committed
AWS Budgets Update: Releasing the new Budget FilterExpression and Metrics fields to support more granular filtering options. These new fields are intended to replace CostFilters and CostTypes, which are deprecated as of 2025/18/04.
1 parent 285588e commit 82f73d6

File tree

2 files changed

+218
-7
lines changed

2 files changed

+218
-7
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "AWS Budgets",
4+
"contributor": "",
5+
"description": "Releasing the new Budget FilterExpression and Metrics fields to support more granular filtering options. These new fields are intended to replace CostFilters and CostTypes, which are deprecated as of 2025/18/04."
6+
}

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

+212-7
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
{"shape":"ThrottlingException"},
3333
{"shape":"ServiceQuotaExceededException"}
3434
],
35-
"documentation":"<p>Creates a budget and, if included, notifications and subscribers. </p> <important> <p>Only one of <code>BudgetLimit</code> or <code>PlannedBudgetLimits</code> can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_CreateBudget.html#API_CreateBudget_Examples\">Examples</a> section. </p> </important>"
35+
"documentation":"<p>Creates a budget and, if included, notifications and subscribers. </p> <important> <p>Only one of <code>BudgetLimit</code> or <code>PlannedBudgetLimits</code> can be present in the syntax at one time. Use the syntax that matches your use case. The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_CreateBudget.html#API_CreateBudget_Examples\">Examples</a> section.</p> <p>Similarly, only one set of filter and metric selections can be present in the syntax at one time. Either <code>FilterExpression</code> and <code>Metrics</code> or <code>CostFilters</code> and <code>CostTypes</code>, not both or a different combination. We recommend using <code>FilterExpression</code> and <code>Metrics</code> as they provide more flexible and powerful filtering capabilities. The Request Syntax section shows the <code>FilterExpression</code>/<code>Metrics</code> syntax.</p> </important>"
3636
},
3737
"CreateBudgetAction":{
3838
"name":"CreateBudgetAction",
@@ -176,7 +176,7 @@
176176
{"shape":"AccessDeniedException"},
177177
{"shape":"ThrottlingException"}
178178
],
179-
"documentation":"<p>Describes a budget.</p> <important> <p>The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_DescribeBudget.html#API_DescribeBudget_Examples\">Examples</a> section. </p> </important>"
179+
"documentation":"<p>Describes a budget.</p> <important> <p>The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_DescribeBudget.html#API_DescribeBudget_Examples\">Examples</a> section.</p> </important>"
180180
},
181181
"DescribeBudgetAction":{
182182
"name":"DescribeBudgetAction",
@@ -303,7 +303,7 @@
303303
{"shape":"AccessDeniedException"},
304304
{"shape":"ThrottlingException"}
305305
],
306-
"documentation":"<p>Lists the budgets that are associated with an account.</p> <important> <p>The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_DescribeBudgets.html#API_DescribeBudgets_Examples\">Examples</a> section. </p> </important>"
306+
"documentation":"<p>Lists the budgets that are associated with an account.</p> <important> <p>The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_DescribeBudgets.html#API_DescribeBudgets_Examples\">Examples</a> section.</p> </important>"
307307
},
308308
"DescribeNotificationsForBudget":{
309309
"name":"DescribeNotificationsForBudget",
@@ -428,7 +428,7 @@
428428
{"shape":"AccessDeniedException"},
429429
{"shape":"ThrottlingException"}
430430
],
431-
"documentation":"<p>Updates a budget. You can change every part of a budget except for the <code>budgetName</code> and the <code>calculatedSpend</code>. When you modify a budget, the <code>calculatedSpend</code> drops to zero until Amazon Web Services has new usage data to use for forecasting.</p> <important> <p>Only one of <code>BudgetLimit</code> or <code>PlannedBudgetLimits</code> can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_UpdateBudget.html#API_UpdateBudget_Examples\">Examples</a> section. </p> </important>"
431+
"documentation":"<p>Updates a budget. You can change every part of a budget except for the <code>budgetName</code> and the <code>calculatedSpend</code>. When you modify a budget, the <code>calculatedSpend</code> drops to zero until Amazon Web Services has new usage data to use for forecasting.</p> <important> <p>Only one of <code>BudgetLimit</code> or <code>PlannedBudgetLimits</code> can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_UpdateBudget.html#API_UpdateBudget_Examples\">Examples</a> section.</p> <p>Similarly, only one set of filter and metric selections can be present in the syntax at one time. Either <code>FilterExpression</code> and <code>Metrics</code> or <code>CostFilters</code> and <code>CostTypes</code>, not both or a different combination. We recommend using <code>FilterExpression</code> and <code>Metrics</code> as they provide more flexible and powerful filtering capabilities. The Request Syntax section shows the <code>FilterExpression</code>/<code>Metrics</code> syntax.</p> </important>"
432432
},
433433
"UpdateBudgetAction":{
434434
"name":"UpdateBudgetAction",
@@ -716,19 +716,25 @@
716716
},
717717
"CostFilters":{
718718
"shape":"CostFilters",
719-
"documentation":"<p>The cost filters, such as <code>Region</code>, <code>Service</code>, <code>LinkedAccount</code>, <code>Tag</code>, or <code>CostCategory</code>, that are applied to a budget.</p> <p>Amazon Web Services Budgets supports the following services as a <code>Service</code> filter for RI budgets:</p> <ul> <li> <p>Amazon EC2</p> </li> <li> <p>Amazon Redshift</p> </li> <li> <p>Amazon Relational Database Service</p> </li> <li> <p>Amazon ElastiCache</p> </li> <li> <p>Amazon OpenSearch Service</p> </li> </ul>"
719+
"documentation":"<p>The cost filters, such as <code>Region</code>, <code>Service</code>, <code>LinkedAccount</code>, <code>Tag</code>, or <code>CostCategory</code>, that are applied to a budget.</p> <p>Amazon Web Services Budgets supports the following services as a <code>Service</code> filter for RI budgets:</p> <ul> <li> <p>Amazon EC2</p> </li> <li> <p>Amazon Redshift</p> </li> <li> <p>Amazon Relational Database Service</p> </li> <li> <p>Amazon ElastiCache</p> </li> <li> <p>Amazon OpenSearch Service</p> </li> </ul>",
720+
"deprecated":true,
721+
"deprecatedMessage":"CostFilters lack support for newer dimensions and filtering options. Please consider using the new 'FilterExpression' field.",
722+
"deprecatedSince":"2025-04-18"
720723
},
721724
"CostTypes":{
722725
"shape":"CostTypes",
723-
"documentation":"<p>The types of costs that are included in this <code>COST</code> budget.</p> <p> <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.</p>"
726+
"documentation":"<p>The types of costs that are included in this <code>COST</code> budget.</p> <p> <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.</p>",
727+
"deprecated":true,
728+
"deprecatedMessage":"CostTypes lack support for newer record type dimensions and filtering options. Please consider using the new 'Metrics' field.",
729+
"deprecatedSince":"2025-04-18"
724730
},
725731
"TimeUnit":{
726732
"shape":"TimeUnit",
727733
"documentation":"<p>The length of time until a budget resets the actual and forecasted spend.</p>"
728734
},
729735
"TimePeriod":{
730736
"shape":"TimePeriod",
731-
"documentation":"<p>The period of time that's covered by a budget. You setthe start date and end date. The start date must come before the end date. The end date must come before <code>06/15/87 00:00 UTC</code>. </p> <p>If you create your budget and don't specify a start date, Amazon Web Services defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, Amazon Web Services set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, Amazon Web Services set your start date to <code>01/01/18 00:00 UTC</code>. If you didn't specify an end date, Amazon Web Services set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the Billing and Cost Management console and the API. </p> <p>You can change either date with the <code>UpdateBudget</code> operation.</p> <p>After the end date, Amazon Web Services deletes the budget and all the associated notifications and subscribers.</p>"
737+
"documentation":"<p>The period of time that's covered by a budget. You set the start date and end date. The start date must come before the end date. The end date must come before <code>06/15/87 00:00 UTC</code>. </p> <p>If you create your budget and don't specify a start date, Amazon Web Services defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, Amazon Web Services set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, Amazon Web Services set your start date to <code>01/01/18 00:00 UTC</code>. If you didn't specify an end date, Amazon Web Services set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the Billing and Cost Management console and the API. </p> <p>You can change either date with the <code>UpdateBudget</code> operation.</p> <p>After the end date, Amazon Web Services deletes the budget and all the associated notifications and subscribers.</p>"
732738
},
733739
"CalculatedSpend":{
734740
"shape":"CalculatedSpend",
@@ -745,6 +751,14 @@
745751
"AutoAdjustData":{
746752
"shape":"AutoAdjustData",
747753
"documentation":"<p>The parameters that determine the budget amount for an auto-adjusting budget.</p>"
754+
},
755+
"FilterExpression":{
756+
"shape":"Expression",
757+
"documentation":"<p>The filtering dimensions for the budget and their corresponding values.</p>"
758+
},
759+
"Metrics":{
760+
"shape":"Metrics",
761+
"documentation":"<p>The definition for how the budget data is aggregated.</p>"
748762
}
749763
},
750764
"documentation":"<p>Represents the output of the <code>CreateBudget</code> operation. The content consists of the detailed metadata and data file information, and the current status of the <code>budget</code> object.</p> <p>This is the Amazon Resource Name (ARN) pattern for a budget: </p> <p> <code>arn:aws:budgets::AccountId:budget/budgetName</code> </p>"
@@ -853,6 +867,25 @@
853867
"EQUAL_TO"
854868
]
855869
},
870+
"CostCategoryName":{"type":"string"},
871+
"CostCategoryValues":{
872+
"type":"structure",
873+
"members":{
874+
"Key":{
875+
"shape":"CostCategoryName",
876+
"documentation":"<p>The unique name of the cost category.</p>"
877+
},
878+
"Values":{
879+
"shape":"Values",
880+
"documentation":"<p>The specific value of the cost category.</p>"
881+
},
882+
"MatchOptions":{
883+
"shape":"MatchOptions",
884+
"documentation":"<p>The match options that you can use to filter your results. </p>"
885+
}
886+
},
887+
"documentation":"<p>The cost category values used for filtering the costs.</p>"
888+
},
856889
"CostFilters":{
857890
"type":"map",
858891
"key":{"shape":"GenericString"},
@@ -1374,6 +1407,10 @@
13741407
"BudgetName":{
13751408
"shape":"BudgetName",
13761409
"documentation":"<p>The name of the budget that you want a description of.</p>"
1410+
},
1411+
"ShowFilterExpression":{
1412+
"shape":"NullableBoolean",
1413+
"documentation":"<p>Specifies whether the response includes the filter expression associated with the budget. By showing the filter expression, you can see detailed filtering logic applied to the budget, such as Amazon Web Services services or tags that are being tracked.</p>"
13771414
}
13781415
},
13791416
"documentation":"<p> Request of DescribeBudget </p>"
@@ -1403,6 +1440,10 @@
14031440
"NextToken":{
14041441
"shape":"GenericString",
14051442
"documentation":"<p>The pagination token that you include in your request to indicate the next set of results that you want to retrieve.</p>"
1443+
},
1444+
"ShowFilterExpression":{
1445+
"shape":"NullableBoolean",
1446+
"documentation":"<p>Specifies whether the response includes the filter expression associated with the budgets. By showing the filter expression, you can see detailed filtering logic applied to the budgets, such as Amazon Web Services services or tags that are being tracked.</p>"
14061447
}
14071448
},
14081449
"documentation":"<p> Request of DescribeBudgets </p>"
@@ -1506,6 +1547,44 @@
15061547
},
15071548
"documentation":"<p> Response of DescribeSubscribersForNotification </p>"
15081549
},
1550+
"Dimension":{
1551+
"type":"string",
1552+
"enum":[
1553+
"AZ",
1554+
"INSTANCE_TYPE",
1555+
"LINKED_ACCOUNT",
1556+
"LINKED_ACCOUNT_NAME",
1557+
"OPERATION",
1558+
"PURCHASE_TYPE",
1559+
"REGION",
1560+
"SERVICE",
1561+
"SERVICE_CODE",
1562+
"USAGE_TYPE",
1563+
"USAGE_TYPE_GROUP",
1564+
"RECORD_TYPE",
1565+
"OPERATING_SYSTEM",
1566+
"TENANCY",
1567+
"SCOPE",
1568+
"PLATFORM",
1569+
"SUBSCRIPTION_ID",
1570+
"LEGAL_ENTITY_NAME",
1571+
"INVOICING_ENTITY",
1572+
"DEPLOYMENT_OPTION",
1573+
"DATABASE_ENGINE",
1574+
"CACHE_ENGINE",
1575+
"INSTANCE_TYPE_FAMILY",
1576+
"BILLING_ENTITY",
1577+
"RESERVATION_ID",
1578+
"RESOURCE_ID",
1579+
"RIGHTSIZING_TYPE",
1580+
"SAVINGS_PLANS_TYPE",
1581+
"SAVINGS_PLAN_ARN",
1582+
"PAYMENT_OPTION",
1583+
"RESERVATION_MODIFIED",
1584+
"TAG_KEY",
1585+
"COST_CATEGORY_NAME"
1586+
]
1587+
},
15091588
"DimensionValue":{
15101589
"type":"string",
15111590
"max":2147483647,
@@ -1593,6 +1672,62 @@
15931672
"documentation":"<p>The pagination token expired.</p>",
15941673
"exception":true
15951674
},
1675+
"Expression":{
1676+
"type":"structure",
1677+
"members":{
1678+
"Or":{
1679+
"shape":"Expressions",
1680+
"documentation":"<p>Return results that match either Dimension object.</p>"
1681+
},
1682+
"And":{
1683+
"shape":"Expressions",
1684+
"documentation":"<p>Return results that match both Dimension objects.</p>"
1685+
},
1686+
"Not":{
1687+
"shape":"Expression",
1688+
"documentation":"<p>Return results that don't match a Dimension object.</p>"
1689+
},
1690+
"Dimensions":{
1691+
"shape":"ExpressionDimensionValues",
1692+
"documentation":"<p>The specific Dimension to use for Expression.</p>"
1693+
},
1694+
"Tags":{
1695+
"shape":"TagValues",
1696+
"documentation":"<p>The specific Tag to use for Expression.</p>"
1697+
},
1698+
"CostCategories":{
1699+
"shape":"CostCategoryValues",
1700+
"documentation":"<p>The filter that's based on CostCategoryValues.</p>"
1701+
}
1702+
},
1703+
"documentation":"<p>Use Expression to filter in various Budgets APIs.</p>"
1704+
},
1705+
"ExpressionDimensionValues":{
1706+
"type":"structure",
1707+
"required":[
1708+
"Key",
1709+
"Values"
1710+
],
1711+
"members":{
1712+
"Key":{
1713+
"shape":"Dimension",
1714+
"documentation":"<p>The name of the dimension that you want to filter on.</p>"
1715+
},
1716+
"Values":{
1717+
"shape":"Values",
1718+
"documentation":"<p>The metadata values you can specify to filter upon, so that the results all match at least one of the specified values.</p>"
1719+
},
1720+
"MatchOptions":{
1721+
"shape":"MatchOptions",
1722+
"documentation":"<p>The match options that you can use to filter your results. You can specify only one of these values in the array.</p>"
1723+
}
1724+
},
1725+
"documentation":"<p>Contains the specifications for the filters to use for your request.</p>"
1726+
},
1727+
"Expressions":{
1728+
"type":"list",
1729+
"member":{"shape":"Expression"}
1730+
},
15961731
"GenericString":{
15971732
"type":"string",
15981733
"documentation":"<p> A generic string.</p>",
@@ -1709,6 +1844,23 @@
17091844
}
17101845
}
17111846
},
1847+
"MatchOption":{
1848+
"type":"string",
1849+
"enum":[
1850+
"EQUALS",
1851+
"ABSENT",
1852+
"STARTS_WITH",
1853+
"ENDS_WITH",
1854+
"CONTAINS",
1855+
"GREATER_THAN_OR_EQUAL",
1856+
"CASE_SENSITIVE",
1857+
"CASE_INSENSITIVE"
1858+
]
1859+
},
1860+
"MatchOptions":{
1861+
"type":"list",
1862+
"member":{"shape":"MatchOption"}
1863+
},
17121864
"MaxResults":{
17131865
"type":"integer",
17141866
"documentation":"<p> An integer that represents how many entries a paginated response contains. The maximum is 100.</p>",
@@ -1728,6 +1880,24 @@
17281880
"max":1000,
17291881
"min":1
17301882
},
1883+
"Metric":{
1884+
"type":"string",
1885+
"enum":[
1886+
"BlendedCost",
1887+
"UnblendedCost",
1888+
"AmortizedCost",
1889+
"NetUnblendedCost",
1890+
"NetAmortizedCost",
1891+
"UsageQuantity",
1892+
"NormalizedUsageAmount",
1893+
"Hours"
1894+
]
1895+
},
1896+
"Metrics":{
1897+
"type":"list",
1898+
"member":{"shape":"Metric"},
1899+
"max":1
1900+
},
17311901
"NotFoundException":{
17321902
"type":"structure",
17331903
"members":{
@@ -2025,6 +2195,12 @@
20252195
"EMAIL"
20262196
]
20272197
},
2198+
"TagKey":{
2199+
"type":"string",
2200+
"max":1024,
2201+
"min":0,
2202+
"pattern":"[\\S\\s]*"
2203+
},
20282204
"TagResourceRequest":{
20292205
"type":"structure",
20302206
"required":[
@@ -2047,6 +2223,24 @@
20472223
"members":{
20482224
}
20492225
},
2226+
"TagValues":{
2227+
"type":"structure",
2228+
"members":{
2229+
"Key":{
2230+
"shape":"TagKey",
2231+
"documentation":"<p>The key for the tag.</p>"
2232+
},
2233+
"Values":{
2234+
"shape":"Values",
2235+
"documentation":"<p>The specific value of the tag.</p>"
2236+
},
2237+
"MatchOptions":{
2238+
"shape":"MatchOptions",
2239+
"documentation":"<p>The match options that you can use to filter your results.</p>"
2240+
}
2241+
},
2242+
"documentation":"<p>The values that are available for a tag.</p>"
2243+
},
20502244
"TargetId":{
20512245
"type":"string",
20522246
"max":68,
@@ -2286,6 +2480,17 @@
22862480
"max":100,
22872481
"min":1
22882482
},
2483+
"Value":{
2484+
"type":"string",
2485+
"max":1024,
2486+
"min":0,
2487+
"pattern":"[\\S\\s]*"
2488+
},
2489+
"Values":{
2490+
"type":"list",
2491+
"member":{"shape":"Value"},
2492+
"min":1
2493+
},
22892494
"errorMessage":{
22902495
"type":"string",
22912496
"documentation":"<p>The error message the exception carries.</p>"

0 commit comments

Comments
 (0)