{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-maps/json-schema/microsoft-azure-maps-minute-forecast-result-schema.json",
  "title": "MinuteForecastResult",
  "description": "The response returned by the Get Minute Forecast operation, providing a\nminute-by-minute precipitation outlook for a specified location over the\nnext 120 minutes at the requested resolution (1, 5, or 15 minutes). The\nresponse is organized into three layers: an overall `summary` with phrase\ndescriptions and a representative icon for the whole period; an\n`intervalSummaries` array that groups consecutive minutes into longer\nstretches of similar conditions (such as *Rain ending in 25 min*); and an\n`intervals` array containing the detailed per-minute forecast points,\nincluding precipitation intensity (`dbz`), precipitation type, cloud\ncover, and the colors used to render radar-style visualizations.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-maps-weather-api-openapi.yml#/components/schemas/MinuteForecastResult",
  "type": "object",
  "properties": {
    "summary": {
      "$ref": "#/$defs/MinuteForecastSummary",
      "description": "Top-level phrase summaries that describe the precipitation outlook for\nthe entire ~120-minute forecast window. Includes short, brief, and long\nvariants so the appropriate level of detail can be displayed for the\navailable UI space, plus a representative `iconCode` for the period.",
      "readOnly": true
    },
    "intervalSummaries": {
      "type": "array",
      "description": "Phrase summaries that divide the forecast window into one or more\ncontiguous stretches of similar conditions - for example, *Rain ending\nin 25 min* followed by *Partly cloudy*. Each entry specifies the\nminutes it covers (`startMinute`, `endMinute`, `totalMinutes`),\nprovides short, brief, and long phrase variants, and includes an\n`iconCode` for the stretch. Together, these summaries cover the full\nforecast period.",
      "items": {
        "$ref": "#/$defs/IntervalSummary"
      },
      "readOnly": true
    },
    "intervals": {
      "type": "array",
      "description": "The detailed per-step forecast points that make up the minute-by-minute\nforecast. Each `ForecastInterval` covers 1, 5, or 15 minutes - depending\non the resolution requested - and reports the start time, precipitation\nintensity (`dbz`), precipitation type and threshold, a short\ndescriptive phrase, an icon code, cloud cover, and the colors used to\nrender a radar-style display.",
      "items": {
        "$ref": "#/$defs/ForecastInterval"
      },
      "readOnly": true
    }
  },
  "$defs": {
    "ColorValue": {
      "type": "object",
      "description": "An RGB color, returned in both component (`red`, `green`, `blue`) and\nhexadecimal (`hex`) form. Used by the minute-by-minute forecast to render\neach interval on a radar-style display - see `ForecastInterval.color` for\nthe full-spectrum color mapped to `dbz`, and\n`ForecastInterval.simplifiedColor` for the coarser color derived from\n`precipitationType` and `threshold`. For the underlying color mappings, see\n[Weather services in Azure\nMaps](/azure/azure-maps/weather-services-concepts#radar-images).",
      "properties": {
        "red": {
          "type": "integer",
          "format": "int32",
          "description": "Red component of the RGB value. Valid values range from 0-255."
        },
        "green": {
          "type": "integer",
          "format": "int32",
          "description": "Green component of the RGB value. Valid values range from 0-255."
        },
        "blue": {
          "type": "integer",
          "format": "int32",
          "description": "Blue component of the RGB value. Valid values range from 0-255."
        },
        "hex": {
          "type": "string",
          "description": "The same color as a hexadecimal RGB string prefixed with `#` - for\nexample, *#FF0000* for red."
        }
      }
    },
    "ForecastInterval": {
      "type": "object",
      "description": "Represents a single time slice within a minute-by-minute forecast,\ndescribing the expected weather conditions during that interval. Each\ninterval covers 1, 5, or 15 minutes - depending on the resolution\nrequested - and includes the start time, precipitation intensity (`dbz`),\nprecipitation type and threshold, a short descriptive phrase, an icon\ncode, cloud cover, and the full-spectrum and simplified colors used to\nvisually represent the conditions on a radar-style display.",
      "properties": {
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "The start of this forecast interval, in [RFC\n3339](https://datatracker.ietf.org/doc/html/rfc3339) format\n(`yyyy-mm-ddThh:mm:ss±hh:mm`). For example, *2019-11-14T15:18:00-08:00*."
        },
        "minute": {
          "type": "integer",
          "format": "int32",
          "description": "The start of this forecast interval expressed as a number of minutes from\nthe start of the forecast (minute 0). Pairs with `startTime` and matches\nthe `startMinute` field on the corresponding `IntervalSummary`."
        },
        "dbz": {
          "type": "number",
          "format": "double",
          "description": "Forecasted radar reflectivity in decibels relative to Z (dBZ), used as a\nmeasure of precipitation intensity. Higher values indicate heavier\nprecipitation; a value of 0 indicates no precipitation."
        },
        "shortPhrase": {
          "type": "string",
          "description": "A short phrase describing the precipitation conditions during this\ninterval (for example, *Light rain*). Up to approximately 25 characters."
        },
        "threshold": {
          "type": "string",
          "description": "The intensity bucket the precipitation falls into for the current\n`precipitationType` - for example, *light*, *moderate*, or *heavy*. Used\nwith `precipitationType` to determine `simplifiedColor`. Returned only\nwhen `dbz` is greater than zero."
        },
        "color": {
          "$ref": "#/$defs/ColorValue",
          "description": "The full-spectrum color that maps to `dbz`, used to render this interval\non a radar-style display. Returned only when `dbz` is greater than zero."
        },
        "simplifiedColor": {
          "$ref": "#/$defs/ColorValue",
          "description": "A simplified color derived from `precipitationType` and `threshold`,\nsuitable for UIs that need quick, easy-to-read radar visualizations\nrather than the full dBZ color spectrum. Returned only when `dbz` is\ngreater than zero."
        },
        "precipitationType": {
          "$ref": "#/$defs/PrecipitationType",
          "description": "The type of precipitation expected during this interval - one of *Rain*,\n*Snow*, *Ice*, or *Mix*. Returned only when `dbz` is greater than zero."
        },
        "iconCode": {
          "$ref": "#/$defs/IconCode",
          "description": "The representative weather icon code for this interval. The numeric value\ncorresponds to an Azure Maps weather icon - for the complete list, see\n[Weather services in Azure\nMaps](/azure/azure-maps/weather-services-concepts#weather-icons)."
        },
        "cloudCover": {
          "type": "integer",
          "format": "int32",
          "description": "The percentage of the sky covered by clouds during this interval, from 0\n(clear) to 100 (overcast). May be NULL."
        }
      }
    },
    "IconCode": {
      "type": "number",
      "description": "The numeric weather-condition code that identifies which icon to display.\nEach value in this enumeration corresponds to an Azure Maps weather icon\n(such as Sunny, Cloudy, or Thunderstorms) and pairs with a human-readable\n`iconPhrase` returned alongside it. The same code can appear in current,\nhourly, daily, quarter-day, and minute-by-minute responses, allowing\napplications to render a consistent icon set across all weather services.\n\nFor the complete list of codes, the icons they map to, and example\nimagery, see [Weather services in Azure\nMaps](/azure/azure-maps/weather-services-concepts#weather-icons).",
      "enum": [
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        38,
        39,
        40,
        41,
        42,
        43,
        44
      ],
      "x-ms-enum": {
        "name": "IconCode",
        "modelAsString": true,
        "values": [
          {
            "name": "Sunny",
            "value": 1,
            "description": "Sunny"
          },
          {
            "name": "MostlySunny",
            "value": 2,
            "description": "Mostly Sunny"
          },
          {
            "name": "PartlySunny",
            "value": 3,
            "description": "Partly Sunny"
          },
          {
            "name": "IntermittentClouds",
            "value": 4,
            "description": "Intermittent Clouds"
          },
          {
            "name": "HazySunshine",
            "value": 5,
            "description": "Hazy Sunshine"
          },
          {
            "name": "MostlyCloudy",
            "value": 6,
            "description": "Mostly Cloudy"
          },
          {
            "name": "Cloudy",
            "value": 7,
            "description": "Cloudy"
          },
          {
            "name": "Dreary",
            "value": 8,
            "description": "Dreary (Overcast)"
          },
          {
            "name": "Fog",
            "value": 11,
            "description": "Fog"
          },
          {
            "name": "Showers",
            "value": 12,
            "description": "Showers"
          },
          {
            "name": "MostlyCloudyWithShowers",
            "value": 13,
            "description": "Mostly Cloudy with Showers"
          },
          {
            "name": "PartlySunnyWithShowers",
            "value": 14,
            "description": "Partly Sunny with Showers"
          },
          {
            "name": "Thunderstorms",
            "value": 15,
            "description": "Thunderstorms"
          },
          {
            "name": "MostlyCloudyWithThunderstorms",
            "value": 16,
            "description": "Mostly Cloudy with Thunderstorms"
          },
          {
            "name": "PartlySunnyWithThunderstorms",
            "value": 17,
            "description": "Partly Sunny with Thunderstorms"
          },
          {
            "name": "Rain",
            "value": 18,
            "description": "Rain"
          },
          {
            "name": "Flurries",
            "value": 19,
            "description": "Flurries"
          },
          {
            "name": "MostlyCloudyWithFlurries",
            "value": 20,
            "description": "Mostly Cloudy with Flurries"
          },
          {
            "name": "PartlySunnyWithFlurries",
            "value": 21,
            "description": "Partly Sunny with Flurries"
          },
          {
            "name": "Snow",
            "value": 22,
            "description": "Snow"
          },
          {
            "name": "MostlyCloudyWithSnow",
            "value": 23,
            "description": "Mostly Cloudy with Snow"
          },
          {
            "name": "Ice",
            "value": 24,
            "description": "Ice"
          },
          {
            "name": "Sleet",
            "value": 25,
            "description": "Sleet"
          },
          {
            "name": "FreezingRain",
            "value": 26,
            "description": "Freezing Rain"
          },
          {
            "name": "RainAndSnow",
            "value": 29,
            "description": "Rain and Snow"
          },
          {
            "name": "Hot",
            "value": 30,
            "description": "Hot"
          },
          {
            "name": "Cold",
            "value": 31,
            "description": "Cold"
          },
          {
            "name": "Windy",
            "value": 32,
            "description": "Windy"
          },
          {
            "name": "Clear",
            "value": 33,
            "description": "Clear"
          },
          {
            "name": "Mostly Clear",
            "value": 34,
            "description": "Mostly Clear"
          },
          {
            "name": "Partly Cloudy",
            "value": 35,
            "description": "Partly Cloudy"
          },
          {
            "name": "IntermittentCloudsNight",
            "value": 36,
            "description": "Intermittent Clouds"
          },
          {
            "name": "HazyMoonlight",
            "value": 37,
            "description": "Hazy Moonlight"
          },
          {
            "name": "MostlyCloudyNight",
            "value": 38,
            "description": "Mostly Cloudy"
          },
          {
            "name": "PartlyCloudyWithShowers",
            "value": 39,
            "description": "Partly Cloudy with Showers"
          },
          {
            "name": "MostlyCloudyWithShowersNight",
            "value": 40,
            "description": "Mostly Cloudy with Showers"
          },
          {
            "name": "Partly Cloudy with Thunderstorms",
            "value": 41,
            "description": "Partly Cloudy with Thunderstorms"
          },
          {
            "name": "MostlyCloudyWithThunderstormsNight",
            "value": 42,
            "description": "Mostly Cloudy with Thunderstorms"
          },
          {
            "name": "MostlyCloudyWithFlurriesNight",
            "value": 43,
            "description": "Mostly Cloudy with Flurries"
          },
          {
            "name": "MostlyCloudyWithSnowNight",
            "value": 44,
            "description": "Mostly Cloudy with Snow"
          }
        ]
      }
    },
    "IntervalSummary": {
      "type": "object",
      "description": "Describes the weather outlook for a contiguous window inside the\nminute-by-minute forecast - typically a stretch of similar conditions such\nas *Rain ending in 25 min* or *Light snow starting in 10 min*. Each summary\nspecifies the window in minutes from the forecast start (`startMinute`,\n`endMinute`, `totalMinutes`), provides phrase descriptions at three lengths\n(short, brief, and long) so the appropriate level of detail can be shown\nfor the available UI space, and includes an `iconCode` for the\nrepresentative weather icon. A `MinuteForecastResult` returns one or more\n`IntervalSummary` entries that together cover the forecast period.",
      "properties": {
        "startMinute": {
          "type": "integer",
          "format": "int32",
          "description": "The first minute of this interval, expressed as a number of minutes from\nthe start of the forecast (minute 0)."
        },
        "endMinute": {
          "type": "integer",
          "format": "int32",
          "description": "The last minute of this interval, expressed as a number of minutes from\nthe start of the forecast (minute 0)."
        },
        "totalMinutes": {
          "type": "integer",
          "format": "int32",
          "description": "The length of this interval, in minutes (`endMinute` - `startMinute` + 1)."
        },
        "shortPhrase": {
          "type": "string",
          "description": "A short phrase describing the precipitation conditions during this interval. Up to 25 characters."
        },
        "briefPhrase": {
          "type": "string",
          "description": "A brief phrase describing the precipitation conditions during this interval. Up to 60 characters."
        },
        "longPhrase": {
          "type": "string",
          "description": "A long phrase describing the precipitation conditions during this interval. Supports\nmore than 60 characters."
        },
        "iconCode": {
          "$ref": "#/$defs/IconCode",
          "description": "The representative weather icon code for this interval. The numeric value\ncorresponds to an Azure Maps weather icon - for the complete list, see\n[Weather services in Azure\nMaps](/azure/azure-maps/weather-services-concepts#weather-icons)."
        }
      }
    },
    "MinuteForecastSummary": {
      "type": "object",
      "description": "Provides phrase summaries describing the precipitation outlook for the\nupcoming minute-by-minute forecast period. Multiple phrase lengths are\nincluded - short (~25 characters), brief (~60 characters), and long\n(60+ characters) - so applications can display the level of detail that\nbest fits the available UI space. An `iconCode` indicates the\nrepresentative weather icon for the period.",
      "properties": {
        "briefPhrase60": {
          "type": "string",
          "description": "A brief phrase describing the precipitation outlook for the next 60\nminutes only (a shorter window than the other phrases on this object).\nUp to approximately 60 characters."
        },
        "shortPhrase": {
          "type": "string",
          "description": "A short phrase describing the precipitation outlook for the full ~120\nminute forecast window. Up to approximately 25 characters."
        },
        "briefPhrase": {
          "type": "string",
          "description": "A brief phrase describing the precipitation outlook for the full ~120\nminute forecast window. Up to approximately 60 characters."
        },
        "longPhrase": {
          "type": "string",
          "description": "A long phrase describing the precipitation outlook for the full ~120\nminute forecast window. Supports more than 60 characters."
        },
        "iconCode": {
          "$ref": "#/$defs/IconCode",
          "description": "A representative weather icon code for the full ~120 minute forecast\nwindow. The numeric value corresponds to an Azure Maps weather icon -\nfor the complete list, see [Weather services in Azure\nMaps](/azure/azure-maps/weather-services-concepts#weather-icons)."
        }
      }
    },
    "PrecipitationType": {
      "type": "string",
      "description": "Specifies the type of precipitation. Valid values are *Rain*, *Snow*, *Ice*, or\n*Mix*. This property is included in the response when dBZ is greater than zero.",
      "enum": [
        "Ice",
        "Mix",
        "Rain",
        "Snow"
      ],
      "x-ms-enum": {
        "name": "PrecipitationType",
        "modelAsString": true,
        "values": [
          {
            "name": "Ice",
            "value": "Ice",
            "description": "Ice"
          },
          {
            "name": "Mix",
            "value": "Mix",
            "description": "Mix"
          },
          {
            "name": "Rain",
            "value": "Rain",
            "description": "Rain"
          },
          {
            "name": "Snow",
            "value": "Snow",
            "description": "Snow"
          }
        ]
      }
    }
  }
}