{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-create-cost-bucket-budgets-request-schema.json", "title": "CreateCostBucketBudgetsRequest", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/harness-budgets-api-openapi.yml#/components/schemas/CreateCostBucketBudgetsRequest", "required": [ "costBucketIds", "costCategoryId", "period", "type" ], "type": "object", "properties": { "costCategoryId": { "type": "string" }, "costBucketIds": { "maxItems": 20, "minItems": 1, "type": "array", "items": { "type": "string" } }, "period": { "type": "string", "enum": [ "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "YEARLY" ] }, "type": { "type": "string", "description": "Whether the Budget is based on a specified amount or based on previous month's actual spend", "enum": [ "SPECIFIED_AMOUNT", "PREVIOUS_MONTH_SPEND", "PREVIOUS_PERIOD_SPEND" ] }, "budgetAmount": { "type": "number", "format": "double" }, "growthRate": { "type": "number", "format": "double" }, "startTime": { "type": "integer", "format": "int64" }, "alertThresholds": { "type": "array", "items": { "$ref": "#/$defs/AlertThreshold" } }, "budgetMonthlyBreakdown": { "$ref": "#/$defs/BudgetMonthlyBreakdown" }, "namePrefix": { "type": "string" }, "folderId": { "type": "string" }, "disableCurrencyWarning": { "type": "boolean" } }, "$defs": { "AlertThreshold": { "type": "object", "properties": { "percentage": { "type": "number", "format": "double" }, "basedOn": { "type": "string", "description": "Whether the alert is based on Actual cost or next 30 days Forecasted Cost", "enum": [ "ACTUAL_COST", "FORECASTED_COST", "PARTIAL_COST", "YEARLY_ACTUAL_COST", "YEARLY_FORECASTED_COST" ] }, "emailAddresses": { "type": "array", "items": { "type": "string" } }, "userGroupIds": { "type": "array", "items": { "type": "string" } }, "slackWebhooks": { "type": "array", "items": { "type": "string" } }, "alertsSent": { "type": "integer", "format": "int32" }, "crossedAt": { "type": "integer", "format": "int64" } }, "description": "A description of a single Alert" }, "BudgetMonthlyBreakdown": { "type": "object", "properties": { "budgetBreakdown": { "type": "string", "description": "Whether the Yearly budget breakdown is yearly or monthly", "enum": [ "YEARLY", "MONTHLY" ] }, "budgetMonthlyAmount": { "type": "array", "description": "Budgeted monthly amount for yearly budget", "items": { "$ref": "#/$defs/ValueDataPoint" } }, "actualMonthlyCost": { "type": "array", "description": "Actual monthly cost for yearly budget", "items": { "type": "number", "description": "Actual monthly cost for yearly budget", "format": "double" } }, "forecastMonthlyCost": { "type": "array", "description": "Forecasted monthly cost for yearly budget", "items": { "type": "number", "description": "Forecasted monthly cost for yearly budget", "format": "double" } }, "yearlyLastPeriodCost": { "type": "array", "description": "Yearly monthly cost for last year budget", "items": { "type": "number", "description": "Yearly monthly cost for last year budget", "format": "double" } }, "forecastCostConfigured": { "type": "boolean", "description": "Indicates whether forecast cost has been ingested by the user" } }, "description": "The budget monthly breakdown of a Yearly Budget" }, "ValueDataPoint": { "type": "object", "properties": { "time": { "type": "integer", "format": "int64" }, "value": { "type": "number", "format": "double" } } } } }