{
  "description": "weather.googleapis.com API.",
  "documentationLink": "https://developers.google.com/maps/documentation/weather",
  "ownerName": "Google",
  "name": "weather",
  "id": "weather:v1",
  "kind": "discovery#restDescription",
  "baseUrl": "https://weather.googleapis.com/",
  "version_module": true,
  "resources": {
    "publicAlerts": {
      "methods": {
        "lookup": {
          "path": "v1/publicAlerts:lookup",
          "parameters": {
            "location.latitude": {
              "location": "query",
              "format": "double",
              "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
              "type": "number"
            },
            "location.longitude": {
              "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
              "type": "number",
              "location": "query",
              "format": "double"
            },
            "languageCode": {
              "location": "query",
              "description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language, the API uses the closest match. Allowed values rely on the IETF BCP-47 standard. The default value is \"en\".",
              "type": "string"
            },
            "pageSize": {
              "description": "Optional. The maximum number of public weather alert records to return per page.",
              "type": "integer",
              "location": "query",
              "format": "int32"
            },
            "pageToken": {
              "description": "Optional. A page token received from a previous `LookupPublicAlerts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `LookupPublicAlerts` must match the call that provided the page token.",
              "type": "string",
              "location": "query"
            }
          },
          "response": {
            "$ref": "LookupPublicAlertsResponse"
          },
          "flatPath": "v1/publicAlerts:lookup",
          "description": "Returns public weather alerts for a given location.",
          "parameterOrder": [],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "httpMethod": "GET",
          "id": "weather.publicAlerts.lookup"
        }
      }
    },
    "currentConditions": {
      "methods": {
        "lookup": {
          "description": "Returns the current weather conditions at a given location.",
          "flatPath": "v1/currentConditions:lookup",
          "response": {
            "$ref": "LookupCurrentConditionsResponse"
          },
          "parameters": {
            "location.latitude": {
              "location": "query",
              "format": "double",
              "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
              "type": "number"
            },
            "location.longitude": {
              "location": "query",
              "format": "double",
              "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
              "type": "number"
            },
            "unitsSystem": {
              "enum": [
                "UNITS_SYSTEM_UNSPECIFIED",
                "IMPERIAL",
                "METRIC"
              ],
              "type": "string",
              "description": "Optional. The units system to use for the returned weather conditions. If not provided, the returned weather conditions will be in the metric system (default = METRIC).",
              "enumDescriptions": [
                "The units system is unspecified.",
                "The imperial units system (e.g. Fahrenheit, miles, etc).",
                "The metric units system (e.g. Celsius, kilometers, etc)."
              ],
              "location": "query"
            },
            "languageCode": {
              "description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language, the API uses the closest match. Allowed values rely on the IETF BCP-47 standard. The default value is \"en\".",
              "type": "string",
              "location": "query"
            }
          },
          "path": "v1/currentConditions:lookup",
          "id": "weather.currentConditions.lookup",
          "httpMethod": "GET",
          "parameterOrder": [],
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      }
    },
    "forecast": {
      "resources": {
        "hours": {
          "methods": {
            "lookup": {
              "id": "weather.forecast.hours.lookup",
              "httpMethod": "GET",
              "parameterOrder": [],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Returns up to 240 hours of hourly forecasts at a given location, starting from the current hour.",
              "flatPath": "v1/forecast/hours:lookup",
              "response": {
                "$ref": "LookupForecastHoursResponse"
              },
              "parameters": {
                "location.latitude": {
                  "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
                  "type": "number",
                  "location": "query",
                  "format": "double"
                },
                "location.longitude": {
                  "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
                  "type": "number",
                  "location": "query",
                  "format": "double"
                },
                "unitsSystem": {
                  "location": "query",
                  "description": "Optional. The units system to use for the returned weather conditions. If not provided, the returned weather conditions will be in the metric system (default = METRIC).",
                  "enumDescriptions": [
                    "The units system is unspecified.",
                    "The imperial units system (e.g. Fahrenheit, miles, etc).",
                    "The metric units system (e.g. Celsius, kilometers, etc)."
                  ],
                  "type": "string",
                  "enum": [
                    "UNITS_SYSTEM_UNSPECIFIED",
                    "IMPERIAL",
                    "METRIC"
                  ]
                },
                "languageCode": {
                  "location": "query",
                  "description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language, the API uses the closest match. Allowed values rely on the IETF BCP-47 standard. The default value is \"en\".",
                  "type": "string"
                },
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "description": "Optional. The maximum number of hourly forecast records to return per page - a value from 1 to 24 (inclusive). The default is the maximum allowed value of 24.",
                  "type": "integer"
                },
                "hours": {
                  "description": "Optional. Limits the amount of total hours to fetch starting from the current hour - a value from 1 to 240 (inclusive). The default is the maximum allowed value of 240.",
                  "type": "integer",
                  "location": "query",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "Optional. A page token received from a previous request. It is used to retrieve the subsequent page.",
                  "type": "string",
                  "location": "query"
                }
              },
              "path": "v1/forecast/hours:lookup"
            }
          }
        },
        "days": {
          "methods": {
            "lookup": {
              "parameters": {
                "days": {
                  "description": "Optional. Limits the amount of total days to fetch starting from the current day - a value from 1 to 10 (inclusive). The default value is the maximum allowed value of 10.",
                  "type": "integer",
                  "location": "query",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "Optional. A page token received from a previous request. It is used to retrieve the subsequent page.",
                  "type": "string",
                  "location": "query"
                },
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "description": "Optional. The maximum number of daily forecast records to return per page - a value from 1 to 10 (inclusive). The default value is 5.",
                  "type": "integer"
                },
                "unitsSystem": {
                  "description": "Optional. The units system to use for the returned weather conditions. If not provided, the returned weather conditions will be in the metric system (default = METRIC).",
                  "enumDescriptions": [
                    "The units system is unspecified.",
                    "The imperial units system (e.g. Fahrenheit, miles, etc).",
                    "The metric units system (e.g. Celsius, kilometers, etc)."
                  ],
                  "location": "query",
                  "enum": [
                    "UNITS_SYSTEM_UNSPECIFIED",
                    "IMPERIAL",
                    "METRIC"
                  ],
                  "type": "string"
                },
                "languageCode": {
                  "location": "query",
                  "description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language, the API uses the closest match. Allowed values rely on the IETF BCP-47 standard. The default value is \"en\".",
                  "type": "string"
                },
                "location.latitude": {
                  "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
                  "type": "number",
                  "location": "query",
                  "format": "double"
                },
                "location.longitude": {
                  "location": "query",
                  "format": "double",
                  "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
                  "type": "number"
                }
              },
              "path": "v1/forecast/days:lookup",
              "response": {
                "$ref": "LookupForecastDaysResponse"
              },
              "flatPath": "v1/forecast/days:lookup",
              "description": "Returns up to 10 days of daily forecasts at a given location, starting from the current day.",
              "parameterOrder": [],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "httpMethod": "GET",
              "id": "weather.forecast.days.lookup"
            }
          }
        }
      }
    },
    "history": {
      "resources": {
        "hours": {
          "methods": {
            "lookup": {
              "httpMethod": "GET",
              "id": "weather.history.hours.lookup",
              "parameterOrder": [],
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/history/hours:lookup",
              "description": "Returns up to 24 hours of hourly historical weather data at a given location, starting from the last hour.",
              "parameters": {
                "unitsSystem": {
                  "enum": [
                    "UNITS_SYSTEM_UNSPECIFIED",
                    "IMPERIAL",
                    "METRIC"
                  ],
                  "type": "string",
                  "description": "Optional. The units system to use for the returned weather conditions. If not provided, the returned weather conditions will be in the metric system (default = METRIC).",
                  "enumDescriptions": [
                    "The units system is unspecified.",
                    "The imperial units system (e.g. Fahrenheit, miles, etc).",
                    "The metric units system (e.g. Celsius, kilometers, etc)."
                  ],
                  "location": "query"
                },
                "languageCode": {
                  "description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language, the API uses the closest match. Allowed values rely on the IETF BCP-47 standard. The default value is \"en\".",
                  "type": "string",
                  "location": "query"
                },
                "location.latitude": {
                  "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
                  "type": "number",
                  "location": "query",
                  "format": "double"
                },
                "location.longitude": {
                  "location": "query",
                  "format": "double",
                  "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
                  "type": "number"
                },
                "hours": {
                  "description": "Optional. Limits the amount of total hours to fetch starting from the last hour - a from 1 to 24 (inclusive). The default is the maximum allowed value of 24.",
                  "type": "integer",
                  "location": "query",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "Optional. A page token received from a previous request. It is used to retrieve the subsequent page.",
                  "type": "string",
                  "location": "query"
                },
                "pageSize": {
                  "location": "query",
                  "format": "int32",
                  "description": "Optional. The maximum number of hourly historical records to return per page - a value from 1 to 24 (inclusive). The default is the maximum allowed value of 24.",
                  "type": "integer"
                }
              },
              "path": "v1/history/hours:lookup",
              "response": {
                "$ref": "LookupHistoryHoursResponse"
              }
            }
          }
        }
      }
    }
  },
  "basePath": "",
  "protocol": "rest",
  "batchPath": "batch",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "fullyEncodeReservedExpansion": true,
  "title": "Weather API",
  "rootUrl": "https://weather.googleapis.com/",
  "mtlsRootUrl": "https://weather.mtls.googleapis.com/",
  "revision": "20260506",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "servicePath": "",
  "schemas": {
    "Visibility": {
      "id": "Visibility",
      "description": "Represents visibility conditions, the distance at which objects can be discerned.",
      "type": "object",
      "properties": {
        "distance": {
          "description": "The visibility distance in the specified unit.",
          "type": "number",
          "format": "float"
        },
        "unit": {
          "description": "The code that represents the unit used to measure the distance.",
          "type": "string",
          "enumDescriptions": [
            "The visibility unit is unspecified.",
            "The visibility is measured in kilometers.",
            "The visibility is measured in miles."
          ],
          "enum": [
            "UNIT_UNSPECIFIED",
            "KILOMETERS",
            "MILES"
          ]
        }
      }
    },
    "Date": {
      "properties": {
        "month": {
          "format": "int32",
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "type": "integer"
        },
        "year": {
          "format": "int32",
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "type": "integer"
        },
        "day": {
          "format": "int32",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
          "type": "integer"
        }
      },
      "id": "Date",
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
      "type": "object"
    },
    "CurrentConditionsHistory": {
      "id": "CurrentConditionsHistory",
      "description": "Represents a set of changes in the current conditions over the last 24 hours.",
      "type": "object",
      "properties": {
        "temperatureChange": {
          "$ref": "Temperature",
          "description": "The current temperature minus the temperature 24 hours ago."
        },
        "snowQpf": {
          "$ref": "QuantitativePrecipitationForecast",
          "description": "The amount of snow, measured as liquid water equivalent, that has accumulated over the last 24 hours. Note: QPF is an abbreviation for Quantitative Precipitation Forecast (please see the QuantitativePrecipitationForecast definition for more details)."
        },
        "maxTemperature": {
          "$ref": "Temperature",
          "description": "The maximum (high) temperature in the past 24 hours."
        },
        "minTemperature": {
          "description": "The minimum (low) temperature in the past 24 hours.",
          "$ref": "Temperature"
        },
        "qpf": {
          "description": "The amount of precipitation rain, measured as liquid water equivalent, that has accumulated over the last 24 hours. Note: QPF is an abbreviation for Quantitative Precipitation Forecast (please see the QuantitativePrecipitationForecast definition for more details).",
          "$ref": "QuantitativePrecipitationForecast"
        }
      }
    },
    "LookupCurrentConditionsResponse": {
      "properties": {
        "dewPoint": {
          "description": "The current dew point temperature.",
          "$ref": "Temperature"
        },
        "currentConditionsHistory": {
          "description": "The changes in the current conditions over the last 24 hours.",
          "$ref": "CurrentConditionsHistory"
        },
        "uvIndex": {
          "format": "int32",
          "description": "The current ultraviolet (UV) index.",
          "type": "integer"
        },
        "thunderstormProbability": {
          "format": "int32",
          "description": "The current thunderstorm probability (values from 0 to 100).",
          "type": "integer"
        },
        "airPressure": {
          "description": "The current air pressure conditions.",
          "$ref": "AirPressure"
        },
        "temperature": {
          "$ref": "Temperature",
          "description": "The current temperature."
        },
        "relativeHumidity": {
          "description": "The current percent of relative humidity (values from 0 to 100).",
          "type": "integer",
          "format": "int32"
        },
        "weatherCondition": {
          "$ref": "WeatherCondition",
          "description": "The current weather condition."
        },
        "heatIndex": {
          "$ref": "Temperature",
          "description": "The current heat index temperature."
        },
        "windChill": {
          "$ref": "Temperature",
          "description": "The current wind chill, air temperature exposed on the skin."
        },
        "wind": {
          "description": "The current wind conditions.",
          "$ref": "Wind"
        },
        "timeZone": {
          "$ref": "TimeZone",
          "description": "The time zone at the requested location."
        },
        "visibility": {
          "$ref": "Visibility",
          "description": "The current visibility."
        },
        "precipitation": {
          "$ref": "Precipitation",
          "description": "The current precipitation probability and amount of precipitation accumulated over the last hour."
        },
        "isDaytime": {
          "description": "True if the current time at the requested location is between the local sunrise (inclusive) and the sunset (exclusive) times. Otherwise, it is nighttime (between the sunset and the next sunrise).",
          "type": "boolean"
        },
        "feelsLikeTemperature": {
          "description": "The measure of how the temperature currently feels like at the requested location.",
          "$ref": "Temperature"
        },
        "currentTime": {
          "description": "Current time (UTC) associated with the returned data.",
          "type": "string",
          "format": "google-datetime"
        },
        "cloudCover": {
          "description": "The current percentage of the sky covered by clouds (values from 0 to 100).",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "LookupCurrentConditionsResponse",
      "description": "Response for the LookupCurrentConditions RPC - represents the current weather conditions at the requested location.",
      "type": "object"
    },
    "TimeZone": {
      "properties": {
        "id": {
          "description": "IANA Time Zone Database time zone. For example \"America/New_York\".",
          "type": "string"
        },
        "version": {
          "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".",
          "type": "string"
        }
      },
      "id": "TimeZone",
      "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).",
      "type": "object"
    },
    "WindSpeed": {
      "properties": {
        "value": {
          "description": "The value of the wind speed.",
          "type": "number",
          "format": "float"
        },
        "unit": {
          "enum": [
            "SPEED_UNIT_UNSPECIFIED",
            "KILOMETERS_PER_HOUR",
            "MILES_PER_HOUR"
          ],
          "description": "The code that represents the unit used to measure the wind speed.",
          "type": "string",
          "enumDescriptions": [
            "The speed unit is unspecified.",
            "The speed is measured in kilometers per hour.",
            "The speed is measured in miles per hour."
          ]
        }
      },
      "id": "WindSpeed",
      "description": "Represents the speed of the wind.",
      "type": "object"
    },
    "SafetyRecommendation": {
      "properties": {
        "directive": {
          "description": "A directive to the user. Please note that while this field should be localized, it is not guaranteed that it will be.",
          "type": "string"
        },
        "subtext": {
          "description": "An optional subtext for the directive, which may contain additional context for the user. Please note that while this field should be localized, it is not guaranteed that it will be.",
          "type": "string"
        }
      },
      "id": "SafetyRecommendation",
      "description": "Represents a safety recommendation.",
      "type": "object"
    },
    "LookupForecastDaysResponse": {
      "id": "LookupForecastDaysResponse",
      "description": "Response for the LookupForecastDays RPC.",
      "type": "object",
      "properties": {
        "timeZone": {
          "description": "The time zone at the requested location.",
          "$ref": "TimeZone"
        },
        "forecastDays": {
          "description": "The daily forecast records, according to the number of days and page size specified in the request.",
          "type": "array",
          "items": {
            "$ref": "ForecastDay"
          }
        },
        "nextPageToken": {
          "description": "The token to retrieve the next page.",
          "type": "string"
        }
      }
    },
    "ForecastHour": {
      "id": "ForecastHour",
      "description": "Represents an hourly forecast record at a given location.",
      "type": "object",
      "properties": {
        "windChill": {
          "$ref": "Temperature",
          "description": "The forecasted wind chill, air temperature exposed on the skin."
        },
        "wind": {
          "description": "The forecasted wind conditions.",
          "$ref": "Wind"
        },
        "heatIndex": {
          "description": "The forecasted heat index temperature.",
          "$ref": "Temperature"
        },
        "weatherCondition": {
          "description": "The foreacasted weather condition.",
          "$ref": "WeatherCondition"
        },
        "interval": {
          "description": "The one hour interval (in UTC time) this forecast data is valid for (the timestamps are rounded down to the closest hour).",
          "$ref": "Interval"
        },
        "uvIndex": {
          "description": "The forecasted ultraviolet (UV) index.",
          "type": "integer",
          "format": "int32"
        },
        "thunderstormProbability": {
          "description": "The forecasted thunderstorm probability (values from 0 to 100).",
          "type": "integer",
          "format": "int32"
        },
        "dewPoint": {
          "description": "The forecasted dew point temperature.",
          "$ref": "Temperature"
        },
        "iceThickness": {
          "$ref": "IceThickness",
          "description": "The forecasted ice thickness."
        },
        "relativeHumidity": {
          "description": "The forecasted percent of relative humidity (values from 0 to 100).",
          "type": "integer",
          "format": "int32"
        },
        "temperature": {
          "description": "The forecasted temperature.",
          "$ref": "Temperature"
        },
        "airPressure": {
          "description": "The forecasted air pressure conditions.",
          "$ref": "AirPressure"
        },
        "feelsLikeTemperature": {
          "$ref": "Temperature",
          "description": "The measure of how the temperature will feel like at the requested location."
        },
        "cloudCover": {
          "description": "The forecasted percentage of the sky covered by clouds (values from 0 to 100).",
          "type": "integer",
          "format": "int32"
        },
        "visibility": {
          "description": "The forecasted visibility.",
          "$ref": "Visibility"
        },
        "displayDateTime": {
          "$ref": "DateTime",
          "description": "The local date and time in the time zone of the location (civil time) which this hourly forecast is calculated for. This field may be used for display purposes on the client. Note: this date will consist of the year, month, day, hour and offset from UTC."
        },
        "isDaytime": {
          "description": "True if this hour is between the local sunrise (inclusive) and sunset (exclusive) times. Otherwise, it is nighttime (between the sunset and the next sunrise). Note: this hour will be considered as daytime or nighttime if the interval intersects with the local sunrise and sunset times respectively (e.g.: if the interval is from 5am to 6am and sunrise is at 5:59am, then is_daytime will be true).",
          "type": "boolean"
        },
        "wetBulbTemperature": {
          "description": "The forecasted wet bulb temperature, lowest temperature achievable by evaporating water.",
          "$ref": "Temperature"
        },
        "precipitation": {
          "$ref": "Precipitation",
          "description": "The forecasted precipitation probability and amount of precipitation accumulated over the last hour."
        }
      }
    },
    "MoonEvents": {
      "properties": {
        "moonriseTimes": {
          "items": {
            "type": "string",
            "format": "google-datetime"
          },
          "description": "The time when the upper limb of the moon appears above the horizon (see https://en.wikipedia.org/wiki/Moonrise_and_moonset). NOTE: For most cases, there'll be a single moon rise time per day. In other cases, the list might be empty (e.g. when the moon rises after next day midnight). However, in unique cases (e.g. in polar regions), the list may contain more than one value. In these cases, the values are sorted in ascending order.",
          "type": "array"
        },
        "moonsetTimes": {
          "items": {
            "format": "google-datetime",
            "type": "string"
          },
          "description": "The time when the upper limb of the moon disappears below the horizon (see https://en.wikipedia.org/wiki/Moonrise_and_moonset). NOTE: For most cases, there'll be a single moon set time per day. In other cases, the list might be empty (e.g. when the moon sets after next day midnight). However, in unique cases (e.g. in polar regions), the list may contain more than one value. In these cases, the values are sorted in ascending order.",
          "type": "array"
        },
        "moonPhase": {
          "description": "The moon phase (a.k.a. lunar phase).",
          "type": "string",
          "enumDescriptions": [
            "Unspecified moon phase.",
            "The moon is not illuminated by the sun.",
            "The moon is lit by 0%-50% on its right side in the northern hemisphere 🌒 and on its left side in the southern hemisphere 🌘.",
            "The moon is lit by 50.1% on its right side in the northern hemisphere 🌓 and on its left side in the southern hemisphere 🌗.",
            "The moon is lit by 50%-100% on its right side in the northern hemisphere 🌔 and on its left side in the southern hemisphere 🌖.",
            "The moon is fully illuminated.",
            "The moon is lit by 50%-100% on its left side in the northern hemisphere 🌖 and on its right side in the southern hemisphere 🌔.",
            "The moon is lit by 50.1% on its left side in the northern hemisphere 🌗 and on its right side in the southern hemisphere 🌓.",
            "The moon is lit by 0%-50% on its left side in the northern hemisphere 🌘 and on its right side in the southern hemisphere 🌒."
          ],
          "enum": [
            "MOON_PHASE_UNSPECIFIED",
            "NEW_MOON",
            "WAXING_CRESCENT",
            "FIRST_QUARTER",
            "WAXING_GIBBOUS",
            "FULL_MOON",
            "WANING_GIBBOUS",
            "LAST_QUARTER",
            "WANING_CRESCENT"
          ]
        }
      },
      "id": "MoonEvents",
      "description": "Represents the events related to the moon (e.g. moonrise, moonset).",
      "type": "object"
    },
    "AirPressure": {
      "properties": {
        "meanSeaLevelMillibars": {
          "description": "The mean sea level air pressure in millibars.",
          "type": "number",
          "format": "float"
        }
      },
      "id": "AirPressure",
      "description": "Represents the atmospheric air pressure conditions.",
      "type": "object"
    },
    "WindDirection": {
      "properties": {
        "cardinal": {
          "description": "The code that represents the cardinal direction from which the wind is blowing.",
          "type": "string",
          "enumDescriptions": [
            "The cardinal direction is unspecified.",
            "The north cardinal direction.",
            "The north-northeast secondary intercardinal direction.",
            "The northeast intercardinal direction.",
            "The east-northeast secondary intercardinal direction.",
            "The east cardinal direction.",
            "The east-southeast secondary intercardinal direction.",
            "The southeast intercardinal direction.",
            "The south-southeast secondary intercardinal direction.",
            "The south cardinal direction.",
            "The south-southwest secondary intercardinal direction.",
            "The southwest intercardinal direction.",
            "The west-southwest secondary intercardinal direction.",
            "The west cardinal direction.",
            "The west-northwest secondary intercardinal direction.",
            "The northwest intercardinal direction.",
            "The north-northwest secondary intercardinal direction."
          ],
          "enum": [
            "CARDINAL_DIRECTION_UNSPECIFIED",
            "NORTH",
            "NORTH_NORTHEAST",
            "NORTHEAST",
            "EAST_NORTHEAST",
            "EAST",
            "EAST_SOUTHEAST",
            "SOUTHEAST",
            "SOUTH_SOUTHEAST",
            "SOUTH",
            "SOUTH_SOUTHWEST",
            "SOUTHWEST",
            "WEST_SOUTHWEST",
            "WEST",
            "WEST_NORTHWEST",
            "NORTHWEST",
            "NORTH_NORTHWEST"
          ]
        },
        "degrees": {
          "format": "int32",
          "description": "The direction of the wind in degrees (values from 0 to 360).",
          "type": "integer"
        }
      },
      "id": "WindDirection",
      "description": "Represents the direction from which the wind originates.",
      "type": "object"
    },
    "ForecastDay": {
      "id": "ForecastDay",
      "description": "Represents a daily forecast record at a given location.",
      "type": "object",
      "properties": {
        "minTemperature": {
          "$ref": "Temperature",
          "description": "The minimum (low) temperature throughout the day."
        },
        "moonEvents": {
          "$ref": "MoonEvents",
          "description": "The events related to the moon (e.g. moonrise, moonset)."
        },
        "feelsLikeMinTemperature": {
          "description": "The minimum (low) feels-like temperature throughout the day.",
          "$ref": "Temperature"
        },
        "feelsLikeMaxTemperature": {
          "$ref": "Temperature",
          "description": "The maximum (high) feels-like temperature throughout the day."
        },
        "maxHeatIndex": {
          "$ref": "Temperature",
          "description": "The maximum heat index temperature throughout the day."
        },
        "maxTemperature": {
          "$ref": "Temperature",
          "description": "The maximum (high) temperature throughout the day."
        },
        "interval": {
          "description": "The UTC time interval when this forecasted day is starts (inclusive) and ends (exclusive). Note: a day starts at 7am and ends at 7am next day, local time. For example: If the local time zone is UTC-7, then the interval will start at the time `14:00:00.000Z` and end at the same hour the next day.",
          "$ref": "Interval"
        },
        "displayDate": {
          "description": "The local date in the time zone of the location (civil time) which this daily forecast is calculated for. This field may be used for display purposes on the client.",
          "$ref": "Date"
        },
        "nighttimeForecast": {
          "description": "The forecasted weather conditions for the nighttime part of the day (7pm to 7am next day, local time).",
          "$ref": "ForecastDayPart"
        },
        "sunEvents": {
          "description": "The events related to the sun (e.g. sunrise, sunset).",
          "$ref": "SunEvents"
        },
        "daytimeForecast": {
          "$ref": "ForecastDayPart",
          "description": "The forecasted weather conditions for the daytime part of the day (7am to 7pm local time)."
        }
      }
    },
    "DateTime": {
      "properties": {
        "month": {
          "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.",
          "type": "integer",
          "format": "int32"
        },
        "timeZone": {
          "$ref": "TimeZone",
          "description": "Time zone."
        },
        "year": {
          "format": "int32",
          "description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.",
          "type": "integer"
        },
        "seconds": {
          "format": "int32",
          "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.",
          "type": "integer"
        },
        "nanos": {
          "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.",
          "type": "integer",
          "format": "int32"
        },
        "day": {
          "format": "int32",
          "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.",
          "type": "integer"
        },
        "minutes": {
          "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.",
          "type": "integer",
          "format": "int32"
        },
        "utcOffset": {
          "format": "google-duration",
          "description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.",
          "type": "string"
        },
        "hours": {
          "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "DateTime",
      "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.",
      "type": "object"
    },
    "SunEvents": {
      "properties": {
        "sunsetTime": {
          "description": "The time when the sun sets. NOTE: In some unique cases (e.g. north of the artic circle) there may be no sunset time for a day. In these cases, this field will be unset.",
          "type": "string",
          "format": "google-datetime"
        },
        "sunriseTime": {
          "description": "The time when the sun rises. NOTE: In some unique cases (e.g. north of the artic circle) there may be no sunrise time for a day. In these cases, this field will be unset.",
          "type": "string",
          "format": "google-datetime"
        }
      },
      "id": "SunEvents",
      "description": "Represents the events related to the sun (e.g. sunrise, sunset).",
      "type": "object"
    },
    "QuantitativePrecipitationForecast": {
      "properties": {
        "quantity": {
          "format": "float",
          "description": "The amount of precipitation, measured as liquid water equivalent, that has accumulated over a period of time.",
          "type": "number"
        },
        "unit": {
          "enum": [
            "UNIT_UNSPECIFIED",
            "MILLIMETERS",
            "INCHES"
          ],
          "description": "The code of the unit used to measure the amount of accumulated precipitation.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified precipitation unit.",
            "The amount of precipitation is measured in millimeters.",
            "The amount of precipitation is measured in inches."
          ]
        }
      },
      "id": "QuantitativePrecipitationForecast",
      "description": "Represents the expected amount of melted precipitation accumulated over a specified time period over a specified area (reference: https://en.wikipedia.org/wiki/Quantitative_precipitation_forecast) - usually abbreviated QPF for short.",
      "type": "object"
    },
    "LookupForecastHoursResponse": {
      "id": "LookupForecastHoursResponse",
      "description": "Response for the LookupForecastHours RPC.",
      "type": "object",
      "properties": {
        "timeZone": {
          "description": "The time zone at the requested location.",
          "$ref": "TimeZone"
        },
        "nextPageToken": {
          "description": "The token to retrieve the next page.",
          "type": "string"
        },
        "forecastHours": {
          "items": {
            "$ref": "ForecastHour"
          },
          "description": "The hourly forecast records, according to the number of hours and page size specified in the request.",
          "type": "array"
        }
      }
    },
    "PrecipitationProbability": {
      "properties": {
        "percent": {
          "format": "int32",
          "description": "A percentage from 0 to 100 that indicates the chances of precipitation.",
          "type": "integer"
        },
        "type": {
          "description": "A code that indicates the type of precipitation.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified precipitation type.",
            "No precipitation.",
            "Snow precipitation.",
            "Rain precipitation.",
            "Light rain precipitation.",
            "Heavy rain precipitation.",
            "Both rain and snow precipitations.",
            "Sleet precipitation.",
            "Freezing rain precipitation."
          ],
          "enum": [
            "PRECIPITATION_TYPE_UNSPECIFIED",
            "NONE",
            "SNOW",
            "RAIN",
            "LIGHT_RAIN",
            "HEAVY_RAIN",
            "RAIN_AND_SNOW",
            "SLEET",
            "FREEZING_RAIN"
          ]
        }
      },
      "id": "PrecipitationProbability",
      "description": "Represents the probability of precipitation at a given location.",
      "type": "object"
    },
    "Wind": {
      "id": "Wind",
      "description": "Represents a set of wind properties.",
      "type": "object",
      "properties": {
        "direction": {
          "$ref": "WindDirection",
          "description": "The direction of the wind, the angle it is coming from."
        },
        "speed": {
          "$ref": "WindSpeed",
          "description": "The speed of the wind."
        },
        "gust": {
          "description": "The wind gust (sudden increase in the wind speed).",
          "$ref": "WindSpeed"
        }
      }
    },
    "Temperature": {
      "id": "Temperature",
      "description": "Represents a temperature value.",
      "type": "object",
      "properties": {
        "degrees": {
          "description": "The temperature value (in degrees) in the specified unit.",
          "type": "number",
          "format": "float"
        },
        "unit": {
          "enum": [
            "TEMPERATURE_UNIT_UNSPECIFIED",
            "CELSIUS",
            "FAHRENHEIT"
          ],
          "description": "The code for the unit used to measure the temperature value.",
          "type": "string",
          "enumDescriptions": [
            "The temperature unit is unspecified.",
            "The temperature is measured in Celsius.",
            "The temperature is measured in Fahrenheit."
          ]
        }
      }
    },
    "PublicAlerts": {
      "properties": {
        "expirationTime": {
          "description": "The expiration time of the event.",
          "type": "string",
          "format": "google-datetime"
        },
        "areaName": {
          "description": "The name of the area where the alert is issued.",
          "type": "string"
        },
        "urgency": {
          "enum": [
            "URGENCY_UNKNOWN",
            "IMMEDIATE",
            "EXPECTED",
            "FUTURE",
            "PAST"
          ],
          "description": "The urgency of the alert.",
          "type": "string",
          "enumDescriptions": [
            "Urgency not known.",
            "Responsive action SHOULD be taken immediately.",
            "Responsive action SHOULD be taken soon (within next hour).",
            "Responsive action SHOULD be taken in the near future.",
            "Responsive action is no longer required."
          ]
        },
        "dataSource": {
          "$ref": "DataSource",
          "description": "Details of the publisher that issued the alert."
        },
        "alertId": {
          "description": "The unique identifier for this alert.",
          "type": "string"
        },
        "safetyRecommendations": {
          "items": {
            "$ref": "SafetyRecommendation"
          },
          "description": "Safety recommendations directive to the user, these can be provided by the publisher or other authorities.",
          "type": "array"
        },
        "eventType": {
          "description": "The type of weather event.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified weather event type.",
            "Acid rain event.",
            "Aftershock event.",
            "Avalanche event.",
            "Blizzard event.",
            "Blowing snow event.",
            "Bushfire event.",
            "Coastal flood event.",
            "Coastal hazard event.",
            "Cold event.",
            "Cyclone event.",
            "Drought event.",
            "Dust storm event.",
            "Earthquake event.",
            "Extra tropical cyclone event.",
            "Fire event.",
            "Fire weather event.",
            "Flash flood event.",
            "Flood event.",
            "Fog event.",
            "Freezing event.",
            "Freezing air temperature event.",
            "Freezing drizzle event.",
            "Freezing rain event.",
            "Frost event.",
            "Gale event.",
            "Glaze event.",
            "Hail event.",
            "Hazardous seas event.",
            "Heat event.",
            "Humidity event.",
            "Hurricane event.",
            "Ice storm event.",
            "Industrial fire event.",
            "Lake effect snow event.",
            "Landslide event.",
            "Monsoon event.",
            "Muddy flood event.",
            "Outflow event.",
            "Radiation event.",
            "Rain event.",
            "River flooding event.",
            "Severe thunderstorm warning event.",
            "Snowsquall event.",
            "Snow event.",
            "Storm event.",
            "Storm surge event.",
            "Thunder event.",
            "Thunderstorm event.",
            "Tornado event.",
            "Tornado warning event.",
            "Tropical cyclone event.",
            "Tropical cyclone warnings and watches event.",
            "Tropical disturbance event.",
            "Tropical storm event.",
            "Tsunami event.",
            "Typhoon event.",
            "Volcanic ash event.",
            "Volcanic eruption event.",
            "Wildfire event.",
            "Wind event.",
            "Wind chill event.",
            "Wind wave event.",
            "Winter storm event."
          ],
          "enum": [
            "WEATHER_EVENT_TYPE_UNSPECIFIED",
            "ACID_RAIN",
            "AFTERSHOCK",
            "AVALANCHE",
            "BLIZZARD",
            "BLOWING_SNOW",
            "BUSHFIRE",
            "COASTAL_FLOOD",
            "COASTAL_HAZARD",
            "COLD",
            "CYCLONE",
            "DROUGHT",
            "DUST_STORM",
            "EARTHQUAKE",
            "EXTRATROPICAL_CYCLONE",
            "FIRE",
            "FIRE_WEATHER",
            "FLASH_FLOOD",
            "FLOOD",
            "FOG",
            "FREEZING",
            "FREEZING_AIR_TEMPERATURE",
            "FREEZING_DRIZZLE",
            "FREEZING_RAIN_EVENT",
            "FROST",
            "GALE",
            "GLAZE",
            "HAIL",
            "HAZARDOUS_SEAS",
            "HEAT",
            "HUMIDITY",
            "HURRICANE",
            "ICE_STORM",
            "INDUSTRIAL_FIRE",
            "LAKE_EFFECT_SNOW",
            "LANDSLIDE",
            "MONSOON",
            "MUDDY_FLOOD",
            "OUTFLOW",
            "RADIATION",
            "RAIN_EVENT",
            "RIVER_FLOODING",
            "SEVERE_THUNDERSTORM_WARNING",
            "SNOWSQUALL",
            "SNOW_EVENT",
            "STORM",
            "STORM_SURGE",
            "THUNDER",
            "THUNDERSTORM",
            "TORNADO",
            "TORNADO_WARNING",
            "TROPICAL_CYCLONE",
            "TROPICAL_CYCLONE_WARNINGS_AND_WATCHES",
            "TROPICAL_DISTURBANCE",
            "TROPICAL_STORM",
            "TSUNAMI",
            "TYPHOON",
            "VOLCANIC_ASH",
            "VOLCANIC_ERUPTION",
            "WILDFIRE",
            "WIND",
            "WIND_CHILL",
            "WIND_WAVE",
            "WINTER_STORM"
          ]
        },
        "startTime": {
          "format": "google-datetime",
          "description": "The start time of the event.",
          "type": "string"
        },
        "description": {
          "description": "The latest text describing the alert as issued by the official authority. Please note that while this field should be localized, it is not guaranteed that it will be.",
          "type": "string"
        },
        "timezoneOffset": {
          "description": "The time zone offset from UTC for the location of the alert. The value is formatted as a string ending in 's', e.g., \"-14400s\" for 4 hours behind UTC.",
          "type": "string"
        },
        "alertTitle": {
          "$ref": "LocalizedText",
          "description": "The localized title for the alert."
        },
        "certainty": {
          "enum": [
            "CERTAINTY_UNKNOWN",
            "OBSERVED",
            "VERY_LIKELY",
            "LIKELY",
            "POSSIBLE",
            "UNLIKELY"
          ],
          "description": "The certainty of the alert.",
          "type": "string",
          "enumDescriptions": [
            "Certainty not known.",
            "Determined to have occurred or to be ongoing.",
            "Very likely.",
            "Likely (p \u003e ~50%).",
            "Possible but not likely (p \u003c= ~50%).",
            "Unlikely (p ~ 0%)."
          ]
        },
        "severity": {
          "description": "The severity level of the alert.",
          "type": "string",
          "enumDescriptions": [
            "Severity not known.",
            "Extraordinary threat to life or property.",
            "Significant threat to life or property.",
            "Possible threat to life or property.",
            "Minor threat to life or property."
          ],
          "enum": [
            "SEVERITY_UNKNOWN",
            "EXTREME",
            "SEVERE",
            "MODERATE",
            "MINOR"
          ]
        },
        "polygon": {
          "description": "A GeoJSON representation of the areas where the alert is issued. The GeoJSON data must be in RFC 7946 format and represent either a Polygon (for a single contiguous area) or a MultiPolygon (for multiple distinct areas). Example: { \"type\": \"Polygon\", \"coordinates\": [ [ [-1, -1], [-1, 0], [0, 0], [-1, -1] ] ] } A sample MultiPolygon GeoJson string looks like: { \"type\": \"MultiPolygon\", \"coordinates\": [ [ [0, 0], [-1, 0], [-1, 1], [0, 0] ], [ [0, 0], [-2, 0], [-2, 2], [0, 0] ] ]",
          "type": "string"
        },
        "instruction": {
          "items": {
            "type": "string"
          },
          "description": "Instructions recommended by the publisher. Please note that while this field should be localized, it is not guaranteed that it will be.",
          "type": "array"
        }
      },
      "id": "PublicAlerts",
      "description": "Represents the public weather alerts.",
      "type": "object"
    },
    "Precipitation": {
      "id": "Precipitation",
      "description": "Represents a set of precipitation values at a given location.",
      "type": "object",
      "properties": {
        "probability": {
          "$ref": "PrecipitationProbability",
          "description": "The probability of precipitation (values from 0 to 100)."
        },
        "snowQpf": {
          "$ref": "QuantitativePrecipitationForecast",
          "description": "The amount of snow, measured as liquid water equivalent, that has accumulated over a period of time. Note: QPF is an abbreviation for Quantitative Precipitation Forecast (please see the QuantitativePrecipitationForecast definition for more details)."
        },
        "qpf": {
          "description": "The amount of precipitation rain, measured as liquid water equivalent, that has accumulated over a period of time. Note: QPF is an abbreviation for Quantitative Precipitation Forecast (please see the QuantitativePrecipitationForecast definition for more details).",
          "$ref": "QuantitativePrecipitationForecast"
        }
      }
    },
    "LookupHistoryHoursResponse": {
      "id": "LookupHistoryHoursResponse",
      "description": "Response for the LookupHistoryHours RPC.",
      "type": "object",
      "properties": {
        "historyHours": {
          "items": {
            "$ref": "HistoryHour"
          },
          "description": "The hourly historical records, according to the number of hours and page size specified in the request.",
          "type": "array"
        },
        "timeZone": {
          "description": "The time zone at the requested location.",
          "$ref": "TimeZone"
        },
        "nextPageToken": {
          "description": "The token to retrieve the next page.",
          "type": "string"
        }
      }
    },
    "HistoryHour": {
      "properties": {
        "precipitation": {
          "description": "The historical precipitation probability and amount of precipitation accumulated over the last hour.",
          "$ref": "Precipitation"
        },
        "displayDateTime": {
          "$ref": "DateTime",
          "description": "The local date and time in the time zone of the location (civil time) which this hourly record is calculated for. This field may be used for display purposes on the client. Note: this date will consist of the year, month, day, hour and offset from UTC."
        },
        "isDaytime": {
          "description": "True if this hour is between the local sunrise (inclusive) and sunset (exclusive) times. Otherwise, it is nighttime (between the sunset and the next sunrise). Note: this hour will be considered as daytime or nighttime if the interval intersects with the local sunrise and sunset times respectively (e.g.: if the interval is from 5am to 6am and sunrise is at 5:59am, then is_daytime will be true).",
          "type": "boolean"
        },
        "wetBulbTemperature": {
          "description": "The historical wet bulb temperature, lowest temperature achievable by evaporating water.",
          "$ref": "Temperature"
        },
        "visibility": {
          "$ref": "Visibility",
          "description": "The historical visibility."
        },
        "cloudCover": {
          "description": "The historical percentage of the sky covered by clouds (values from 0 to 100).",
          "type": "integer",
          "format": "int32"
        },
        "feelsLikeTemperature": {
          "$ref": "Temperature",
          "description": "The measure of how the temperature felt like at the requested location."
        },
        "temperature": {
          "description": "The historical temperature.",
          "$ref": "Temperature"
        },
        "airPressure": {
          "$ref": "AirPressure",
          "description": "The historical air pressure conditions."
        },
        "iceThickness": {
          "description": "The historical ice thickness.",
          "$ref": "IceThickness"
        },
        "relativeHumidity": {
          "format": "int32",
          "description": "The historical percent of relative humidity (values from 0 to 100).",
          "type": "integer"
        },
        "dewPoint": {
          "description": "The historical dew point temperature.",
          "$ref": "Temperature"
        },
        "interval": {
          "$ref": "Interval",
          "description": "The one hour interval (in UTC time) this historical data is valid for (the timestamps are rounded down to the closest hour)."
        },
        "uvIndex": {
          "format": "int32",
          "description": "The historical ultraviolet (UV) index.",
          "type": "integer"
        },
        "thunderstormProbability": {
          "description": "The historical thunderstorm probability (values from 0 to 100).",
          "type": "integer",
          "format": "int32"
        },
        "heatIndex": {
          "$ref": "Temperature",
          "description": "The historical heat index temperature."
        },
        "weatherCondition": {
          "$ref": "WeatherCondition",
          "description": "The historical weather condition."
        },
        "windChill": {
          "description": "The historical wind chill, air temperature exposed on the skin.",
          "$ref": "Temperature"
        },
        "wind": {
          "description": "The historical wind conditions.",
          "$ref": "Wind"
        }
      },
      "id": "HistoryHour",
      "description": "Represents an hourly history record at a given location.",
      "type": "object"
    },
    "LookupPublicAlertsResponse": {
      "id": "LookupPublicAlertsResponse",
      "description": "Response for the LookupPublicAlerts RPC.",
      "type": "object",
      "properties": {
        "regionCode": {
          "description": "The ISO_3166-1 alpha-2 code of the region corresponding to the location provided in the request. The region is stated using ISO_3166-1_alpha-2.",
          "type": "string"
        },
        "nextPageToken": {
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        },
        "weatherAlerts": {
          "description": "The public weather alert records, according to the number of alerts and page size specified in the request.",
          "type": "array",
          "items": {
            "$ref": "PublicAlerts"
          }
        }
      }
    },
    "ForecastDayPart": {
      "id": "ForecastDayPart",
      "description": "Represents a forecast record for a part of the day.",
      "type": "object",
      "properties": {
        "precipitation": {
          "description": "The forecasted precipitation.",
          "$ref": "Precipitation"
        },
        "relativeHumidity": {
          "description": "The forecasted percent of relative humidity (values from 0 to 100).",
          "type": "integer",
          "format": "int32"
        },
        "iceThickness": {
          "$ref": "IceThickness",
          "description": "The accumulated amount of ice for the part of the day."
        },
        "interval": {
          "description": "The UTC date and time when this part of the day starts (inclusive) and ends (exclusive). Note: a part of a day starts at 7am and ends at 7pm the same day, local time. For example: If the local time zone is UTC-7, then the daytime interval will start at the time `14:00:00.000Z` and end at `02:00:00.000Z` the next day and the nighttime interval will start at `02:00:00.000Z` the next day and end at `14:00:00.000Z` that same day.",
          "$ref": "Interval"
        },
        "uvIndex": {
          "format": "int32",
          "description": "The maximum forecasted ultraviolet (UV) index.",
          "type": "integer"
        },
        "thunderstormProbability": {
          "format": "int32",
          "description": "The average thunderstorm probability.",
          "type": "integer"
        },
        "weatherCondition": {
          "$ref": "WeatherCondition",
          "description": "The forecasted weather condition."
        },
        "wind": {
          "$ref": "Wind",
          "description": "The average wind direction and maximum speed and gust."
        },
        "cloudCover": {
          "description": "Average cloud cover percent.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "Interval": {
      "id": "Interval",
      "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.",
      "type": "object",
      "properties": {
        "startTime": {
          "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.",
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "format": "google-datetime",
          "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.",
          "type": "string"
        }
      }
    },
    "LocalizedText": {
      "id": "LocalizedText",
      "description": "Localized variant of a text in a particular language.",
      "type": "object",
      "properties": {
        "languageCode": {
          "description": "The text's BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.",
          "type": "string"
        },
        "text": {
          "description": "Localized string in the language corresponding to language_code below.",
          "type": "string"
        }
      }
    },
    "IceThickness": {
      "properties": {
        "thickness": {
          "format": "float",
          "description": "The ice thickness value.",
          "type": "number"
        },
        "unit": {
          "description": "The code that represents the unit used to measure the ice thickness.",
          "type": "string",
          "enumDescriptions": [
            "The unit is not specified.",
            "The thickness is measured in millimeters.",
            "The thickness is measured in inches."
          ],
          "enum": [
            "UNIT_UNSPECIFIED",
            "MILLIMETERS",
            "INCHES"
          ]
        }
      },
      "id": "IceThickness",
      "description": "Represents ice thickness conditions.",
      "type": "object"
    },
    "DataSource": {
      "properties": {
        "name": {
          "description": "Official publisher name. Please note that while this field should be localized, it is not guaranteed that it will be.",
          "type": "string"
        },
        "authorityUri": {
          "description": "The URL of the authority's website.",
          "type": "string"
        },
        "publisher": {
          "description": "The publisher of the alert.",
          "type": "string",
          "enumDescriptions": [
            "Publisher unspecified.",
            "Australia Australian Capital Territory",
            "New South Wales",
            "Queensland",
            "South Australia",
            "Meteoalarm / EUMETNET Austria",
            "Bosnia",
            "Brazil Disaster Agency in Brazil",
            "Meteorological Agency in Brazil",
            "Meteoalarm / EUMETNET Bulgaria",
            "Croatia",
            "Cyprus",
            "Czechia",
            "Denmark",
            "Ecuador",
            "Meteoalarm / EUMETNET Finland",
            "France",
            "Germany",
            "Meteoalarm / EUMETNET Great Britain",
            "Greece",
            "Hungary",
            "Iceland",
            "Ireland",
            "Italy",
            "Jamaica",
            "Japan",
            "Meteoalarm / EUMETNET Netherlands",
            "Latvia",
            "Lithuania",
            "Luxembourg",
            "Mexico Mexico CIRES",
            "New Zealand New Zealand GeoNet",
            "MetService",
            "Meteoalarm / EUMETNET North Macedonia",
            "Norway",
            "Philippines",
            "Meteoalarm / EUMETNET Poland",
            "Portugal",
            "Romania",
            "Serbia",
            "Singapore",
            "Meteoalarm / EUMETNET Slovakia",
            "Slovenia",
            "Solomon Islands",
            "Meteoalarm / EUMETNET Spain",
            "Sweden",
            "Switzerland",
            "Taiwan",
            "United States NOAA",
            "National Tsunami Warning Center"
          ],
          "enum": [
            "PUBLISHER_UNSPECIFIED",
            "AUSTRALIA_ACT_ESA",
            "AUSTRALIA_NSW_RFS",
            "AUSTRALIA_QLD_QFES",
            "AUSTRALIA_SA_CFS",
            "METEO_ALARM_AT",
            "METEO_ALARM_BS",
            "BRAZIL_CENAD",
            "BRAZIL_INMET",
            "METEO_ALARM_BG",
            "METEO_ALARM_CR",
            "METEO_ALARM_CY",
            "METEO_ALARM_CS",
            "METEO_ALARM_DK",
            "EC_INAMHI",
            "METEO_ALARM_FI",
            "METEO_ALARM_FR",
            "DE_DWD",
            "METEO_ALARM_GB",
            "METEO_ALARM_GR",
            "METEO_ALARM_HU",
            "METEO_ALARM_IS",
            "METEO_ALARM_IE",
            "METEO_ALARM_IT",
            "JM_JMS",
            "JMA",
            "METEO_ALARM_NL",
            "METEO_ALARM_LV",
            "METEO_ALARM_LT",
            "METEO_ALARM_LU",
            "MEXICO_CIRES",
            "NZ_GEONET",
            "NZ_NMS",
            "METEO_ALARM_MK",
            "METEO_ALARM_NO",
            "PHILIPPINES_PAGASA",
            "METEO_ALARM_PL",
            "METEO_ALARM_PT",
            "METEO_ALARM_RO",
            "METEO_ALARM_RS",
            "SG_MSS",
            "METEO_ALARM_SK",
            "METEO_ALARM_SI",
            "SB_MET",
            "METEO_ALARM_ES",
            "METEO_ALARM_SE",
            "METEO_ALARM_CH",
            "TAIWAN_NCDR",
            "NOAA",
            "WCATWC"
          ]
        }
      },
      "id": "DataSource",
      "description": "Represents a link to a data source.",
      "type": "object"
    },
    "WeatherCondition": {
      "properties": {
        "iconBaseUri": {
          "description": "The base URI for the icon not including the file type extension. To display the icon, append a theme if desired and the file type extension (`.png` or `.svg`) to this URI. By default, the icon is light themed, but `_dark` can be appended for dark mode. For example: \"https://maps.gstatic.com/weather/v1/dust.svg\" or \"https://maps.gstatic.com/weather/v1/dust_dark.svg\", where `icon_base_uri` is \"https://maps.gstatic.com/weather/v1/dust\".",
          "type": "string"
        },
        "description": {
          "description": "The textual description for this weather condition (localized).",
          "$ref": "LocalizedText"
        },
        "type": {
          "enum": [
            "TYPE_UNSPECIFIED",
            "CLEAR",
            "MOSTLY_CLEAR",
            "PARTLY_CLOUDY",
            "MOSTLY_CLOUDY",
            "CLOUDY",
            "WINDY",
            "WIND_AND_RAIN",
            "LIGHT_RAIN_SHOWERS",
            "CHANCE_OF_SHOWERS",
            "SCATTERED_SHOWERS",
            "RAIN_SHOWERS",
            "HEAVY_RAIN_SHOWERS",
            "LIGHT_TO_MODERATE_RAIN",
            "MODERATE_TO_HEAVY_RAIN",
            "RAIN",
            "LIGHT_RAIN",
            "HEAVY_RAIN",
            "RAIN_PERIODICALLY_HEAVY",
            "LIGHT_SNOW_SHOWERS",
            "CHANCE_OF_SNOW_SHOWERS",
            "SCATTERED_SNOW_SHOWERS",
            "SNOW_SHOWERS",
            "HEAVY_SNOW_SHOWERS",
            "LIGHT_TO_MODERATE_SNOW",
            "MODERATE_TO_HEAVY_SNOW",
            "SNOW",
            "LIGHT_SNOW",
            "HEAVY_SNOW",
            "SNOWSTORM",
            "SNOW_PERIODICALLY_HEAVY",
            "HEAVY_SNOW_STORM",
            "BLOWING_SNOW",
            "RAIN_AND_SNOW",
            "HAIL",
            "HAIL_SHOWERS",
            "THUNDERSTORM",
            "THUNDERSHOWER",
            "LIGHT_THUNDERSTORM_RAIN",
            "SCATTERED_THUNDERSTORMS",
            "HEAVY_THUNDERSTORM"
          ],
          "description": "The type of weather condition.",
          "type": "string",
          "enumDescriptions": [
            "The weather condition is unspecified.",
            "No clouds.",
            "Periodic clouds.",
            "Party cloudy (some clouds).",
            "Mostly cloudy (more clouds than sun).",
            "Cloudy (all clouds, no sun).",
            "High wind.",
            "High wind with precipitation.",
            "Light intermittent rain.",
            "Chance of intermittent rain.",
            "Intermittent rain.",
            "Showers are considered to be rainfall that has a shorter duration than rain, and is characterized by suddenness in terms of start and stop times, and rapid changes in intensity.",
            "Intense showers.",
            "Rain (light to moderate in quantity).",
            "Rain (moderate to heavy in quantity).",
            "Moderate rain.",
            "Light rain.",
            "Heavy rain.",
            "Rain periodically heavy.",
            "Light snow that is falling at varying intensities for brief periods of time.",
            "Chance of snow showers.",
            "Snow that is falling at varying intensities for brief periods of time.",
            "Snow showers.",
            "Heavy snow showers.",
            "Light to moderate snow.",
            "Moderate to heavy snow.",
            "Moderate snow.",
            "Light snow.",
            "Heavy snow.",
            "Snow with possible thunder and lightning.",
            "Snow, at times heavy.",
            "Heavy snow with possible thunder and lightning.",
            "Snow with intense wind.",
            "Rain and snow mix.",
            "Hail.",
            "Hail that is falling at varying intensities for brief periods of time.",
            "Thunderstorm.",
            "A shower of rain accompanied by thunder and lightning.",
            "Light thunderstorm rain.",
            "Thunderstorms that has rain in various intensities for brief periods of time.",
            "Heavy thunderstorm."
          ]
        }
      },
      "id": "WeatherCondition",
      "description": "Represents a weather condition for a given location at a given period of time. Disclaimer: Weather icons and condition codes are subject to change. Google may introduce new codes and icons or update existing ones as needed. We encourage you to refer to this documentation regularly for the most up-to-date information.",
      "type": "object"
    }
  },
  "parameters": {
    "fields": {
      "location": "query",
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "key": {
      "location": "query",
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token."
    },
    "uploadType": {
      "location": "query",
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "location": "query",
      "description": "Data format for response.",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "default": "json"
    },
    "quotaUser": {
      "location": "query",
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "default": "true"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "location": "query",
      "description": "V1 error format.",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ]
    }
  },
  "canonicalName": "Weather",
  "version": "v1",
  "ownerDomain": "google.com",
  "discoveryVersion": "v1"
}
