// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.maps.weather.v1;

option java_outer_classname = "PublicAlertsEnumsProto";
option java_multiple_files = true;
option java_package = "com.google.maps.weather.v1";
option csharp_namespace = "Google.Geo.Weather.V1";
option php_namespace = "Google\\Geo\\Weather\\V1";
option objc_class_prefix = "GMWV1";

// The type of the weather event.
// (-- Next available tag: 64 --)
enum WeatherEventType {
  // Unspecified weather event type.
  WEATHER_EVENT_TYPE_UNSPECIFIED = 0;
  // Acid rain event.
  ACID_RAIN = 1;
  // Aftershock event.
  AFTERSHOCK = 2;
  // Avalanche event.
  AVALANCHE = 3;
  // Blizzard event.
  BLIZZARD = 4;
  // Blowing snow event.
  BLOWING_SNOW = 5;
  // Bushfire event.
  BUSHFIRE = 6;
  // Coastal flood event.
  COASTAL_FLOOD = 7;
  // Coastal hazard event.
  COASTAL_HAZARD = 8;
  // Cold event.
  COLD = 9;
  // Cyclone event.
  CYCLONE = 10;
  // Drought event.
  DROUGHT = 11;
  // Dust storm event.
  DUST_STORM = 12;
  // Earthquake event.
  EARTHQUAKE = 13;
  // Extra tropical cyclone event.
  EXTRATROPICAL_CYCLONE = 14;
  // Fire event.
  FIRE = 15;
  // Fire weather event.
  FIRE_WEATHER = 16;
  // Flash flood event.
  FLASH_FLOOD = 17;
  // Flood event.
  FLOOD = 18;
  // Fog event.
  FOG = 19;
  // Freezing event.
  FREEZING = 20;
  // Freezing air temperature event.
  FREEZING_AIR_TEMPERATURE = 21;
  // Freezing drizzle event.
  FREEZING_DRIZZLE = 22;
  // Freezing rain event.
  FREEZING_RAIN_EVENT = 23;
  // Frost event.
  FROST = 24;
  // Gale event.
  GALE = 25;
  // Glaze event.
  GLAZE = 26;
  // Hail event.
  HAIL = 27;
  // Hazardous seas event.
  HAZARDOUS_SEAS = 28;
  // Heat event.
  HEAT = 29;
  // Humidity event.
  HUMIDITY = 30;
  // Hurricane event.
  HURRICANE = 31;
  // Ice storm event.
  ICE_STORM = 32;
  // Industrial fire event.
  INDUSTRIAL_FIRE = 33;
  // Lake effect snow event.
  LAKE_EFFECT_SNOW = 34;
  // Landslide event.
  LANDSLIDE = 35;
  // Monsoon event.
  MONSOON = 36;
  // Muddy flood event.
  MUDDY_FLOOD = 37;
  // Outflow event.
  OUTFLOW = 38;
  // Radiation event.
  RADIATION = 39;
  // Rain event.
  RAIN_EVENT = 40;
  // River flooding event.
  RIVER_FLOODING = 41;
  // Severe thunderstorm warning event.
  SEVERE_THUNDERSTORM_WARNING = 42;
  // Snowsquall event.
  SNOWSQUALL = 43;
  // Snow event.
  SNOW_EVENT = 44;
  // Storm event.
  STORM = 45;
  // Storm surge event.
  STORM_SURGE = 46;
  // Thunder event.
  THUNDER = 47;
  // Thunderstorm event.
  THUNDERSTORM = 48;
  // Tornado event.
  TORNADO = 49;
  // Tornado warning event.
  TORNADO_WARNING = 50;
  // Tropical cyclone event.
  TROPICAL_CYCLONE = 51;
  // Tropical cyclone warnings and watches event.
  TROPICAL_CYCLONE_WARNINGS_AND_WATCHES = 52;
  // Tropical disturbance event.
  TROPICAL_DISTURBANCE = 53;
  // Tropical storm event.
  TROPICAL_STORM = 54;
  // Tsunami event.
  TSUNAMI = 55;
  // Typhoon event.
  TYPHOON = 56;
  // Volcanic ash event.
  VOLCANIC_ASH = 57;
  // Volcanic eruption event.
  VOLCANIC_ERUPTION = 58;
  // Wildfire event.
  WILDFIRE = 59;
  // Wind event.
  WIND = 60;
  // Wind chill event.
  WIND_CHILL = 61;
  // Wind wave event.
  WIND_WAVE = 62;
  // Winter storm event.
  WINTER_STORM = 63;
}

// The publisher of the alert.
// (-- Next available tag: 52 --)
enum Publisher {
  // Publisher unspecified.
  PUBLISHER_UNSPECIFIED = 0;

