Source code for action0.open_meteo.flood.models

# generated by action0-client-openapi v0.1.2 from flood.yml — do not edit

from __future__ import annotations

import enum
from dataclasses import dataclass
from typing import Any


[docs] class GetV1FloodDailyItem(enum.Enum): """The ``GetV1FloodDailyItem`` values.""" RIVER_DISCHARGE = "river_discharge" RIVER_DISCHARGE_MEAN = "river_discharge_mean" RIVER_DISCHARGE_MEDIAN = "river_discharge_median" RIVER_DISCHARGE_MAX = "river_discharge_max" RIVER_DISCHARGE_MIN = "river_discharge_min" RIVER_DISCHARGE_P25 = "river_discharge_p25" RIVER_DISCHARGE_P75 = "river_discharge_p75"
[docs] class GetV1FloodTimeformat(enum.Enum): """The ``GetV1FloodTimeformat`` values.""" ISO8601 = "iso8601" UNIXTIME = "unixtime"
[docs] class GetV1FloodCellSelection(enum.Enum): """The ``GetV1FloodCellSelection`` values.""" LAND = "land" SEA = "sea" NEAREST = "nearest"
[docs] class GetV1FloodModelsItem(enum.Enum): """The ``GetV1FloodModelsItem`` values.""" SEAMLESS_V4 = "seamless_v4" FORECAST_V4 = "forecast_v4" CONSOLIDATED_V4 = "consolidated_v4" SEAMLESS_V3 = "seamless_v3" FORECAST_V3 = "forecast_v3" CONSOLIDATED_V3 = "consolidated_v3"
[docs] @dataclass class GetV1FloodResponseDaily: """The ``GetV1FloodResponseDaily`` model.""" time: list[str] | None = None river_discharge: list[float] | None = None river_discharge_mean: list[float] | None = None river_discharge_median: list[float] | None = None river_discharge_max: list[float] | None = None river_discharge_min: list[float] | None = None river_discharge_p25: list[float] | None = None river_discharge_p75: list[float] | None = None
[docs] def get_v1_flood_response_daily_from_json(data: Any) -> GetV1FloodResponseDaily: """ Build a :py:class:`GetV1FloodResponseDaily` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1FloodResponseDaily """ return GetV1FloodResponseDaily( time=data.get("time"), river_discharge=data.get("river_discharge"), river_discharge_mean=data.get("river_discharge_mean"), river_discharge_median=data.get("river_discharge_median"), river_discharge_max=data.get("river_discharge_max"), river_discharge_min=data.get("river_discharge_min"), river_discharge_p25=data.get("river_discharge_p25"), river_discharge_p75=data.get("river_discharge_p75"), )
[docs] @dataclass class GetV1FloodResponseDailyUnits: """The ``GetV1FloodResponseDailyUnits`` model.""" time: str | None = None river_discharge: str | None = None river_discharge_mean: str | None = None river_discharge_median: str | None = None river_discharge_max: str | None = None river_discharge_min: str | None = None river_discharge_p25: str | None = None river_discharge_p75: str | None = None
[docs] def get_v1_flood_response_daily_units_from_json(data: Any) -> GetV1FloodResponseDailyUnits: """ Build a :py:class:`GetV1FloodResponseDailyUnits` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1FloodResponseDailyUnits """ return GetV1FloodResponseDailyUnits( time=data.get("time"), river_discharge=data.get("river_discharge"), river_discharge_mean=data.get("river_discharge_mean"), river_discharge_median=data.get("river_discharge_median"), river_discharge_max=data.get("river_discharge_max"), river_discharge_min=data.get("river_discharge_min"), river_discharge_p25=data.get("river_discharge_p25"), river_discharge_p75=data.get("river_discharge_p75"), )
[docs] @dataclass class GetV1FloodResponse: """The ``GetV1FloodResponse`` model.""" latitude: float | None = None longitude: float | None = None elevation: float | None = None generationtime_ms: float | None = None utc_offset_seconds: int | None = None timezone: str | None = None timezone_abbreviation: str | None = None daily: GetV1FloodResponseDaily | None = None daily_units: GetV1FloodResponseDailyUnits | None = None
[docs] def get_v1_flood_response_from_json(data: Any) -> GetV1FloodResponse: """ Build a :py:class:`GetV1FloodResponse` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1FloodResponse """ return GetV1FloodResponse( latitude=data.get("latitude"), longitude=data.get("longitude"), elevation=data.get("elevation"), generationtime_ms=data.get("generationtime_ms"), utc_offset_seconds=data.get("utc_offset_seconds"), timezone=data.get("timezone"), timezone_abbreviation=data.get("timezone_abbreviation"), daily=( get_v1_flood_response_daily_from_json(data["daily"]) if data.get("daily") is not None else None ), daily_units=( get_v1_flood_response_daily_units_from_json(data["daily_units"]) if data.get("daily_units") is not None else None ), )
[docs] @dataclass class GetV1FloodError: """The ``GetV1FloodError`` model.""" error: bool | None = None reason: str | None = None
[docs] def get_v1_flood_error_from_json(data: Any) -> GetV1FloodError: """ Build a :py:class:`GetV1FloodError` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1FloodError """ return GetV1FloodError( error=data.get("error"), reason=data.get("reason"), )