{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/oracle/json-schema/oracle-budget-summary-schema.json",
  "title": "BudgetSummary",
  "description": "A budget.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oracle-budget-api-openapi.yml#/components/schemas/BudgetSummary",
  "properties": {
    "actualSpend": {
      "description": "The actual spend in currency for the current budget cycle.",
      "minimum": 0,
      "type": "number"
    },
    "alertRuleCount": {
      "description": "The total number of alert rules in the budget.",
      "minimum": 0,
      "type": "integer"
    },
    "amount": {
      "description": "The amount of the budget, expressed in the currency of the customer's rate card.\n",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "budgetProcessingPeriodStartOffset": {
      "default": 1,
      "description": "The number of days offset from the first day of the month, at which the budget processing period starts. In months that have fewer days than this value, processing will begin on the last day of that month. For example, for a value of 12, processing starts every month on the 12th at midnight.",
      "maximum": 31,
      "minimum": 1,
      "type": "integer"
    },
    "compartmentId": {
      "description": "The OCID of the compartment.",
      "type": "string"
    },
    "definedTags": {
      "additionalProperties": {
        "additionalProperties": {
          "description": "The value of the tag. Only the String type is supported.\n",
          "type": "object"
        },
        "description": "Key-value pair representing a defined tag key and value, scoped to a namespace.\nExample: `{\"CostCenter\": \"42\"}`\n",
        "type": "object"
      },
      "description": "Defined tags for this resource. Each key is predefined and scoped to a namespace.\nFor more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm).\n\nExample: `{\"Operations\": {\"CostCenter\": \"42\"}}`\n",
      "type": "object"
    },
    "description": {
      "description": "The description of the budget.",
      "type": "string"
    },
    "displayName": {
      "description": "The display name of the budget. Avoid entering confidential information.",
      "type": "string"
    },
    "endDate": {
      "description": "The time when the one-time budget concludes. For example, - `2023-08-12T16:01:19.847222+05:30`. The date-time format conforms to RFC 3339, and will be truncated to the starting point of the date provided after being converted to UTC time.",
      "format": "date-time",
      "type": "string"
    },
    "forecastedSpend": {
      "description": "The forecasted spend in currency by the end of the current budget cycle.",
      "minimum": 0,
      "type": "number"
    },
    "freeformTags": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.\nFor more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm).\n\nExample: `{\"Department\": \"Finance\"}`\n",
      "type": "object"
    },
    "id": {
      "description": "The OCID of the budget.",
      "type": "string"
    },
    "lifecycleState": {
      "description": "The current state of the budget.",
      "enum": [
        "ACTIVE",
        "INACTIVE"
      ],
      "type": "string",
      "x-obmcs-top-level-enum": "#/definitions/LifecycleState"
    },
    "processingPeriodType": {
      "description": "The type of the budget processing period. Valid values are INVOICE, MONTH, and SINGLE_USE.\n",
      "enum": [
        "INVOICE",
        "MONTH",
        "SINGLE_USE"
      ],
      "type": "string",
      "x-obmcs-top-level-enum": "#/definitions/ProcessingPeriodType"
    },
    "resetPeriod": {
      "description": "The reset period for the budget.\n",
      "enum": [
        "MONTHLY"
      ],
      "type": "string",
      "x-obmcs-top-level-enum": "#/definitions/ResetPeriod"
    },
    "startDate": {
      "description": "The date when the one-time budget begins. For example, `2023-07-12T16:01:19.847222+05:30`. The date-time format conforms to RFC 3339, and will be truncated to the starting point of the date provided after being converted to UTC time.",
      "format": "date-time",
      "type": "string"
    },
    "systemTags": {
      "additionalProperties": {
        "additionalProperties": {
          "description": "The value of the tag. Only string, integer and boolean types are supported.\n",
          "type": "object"
        },
        "description": "Key-value pair representing system tags' keys and values scoped to a namespace.\nExample: `{\"bar-key\": \"value\"}`\n",
        "type": "object"
      },
      "description": "Usage of system tag keys. These predefined keys are scoped to namespaces.\nExample: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`\n",
      "type": "object"
    },
    "targetCompartmentId": {
      "description": "This is DEPRECATED. For backwards compatability, the property is populated when\nthe targetType is \"COMPARTMENT\", and the targets contain the specific target compartment OCID.\nFor all other scenarios, this property is left empty.\n",
      "type": "string"
    },
    "targetType": {
      "description": "The type of target on which the budget is applied.\n",
      "enum": [
        "COMPARTMENT",
        "TAG"
      ],
      "type": "string",
      "x-obmcs-top-level-enum": "#/definitions/TargetType"
    },
    "targets": {
      "description": "The list of targets on which the budget is applied.\n  If the targetType is \"COMPARTMENT\", the targets contain the list of compartment OCIDs.\n  If the targetType is \"TAG\", the targets contain the list of cost tracking tag identifiers in the form of \"{tagNamespace}.{tagKey}.{tagValue}\".\n",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "timeCreated": {
      "description": "The time the budget was created.",
      "format": "date-time",
      "type": "string"
    },
    "timeSpendComputed": {
      "description": "The time the budget spend was last computed.",
      "format": "date-time",
      "type": "string"
    },
    "timeUpdated": {
      "description": "The time the budget was updated.",
      "format": "date-time",
      "type": "string"
    },
    "version": {
      "description": "The version of the budget. Starts from 1 and increments by 1.",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "compartmentId",
    "displayName",
    "amount",
    "resetPeriod",
    "timeCreated",
    "timeUpdated",
    "alertRuleCount",
    "lifecycleState"
  ]
}