  // Australia
  // Australian Capital Territory
  AUSTRALIA_ACT_ESA = 1;
  // New South Wales
  AUSTRALIA_NSW_RFS = 2;
  // Queensland
  AUSTRALIA_QLD_QFES = 3;
  // South Australia
  AUSTRALIA_SA_CFS = 4;

  // Meteoalarm / EUMETNET
  // Austria
  METEO_ALARM_AT = 5;
  // Bosnia
  METEO_ALARM_BS = 6;

  // Brazil
  // Disaster Agency in Brazil
  BRAZIL_CENAD = 7;
  // Meteorological Agency in Brazil
  BRAZIL_INMET = 8;

  reserved 9;

  // Meteoalarm / EUMETNET
  // Bulgaria
  METEO_ALARM_BG = 10;
  // Croatia
  METEO_ALARM_CR = 11;
  // Cyprus
  METEO_ALARM_CY = 12;
  // Czechia
  METEO_ALARM_CS = 13;
  // Denmark
  METEO_ALARM_DK = 14;

  // Ecuador
  EC_INAMHI = 15;

  // Meteoalarm / EUMETNET
  // Finland
  METEO_ALARM_FI = 16;
  // France
  METEO_ALARM_FR = 17;

  // Germany
  DE_DWD = 18;

  // Meteoalarm / EUMETNET
  // Great Britain
  METEO_ALARM_GB = 19;
  // Greece
  METEO_ALARM_GR = 20;
  // Hungary
  METEO_ALARM_HU = 21;
  // Iceland
  METEO_ALARM_IS = 22;
  // Ireland
  METEO_ALARM_IE = 23;
  // Italy
  METEO_ALARM_IT = 24;

  // Jamaica
  JM_JMS = 25;

  // Japan
  JMA = 26;

  // Meteoalarm / EUMETNET
  // Netherlands
  METEO_ALARM_NL = 27;
  // Latvia
  METEO_ALARM_LV = 28;
  // Lithuania
  METEO_ALARM_LT = 29;
  // Luxembourg
  METEO_ALARM_LU = 30;

  // Mexico
  // Mexico CIRES
  MEXICO_CIRES = 31;

  // New Zealand
  // New Zealand GeoNet
  NZ_GEONET = 32;
  // MetService
  NZ_NMS = 33;

  // Meteoalarm / EUMETNET
  // North Macedonia
  METEO_ALARM_MK = 34;
  // Norway
  METEO_ALARM_NO = 35;

  // Philippines
  PHILIPPINES_PAGASA = 36;

  // Meteoalarm / EUMETNET
  // Poland
  METEO_ALARM_PL = 37;
  // Portugal
  METEO_ALARM_PT = 38;
  // Romania
  METEO_ALARM_RO = 39;
  // Serbia
  METEO_ALARM_RS = 40;

  // Singapore
  SG_MSS = 41;

  // Meteoalarm / EUMETNET
  // Slovakia
  METEO_ALARM_SK = 42;
  // Slovenia
  METEO_ALARM_SI = 43;

  // Solomon Islands
  SB_MET = 44;

  // Meteoalarm / EUMETNET
  // Spain
  METEO_ALARM_ES = 45;
  // Sweden
  METEO_ALARM_SE = 46;
  // Switzerland
  METEO_ALARM_CH = 47;

  // Taiwan
  TAIWAN_NCDR = 48;

  // United States
  // NOAA
  NOAA = 49;
  // National Tsunami Warning Center
  WCATWC = 50;
}

// The code denoting the urgency of the subject event of the alert message.
// (-- Next available tag: 5 --)
enum Urgency {
  // Urgency not known.
  URGENCY_UNKNOWN = 0;
  // Responsive action SHOULD be taken immediately.
  IMMEDIATE = 1;
  // Responsive action SHOULD be taken soon (within next hour).
  EXPECTED = 2;
  // Responsive action SHOULD be taken in the near future.
  FUTURE = 3;
  // Responsive action is no longer required.
  PAST = 4;
}

// The code denoting the severity of the subject event of the alert message.
// (-- Next available tag: 5 --)
enum Severity {
  // Severity not known.
  SEVERITY_UNKNOWN = 0;
  // Extraordinary threat to life or property.
  EXTREME = 1;
  // Significant threat to life or property.
  SEVERE = 2;
  // Possible threat to life or property.
  MODERATE = 3;
  // Minor threat to life or property.
  MINOR = 4;
}

// The code denoting the certainty of the subject event of the alert message.
// (-- Next available tag: 6 --)
enum Certainty {
  // Certainty not known.
  CERTAINTY_UNKNOWN = 0;
  // Determined to have occurred or to be ongoing.
  OBSERVED = 1;
  // Very likely.
  VERY_LIKELY = 2;
  // Likely (p > ~50%).
  LIKELY = 3;
  // Possible but not likely (p <= ~50%).
  POSSIBLE = 4;
  // Unlikely (p ~ 0%).
  UNLIKELY = 5;
}
