{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$schemaVersion": "0.0.3",
  "modelTags": "",
  "$id": "https://smart-data-models.github.io/dataModel.Weather/WeatherForecast/schema.json",
  "title": " - Weather Forecast schema",
  "description": "A harmonised description of a Weather Forecast",
  "type": "object",
  "allOf": [
    {
      "$ref": "https://smart-data-models.github.io/data-models/common-schema.json#/definitions/GSMA-Commons"
    },
    {
      "$ref": "https://smart-data-models.github.io/data-models/common-schema.json#/definitions/Location-Commons"
    },
    {
      "$ref": "https://smart-data-models.github.io/dataModel.Weather/weather-schema.json#/definitions/Weather-Commons"
    },
    {
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "WeatherForecast"
          ],
          "description": "Property. NGSI Entity type. It has to be WeatherForecast"
        },
        "dateRetrieved": {
          "type": "string",
          "format": "date-time",
          "description": "Property. Model:'https://schema.org/DateTime'. The date and time the forecast was retrieved in ISO8601 UTC format"
        },
        "dateIssued": {
          "type": "string",
          "format": "date-time",
          "description": "Property. Model:'https://schema.org/DateTime'. The date and time the forecast was issued by the meteorological bureau in ISO8601 UTC format"
        },
        "validity": {
          "type": "string",
          "description": "Property. Model:'https://schema.org/Text'. Includes the validity period for this forecast as a ISO8601 time interval. As a workaround for the lack of support of Orion Context Broker for datetime intervals, it can be used two separate attributes: `validFrom`, `validTo`"
        },
        "validFrom": {
          "type": "string",
          "format": "date-time",
          "description": "Property. Model:'https://schema.org/Text'. Validity period start date and time"
        },
        "validTo": {
          "type": "string",
          "format": "date-time",
          "description": "Property. Model:'https://schema.org/Text'. Validity period end date and time"
        },
        "dayMaximum": {
          "type": "object",
          "description": "Property. Model:'https://schema.org/StructuredValue'. Maximum values for the reported period. Subattributes:- `temperature` : Maximum temperature. See `WeatherForecast.temperature` for description and units. - `feelLikesTemperature`. Maximum feels like temperature. Same semantics and units as `WeatherForecast.feelsLikeTemperature`.-   `relativeHumidity`. Maximum relative humidity. Same semantics and units as `WeatherForecast.relativeHumidity`",
          "properties": {
            "temperature": {
              "$ref": "https://smart-data-models.github.io/dataModel.Weather/weather-schema.json#/definitions/Weather-AirConditions/properties/temperature"
            },
            "feelLikesTemperature": {
              "$ref": "https://smart-data-models.github.io/dataModel.Weather/weather-schema.json#/definitions/Weather-AirConditions/properties/feelLikesTemperature"
            },
            "relativeHumidity": {
              "$ref": "https://smart-data-models.github.io/dataModel.Weather/weather-schema.json#/definitions/Weather-AirConditions/properties/relativeHumidity"
            }
          }
        },
        "dayMinimum": {
          "type": "object",
          "description": "Property. Model:'https://schema.org/Text'. Minimum values forecasted for the reported period.  Minimum values for the reported period. Subattributes:- `temperature` : Minimum temperature. See `WeatherForecast.temperature` for description and units. - `feelLikesTemperature`. Minimum feels like temperature. Same semantics and units as `WeatherForecast.feelsLikeTemperature`.- `relativeHumidity`. Minimum relative humidity. Same semantics and units as `WeatherForecast.relativeHumidity`",
          "properties": {
            "temperature": {
              "$ref": "https://smart-data-models.github.io/dataModel.Weather/weather-schema.json#/definitions/Weather-AirConditions/properties/temperature"
            },
            "feelLikesTemperature": {
              "$ref": "https://smart-data-models.github.io/dataModel.Weather/weather-schema.json#/definitions/Weather-AirConditions/properties/feelLikesTemperature"
            },
            "relativeHumidity": {
              "$ref": "https://smart-data-models.github.io/dataModel.Weather/weather-schema.json#/definitions/Weather-AirConditions/properties/relativeHumidity"
            }
          }
        },
        "uVIndexMax": {
          "type": "number",
          "description": "Property. Model:'https://schema.org/Number'. The maximum UV index for the period, based on the World Health Organization's UV Index measure. Normative references: [http://www.who.int/uv/intersunprogramme/activities/uv_index/en/](http://www.who.int/uv/intersunprogramme/activities/uv_index/en/)",
          "minimum": 0
        },
        "precipitation": {
          "type": "number",
          "minimum": 0,
          "description": "Property. Model:'https://schema.org/Number'. Amount of water rain expected. Units:'Liters per square meter'"
        },
        "precipitationProbability": {
          "type": "number",
          "minimum": 0,
          "description": "Property. Model:'https://schema.org/Number'. Probability of rainfall."
        }
      }
    }
  ],
  "required": [
    "id",
    "type",
    "dateIssued"
  ]
}