Source code for action0.open_meteo.air_quality.models

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

from __future__ import annotations

import enum
from dataclasses import dataclass
from typing import Any


[docs] class GetV1AirQualityHourlyItem(enum.Enum): """The ``GetV1AirQualityHourlyItem`` values.""" PM10 = "pm10" PM2_5 = "pm2_5" CARBON_MONOXIDE = "carbon_monoxide" CARBON_DIOXIDE = "carbon_dioxide" NITROGEN_DIOXIDE = "nitrogen_dioxide" SULPHUR_DIOXIDE = "sulphur_dioxide" OZONE = "ozone" AEROSOL_OPTICAL_DEPTH = "aerosol_optical_depth" DUST = "dust" UV_INDEX = "uv_index" UV_INDEX_CLEAR_SKY = "uv_index_clear_sky" AMMONIA = "ammonia" METHANE = "methane" ALDER_POLLEN = "alder_pollen" BIRCH_POLLEN = "birch_pollen" GRASS_POLLEN = "grass_pollen" MUGWORT_POLLEN = "mugwort_pollen" OLIVE_POLLEN = "olive_pollen" RAGWEED_POLLEN = "ragweed_pollen" FORMALDEHYDE = "formaldehyde" GLYOXAL = "glyoxal" NON_METHANE_VOLATILE_ORGANIC_COMPOUNDS = "non_methane_volatile_organic_compounds" PM10_WILDFIRES = "pm10_wildfires" PEROXYACYL_NITRATES = "peroxyacyl_nitrates" SECONDARY_INORGANIC_AEROSOL = "secondary_inorganic_aerosol" RESIDENTIAL_ELEMENTARY_CARBON = "residential_elementary_carbon" TOTAL_ELEMENTARY_CARBON = "total_elementary_carbon" PM2_5_TOTAL_ORGANIC_MATTER = "pm2_5_total_organic_matter" SEA_SALT_AEROSOL = "sea_salt_aerosol" NITROGEN_MONOXIDE = "nitrogen_monoxide" EUROPEAN_AQI = "european_aqi" EUROPEAN_AQI_PM2_5 = "european_aqi_pm2_5" EUROPEAN_AQI_PM10 = "european_aqi_pm10" EUROPEAN_AQI_NITROGEN_DIOXIDE = "european_aqi_nitrogen_dioxide" EUROPEAN_AQI_OZONE = "european_aqi_ozone" EUROPEAN_AQI_SULPHUR_DIOXIDE = "european_aqi_sulphur_dioxide" US_AQI = "us_aqi" US_AQI_PM2_5 = "us_aqi_pm2_5" US_AQI_PM10 = "us_aqi_pm10" US_AQI_NITROGEN_DIOXIDE = "us_aqi_nitrogen_dioxide" US_AQI_CARBON_MONOXIDE = "us_aqi_carbon_monoxide" US_AQI_OZONE = "us_aqi_ozone" US_AQI_SULPHUR_DIOXIDE = "us_aqi_sulphur_dioxide" IS_DAY = "is_day"
[docs] class GetV1AirQualityCurrentItem(enum.Enum): """The ``GetV1AirQualityCurrentItem`` values.""" EUROPEAN_AQI = "european_aqi" US_AQI = "us_aqi" PM10 = "pm10" PM2_5 = "pm2_5" CARBON_MONOXIDE = "carbon_monoxide" NITROGEN_DIOXIDE = "nitrogen_dioxide" SULPHUR_DIOXIDE = "sulphur_dioxide" OZONE = "ozone" AEROSOL_OPTICAL_DEPTH = "aerosol_optical_depth" DUST = "dust" UV_INDEX = "uv_index" UV_INDEX_CLEAR_SKY = "uv_index_clear_sky" AMMONIA = "ammonia" ALDER_POLLEN = "alder_pollen" BIRCH_POLLEN = "birch_pollen" GRASS_POLLEN = "grass_pollen" MUGWORT_POLLEN = "mugwort_pollen" OLIVE_POLLEN = "olive_pollen" RAGWEED_POLLEN = "ragweed_pollen"
[docs] class GetV1AirQualityTimeformat(enum.Enum): """The ``GetV1AirQualityTimeformat`` values.""" ISO8601 = "iso8601" UNIXTIME = "unixtime"
[docs] class GetV1AirQualityDomains(enum.Enum): """The ``GetV1AirQualityDomains`` values.""" AUTO = "auto" CAMS_EUROPE = "cams_europe" CAMS_GLOBAL = "cams_global"
[docs] @dataclass class GetV1AirQualityResponseHourly: """The ``GetV1AirQualityResponseHourly`` model.""" time: list[str] | None = None pm10: list[float] | None = None pm2_5: list[float] | None = None carbon_monoxide: list[float] | None = None carbon_dioxide: list[float] | None = None nitrogen_dioxide: list[float] | None = None sulphur_dioxide: list[float] | None = None ozone: list[float] | None = None aerosol_optical_depth: list[float] | None = None dust: list[float] | None = None uv_index: list[float] | None = None uv_index_clear_sky: list[float] | None = None ammonia: list[float] | None = None methane: list[float] | None = None alder_pollen: list[float] | None = None birch_pollen: list[float] | None = None grass_pollen: list[float] | None = None mugwort_pollen: list[float] | None = None olive_pollen: list[float] | None = None ragweed_pollen: list[float] | None = None formaldehyde: list[float] | None = None glyoxal: list[float] | None = None non_methane_volatile_organic_compounds: list[float] | None = None pm10_wildfires: list[float] | None = None peroxyacyl_nitrates: list[float] | None = None secondary_inorganic_aerosol: list[float] | None = None residential_elementary_carbon: list[float] | None = None total_elementary_carbon: list[float] | None = None pm2_5_total_organic_matter: list[float] | None = None sea_salt_aerosol: list[float] | None = None nitrogen_monoxide: list[float] | None = None european_aqi: list[int] | None = None european_aqi_pm2_5: list[int] | None = None european_aqi_pm10: list[int] | None = None european_aqi_nitrogen_dioxide: list[int] | None = None european_aqi_ozone: list[int] | None = None european_aqi_sulphur_dioxide: list[int] | None = None us_aqi: list[int] | None = None us_aqi_pm2_5: list[int] | None = None us_aqi_pm10: list[int] | None = None us_aqi_nitrogen_dioxide: list[int] | None = None us_aqi_carbon_monoxide: list[int] | None = None us_aqi_ozone: list[int] | None = None us_aqi_sulphur_dioxide: list[int] | None = None is_day: list[int] | None = None
[docs] def get_v1_air_quality_response_hourly_from_json(data: Any) -> GetV1AirQualityResponseHourly: """ Build a :py:class:`GetV1AirQualityResponseHourly` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1AirQualityResponseHourly """ return GetV1AirQualityResponseHourly( time=data.get("time"), pm10=data.get("pm10"), pm2_5=data.get("pm2_5"), carbon_monoxide=data.get("carbon_monoxide"), carbon_dioxide=data.get("carbon_dioxide"), nitrogen_dioxide=data.get("nitrogen_dioxide"), sulphur_dioxide=data.get("sulphur_dioxide"), ozone=data.get("ozone"), aerosol_optical_depth=data.get("aerosol_optical_depth"), dust=data.get("dust"), uv_index=data.get("uv_index"), uv_index_clear_sky=data.get("uv_index_clear_sky"), ammonia=data.get("ammonia"), methane=data.get("methane"), alder_pollen=data.get("alder_pollen"), birch_pollen=data.get("birch_pollen"), grass_pollen=data.get("grass_pollen"), mugwort_pollen=data.get("mugwort_pollen"), olive_pollen=data.get("olive_pollen"), ragweed_pollen=data.get("ragweed_pollen"), formaldehyde=data.get("formaldehyde"), glyoxal=data.get("glyoxal"), non_methane_volatile_organic_compounds=data.get("non_methane_volatile_organic_compounds"), pm10_wildfires=data.get("pm10_wildfires"), peroxyacyl_nitrates=data.get("peroxyacyl_nitrates"), secondary_inorganic_aerosol=data.get("secondary_inorganic_aerosol"), residential_elementary_carbon=data.get("residential_elementary_carbon"), total_elementary_carbon=data.get("total_elementary_carbon"), pm2_5_total_organic_matter=data.get("pm2_5_total_organic_matter"), sea_salt_aerosol=data.get("sea_salt_aerosol"), nitrogen_monoxide=data.get("nitrogen_monoxide"), european_aqi=data.get("european_aqi"), european_aqi_pm2_5=data.get("european_aqi_pm2_5"), european_aqi_pm10=data.get("european_aqi_pm10"), european_aqi_nitrogen_dioxide=data.get("european_aqi_nitrogen_dioxide"), european_aqi_ozone=data.get("european_aqi_ozone"), european_aqi_sulphur_dioxide=data.get("european_aqi_sulphur_dioxide"), us_aqi=data.get("us_aqi"), us_aqi_pm2_5=data.get("us_aqi_pm2_5"), us_aqi_pm10=data.get("us_aqi_pm10"), us_aqi_nitrogen_dioxide=data.get("us_aqi_nitrogen_dioxide"), us_aqi_carbon_monoxide=data.get("us_aqi_carbon_monoxide"), us_aqi_ozone=data.get("us_aqi_ozone"), us_aqi_sulphur_dioxide=data.get("us_aqi_sulphur_dioxide"), is_day=data.get("is_day"), )
[docs] @dataclass class GetV1AirQualityResponseHourlyUnits: """The ``GetV1AirQualityResponseHourlyUnits`` model.""" time: str | None = None pm10: str | None = None pm2_5: str | None = None carbon_monoxide: str | None = None carbon_dioxide: str | None = None nitrogen_dioxide: str | None = None sulphur_dioxide: str | None = None ozone: str | None = None aerosol_optical_depth: str | None = None dust: str | None = None uv_index: str | None = None uv_index_clear_sky: str | None = None ammonia: str | None = None methane: str | None = None alder_pollen: str | None = None birch_pollen: str | None = None grass_pollen: str | None = None mugwort_pollen: str | None = None olive_pollen: str | None = None ragweed_pollen: str | None = None formaldehyde: str | None = None glyoxal: str | None = None non_methane_volatile_organic_compounds: str | None = None pm10_wildfires: str | None = None peroxyacyl_nitrates: str | None = None secondary_inorganic_aerosol: str | None = None residential_elementary_carbon: str | None = None total_elementary_carbon: str | None = None pm2_5_total_organic_matter: str | None = None sea_salt_aerosol: str | None = None nitrogen_monoxide: str | None = None european_aqi: str | None = None european_aqi_pm2_5: str | None = None european_aqi_pm10: str | None = None european_aqi_nitrogen_dioxide: str | None = None european_aqi_ozone: str | None = None european_aqi_sulphur_dioxide: str | None = None us_aqi: str | None = None us_aqi_pm2_5: str | None = None us_aqi_pm10: str | None = None us_aqi_nitrogen_dioxide: str | None = None us_aqi_carbon_monoxide: str | None = None us_aqi_ozone: str | None = None us_aqi_sulphur_dioxide: str | None = None is_day: str | None = None
[docs] def get_v1_air_quality_response_hourly_units_from_json( data: Any, ) -> GetV1AirQualityResponseHourlyUnits: """ Build a :py:class:`GetV1AirQualityResponseHourlyUnits` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1AirQualityResponseHourlyUnits """ return GetV1AirQualityResponseHourlyUnits( time=data.get("time"), pm10=data.get("pm10"), pm2_5=data.get("pm2_5"), carbon_monoxide=data.get("carbon_monoxide"), carbon_dioxide=data.get("carbon_dioxide"), nitrogen_dioxide=data.get("nitrogen_dioxide"), sulphur_dioxide=data.get("sulphur_dioxide"), ozone=data.get("ozone"), aerosol_optical_depth=data.get("aerosol_optical_depth"), dust=data.get("dust"), uv_index=data.get("uv_index"), uv_index_clear_sky=data.get("uv_index_clear_sky"), ammonia=data.get("ammonia"), methane=data.get("methane"), alder_pollen=data.get("alder_pollen"), birch_pollen=data.get("birch_pollen"), grass_pollen=data.get("grass_pollen"), mugwort_pollen=data.get("mugwort_pollen"), olive_pollen=data.get("olive_pollen"), ragweed_pollen=data.get("ragweed_pollen"), formaldehyde=data.get("formaldehyde"), glyoxal=data.get("glyoxal"), non_methane_volatile_organic_compounds=data.get("non_methane_volatile_organic_compounds"), pm10_wildfires=data.get("pm10_wildfires"), peroxyacyl_nitrates=data.get("peroxyacyl_nitrates"), secondary_inorganic_aerosol=data.get("secondary_inorganic_aerosol"), residential_elementary_carbon=data.get("residential_elementary_carbon"), total_elementary_carbon=data.get("total_elementary_carbon"), pm2_5_total_organic_matter=data.get("pm2_5_total_organic_matter"), sea_salt_aerosol=data.get("sea_salt_aerosol"), nitrogen_monoxide=data.get("nitrogen_monoxide"), european_aqi=data.get("european_aqi"), european_aqi_pm2_5=data.get("european_aqi_pm2_5"), european_aqi_pm10=data.get("european_aqi_pm10"), european_aqi_nitrogen_dioxide=data.get("european_aqi_nitrogen_dioxide"), european_aqi_ozone=data.get("european_aqi_ozone"), european_aqi_sulphur_dioxide=data.get("european_aqi_sulphur_dioxide"), us_aqi=data.get("us_aqi"), us_aqi_pm2_5=data.get("us_aqi_pm2_5"), us_aqi_pm10=data.get("us_aqi_pm10"), us_aqi_nitrogen_dioxide=data.get("us_aqi_nitrogen_dioxide"), us_aqi_carbon_monoxide=data.get("us_aqi_carbon_monoxide"), us_aqi_ozone=data.get("us_aqi_ozone"), us_aqi_sulphur_dioxide=data.get("us_aqi_sulphur_dioxide"), is_day=data.get("is_day"), )
[docs] @dataclass class GetV1AirQualityResponseCurrent: """The ``GetV1AirQualityResponseCurrent`` model.""" time: str | None = None interval: int | None = None european_aqi: int | None = None us_aqi: int | None = None pm10: float | None = None pm2_5: float | None = None carbon_monoxide: float | None = None nitrogen_dioxide: float | None = None sulphur_dioxide: float | None = None ozone: float | None = None aerosol_optical_depth: float | None = None dust: float | None = None uv_index: float | None = None uv_index_clear_sky: float | None = None ammonia: float | None = None alder_pollen: float | None = None birch_pollen: float | None = None grass_pollen: float | None = None mugwort_pollen: float | None = None olive_pollen: float | None = None ragweed_pollen: float | None = None
[docs] def get_v1_air_quality_response_current_from_json(data: Any) -> GetV1AirQualityResponseCurrent: """ Build a :py:class:`GetV1AirQualityResponseCurrent` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1AirQualityResponseCurrent """ return GetV1AirQualityResponseCurrent( time=data.get("time"), interval=data.get("interval"), european_aqi=data.get("european_aqi"), us_aqi=data.get("us_aqi"), pm10=data.get("pm10"), pm2_5=data.get("pm2_5"), carbon_monoxide=data.get("carbon_monoxide"), nitrogen_dioxide=data.get("nitrogen_dioxide"), sulphur_dioxide=data.get("sulphur_dioxide"), ozone=data.get("ozone"), aerosol_optical_depth=data.get("aerosol_optical_depth"), dust=data.get("dust"), uv_index=data.get("uv_index"), uv_index_clear_sky=data.get("uv_index_clear_sky"), ammonia=data.get("ammonia"), alder_pollen=data.get("alder_pollen"), birch_pollen=data.get("birch_pollen"), grass_pollen=data.get("grass_pollen"), mugwort_pollen=data.get("mugwort_pollen"), olive_pollen=data.get("olive_pollen"), ragweed_pollen=data.get("ragweed_pollen"), )
[docs] @dataclass class GetV1AirQualityResponseCurrentUnits: """The ``GetV1AirQualityResponseCurrentUnits`` model.""" time: str | None = None european_aqi: str | None = None us_aqi: str | None = None pm10: str | None = None pm2_5: str | None = None carbon_monoxide: str | None = None nitrogen_dioxide: str | None = None sulphur_dioxide: str | None = None ozone: str | None = None aerosol_optical_depth: str | None = None dust: str | None = None uv_index: str | None = None uv_index_clear_sky: str | None = None ammonia: str | None = None alder_pollen: str | None = None birch_pollen: str | None = None grass_pollen: str | None = None mugwort_pollen: str | None = None olive_pollen: str | None = None ragweed_pollen: str | None = None
[docs] def get_v1_air_quality_response_current_units_from_json( data: Any, ) -> GetV1AirQualityResponseCurrentUnits: """ Build a :py:class:`GetV1AirQualityResponseCurrentUnits` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1AirQualityResponseCurrentUnits """ return GetV1AirQualityResponseCurrentUnits( time=data.get("time"), european_aqi=data.get("european_aqi"), us_aqi=data.get("us_aqi"), pm10=data.get("pm10"), pm2_5=data.get("pm2_5"), carbon_monoxide=data.get("carbon_monoxide"), nitrogen_dioxide=data.get("nitrogen_dioxide"), sulphur_dioxide=data.get("sulphur_dioxide"), ozone=data.get("ozone"), aerosol_optical_depth=data.get("aerosol_optical_depth"), dust=data.get("dust"), uv_index=data.get("uv_index"), uv_index_clear_sky=data.get("uv_index_clear_sky"), ammonia=data.get("ammonia"), alder_pollen=data.get("alder_pollen"), birch_pollen=data.get("birch_pollen"), grass_pollen=data.get("grass_pollen"), mugwort_pollen=data.get("mugwort_pollen"), olive_pollen=data.get("olive_pollen"), ragweed_pollen=data.get("ragweed_pollen"), )
[docs] @dataclass class GetV1AirQualityResponse: """The ``GetV1AirQualityResponse`` 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 hourly: GetV1AirQualityResponseHourly | None = None hourly_units: GetV1AirQualityResponseHourlyUnits | None = None current: GetV1AirQualityResponseCurrent | None = None current_units: GetV1AirQualityResponseCurrentUnits | None = None
[docs] def get_v1_air_quality_response_from_json(data: Any) -> GetV1AirQualityResponse: """ Build a :py:class:`GetV1AirQualityResponse` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1AirQualityResponse """ return GetV1AirQualityResponse( 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"), hourly=( get_v1_air_quality_response_hourly_from_json(data["hourly"]) if data.get("hourly") is not None else None ), hourly_units=( get_v1_air_quality_response_hourly_units_from_json(data["hourly_units"]) if data.get("hourly_units") is not None else None ), current=( get_v1_air_quality_response_current_from_json(data["current"]) if data.get("current") is not None else None ), current_units=( get_v1_air_quality_response_current_units_from_json(data["current_units"]) if data.get("current_units") is not None else None ), )
[docs] @dataclass class GetV1AirQualityError: """The ``GetV1AirQualityError`` model.""" error: bool | None = None reason: str | None = None
[docs] def get_v1_air_quality_error_from_json(data: Any) -> GetV1AirQualityError: """ Build a :py:class:`GetV1AirQualityError` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1AirQualityError """ return GetV1AirQualityError( error=data.get("error"), reason=data.get("reason"), )