{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-budget-group-schema.json", "title": "BudgetGroup", "description": "The Cloud Cost Budget Group definition", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/harness-budget-groups-api-openapi.yml#/components/schemas/BudgetGroup", "type": "object", "properties": { "uuid": { "type": "string" }, "accountId": { "type": "string" }, "name": { "maxLength": 80, "minLength": 1, "type": "string" }, "budgetGroupMonthlyBreakdown": { "$ref": "#/$defs/BudgetMonthlyBreakdown" }, "period": { "type": "string", "enum": [ "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "YEARLY" ] }, "budgetGroupAmount": { "type": "number", "format": "double" }, "customAlertMessage": { "type": "string" }, "actualCost": { "type": "number", "format": "double" }, "forecastCost": { "type": "number", "format": "double" }, "lastMonthCost": { "type": "number", "format": "double" }, "alertThresholds": { "type": "array", "items": { "$ref": "#/$defs/AlertThreshold" } }, "childEntities": { "type": "array", "items": { "$ref": "#/$defs/BudgetGroupChildEntityDTO" } }, "parentBudgetGroupId": { "type": "string" }, "cascadeType": { "type": "string", "enum": [ "EQUAL", "PROPORTIONAL", "NO_CASCADE" ] }, "startTime": { "type": "integer", "format": "int64" }, "endTime": { "type": "integer", "format": "int64" }, "budgetGroupHistory": { "type": "object", "additionalProperties": { "$ref": "#/$defs/BudgetCostData" } }, "createdAt": { "type": "integer", "format": "int64" }, "lastUpdatedAt": { "type": "integer", "format": "int64" }, "createdBy": { "$ref": "#/$defs/EmbeddedUser" }, "lastUpdatedBy": { "$ref": "#/$defs/EmbeddedUser" } }, "$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" }, "BudgetCostData": { "type": "object", "properties": { "time": { "type": "integer", "format": "int64" }, "endTime": { "type": "integer", "format": "int64" }, "actualCost": { "type": "number", "format": "double" }, "forecastCost": { "type": "number", "format": "double" }, "budgeted": { "type": "number", "format": "double" }, "budgetVariance": { "type": "number", "format": "double" }, "budgetVariancePercentage": { "type": "number", "format": "double" } } }, "BudgetGroupChildEntityDTO": { "type": "object", "properties": { "id": { "type": "string" }, "proportion": { "type": "number", "format": "double" }, "isBudgetGroup": { "type": "boolean", "writeOnly": true }, "budgetGroup": { "type": "boolean" } } }, "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" }, "EmbeddedUser": { "type": "object", "properties": { "uuid": { "type": "string" }, "name": { "type": "string" }, "email": { "type": "string" }, "externalUserId": { "type": "string" } } }, "ValueDataPoint": { "type": "object", "properties": { "time": { "type": "integer", "format": "int64" }, "value": { "type": "number", "format": "double" } } } } }