{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-billing-and-cost-management/json-schema/amazon-billing-and-cost-management-get-cost-forecast-response-schema.json",
  "title": "GetCostForecastResponse",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-billing-and-cost-management-forecasting-api-openapi.yml#/components/schemas/GetCostForecastResponse",
  "type": "object",
  "properties": {
    "Total": {
      "$ref": "#/$defs/MetricValue"
    },
    "ForecastResultsByTime": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ForecastResult"
      },
      "description": "The forecasts for your query, in order. For DAILY forecasts, this is a list of days. For MONTHLY forecasts, this is a list of months."
    }
  },
  "$defs": {
    "DateInterval": {
      "type": "object",
      "properties": {
        "Start": {
          "type": "string",
          "description": "The beginning of the time period. The start date is inclusive. For example, if start is 2017-01-01, Amazon Web Services retrieves cost and usage data starting at 2017-01-01 up to the end date. The start date must be equal to or no later than the current date to avoid a validation error."
        },
        "End": {
          "type": "string",
          "description": "The end of the time period. The end date is exclusive. For example, if end is 2017-05-01, Amazon Web Services retrieves cost and usage data from the start date up to, but not including, 2017-05-01."
        }
      },
      "required": [
        "Start",
        "End"
      ]
    },
    "ForecastResult": {
      "type": "object",
      "properties": {
        "TimePeriod": {
          "$ref": "#/$defs/DateInterval"
        },
        "MeanValue": {
          "type": "string",
          "description": "The mean value of the forecast."
        },
        "PredictionIntervalLowerBound": {
          "type": "string",
          "description": "The lower limit for the prediction interval."
        },
        "PredictionIntervalUpperBound": {
          "type": "string",
          "description": "The upper limit for the prediction interval."
        }
      }
    },
    "MetricValue": {
      "type": "object",
      "properties": {
        "Amount": {
          "type": "string",
          "description": "The actual number that represents the metric."
        },
        "Unit": {
          "type": "string",
          "description": "The unit that the metric is given in."
        }
      }
    }
  }
}